diff --git a/.pipelines/azure-pipeline-build.yml b/.pipelines/azure-pipeline-build.yml index f61797791..d7482215e 100644 --- a/.pipelines/azure-pipeline-build.yml +++ b/.pipelines/azure-pipeline-build.yml @@ -27,7 +27,7 @@ variables: IS_OTEL_UPGRADE_BRANCH: $[startsWith(variables['Build.SourceBranchName'], 'otelcollector-upgrade-')] BUILD_WINDOWS: true Codeql.Enabled: true - GOLANG_VERSION: '1.24.9' + GOLANG_VERSION: '1.24.11' FLUENTBIT_GOLANG_VERSION: '1.24.6' TESTKUBE_GOLANG_VERSION: '1.23.10' FLUENT_BIT_VERSION: '3.2.2' diff --git a/.trivyignore b/.trivyignore index 4d505e4b7..5422ddcc0 100644 --- a/.trivyignore +++ b/.trivyignore @@ -1,5 +1,5 @@ # This file contains CVEs to be ignored by Trivy -# Auto-generated on Tue Oct 14 07:13:40 UTC 2025 +# Auto-generated on Wed Dec 24 07:15:32 UTC 2025 # CRITICAL @@ -8,17 +8,21 @@ CVE-2024-33599 # CVE-2024-33601 # CVE-2025-4802 # -# prometheus-collector +# otelcollector +CVE-2025-68156 # github.com/expr-lang/expr +# promconfigvalidator +CVE-2025-68156 # github.com/expr-lang/expr # MEDIUM # kube-state-metrics CVE-2023-4527 # CVE-2023-4806 # CVE-2024-33600 # - -# prometheus-collector # promconfigvalidator -CVE-2025-47914 -CVE-2025-58181 +CVE-2025-47914 # +CVE-2025-58181 # +# prometheusui +CVE-2025-47914 # golang.org/x/crypto +CVE-2025-58181 # golang.org/x/crypto # LOW # kube-state-metrics diff --git a/OPENTELEMETRY_VERSION b/OPENTELEMETRY_VERSION index 2a3b4ef89..372b78cee 100644 --- a/OPENTELEMETRY_VERSION +++ b/OPENTELEMETRY_VERSION @@ -1 +1 @@ -v0.136.0 +v0.141.0 diff --git a/TARGETALLOCATOR_VERSION b/TARGETALLOCATOR_VERSION index 2a3b4ef89..372b78cee 100644 --- a/TARGETALLOCATOR_VERSION +++ b/TARGETALLOCATOR_VERSION @@ -1 +1 @@ -v0.136.0 +v0.141.0 diff --git a/otelcollector/opentelemetry-collector-builder/go.mod b/otelcollector/opentelemetry-collector-builder/go.mod index 71772cf44..547bb3cb1 100644 --- a/otelcollector/opentelemetry-collector-builder/go.mod +++ b/otelcollector/opentelemetry-collector-builder/go.mod @@ -5,77 +5,77 @@ go 1.24.0 toolchain go1.24.7 require ( - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.136.0 - go.opentelemetry.io/collector/component v1.42.0 - go.opentelemetry.io/collector/confmap v1.42.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.42.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0 - go.opentelemetry.io/collector/exporter v1.42.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.136.0 - go.opentelemetry.io/collector/extension v1.42.0 - go.opentelemetry.io/collector/otelcol v0.136.0 - go.opentelemetry.io/collector/processor v1.42.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.136.0 - go.opentelemetry.io/collector/receiver v1.42.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.141.0 + go.opentelemetry.io/collector/component v1.47.0 + go.opentelemetry.io/collector/confmap v1.47.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.47.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0 + go.opentelemetry.io/collector/exporter v1.47.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.141.0 + go.opentelemetry.io/collector/extension v1.47.0 + go.opentelemetry.io/collector/otelcol v0.141.0 + go.opentelemetry.io/collector/processor v1.47.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.141.0 + go.opentelemetry.io/collector/receiver v1.47.0 ) require ( - cloud.google.com/go/auth v0.16.2 // indirect + cloud.google.com/go/auth v0.16.5 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect - cloud.google.com/go/compute/metadata v0.7.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect + cloud.google.com/go/compute/metadata v0.9.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect 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.4.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/alecthomas/participle/v2 v2.1.4 // indirect github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect - github.com/antchfx/xmlquery v1.4.4 // indirect + github.com/antchfx/xmlquery v1.5.0 // indirect github.com/antchfx/xpath v1.3.5 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/aws/aws-sdk-go-v2 v1.37.0 // indirect - github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.39.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.12 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect - github.com/aws/smithy-go v1.22.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 // indirect + github.com/aws/smithy-go v1.23.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect + github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/coreos/go-systemd/v22 v22.6.0 // 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.157.0 // indirect + github.com/digitalocean/godo v1.165.1 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/docker v28.3.3+incompatible // indirect + github.com/docker/docker v28.5.1+incompatible // indirect github.com/docker/go-connections v0.6.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/ebitengine/purego v0.8.4 // indirect + github.com/ebitengine/purego v0.9.0 // indirect github.com/edsrzf/mmap-go v1.2.0 // 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/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/elastic/lunes v0.2.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect github.com/expr-lang/expr v1.17.6 // indirect github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect @@ -83,19 +83,19 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/foxboron/go-tpm-keyfiles v0.0.0-20250903184740-5d135037bd4d // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/analysis v0.23.0 // indirect - github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/errors v0.22.3 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/loads v0.22.0 // indirect github.com/go-openapi/spec v0.21.0 // indirect - github.com/go-openapi/strfmt v0.23.0 // indirect + github.com/go-openapi/strfmt v0.24.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect github.com/go-openapi/validate v0.24.0 // indirect github.com/go-resty/resty/v2 v2.16.5 // indirect @@ -105,25 +105,23 @@ require ( github.com/goccy/go-json v0.10.5 // indirect github.com/goccy/go-yaml v1.18.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v1.0.0 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/go-tpm v0.9.6 // indirect - github.com/google/gofuzz v1.2.0 // indirect + github.com/google/go-tpm v0.9.7 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect - github.com/googleapis/gax-go/v2 v2.14.2 // indirect - github.com/gophercloud/gophercloud/v2 v2.7.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.27.1 // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect + github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect + github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect + github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect github.com/hashicorp/consul/api v1.32.0 // indirect - github.com/hashicorp/cronexpr v1.1.2 // indirect + github.com/hashicorp/cronexpr v1.1.3 // 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 @@ -134,9 +132,9 @@ require ( 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/nomad/api v0.0.0-20241218080744-e3ac00f30eec // indirect + github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af // indirect github.com/hashicorp/serf v0.10.1 // indirect - github.com/hetznercloud/hcloud-go/v2 v2.21.1 // indirect + github.com/hetznercloud/hcloud-go/v2 v2.25.1 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/ionos-cloud/sdk-go/v6 v6.3.4 // indirect @@ -144,13 +142,14 @@ require ( github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/julienschmidt/httprouter v1.3.0 // indirect - github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/compress v1.18.1 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/knadh/koanf/maps v0.1.2 // indirect github.com/knadh/koanf/providers/confmap v1.0.0 // indirect github.com/knadh/koanf/v2 v2.3.0 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/linode/linodego v1.52.2 // indirect + github.com/linode/linodego v1.59.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magefile/mage v1.15.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -158,7 +157,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mdlayher/socket v0.4.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect - github.com/miekg/dns v1.1.66 // indirect + github.com/miekg/dns v1.1.68 // 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 @@ -171,14 +170,14 @@ require ( github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/oklog/ulid/v2 v2.1.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.136.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.141.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/ovh/go-ovh v1.9.0 // indirect @@ -191,21 +190,21 @@ require ( github.com/prometheus/alertmanager v0.28.1 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/common v0.67.4 // indirect github.com/prometheus/common/assets v0.2.0 // indirect - github.com/prometheus/exporter-toolkit v0.14.0 // indirect - github.com/prometheus/otlptranslator v0.0.2 // indirect + github.com/prometheus/exporter-toolkit v0.15.0 // indirect + github.com/prometheus/otlptranslator v1.0.0 // indirect github.com/prometheus/procfs v0.17.0 // indirect - github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 // indirect - github.com/prometheus/sigv4 v0.2.0 // indirect + github.com/prometheus/prometheus v0.307.3 // indirect + github.com/prometheus/sigv4 v0.2.1 // indirect github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect github.com/rs/cors v1.11.1 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 // indirect - github.com/shirou/gopsutil/v4 v4.25.8 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 // indirect + github.com/shirou/gopsutil/v4 v4.25.10 // indirect github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c // indirect github.com/spf13/cobra v1.10.1 // indirect github.com/spf13/pflag v1.0.9 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.17.2 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.17.3 // indirect github.com/stretchr/testify v1.11.1 // indirect github.com/tklauser/go-sysconf v0.3.15 // indirect github.com/tklauser/numcpus v0.10.0 // indirect @@ -214,123 +213,125 @@ require ( 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.mongodb.org/mongo-driver v1.14.0 // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/collector v0.136.0 // indirect - go.opentelemetry.io/collector/client v1.42.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.136.0 // indirect - go.opentelemetry.io/collector/component/componenttest v0.136.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.136.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.42.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.136.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.136.0 // indirect - go.opentelemetry.io/collector/config/configmiddleware v1.42.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.42.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.42.0 // indirect - go.opentelemetry.io/collector/config/configoptional v0.136.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.42.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.136.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.42.0 // indirect - go.opentelemetry.io/collector/confmap/xconfmap v0.136.0 // indirect - go.opentelemetry.io/collector/connector v0.136.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.136.0 // indirect - go.opentelemetry.io/collector/connector/xconnector v0.136.0 // indirect - go.opentelemetry.io/collector/consumer v1.42.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/xconsumer v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/xexporter v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensionauth v1.42.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensiontest v0.136.0 // indirect - go.opentelemetry.io/collector/extension/xextension v0.136.0 // indirect - go.opentelemetry.io/collector/featuregate v1.42.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0 // indirect - go.opentelemetry.io/collector/internal/telemetry v0.136.0 // indirect - go.opentelemetry.io/collector/pdata v1.42.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.136.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.136.0 // indirect - go.opentelemetry.io/collector/pdata/xpdata v0.136.0 // indirect - go.opentelemetry.io/collector/pipeline v1.42.0 // indirect - go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper v0.136.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.136.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.136.0 // indirect - go.opentelemetry.io/collector/processor/xprocessor v0.136.0 // indirect - go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.136.0 // indirect - go.opentelemetry.io/collector/receiver/xreceiver v0.136.0 // indirect + github.com/zeebo/xxh3 v1.0.2 // indirect + go.mongodb.org/mongo-driver v1.17.4 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/collector v0.141.0 // indirect + go.opentelemetry.io/collector/client v1.47.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.141.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.141.0 // indirect + go.opentelemetry.io/collector/config/configauth v1.47.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.47.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.141.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.141.0 // indirect + go.opentelemetry.io/collector/config/configmiddleware v1.47.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.47.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.47.0 // indirect + go.opentelemetry.io/collector/config/configoptional v1.47.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.47.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.141.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.47.0 // indirect + go.opentelemetry.io/collector/confmap/xconfmap v0.141.0 // indirect + go.opentelemetry.io/collector/connector v0.141.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.141.0 // indirect + go.opentelemetry.io/collector/connector/xconnector v0.141.0 // indirect + go.opentelemetry.io/collector/consumer v1.47.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/xconsumer v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/xexporter v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensionauth v1.47.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.141.0 // indirect + go.opentelemetry.io/collector/extension/xextension v0.141.0 // indirect + go.opentelemetry.io/collector/featuregate v1.47.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0 // indirect + go.opentelemetry.io/collector/internal/telemetry v0.141.0 // indirect + go.opentelemetry.io/collector/pdata v1.47.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.141.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.141.0 // indirect + go.opentelemetry.io/collector/pdata/xpdata v0.141.0 // indirect + go.opentelemetry.io/collector/pipeline v1.47.0 // indirect + go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper v0.141.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.141.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.141.0 // indirect + go.opentelemetry.io/collector/processor/xprocessor v0.141.0 // indirect + go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.141.0 // indirect + go.opentelemetry.io/collector/receiver/xreceiver v0.141.0 // indirect go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 // indirect - go.opentelemetry.io/collector/service v0.136.0 // indirect - go.opentelemetry.io/collector/service/hostcapabilities v0.136.0 // indirect - go.opentelemetry.io/contrib/bridges/otelzap v0.12.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 // indirect + go.opentelemetry.io/collector/service v0.141.0 // indirect + go.opentelemetry.io/collector/service/hostcapabilities v0.141.0 // indirect + go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect - go.opentelemetry.io/contrib/otelconf v0.16.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.37.0 // indirect + go.opentelemetry.io/contrib/otelconf v0.18.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.38.0 // indirect go.opentelemetry.io/otel v1.38.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.60.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 // indirect go.opentelemetry.io/otel/log v0.14.0 // indirect go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/sdk v1.38.0 // indirect - go.opentelemetry.io/otel/sdk/log v0.13.0 // indirect + go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect - go.opentelemetry.io/proto/otlp v1.7.0 // indirect + go.opentelemetry.io/proto/otlp v1.7.1 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/goleak v1.3.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.27.0 // indirect + go.uber.org/zap v1.27.1 // indirect go.uber.org/zap/exp v0.3.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.42.0 // indirect - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.27.0 // indirect - golang.org/x/net v0.44.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.17.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/term v0.35.0 // indirect - golang.org/x/text v0.29.0 // indirect - golang.org/x/time v0.12.0 // indirect - golang.org/x/tools v0.36.0 // indirect + golang.org/x/crypto v0.45.0 // indirect + golang.org/x/exp v0.0.0-20250808145144-a408d31f581a // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/oauth2 v0.32.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect + golang.org/x/time v0.13.0 // indirect + golang.org/x/tools v0.38.0 // indirect gonum.org/v1/gonum v0.16.0 // indirect - google.golang.org/api v0.239.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect - google.golang.org/grpc v1.75.1 // indirect - google.golang.org/protobuf v1.36.9 // indirect + google.golang.org/api v0.250.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect + google.golang.org/grpc v1.77.0 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // 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 - k8s.io/api v0.32.3 // indirect - k8s.io/apimachinery v0.32.3 // indirect - k8s.io/client-go v0.32.3 // indirect + k8s.io/api v0.34.1 // indirect + k8s.io/apimachinery v0.34.1 // indirect + k8s.io/client-go v0.34.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect - sigs.k8s.io/yaml v1.5.0 // indirect + k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver => ../prometheusreceiver diff --git a/otelcollector/opentelemetry-collector-builder/go.sum b/otelcollector/opentelemetry-collector-builder/go.sum index 1afabbc83..031c57f46 100644 --- a/otelcollector/opentelemetry-collector-builder/go.sum +++ b/otelcollector/opentelemetry-collector-builder/go.sum @@ -1,19 +1,19 @@ -cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4= -cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA= +cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI= +cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= -cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= -cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= -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/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= +dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 h1:wL5IEG5zb7BVv1Kv0Xm92orq+5hB5Nipn3B5tn4Rqfk= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0/go.mod h1:J7MUC/wtRpfGVbQ5sIItY5/FuVWmvzlY21WAOfQnq/I= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= @@ -26,8 +26,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= 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/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -45,9 +45,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/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b h1:mimo19zliBX/vSQ6PWWSL9lK8qwHozUj03+zLoEB8O0= github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= -github.com/antchfx/xmlquery v1.4.4 h1:mxMEkdYP3pjKSftxss4nUHfjBhnMk4imGoR96FRY2dg= -github.com/antchfx/xmlquery v1.4.4/go.mod h1:AEPEEPYE9GnA2mj5Ur2L5Q5/2PycJ0N9Fusrx9b12fc= -github.com/antchfx/xpath v1.3.3/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= +github.com/antchfx/xmlquery v1.5.0 h1:uAi+mO40ZWfyU6mlUBxRVvL6uBNZ6LMU4M3+mQIBV4c= +github.com/antchfx/xmlquery v1.5.0/go.mod h1:lJfWRXzYMK1ss32zm1GQV3gMIW/HFey3xDZmkP1SuNc= github.com/antchfx/xpath v1.3.5 h1:PqbXLC3TkfeZyakF5eeh3NTWEbYl4VHNVeufANzDbKQ= github.com/antchfx/xpath v1.3.5/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= @@ -58,36 +57,36 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go-v2 v1.37.0 h1:YtCOESR/pN4j5oA7cVHSfOwIcuh/KwHC4DOSXFbv5F0= -github.com/aws/aws-sdk-go-v2 v1.37.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= -github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= -github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 h1:H2iZoqW/v2Jnrh1FnU725Bq6KJ0k2uP63yH+DcY+HUI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0/go.mod h1:L0FqLbwMXHvNC/7crWV1iIxUlOKYZUE8KuTIA+TozAI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 h1:EDped/rNzAhFPhVY0sDGbtD16OKqksfA8OjF/kLEgw8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0/go.mod h1:uUI335jvzpZRPpjYx6ODc/wg1qH+NnoSTK/FwVeK0C0= +github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= +github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8= +github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 h1:Mv4Bc0mWmv6oDuSWTKnk+wgeqPL5DRFu5bQL9BGPQ8Y= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9/go.mod h1:IKlKfRppK2a1y0gy1yH6zD+yX5uplJ6UuPlgd48dJiQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 h1:XHE2G+yaDQql32FZt19QmQt4WuisqQJIkMUSCxeCUl8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0/go.mod h1:t11/j/nH9i6bbsPH9xc04BJOsV2nVPUqrB67/TLDsyM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 h1:eRhU3Sh8dGbaniI6B+I48XJMrTPRkK4DKo+vqIxziOU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0/go.mod h1:paNLV18DZ6FnWE/bd06RIKPDIFpjuvCkGKWTG/GDBeM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 h1:QiiCqpKy0prxq+92uWfESzcb7/8Y9JAamcMOzVYLEoM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0/go.mod h1:ESppxYqXQCpCY+KWl3BdkQjmsQX6zxKP39SnDtRDoU0= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= -github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= -github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 h1:7p9bJCZ/b3EJXXARW7JMEs2IhsnI4YFHpfXQfgMh0eg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1/go.mod h1:M8WWWIfXmxA4RgTXcI/5cSByxRqjgne32Sh0VIbrn0A= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 h1:J1A0VJlt5HgUX6s11Obe9zrBDECeE2uhQc7Dwhdei9o= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1/go.mod h1:WEOSRNyfIfvgrD9MuSIGrogKyuFahaVMziVq1pHI0NQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 h1:A1oRkiSQOWstGh61y4Wc/yQ04sqrQZr1Si/oAXj20/s= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 h1:5fm5RTONng73/QA73LhCNR7UT9RpFH3hR6HWL6bIgVY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1/go.mod h1:xBEjWD13h+6nq+z4AkqSfSvqRKFgDIQeaMguAJndOWo= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 h1:p3jIvqYwUZgu/XYeI48bJxOhvm47hZb5HUQ0tn6Q9kA= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6/go.mod h1:WtKK+ppze5yKPkZ0XwqIVWD4beCwv056ZbPQNoeHqM8= +github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= +github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3/go.mod h1:CIWtjkly68+yqLPbvwwR/fjNJA/idrtULjZWh2v1ys0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -104,8 +103,8 @@ 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/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -114,8 +113,8 @@ 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= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -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/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo= +github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU= github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= @@ -125,32 +124,30 @@ 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/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/digitalocean/godo v1.157.0 h1:ReELaS6FxXNf8gryUiVH0wmyUmZN8/NCmBX4gXd3F0o= -github.com/digitalocean/godo v1.157.0/go.mod h1:tYeiWY5ZXVpU48YaFv0M5irUFHXGorZpDNm7zzdWMzM= +github.com/digitalocean/godo v1.165.1 h1:H37+W7TaGFOVH+HpMW4ZeW/hrq3AGNxg+B/K8/dZ9mQ= +github.com/digitalocean/godo v1.165.1/go.mod h1:xQsWpVCCbkDrWisHA72hPzPlnC+4W5w/McZY5ij9uvU= 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/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v28.3.3+incompatible h1:Dypm25kh4rmk49v1eiVbsAtpAsYURjYkaKubwuBdxEI= -github.com/docker/docker v28.3.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.5.1+incompatible h1:Bm8DchhSD2J6PsFzxC35TZo4TLGR2PdW/E69rU45NhM= +github.com/docker/docker v28.5.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= 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/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= -github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/ebitengine/purego v0.9.0 h1:mh0zpKBIXDceC63hpvPuGLiJ8ZAa3DfrFTudmfi8A4k= +github.com/ebitengine/purego v0.9.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/edsrzf/mmap-go v1.2.0 h1:hXLYlkbaPzt1SaQk+anYwKSRNhufIDCchSPkUD6dD84= github.com/edsrzf/mmap-go v1.2.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= 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/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= -github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/elastic/lunes v0.2.0 h1:WI3bsdOTuaYXVe2DS1KbqA7u7FOHN4o8qJw80ZyZoQs= +github.com/elastic/lunes v0.2.0/go.mod h1:u3W/BdONWTrh0JjNZ21C907dDc+cUZttZrGa625nf2k= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo= +github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/expr-lang/expr v1.17.6 h1:1h6i8ONk9cexhDmowO/A64VPxHScu7qfSl2k8OlINec= @@ -170,8 +167,8 @@ github.com/foxboron/swtpm_test v0.0.0-20230726224112-46aaafdf7006 h1:50sW4r0Pcvl github.com/foxboron/swtpm_test v0.0.0-20230726224112-46aaafdf7006/go.mod h1:eIXCMsMYCaqq9m1KSSxXwQG11krpuNPGP3k0uaWrbas= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.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/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= 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.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= @@ -189,8 +186,8 @@ 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-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= -github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= -github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= +github.com/go-openapi/errors v0.22.3 h1:k6Hxa5Jg1TUyZnOwV2Lh81j8ayNw5VVYLvKrp4zFKFs= +github.com/go-openapi/errors v0.22.3/go.mod h1:+WvbaBBULWCOna//9B9TbLNGSFOfF8lY9dw4hGiEiKQ= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -199,8 +196,8 @@ github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8A github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= -github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= -github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= +github.com/go-openapi/strfmt v0.24.0 h1:dDsopqbI3wrrlIzeXRbqMihRNnjzGC+ez4NQaAAJLuc= +github.com/go-openapi/strfmt v0.24.0/go.mod h1:Lnn1Bk9rZjXxU9VMADbEEOo7D7CDyKGLsSKekhFr7s4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= @@ -220,12 +217,11 @@ github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= 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/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -236,51 +232,48 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/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.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -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/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.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= 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.2/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/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= -github.com/google/go-tpm v0.9.6 h1:Ku42PT4LmjDu1H5C5ISWLlpI1mj+Zq7sPGKoRw2XROA= -github.com/google/go-tpm v0.9.6/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= +github.com/google/go-tpm v0.9.7 h1:u89J4tUUeDTlH8xxC3CTW7OHZjbjKoHdQ9W7gCUhtxA= +github.com/google/go-tpm v0.9.7/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= github.com/google/go-tpm-tools v0.4.4 h1:oiQfAIkc6xTy9Fl5NKTeTJkBTlXdHsxAofmQyxBKY98= github.com/google/go-tpm-tools v0.4.4/go.mod h1:T8jXkp2s+eltnCDIsXR84/MTcVU9Ja7bh3Mit0pa4AY= 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-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18= -github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8 h1:ZI8gCoCjGzPsum4L21jHdQs8shFBIQih1TM9Rd/c+EQ= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= 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.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= -github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= -github.com/gophercloud/gophercloud/v2 v2.7.0 h1:o0m4kgVcPgHlcXiWAjoVxGd8QCmvM5VU+YM71pFbn0E= -github.com/gophercloud/gophercloud/v2 v2.7.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= -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/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= +github.com/gophercloud/gophercloud/v2 v2.8.0 h1:of2+8tT6+FbEYHfYC8GBu8TXJNsXYSNm9KuvpX7Neqo= +github.com/gophercloud/gophercloud/v2 v2.8.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 h1:cLN4IBkmkYZNnk7EAJ0BHIethd+J6LqxFNw5mSiI2bM= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/hashicorp/consul/api v1.32.0 h1:5wp5u780Gri7c4OedGEPzmlUEzi0g2KyiPphSr6zjVg= github.com/hashicorp/consul/api v1.32.0/go.mod h1:Z8YgY0eVPukT/17ejW+l+C7zJmKwgPHtjU1q16v/Y40= 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= -github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/cronexpr v1.1.3 h1:rl5IkxXN2m681EfivTlccqIryzYJSXRGRNa0xeG7NA4= +github.com/hashicorp/cronexpr v1.1.3/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= 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= @@ -327,12 +320,12 @@ github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/ github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= github.com/hashicorp/memberlist v0.5.1 h1:mk5dRuzeDNis2bi6LLoQIXfMH7JQvAzt3mQD0vNZZUo= github.com/hashicorp/memberlist v0.5.1/go.mod h1:zGDXV6AqbDTKTM6yxW0I4+JtFzZAJVoIPvss4hV8F24= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec h1:+YBzb977VrmffaCX/OBm17dEVJUcWn5dW+eqs3aIJ/A= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af h1:ScAYf8O+9xTqTJPZH8MIlUfO+ak8cb31rW1aYJgS+jE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af/go.mod h1:sldFTIgs+FsUeKU3LwVjviAIuksxD8TzDOn02MYwslE= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hetznercloud/hcloud-go/v2 v2.21.1 h1:IH3liW8/cCRjfJ4cyqYvw3s1ek+KWP8dl1roa0lD8JM= -github.com/hetznercloud/hcloud-go/v2 v2.21.1/go.mod h1:XOaYycZJ3XKMVWzmqQ24/+1V7ormJHmPdck/kxrNnQA= +github.com/hetznercloud/hcloud-go/v2 v2.25.1 h1:ib86acotlvgUSnKfFG5FJl0VFeYKe/Ht8nmikdUp+po= +github.com/hetznercloud/hcloud-go/v2 v2.25.1/go.mod h1:uQdAWaW3d9TimiyOjQWY8HKShs0Nd6S4wNYqo0HjvIY= 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/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= @@ -341,8 +334,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/ionos-cloud/sdk-go/v6 v6.3.4 h1:jTvGl4LOF8v8OYoEIBNVwbFoqSGAFqn6vGE7sp7/BqQ= github.com/ionos-cloud/sdk-go/v6 v6.3.4/go.mod h1:wCVwNJ/21W29FWFUv+fNawOTMlFoP1dS3L+ZuztFW48= -github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= -github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= +github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= +github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -358,8 +351,10 @@ github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRt github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= 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.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= -github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= +github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= +github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v1.0.0 h1:mHKLJTE7iXEys6deO5p6olAiZdG5zwp8Aebir+/EaRE= @@ -379,8 +374,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/linode/linodego v1.52.2 h1:N9ozU27To1LMSrDd8WvJZ5STSz1eGYdyLnxhAR/dIZg= -github.com/linode/linodego v1.52.2/go.mod h1:bI949fZaVchjWyKIA08hNyvAcV6BAS+PM2op3p7PAWA= +github.com/linode/linodego v1.59.0 h1:kYz6sQH9g0u21gbI1UUFjZmFLirtc39JPybygrW76Q0= +github.com/linode/linodego v1.59.0/go.mod h1:1+Bt0oTz5rBnDOJbGhccxn7LYVytXTIIfAy7QYmijDs= 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/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= @@ -413,15 +408,13 @@ github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= 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.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE= -github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE= +github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA= +github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= 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= 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 v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/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= @@ -468,38 +461,38 @@ github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.136.0 h1:pVhDE2Ju3y5kojjRJ0qElBKrfhICXFzMzwcIA2rwerc= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.136.0/go.mod h1:978Wrtzu0OJbrfW6rpuBLfvl671rKqcjV3/Y0sOC8Fs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.136.0 h1:jgNOzBqIkRvh5jTEaWjwtqbgP2DIYdjb3JgcVu3Hg2s= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.136.0/go.mod h1:ND2gE9ky7XdVCPvJL/uH3Upzdq2Wp1+HZZDNLDh++Tc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.136.0 h1:ofSNZonHS44OCPgi/rPoNkNxC1v8nHxPNWa5TAtK6Cs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.136.0/go.mod h1:Loh7TRQEfeJ+N3KvPBjIE+7ewhtKtk58ac5B/eEcXhE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.136.0 h1:iw305OKkyu6xYgHA/zV4HvEpU6w9fzg5COEh5bMhor4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.136.0/go.mod h1:LqKBsP+TSqiaMlOv9lQ731roP0JTjCUekw0rcm0sghE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.136.0 h1:OuR81KyWJaEXOoPT/qa9B8RJsUEPyniZwJwANPPdEvk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.136.0/go.mod h1:rHQxv7q4gR8ZKk6rzPhXsjlXDY3o54SC6stTpgYw8q8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.136.0 h1:mKELU5kjXPclcITDvCwy7xZ9za6J7sCIiVj2DlEMqng= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.136.0/go.mod h1:ZCfcimdENbhW1A/ubn6KHgVn2PRoeZ3DDy0vrH4uvGA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.136.0 h1:QUOaiK3ur0645Ivt/sbIHZpmPEWBj0Gbv05Q4mRgBCE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.136.0/go.mod h1:Vhkv+ColKVM57X6VXnrwQN22XvvZZ052pA5ghpQPH2Y= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.136.0 h1:EYLhEj1o8j/FhMPm3zMY+PsSsMPGCV6HK/9owsVhOQw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.136.0/go.mod h1:8MyCN0t5LHRe6Y1nOhpZkUBl7FPGJY8gQZaUHOQClUU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.136.0 h1:lDLdXA9WIvFCK4P6dFdsYJSDDNgaacj+afw7dOBIel8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.136.0/go.mod h1:q15PuRASnJ6doVHWTt6ug2VvB0rSeUf39CjqKKVqFlU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.136.0 h1:gp2AYLP2yL5O0RTiKpyORvxqjSEypMSH/6laB5bh0l4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.136.0/go.mod h1:5mPPRoLAp4uhg7tV+OLR+HmHyYtALSGZ0oMVHgMAfL8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.136.0 h1:GqXklBwfz5soY4wRzYrMTljPOSgGwtGZUFeJ377v2CU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.136.0/go.mod h1:t7VtqzYX3cQXcELIaoYzAAQ4fMVzMJxYP6eQmi5FFWI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.136.0 h1:u8SJhb+BmHukyg0DszoYMpsBLJ0ZUuRjKqLOcjnczhE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.136.0/go.mod h1:HIPCM9JaZ31QUfkEUJY7SYdmfH3zWuhcNt0PoOlBWKE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.136.0 h1:7mLIozG1dsFkT4bN9AjY24RsESWddOAxwcMLsGcVdkU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.136.0/go.mod h1:ZsTpEnxDR6VFCnx6o2vBW1bSd7kJwjEgTjdgp0/Fbmw= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.136.0 h1:3m1GQBFf8xRXjozuuyJD97122Rh81KiSR4HAMaN4Xfk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.136.0/go.mod h1:5LdAGh7nkcym4+EzmzCDNK9Qdp7mL1TPzzQpdPEJtds= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.136.0 h1:Z+pxuXaNWM34xoS5ktUHkI55uBDBrA3D6XZU3vDCQFA= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.136.0/go.mod h1:nMaiQG/zpgLmKqIDitLUZNMM9JGbHu75udMeEQ96Zc4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.136.0 h1:GHAl/v04NITgEg4PB/eJELVVMKcL/JJ6rnwmFWOMvEU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.136.0/go.mod h1:/F1/oNY6fOPsS7z73MWCn6dIeA0oQiCMtlP3EqBAuK0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.141.0 h1:hNsgOLxOZrWFxWM2vsmoyhwzBAkM5GeYpzNC8fNhraE= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.141.0/go.mod h1:9xM9ZPfSCS+hAFYYJdMQBwCVhD6uTqCx8v4n/W9azmo= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.141.0 h1:2EzfxvGyBqT1Xsl6TCuzRuedpShwMDW+oLMkM4FKICg= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.141.0/go.mod h1:ZCswp+K42xFdAAlpvW5j8UhMRS+U6+3fBkjGIC11Qvs= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.141.0 h1:6gwdPMl80oNOMlPqmwVDMA+FxLY7eT7yhodMG3fO6nc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.141.0/go.mod h1:QaA5DvWjGF/jOzcKW2fzmmPs6NJNO470wWLXU6xnxM8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.141.0 h1:Qld0XhVUI81Fyx0y4lPRuKCYws9OpBqhyALteFAIwUU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.141.0/go.mod h1:7f7+goLrZ8HYMfm810sBxscn33kGaQJFWcLJgJ5tq5A= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.141.0 h1:faF6pRSmxtLmHtHQR9MiStuF4qsTHETEMEoUkKGZHMc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.141.0/go.mod h1:Lfbwcn6JY7XgukcmE06RpJ9VxPUvINK7UJbrihuo32g= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.141.0 h1:2CC05z0fpxFnEsB4XpVMpIaQa1hv0ZfJ5TsCjLPTOfM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.141.0/go.mod h1:QTceC+e3mAclBVDvBUuWvOvzRcIBikDr7jPJ4d/OgHs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.141.0 h1:i7ky2m55NLa38k2lIIMP+kafco7dT2dpNkAiv/iYtQM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.141.0/go.mod h1:1ZyTGGX3SK9wJ0aLLW6S60bDnFo0aQmjywkWs059wlc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.141.0 h1:3nlsF0fNlR5sp5SMcUJLUiaHyRIXTd4Cws87sDgqhdM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.141.0/go.mod h1:a9zs/F71CSxdsV37GUQO8HJykDPA1TJyYSTztO2+x4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.141.0 h1:jy4EmUFaNUiY6NkyxjF8kHj6bal3O+D/r0XefaCh0bo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.141.0/go.mod h1:sxSF8MmAnLHlXctRgT9s2fbl7uNR5g4uh4CMQsggJO4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.141.0 h1:35xMzHfdAK4WFa+p6q+XgwY/Et7eHJD77p/kKj+F29s= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.141.0/go.mod h1:1MQ6n2yZtJHH59iIb4eU2RIJVt5nVCS2w82yL6wuRU4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.141.0 h1:I9N4Oyxf0CqND+PwGu7f0EIxMNJoliIAbSDbdp+nifE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.141.0/go.mod h1:mF0nNqBnrqAiRDGyr5eKv9YsIzFkzIUb9jcmO3s4cxU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.141.0 h1:+QiCicV2AW48akQTn7eDjRh4xwjCkK7wC+U8TaEktC8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.141.0/go.mod h1:RbRbltRdagN1XJi8RNzi5Kb1pPJrF2uXIz0njyaVEaY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.141.0 h1:tvNr9AgMCb3QzNWXolKCJxpuyujrhRN77HyctzG9WUE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.141.0/go.mod h1:+0wa84ghb3vqUVtN5oO2iacqDD9FFtzDyO+1Stl52mE= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.141.0 h1:czIcDtf+Jx/A6V7WnlMdQfRZh2VEnEd9etHS1sTQMx4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.141.0/go.mod h1:kMzVuBFzE+sE+BkWHJCylv3sKXQqPdtfwyQIU7TrQJM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.141.0 h1:OKRG4Wwg9zEN/BL7IGONrjgJ0YPwuLwrCXPG5Kcvj74= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.141.0/go.mod h1:K+qndqUqnztWPyK8LAX9VpIBupoeHD4LnZoAwH4HmCs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.141.0 h1:PqeNU2uqBa6tLM+1fGvysooSHYWA+3cR8lkmSt3Jzoc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.141.0/go.mod h1:e20CbQWp8c3FA7IJCvxA7fuuOJvLe7r9/GrqlcLsmrA= 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.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= @@ -541,41 +534,39 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= 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.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc= +github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM= github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI= -github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= -github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= -github.com/prometheus/otlptranslator v0.0.2 h1:+1CdeLVrRQ6Psmhnobldo0kTp96Rj80DRXRd5OSnMEQ= -github.com/prometheus/otlptranslator v0.0.2/go.mod h1:P8AwMgdD7XEr6QRUJ2QWLpiAZTgTE2UYgjlu3svompI= +github.com/prometheus/exporter-toolkit v0.15.0 h1:Pcle5sSViwR1x0gdPd0wtYrPQENBieQAM7TmT0qtb2U= +github.com/prometheus/exporter-toolkit v0.15.0/go.mod h1:OyRWd2iTo6Xge9Kedvv0IhCrJSBu36JCfJ2yVniRIYk= +github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= +github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= 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.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0= github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 h1:EtTzzd5UW9TXf9C8BUHv66RgdjG51efqGKWmlxMqjgs= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261/go.mod h1:KMw//femth6oNhcWeCrh4Er45VNPkNac87cTK6er/dA= -github.com/prometheus/sigv4 v0.2.0 h1:qDFKnHYFswJxdzGeRP63c4HlH3Vbn1Yf/Ao2zabtVXk= -github.com/prometheus/sigv4 v0.2.0/go.mod h1:D04rqmAaPPEUkjRQxGqjoxdyJuyCh6E0M18fZr0zBiE= +github.com/prometheus/prometheus v0.307.3 h1:zGIN3EpiKacbMatcUL2i6wC26eRWXdoXfNPjoBc2l34= +github.com/prometheus/prometheus v0.307.3/go.mod h1:sPbNW+KTS7WmzFIafC3Inzb6oZVaGLnSvwqTdz2jxRQ= +github.com/prometheus/sigv4 v0.2.1 h1:hl8D3+QEzU9rRmbKIRwMKRwaFGyLkbPdH5ZerglRHY0= +github.com/prometheus/sigv4 v0.2.1/go.mod h1:ySk6TahIlsR2sxADuHy4IBFhwEjRGGsfbbLGhFYFj6Q= github.com/puzpuzpuz/xsync/v3 v3.5.1 h1:GJYJZwO6IdxN/IKbneznS6yPkVC+c3zyY/j19c++5Fg= github.com/puzpuzpuz/xsync/v3 v3.5.1/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= -github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= -github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -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/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= 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/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 h1:KhF0WejiUTDbL5X55nXowP7zNopwpowa6qaMAWyIE+0= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33/go.mod h1:792k1RTU+5JeMXm35/e2Wgp71qPH/DmDoZrRc+EFZDk= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 h1:8xfn1RzeI9yoCUuEwDy08F+No6PcKZGEDOQ6hrRyLts= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35/go.mod h1:47B1d/YXmSAxlJxUJxClzHR6b3T4M1WyCvwENPQNBWc= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shirou/gopsutil/v4 v4.25.8 h1:NnAsw9lN7587WHxjJA9ryDnqhJpFH6A+wagYWTOH970= -github.com/shirou/gopsutil/v4 v4.25.8/go.mod h1:q9QdMmfAOVIw7a+eF86P7ISEU6ka+NLgkUxlopV4RwI= -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.25.10 h1:at8lk/5T1OgtuCp+AwrDofFRjnvosn0nkN2OLQ6g8tA= +github.com/shirou/gopsutil/v4 v4.25.10/go.mod h1:+kSwyC8DRUD9XXEHCAFjK+0nuArFJM0lva+StQAcskM= +github.com/shoenig/test v1.12.2 h1:ZVT8NeIUwGWpZcKaepPmFMoNQ3sVpxvqUh/MAqwFiJI= +github.com/shoenig/test v1.12.2/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c h1:aqg5Vm5dwtvL+YgDpBcK1ITf3o96N/K7/wsRXQnUTEs= github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c/go.mod h1:owqhoLW1qZoYLZzLnBw+QkPP9WZnjlSWihhxAJC1+/M= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -586,8 +577,8 @@ github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2 h1:jPyn+i8rkp2hM80+hOg0B/1EVRbMt778Tr5RWyK1m2E= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2/go.mod h1:8KIw3czdNJ9sdil9QQimxjR6vHjeINFrRv0iZ67wfn0= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg= 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= @@ -604,8 +595,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.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/testcontainers/testcontainers-go v0.38.0 h1:d7uEapLcv2P8AvH8ahLqDMMxda2W9gQN1nRbHS28HBw= -github.com/testcontainers/testcontainers-go v0.38.0/go.mod h1:C52c9MoHpWO+C4aqmgSU+hxlR5jlEayWtgYrb8Pzz1w= +github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= +github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY= github.com/tidwall/gjson v1.10.2 h1:APbLGOM0rrEkd8WBw9C24nllro4ajFuJu0Sc9hRz8Bo= github.com/tidwall/gjson v1.10.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -634,182 +625,188 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec 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.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= -go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/collector v0.136.0 h1:fEXsiNTa7itOD2SCspqBep6fnULa7mglLlNyhSizqok= -go.opentelemetry.io/collector v0.136.0/go.mod h1:m7YjwJ3xAzGIWa+vyHOE48R6pTKgh90vnlXjFhoB5+A= -go.opentelemetry.io/collector/client v1.42.0 h1:oBEWwd0ZgC9OLlIKZX7vo8PLXuUFoXuy3k0CuzLiKcM= -go.opentelemetry.io/collector/client v1.42.0/go.mod h1:GbBP2Ztn1xeeaAX6hIus0NOH/J0HcRgHP7SU8VDxwP0= -go.opentelemetry.io/collector/component v1.42.0 h1:on4XJ/NT1oPnuCVKDEtlpcr3GGPAS9taWBe8woHSTmY= -go.opentelemetry.io/collector/component v1.42.0/go.mod h1:mehIbkABLhEEs3kmAqer2GRmLwcQLoeF7C48CR6lxP0= -go.opentelemetry.io/collector/component/componentstatus v0.136.0 h1:MOD0t//ZYi23kIpjUm3Cqbp48xoNXPgFL8JBXp/kKaY= -go.opentelemetry.io/collector/component/componentstatus v0.136.0/go.mod h1:rwy++UVZJmymzltlvdYZptTvfxqLC4Vn9jMcM9X8U1c= -go.opentelemetry.io/collector/component/componenttest v0.136.0 h1:24U54okKfUl7tSApQ+84joz8KXgZicWgH+O7UB4fgNI= -go.opentelemetry.io/collector/component/componenttest v0.136.0/go.mod h1:diUZ4BjPMz0PJ/ur5BO9jSBWd8qebvOWMxVrEAoT6dQ= -go.opentelemetry.io/collector/config/configauth v0.136.0 h1:Xpi7zmpvidot/RRAcWN+8xkx87947+Ec1xMDGOLd+l4= -go.opentelemetry.io/collector/config/configauth v0.136.0/go.mod h1:WzZxFZqlc7pxbQxeto+kkV2zXFiEm5NA14fkjDp5kKU= -go.opentelemetry.io/collector/config/configcompression v1.42.0 h1:vznptUF452U526FHHp/fhGL9KgFCLb3sZ+iq4PXQYII= -go.opentelemetry.io/collector/config/configcompression v1.42.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= -go.opentelemetry.io/collector/config/configgrpc v0.136.0 h1:JutKKrIa44ec6VSrE8/0K/hPewJ4H69QbkYs3Gh3/k4= -go.opentelemetry.io/collector/config/configgrpc v0.136.0/go.mod h1:yxJgGrmH9jW/hPUvLlpGLsNRiQcOgK67r5RL4dvvdDE= -go.opentelemetry.io/collector/config/confighttp v0.136.0 h1:7wnmvlm4mZOnF4LD9Q0FIU35EW2z0KB94HRBqM0S0Xw= -go.opentelemetry.io/collector/config/confighttp v0.136.0/go.mod h1:F6zKdR0MagtYZ8NBJOgw9VqPbY+BwkWmO9UYE5mODGU= -go.opentelemetry.io/collector/config/configmiddleware v1.42.0 h1:11LMjkIPnNirc5okrcjO8CEbJ+2Xo7WM/CJqv6J97+M= -go.opentelemetry.io/collector/config/configmiddleware v1.42.0/go.mod h1:v45dyG4WvLxC0Yfw80NvjSFzngTUJdH9zzZOTAXenjg= -go.opentelemetry.io/collector/config/confignet v1.42.0 h1:K2tHmUzCOQiIYr84K+dxugkxQ0jVvYEyHxAhMU7CR0Y= -go.opentelemetry.io/collector/config/confignet v1.42.0/go.mod h1:4jJWdoe1MmpqxMzxrIILcS5FK2JPocXYZGUvv5ZQVKE= -go.opentelemetry.io/collector/config/configopaque v1.42.0 h1:AffFfB6FMKrgvgeSHCsOo+Q1cR4I2kqM3nRwEr/iHyk= -go.opentelemetry.io/collector/config/configopaque v1.42.0/go.mod h1:9uzLyGsWX0FtPWkomQXqLtblmSHgJFaM4T0gMBrCma0= -go.opentelemetry.io/collector/config/configoptional v0.136.0 h1:DwrduTAWbPwOW/k4GPcYUFB7DLruLvs+Zg2/RAHJ2DI= -go.opentelemetry.io/collector/config/configoptional v0.136.0/go.mod h1:hFcVjh2DqKIVMA9mbb2ctSW8d0SRN2UrNim33WxZM4o= -go.opentelemetry.io/collector/config/configretry v1.42.0 h1:iCm6gr8V7+J1ZI6fiHHeDqMzvFvJ9xKMlZt5DC2M5Vw= -go.opentelemetry.io/collector/config/configretry v1.42.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= -go.opentelemetry.io/collector/config/configtelemetry v0.136.0 h1:d5So8zVG6gRl7I3v2Trvk9kPkzSO6kubrcEUZ+wrasw= -go.opentelemetry.io/collector/config/configtelemetry v0.136.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= -go.opentelemetry.io/collector/config/configtls v1.42.0 h1:gACpOXSmxBeo+M8qjSxt7AU04B0qWzjqg2ZLvMA8Sdo= -go.opentelemetry.io/collector/config/configtls v1.42.0/go.mod h1:SJNnptQLBW+nO4CgTtNI1di8nAHNOIl2gclu9GsmK8g= -go.opentelemetry.io/collector/confmap v1.42.0 h1:Hdeqq1RkGBBWbmDpa96aC5LchklzUzCu4aSRRoPicng= -go.opentelemetry.io/collector/confmap v1.42.0/go.mod h1:KW/l4uXBGnl5OM8WYi3gTg6PeG+y24nlIMS71KwWQjk= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.42.0 h1:I4ijuuEUBtePNu7v3C8S/uwEwcXsQnos6d/lvCKby6k= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.42.0/go.mod h1:Nd5diM9jWG9sg6d6eHvR3sIuYgnU9PptExuCgELKTIs= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0 h1:BGejutI9811qBuzlV9jUI0vOLLR/6P/yprn4HqrQkh4= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0/go.mod h1:tT2TNx//LDPh5vxKg07kW07n5lPRJmbKkT3oISTdBa4= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.42.0 h1:M0Vo2jp1LJrtudwGO4jdhNGKnRxh3D0NsJV/pY6Nnwk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.42.0/go.mod h1:SJLJgZ7Q21O+MXOQnoNhliEjmk1Wr3DDRf3MTeB3Dlk= -go.opentelemetry.io/collector/confmap/xconfmap v0.136.0 h1:eC14gN+NL5HxmOmN9Aa4SkAnJhmUgmYP5cgEjCdz0sw= -go.opentelemetry.io/collector/confmap/xconfmap v0.136.0/go.mod h1:bDvQo42iyxLGR/Nl4eKP//F/jpDcD52JCb7uLGKA3lc= -go.opentelemetry.io/collector/connector v0.136.0 h1:q697P3BcHJcuqT+GE/Am5bqXGpAvCTf5gSlLL2HZ2iM= -go.opentelemetry.io/collector/connector v0.136.0/go.mod h1:zCKUihQzRDkAkszDPXg9RqTc/NcpRNGBbILySFaZ6zA= -go.opentelemetry.io/collector/connector/connectortest v0.136.0 h1:NQgEvJvAJKcswQ/5GQmo57gVgJQqYFvvLpYEpFCptaE= -go.opentelemetry.io/collector/connector/connectortest v0.136.0/go.mod h1:kBPRa9qDsuH7MGvgBwWxV4mLP7yG4fnLwxdBG2jigAA= -go.opentelemetry.io/collector/connector/xconnector v0.136.0 h1:7kEvmi1pARTHqGsBkmoi/IpG5xpAU7PMKDaWfLF18ps= -go.opentelemetry.io/collector/connector/xconnector v0.136.0/go.mod h1:+adB64pX2hOcDxgYmFN6gN6B5oLwKgnczzCqffrSiaE= -go.opentelemetry.io/collector/consumer v1.42.0 h1:RhdoAXrLODs4cnh1m/ihWfHTyWzGO1jL0X+E7wETzUE= -go.opentelemetry.io/collector/consumer v1.42.0/go.mod h1:jKcMYx9LXWMK4dupP2NhiAuHK063JiVMlyAC+ZMqlD0= -go.opentelemetry.io/collector/consumer/consumererror v0.136.0 h1:lYnTR/fJ8gBfVZ813sKPWXmj9a8+TajhrHBfqKwrWvQ= -go.opentelemetry.io/collector/consumer/consumererror v0.136.0/go.mod h1:DIivxQ3sy3mDZLaEcXdwZvEFLILpcyHxRiqEaPkHRFU= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.136.0 h1:0p5xkXuvCKMKwGdTeuzy1Vz04XJyk4cVdyebtGr/PFI= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.136.0/go.mod h1:e8DN9AXPONTtXKO9ycYSWKrvj7I9hHIlCg2mIu2cUlc= -go.opentelemetry.io/collector/consumer/consumertest v0.136.0 h1:zzO47GjzIg2X3uVW+lwtqS6S0vRm5qMx5O4zmQznCME= -go.opentelemetry.io/collector/consumer/consumertest v0.136.0/go.mod h1:gTdRvUiJSmzmWp2Ndlh0N0yQ3hPnmTYul2DWuy31/D0= -go.opentelemetry.io/collector/consumer/xconsumer v0.136.0 h1:7GczvR8x75lTyP9M+oWHQyGRDIRJ+QjY7IiJkucgOo4= -go.opentelemetry.io/collector/consumer/xconsumer v0.136.0/go.mod h1:sXw0lOF6D1iKhLy2xorJ8D3PysDXT0egmHJZu8TY0lE= -go.opentelemetry.io/collector/exporter v1.42.0 h1:YMWMSAfaMu3lgy+lgaJDszdAOsg0lRh4EvIyA974Uuw= -go.opentelemetry.io/collector/exporter v1.42.0/go.mod h1:is8qnDQ1NLFMGNagY986ASIJJRIeHJZ+d1hDdOY6u1w= -go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0 h1:fJuA2u4Ls5+OWqcrXYSC6m8hpC4fFDI8kwNjYn4O34w= -go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0/go.mod h1:1F2UKZ68AQaWkjxlk6rtQ/oehL83O2AoDEex9+lEasg= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.136.0 h1:XkUU01WC9ZGYwD0DJgeeEsfmVK7qZOcEbC+1Y6UcqxA= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.136.0/go.mod h1:VFewDMp0wztsEXHXF4Hc7QaFoYPSo8vY+S9c0zFOT2k= -go.opentelemetry.io/collector/exporter/exportertest v0.136.0 h1:VIXgWzwok1bfQtAryfAZa5yEomzKEbhobjiHgKWuPmw= -go.opentelemetry.io/collector/exporter/exportertest v0.136.0/go.mod h1:aZkv1l+97E/onJ1rnlMzO/PEDFDfVtgIFvNJB0/EmXI= -go.opentelemetry.io/collector/exporter/otlpexporter v0.136.0 h1:mDHEYBDZ4SzziMq2PlqE0gwZax/t9zLmt/9Flaj0lks= -go.opentelemetry.io/collector/exporter/otlpexporter v0.136.0/go.mod h1:KY5693AbBX4IYfBlCTRPFlFjJTkzYlr5+XpPZR+VwwM= -go.opentelemetry.io/collector/exporter/xexporter v0.136.0 h1:7ELBwU8sSnUMAWr+jQHDNM0+o878BTk++DiW0KA7Dr4= -go.opentelemetry.io/collector/exporter/xexporter v0.136.0/go.mod h1:W4e+GmyokpCt6+d5pvCA17b7oU1fm968t5fDwW4zQv0= -go.opentelemetry.io/collector/extension v1.42.0 h1:+9pK5AGHyV3LpWcF8ez45O/6QwOnxXBRS06a7hokLVg= -go.opentelemetry.io/collector/extension v1.42.0/go.mod h1:mS3Ucj0UQw4Qy9KmXtTkdQTQxan+LbGeH4stPuTYofU= -go.opentelemetry.io/collector/extension/extensionauth v1.42.0 h1:Re0wxZOplHtdV8YaypVaktHYPiaWPwVDt+hrBFXHEoI= -go.opentelemetry.io/collector/extension/extensionauth v1.42.0/go.mod h1:m8A4ZoWKvE91c5fF7HFvnZvwxbXtPJiNSoreGYoXt6A= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.136.0 h1:yx0474FuJHinlSbAXU/IZov6TXc5LPSGRPsQRiMGRG4= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.136.0/go.mod h1:etBi3U/UCSa9x5Lao6CRcj7CmuULJbkxqXUoaSDeLOA= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0 h1:hFqIp1TiXdIDlGJRMlV+Xm4GwTxRO6Wmaxe/uYH6U7E= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0/go.mod h1:cwa7CHOF39Oqq5SFiYOs1bsjgKmDUFzYysfQ45RPT88= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0 h1:H+c3QyaN5tL3VmX3rSbV9Che5cpokLThJxZmJXed6cE= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0/go.mod h1:Vxtt+KlwwO4mpPEFyUMb/92BlMqOZc4Jk8RNjM99vcU= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.136.0 h1:0Mqxievpq+Lu7nd7/Y7LSW30cgTYyJIpOg48+0XTRcI= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.136.0/go.mod h1:Rd+mz0JkBudg+RYZuETiJpx4aByF5CyV+15mBf+1SJA= -go.opentelemetry.io/collector/extension/extensiontest v0.136.0 h1:BkL2AC38Xa/WU71YfEKdjYGl/pjALmJDtHZIm5gzEzk= -go.opentelemetry.io/collector/extension/extensiontest v0.136.0/go.mod h1:XxRKblTb56a6zkrb8i9qowl7mY9ebW2NnOvCIXgxjZM= -go.opentelemetry.io/collector/extension/xextension v0.136.0 h1:Ykw3UUAKugGDLTz+Secowj6pL9Mg6H/V+pezeQKhTJY= -go.opentelemetry.io/collector/extension/xextension v0.136.0/go.mod h1:BLED8xk0WmkZ0bfjl/WwQ7jk4cJnnrHlo3MHsdhtr/U= -go.opentelemetry.io/collector/extension/zpagesextension v0.136.0 h1:acfmAXEGmvLlM2N6KtieLVKXBvJ/dmkOfOFDftZFFXg= -go.opentelemetry.io/collector/extension/zpagesextension v0.136.0/go.mod h1:fXFm8bNm6QegoFjFk3QINvSXUDyBSy/3r/mv366xQ5A= -go.opentelemetry.io/collector/featuregate v1.42.0 h1:uCVwumVBVex46DsG/fvgiTGuf9f53bALra7vGyKaqFI= -go.opentelemetry.io/collector/featuregate v1.42.0/go.mod h1:d0tiRzVYrytB6LkcYgz2ESFTv7OktRPQe0QEQcPt1L4= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0 h1:GxjQ+9q6M7PwE3QnA3VVBLt5aHVnk4z7wQLo+J+0tho= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0/go.mod h1:DOvL5ZalQk/zmYBjKZok52dXIxUOK0JoOoQfm5qjbhM= -go.opentelemetry.io/collector/internal/telemetry v0.136.0 h1:3TcnxyUFs6jJZeLo5ju3fMWS4lRmIApl9To2XWk922M= -go.opentelemetry.io/collector/internal/telemetry v0.136.0/go.mod h1:dTykH9zv/zOnlyUvqfGIqpaQZhmayW7NssD7TPU4paE= -go.opentelemetry.io/collector/otelcol v0.136.0 h1:1QpVMUxPmrJ2HmrKFPXWEfQYALEC1kDmHp2YtzqjlPE= -go.opentelemetry.io/collector/otelcol v0.136.0/go.mod h1:TscxAyGfBSss2Rre6NMvJX6q6CU9kzaucSBOf5f+QKY= -go.opentelemetry.io/collector/pdata v1.42.0 h1:XEzisp/SNfKDcY4aRU6qrHeLzGypRUdYHjbBqkDFOO4= -go.opentelemetry.io/collector/pdata v1.42.0/go.mod h1:nnOmgf+RI/D5xYWgFPZ5nKuhf2E0Qy9Nx/mxoTvIq3k= -go.opentelemetry.io/collector/pdata/pprofile v0.136.0 h1:ysyWnVnEzAwUH+MAhEuu7X0y/YnTtjEY1gC7aj05QzA= -go.opentelemetry.io/collector/pdata/pprofile v0.136.0/go.mod h1:vAvrFj+xpwlSH85QFYGKYQ4xc0Lym5pWNRh1hMUH3TY= -go.opentelemetry.io/collector/pdata/testdata v0.136.0 h1:amivoDBK7ALqhwwCkSOYqfT95t1+o/TS6MHycseNs80= -go.opentelemetry.io/collector/pdata/testdata v0.136.0/go.mod h1:KlNRkMO7MZdbGjNJGFS0+yc2gpuraJg6F6gkuqaqA8Y= -go.opentelemetry.io/collector/pdata/xpdata v0.136.0 h1:KAYBx6+aS5rYUlwJ85QM9pxHq0VdftC9lTyXIzv1oM4= -go.opentelemetry.io/collector/pdata/xpdata v0.136.0/go.mod h1:bSnwXzg3wKjaKc8FgMZ23OmcodD6eDNyntUZdtlxPeU= -go.opentelemetry.io/collector/pipeline v1.42.0 h1:jqn1lPwUdCn+lsyNubCtwzXZLEm+R3kRWxLpDkhlvvs= -go.opentelemetry.io/collector/pipeline v1.42.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= -go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0 h1:dvzL/yfXUjBxcCqtl4ifvQqi5cIeYAmFdZz1OPE2gXA= -go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0/go.mod h1:0trVl/7QYhPyIohE+n+hL0F0DdiceghKPG2olvZqipc= -go.opentelemetry.io/collector/processor v1.42.0 h1:JVMaRA8QkiOJHAswCVAugMaFhDbNedat2XRKjlsNv2A= -go.opentelemetry.io/collector/processor v1.42.0/go.mod h1:O9uYN7VeC4gnD2qsaXaM50rvO8tt2zJS/9bnzucJ+N8= -go.opentelemetry.io/collector/processor/batchprocessor v0.136.0 h1:8IIzCdjD7WyLb1Rbg6t/UPXMJl8rdSbdvkP+fYvY4FE= -go.opentelemetry.io/collector/processor/batchprocessor v0.136.0/go.mod h1:te1bnTdwdQNYxHBHJJSZMAWLWyX+ZB0JKO43zKc6bck= -go.opentelemetry.io/collector/processor/processorhelper v0.136.0 h1:LxQhJuOkhkrZjTlabAaCW+KVv3BlOXaf8F13k/ze3dQ= -go.opentelemetry.io/collector/processor/processorhelper v0.136.0/go.mod h1:atZGpAhMdMtu0jF8jGUdRKj0V1i+DKaZ+q7xsH0+q/0= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.136.0 h1:tqdeDvJiMc16r3s1QOhk5MVCMo6UApWWh/5tJCnL6u4= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.136.0/go.mod h1:NT4ntzR9UA8XPI7EQIjW3D+9bvF6DMQ1GUU7FS/kvos= -go.opentelemetry.io/collector/processor/processortest v0.136.0 h1:lQC435oZdDmLnSczmQ7Cdoca+y7SBpLQ0m/fVsd8pJY= -go.opentelemetry.io/collector/processor/processortest v0.136.0/go.mod h1:uWH1oXGiCzvnWuLyvzyqm8a/g6dGyfJWgAj2yEhhrWg= -go.opentelemetry.io/collector/processor/xprocessor v0.136.0 h1:/Ee8JT9pM3moxPDM18NbNYQzVzzg+80ewTOFyVUmOd0= -go.opentelemetry.io/collector/processor/xprocessor v0.136.0/go.mod h1:RtmNJHS/MS6XO7gBdjiDWep1TN1vMlrcH5qQr1MOWxM= -go.opentelemetry.io/collector/receiver v1.42.0 h1:wdR3SShnOUj6PQFNOHJl8amKDaMrY6gnnU7oh7z61rQ= -go.opentelemetry.io/collector/receiver v1.42.0/go.mod h1:ts8UqHPKm+fP3/nsPrLizbUClqpL8JO3HM5Rd9UQEWA= -go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0 h1:Le0/Ow1GIvRRo4XwDjf/xERzWJf1JkoJEUjqHVPIXr8= -go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0/go.mod h1:N8MEtYYYJncGC9PQ+YdRN7WkHpYNTh3MAxPLVLf7cn8= -go.opentelemetry.io/collector/receiver/receivertest v0.136.0 h1:xPhvg2K72Iy+bqzMwz+q4CmudYKy/Vq+dS1x2ETojP0= -go.opentelemetry.io/collector/receiver/receivertest v0.136.0/go.mod h1:DgPO43LjdtRXJ7BnXU2gGKak74cvGOie9qSdb7D/UWg= -go.opentelemetry.io/collector/receiver/xreceiver v0.136.0 h1:eb2DLzWewhJMJU34mgmL8WxgoYim44+Ry6/AMrjfY8E= -go.opentelemetry.io/collector/receiver/xreceiver v0.136.0/go.mod h1:k/j2K4krExMopkkOBFyPyDSgkrnQSN1fXHqLCvh8O5g= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw= +go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/collector v0.141.0 h1:TrB5VlTVvWBPdx9Kvl4kigvkPr5RI2NhvXcN4CErrFY= +go.opentelemetry.io/collector v0.141.0/go.mod h1:etSWqFxETgvoEjTINqGu+B/Lm+EbJiu3PZGW+bemo1A= +go.opentelemetry.io/collector/client v1.47.0 h1:6CqobnsruBntfkSltCsKs8iiK1N+IwMr7fKhnIDXF0Y= +go.opentelemetry.io/collector/client v1.47.0/go.mod h1:6Jzcja4/O5IffJtZjJ9YjnwPqJiDiwCQou4DioLFwpI= +go.opentelemetry.io/collector/component v1.47.0 h1:wXvcjNhpWUU4OJph7KyxENkbfnGrfDURa+L/rvPTHyo= +go.opentelemetry.io/collector/component v1.47.0/go.mod h1:Hz9fcIbc7tOA4hIjvW5bb1rJJc2TH0gtQEvDBaZLUUA= +go.opentelemetry.io/collector/component/componentstatus v0.141.0 h1:WoMJdv2ofwHJDXzMP6DvYPqREaqOcGw+gkXG7S+PJvc= +go.opentelemetry.io/collector/component/componentstatus v0.141.0/go.mod h1:upr5QxmYLEZ7PKMCZHImQcp3xNM4VXtZnAKuhhHopg4= +go.opentelemetry.io/collector/component/componenttest v0.141.0 h1:dYdFbm52+e2DwrJ0bEoo7qVOPDuFXl9E/FfaqViIfPU= +go.opentelemetry.io/collector/component/componenttest v0.141.0/go.mod h1:EI7SUBy8Grxso69j2KYf3BYv8rkJjFgxlmWf5ElcWdk= +go.opentelemetry.io/collector/config/configauth v1.47.0 h1:aYSX3mD586qKiHRQYFBMIvujC1zUhYhw6nBLC7oIgvI= +go.opentelemetry.io/collector/config/configauth v1.47.0/go.mod h1:o2GZwoeuCKzhZm6VDTMAKkVlTLKGqUi126sAN5Xjaa8= +go.opentelemetry.io/collector/config/configcompression v1.47.0 h1:g6PL4dd8ng74XVI0YOyucIWUwQwF2BMFgHMyQ7f5Z7A= +go.opentelemetry.io/collector/config/configcompression v1.47.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= +go.opentelemetry.io/collector/config/configgrpc v0.141.0 h1:iN+RBB3BifRHoH1jFqxCxcF3Ptpehiqh09nFVjMQyF0= +go.opentelemetry.io/collector/config/configgrpc v0.141.0/go.mod h1:giRFp9C98N8FkvlBPaibHr7Jj4nDx92tyinbGXhiJSk= +go.opentelemetry.io/collector/config/confighttp v0.141.0 h1:ukn0BvFqe2HBDqDYs9gllVLFrhDbgNrTTjEEWPJ0O3s= +go.opentelemetry.io/collector/config/confighttp v0.141.0/go.mod h1:IbW7wb+rMuoh8WUNBsgblFvPuofZUGk6Lu9PvVDwnHo= +go.opentelemetry.io/collector/config/configmiddleware v1.47.0 h1:0LKbWzew6Y8sU0zeXb9VQf3PE/Nqnn+2RcDFgxaypvM= +go.opentelemetry.io/collector/config/configmiddleware v1.47.0/go.mod h1:QyWuy/D1fdURXxdnKPweX/5pT6uAsK8PxTDXMHKeLcI= +go.opentelemetry.io/collector/config/confignet v1.47.0 h1:3T1qpFH1YsXTLeHpFboNDTCg2Ax871+MZZ6J/fvuuxM= +go.opentelemetry.io/collector/config/confignet v1.47.0/go.mod h1:4jJWdoe1MmpqxMzxrIILcS5FK2JPocXYZGUvv5ZQVKE= +go.opentelemetry.io/collector/config/configopaque v1.47.0 h1:eQpdM3vGB8/VbUscZ4MM6y4JI5YTog7qv/G/nWxUlmA= +go.opentelemetry.io/collector/config/configopaque v1.47.0/go.mod h1:NtM24SOlXT84NxS9ry8Y2qOurLskTKOd7VS78WLkPuM= +go.opentelemetry.io/collector/config/configoptional v1.47.0 h1:x/wxmHZe9bKdsfeOhfgNdpoMRZxi0x4rTTxbLFkpiz4= +go.opentelemetry.io/collector/config/configoptional v1.47.0/go.mod h1:nlcEmR01MMD5Nla5f4weZ0OcCq1LSxPGwlAWG8GUCbw= +go.opentelemetry.io/collector/config/configretry v1.47.0 h1:YlRON2zh88wldtSyqkxC24SzHjzBntuj2zEYokjEISM= +go.opentelemetry.io/collector/config/configretry v1.47.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= +go.opentelemetry.io/collector/config/configtelemetry v0.141.0 h1:waUnWigFfXoiHNWjmOo5nj46H8xDLsLvBzJWzr0WTXg= +go.opentelemetry.io/collector/config/configtelemetry v0.141.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= +go.opentelemetry.io/collector/config/configtls v1.47.0 h1:uuXkdsHouWkDli/o/+1y9e8KaIGTCLNRMPxJLN2zXBs= +go.opentelemetry.io/collector/config/configtls v1.47.0/go.mod h1:WfwC2ODU/ADiYI9tY4dWwH0S6k4iwKNqlEC55epQk5M= +go.opentelemetry.io/collector/confmap v1.47.0 h1:iXx4Pm1VbGboQCuY442mbBgihPv6gNpEItsod4rkW04= +go.opentelemetry.io/collector/confmap v1.47.0/go.mod h1:ipnIWHs3VdMOxkIjQnOw3Qou2hjXZELrphHuqjTh4QM= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.47.0 h1:PfAkFHDpt8ZbSk67LqZeXrQk9OARJNBTooXtt6CHSIw= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.47.0/go.mod h1:KSkJ7gCv5jQj7ulJV147rzUcBBuHdmpxIeDeGf7QDeo= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0 h1:wMEl2gzlhmFrBZdWr0AU7GSSiY23LN1PkNAm4C32o3g= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0/go.mod h1:0YkK2SdfQpX0lyIeDuLlrugpceEwEtgTGrOhzpHyFFs= +go.opentelemetry.io/collector/confmap/xconfmap v0.141.0 h1:EhxPYLvUERsE4eThocTsmL1mDeSXn0AOX7Ta4GAjLNY= +go.opentelemetry.io/collector/confmap/xconfmap v0.141.0/go.mod h1:c4f/AT97CxQ5fYaCclj9fGnD0E2+5hLvL4fNQ7YkEEo= +go.opentelemetry.io/collector/connector v0.141.0 h1:kDxl66+nbB12HmMXS/Cl9bVxKiB0EKm3AW0G8dvXFUk= +go.opentelemetry.io/collector/connector v0.141.0/go.mod h1:bSNiaIycyVBsz1JBcGSHMEl9Pw9Pba1fjMvNf8mMkSk= +go.opentelemetry.io/collector/connector/connectortest v0.141.0 h1:s02SmglD5DUDVuUnYIEKAnt1bcBS3hJcepYWQaJSFis= +go.opentelemetry.io/collector/connector/connectortest v0.141.0/go.mod h1:jrLSLEnYCgNNPS4+kWkEVn/fHU/P3sAi9KZlvhsk2cM= +go.opentelemetry.io/collector/connector/xconnector v0.141.0 h1:0FjMgtVhDbfm7jG5mzuz1XbHq0+tIGor2l8TeVOBblg= +go.opentelemetry.io/collector/connector/xconnector v0.141.0/go.mod h1:fNdivTW1tvmUYzut9pcZ4MwVQ+JGMk5WXM2gGNIh5ok= +go.opentelemetry.io/collector/consumer v1.47.0 h1:eriMvNAsityaea361luVfNe8wp6QKWJQoU4d4i3tyOA= +go.opentelemetry.io/collector/consumer v1.47.0/go.mod h1:wBsF8koieun0CK4laZLN2MvGKNqad8gwQa+1jXWWn5k= +go.opentelemetry.io/collector/consumer/consumererror v0.141.0 h1:lUgIRGDPQy+qwvGQOx+GJuf/cRUIp2Eve6BOoEN9vfY= +go.opentelemetry.io/collector/consumer/consumererror v0.141.0/go.mod h1:DsO9l7yTeoxgWyk3psHMPepZ4Dv5gg/d7XFH3Teh8zc= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.141.0 h1:OWAE82H4ZWfnP+BudwmSjRemoaHuMXyMRdGTxm4QQno= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.141.0/go.mod h1:tVEZL9rOn3tqNmTY4quxxWTsrRGByIeI4oIQVvA5hm4= +go.opentelemetry.io/collector/consumer/consumertest v0.141.0 h1:Q5X7rOI8I5xj35Q1NQiwGJsJ4OZx1n7szw3MbOfNgiM= +go.opentelemetry.io/collector/consumer/consumertest v0.141.0/go.mod h1:yjSSOFx0oBjH2fouw0TTN/U82hYyJPq35ClIZrpz60g= +go.opentelemetry.io/collector/consumer/xconsumer v0.141.0 h1:qR9H8tWo6NtPBDBv3fz8J8QBkqbnaU8vwUvtIO3QeZo= +go.opentelemetry.io/collector/consumer/xconsumer v0.141.0/go.mod h1:Ud55EhQ0cgqDTtnvHQNjtktLGMeefOzF6SFk0bLheOc= +go.opentelemetry.io/collector/exporter v1.47.0 h1:2RgIFPCTPlm8IPtx8VF7f/qeC4UywMGiAF2ffnCWN6Q= +go.opentelemetry.io/collector/exporter v1.47.0/go.mod h1:rUn1GU8Hdz7TSDQQvv9iqfN0xaGWQrUAVIQgT5PdrYU= +go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0 h1:448RLUk0k0Cq+JjqosyRr7lUSPPx3EZiomI2Fxg/KkA= +go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0/go.mod h1:BlNweRtWgwNqQKtImoZkdagNUn2vxkBlEbmJYdqIH9w= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.141.0 h1:CW/dH2GIhTh0chgCkwfCkLXsZKfaR7sC51BnQj//a2o= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.141.0/go.mod h1:FLX+t1XmNv529mkg0Wt6PjFFFvGM/BNVBw9PsNZlHCg= +go.opentelemetry.io/collector/exporter/exportertest v0.141.0 h1:g52hJvBkseHeoAZzj0MlBmDxg7VOk9goa8dFojTr4fw= +go.opentelemetry.io/collector/exporter/exportertest v0.141.0/go.mod h1:WD9liBCgGbW6M3m64XS+RSDUyT/aC3gfy4H1PD06x5A= +go.opentelemetry.io/collector/exporter/otlpexporter v0.141.0 h1:kMVzed7ujCPWhJVbkMfLxLER5To0TlJ8pdDkVWnToek= +go.opentelemetry.io/collector/exporter/otlpexporter v0.141.0/go.mod h1:x6Baxh+n/3IItltaAHuf5U4E0qmEYaMfvBCbkmH0RCQ= +go.opentelemetry.io/collector/exporter/xexporter v0.141.0 h1:aGKacYq6uIEweIfw/at35XfjdCUqf/t6L4J2/4u6Fio= +go.opentelemetry.io/collector/exporter/xexporter v0.141.0/go.mod h1:0QfPORq7Z2iKKg2pSEh7ARn09P30QNhJp+xnKhIGtDg= +go.opentelemetry.io/collector/extension v1.47.0 h1:3tuOP79eXWHQvS1ITtSzipPqURK4JDHj1n8HFQQWe3A= +go.opentelemetry.io/collector/extension v1.47.0/go.mod h1:Zfozkdo63ltydtPnuu1PotxWXJRsaX1wPamxuF3JbaQ= +go.opentelemetry.io/collector/extension/extensionauth v1.47.0 h1:rF1nh638CY0Qi3RcyOnTuGYPrQv2U7CI/pjInkR8pFA= +go.opentelemetry.io/collector/extension/extensionauth v1.47.0/go.mod h1:CtNVU6ivNIAcJoCL7GRxDGpuvSgWVpgmrRiGD7FQAyY= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.141.0 h1:EoUYtxYqMosP9yIgUOK8QG61yvHIN+zSkSxwyQDekDc= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.141.0/go.mod h1:PS6B7i383Ajj3dPhb2OiYYqSspgVkDqbVfJ1qQo9TKM= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0 h1:yMHw735gpgxnwryu//gQ+AfRWA07zCmCQEU4iCz14Rs= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0/go.mod h1:Ugk9jcz0/zHwJndOF61dKOzomOEIK1jFx0LvWrWPT1o= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0 h1:dj/H1kBDgypI1oD8xMCc9Ha5NamYwN/AyrJP1M3rayc= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0/go.mod h1:rdpsumcbndkZ00eDBaLL4Q5PNWYBOXqt4YR9wtk2sH0= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.141.0 h1:ekuapTC9RPSuvbTIKyWClIduJ9RDCMt5ToLJuTQTaKI= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.141.0/go.mod h1:BpzE+gqh/RlBhSBXVbKivYor4EZgcFTh90/+eX9tDPk= +go.opentelemetry.io/collector/extension/extensiontest v0.141.0 h1:JjnCUMDk5+fgjgmg9az+CM4J4AJugarDT/PHWZNMQl4= +go.opentelemetry.io/collector/extension/extensiontest v0.141.0/go.mod h1:w8PCvxBL1R1v1waezDZlNtm5Wmxtkfljjj+Vnj5cviU= +go.opentelemetry.io/collector/extension/xextension v0.141.0 h1:VIDCodSJGeS/4fvwBSCvUSaXOYhpNHtwySlPffzv87o= +go.opentelemetry.io/collector/extension/xextension v0.141.0/go.mod h1:bUUsO+CmZZQBhCljV+cxA10bazpsRXhAD/+mBSKasJ4= +go.opentelemetry.io/collector/extension/zpagesextension v0.141.0 h1:x6PCZW0F6AnMhvwcZWA7yWsocme9cUcCC8iOn5scR5c= +go.opentelemetry.io/collector/extension/zpagesextension v0.141.0/go.mod h1:sJ02ZaSx9fEZPsobwWlTurMAD+S/8BVKD7IAubzzV6A= +go.opentelemetry.io/collector/featuregate v1.47.0 h1:LuJnDngViDzPKds5QOGxVYNL1QCCVWN/m61lHTV8Pf4= +go.opentelemetry.io/collector/featuregate v1.47.0/go.mod h1:d0tiRzVYrytB6LkcYgz2ESFTv7OktRPQe0QEQcPt1L4= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0 h1:XE0+2eJgixbDveL/pUqbfxJIIAVojYcTY2ZdaqTH3QQ= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0/go.mod h1:vO7+na6RT/sKSOHuTRx/UbYvezvAQnjNQUA+P4d5H9M= +go.opentelemetry.io/collector/internal/telemetry v0.141.0 h1:vHbH5YbBJGtsn1+PH99WZRJsODgkBD4g39zONslfti4= +go.opentelemetry.io/collector/internal/telemetry v0.141.0/go.mod h1:5TOmlQDc4gE3TZuC+W0Ra44HiKXzVQiZzS6BCIncbCQ= +go.opentelemetry.io/collector/internal/testutil v0.141.0 h1:/rUGApojPtUPMN3rFfApNgEjAt03rCGt2qxNxGGs/4A= +go.opentelemetry.io/collector/internal/testutil v0.141.0/go.mod h1:YAD9EAkwh/l5asZNbEBEUCqEjoL1OKMjAMoPjPqH76c= +go.opentelemetry.io/collector/otelcol v0.141.0 h1:4DdP20QvxLh+e/wOQZROB20WE98U15gQyk3sw81jT4o= +go.opentelemetry.io/collector/otelcol v0.141.0/go.mod h1:uOM85bSEtiFZJsphjmYwFNyQlA5gcqZykiL8BaAKo+0= +go.opentelemetry.io/collector/pdata v1.47.0 h1:4Mk0mo2RlKCUPomV8ISm+Yx/STFtuSn88yjiCePHkGA= +go.opentelemetry.io/collector/pdata v1.47.0/go.mod h1:yMdjdWZBNA8wLFCQXOCLb0RfcpZOxp7exH+bN7udWO0= +go.opentelemetry.io/collector/pdata/pprofile v0.141.0 h1:15lbbHKzPIG4aVT6hsJO7XZLvMrGll+i36es/FEgn7c= +go.opentelemetry.io/collector/pdata/pprofile v0.141.0/go.mod h1:gUtWKniP3O0jXYVDISp1y3dCbYFIyglFw6B8ATyrrWs= +go.opentelemetry.io/collector/pdata/testdata v0.141.0 h1:AfjNbZ/DUSr0aiP4H+z7pqrzTuBQFaT6oca0zaJ3gCA= +go.opentelemetry.io/collector/pdata/testdata v0.141.0/go.mod h1:/KX316ZF30G4eUQadM+SPUqCCPoiAkhMxcvAu4uM72I= +go.opentelemetry.io/collector/pdata/xpdata v0.141.0 h1:Bhpnwett0KhK7AjEwUhEBVYNlbMwBO5t9ASNIwrtqzY= +go.opentelemetry.io/collector/pdata/xpdata v0.141.0/go.mod h1:Du2E8XK3Yl82TzWu08b5ShzZ36pPZNE0O0QrvbY8ZD4= +go.opentelemetry.io/collector/pipeline v1.47.0 h1:Ql2cfIopfo/e0Y6r/Fw3mNorKYi8MAoA7zgouzAN8eI= +go.opentelemetry.io/collector/pipeline v1.47.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= +go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0 h1:wiER5GXVTSq1orSYM1q847aGc8IaHpBjzO8rO3kXGaU= +go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0/go.mod h1:9u8hFIicFWVhi7rCJCpgVW7AR1OCNk1Pfv2dLrCJDh8= +go.opentelemetry.io/collector/processor v1.47.0 h1:WA4AP+w+ohFItWx0eG5iGEvLCE70Le5wC2Uw7YVN1Vg= +go.opentelemetry.io/collector/processor v1.47.0/go.mod h1:XaC3o+kNM5wq7ET+FJt+9hTnqqICmruylBpVerb+TZo= +go.opentelemetry.io/collector/processor/batchprocessor v0.141.0 h1:tm2NRcrAETazsFU0F9Gs7N+FHG8GoG4pyEvljJG459c= +go.opentelemetry.io/collector/processor/batchprocessor v0.141.0/go.mod h1:lKwRWLBU8BcouHvxf8xkCkhMFJ6lxaWXwLMjr1bC+3o= +go.opentelemetry.io/collector/processor/processorhelper v0.141.0 h1:4NCArw4JJsJ8YNtbcJXYNOczQ9gon+m1yGV5VPh8Lwk= +go.opentelemetry.io/collector/processor/processorhelper v0.141.0/go.mod h1:idjJbBjKlBmXnhWwiqKG8AYBJmdowNn82F36OhBcMwg= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.141.0 h1:Lvufz+Z0DTKgI4ju69kQaoIK5B6Xctn7LQRAm685WGY= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.141.0/go.mod h1:fd76xwfwfI7c9uAkhfF99Ev/PvZUN6pk3xIES9+ABSk= +go.opentelemetry.io/collector/processor/processortest v0.141.0 h1:HY/o+CkKTU2Db96TfugwfMKkRFcaJb2vxPUHluS5/F8= +go.opentelemetry.io/collector/processor/processortest v0.141.0/go.mod h1:n0QKOTH2m2vVbDGdIHvDmIEHU02LOQtuCzzN4BJgK5U= +go.opentelemetry.io/collector/processor/xprocessor v0.141.0 h1:rlvqx4aW7dgrYqWrNTkq1+IDiWOKdX/DDZPxk1DQMVw= +go.opentelemetry.io/collector/processor/xprocessor v0.141.0/go.mod h1:jSSsP1pFgkxN4MvVsyZA1MI5DKhN+kg9Y27Ev0lEwqs= +go.opentelemetry.io/collector/receiver v1.47.0 h1:x9kofoR+PyoFktNVVPdfP1iw08SMNzNw6Z9qYdOV18U= +go.opentelemetry.io/collector/receiver v1.47.0/go.mod h1:Uln4nIZB5qn+dyVQr32V7/5/t92o7o4Fo5sPjxcrdRM= +go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0 h1:x1w+UCeFcs8/18QcBQAAvyakCab5HhsWWpYR4ONcT8c= +go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0/go.mod h1:co9h8puOBRzUynrjbptkA7lvKTsM/ASMZGIxwaE0vbE= +go.opentelemetry.io/collector/receiver/receivertest v0.141.0 h1:D5lRyj92ZekGRNxI8ufeQfdicQHRvgfISuZwxjaq1Go= +go.opentelemetry.io/collector/receiver/receivertest v0.141.0/go.mod h1:w6sopQCUydOypIp1ym8Lytgt9C+QjrfEU3fN21z6NCU= +go.opentelemetry.io/collector/receiver/xreceiver v0.141.0 h1:jvnSzS4gaGwbnG90t3e5keZVfcZChrXk7Ykn46gatgE= +go.opentelemetry.io/collector/receiver/xreceiver v0.141.0/go.mod h1:HCGNAJHKHb1JB/So3tZnaCi+eUTxaothQ7BptRprjhg= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 h1:XCN7qkZRNzRYfn6chsMZkbFZxoFcW6fZIsZs2aCzcbc= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685/go.mod h1:OPXer4l43X23cnjLXIZnRj/qQOjSuq4TgBLI76P9hns= -go.opentelemetry.io/collector/service v0.136.0 h1:NvGStX9kN1KrcKO1aJjB4LFLRCBcPERzhlOiOxrFcG4= -go.opentelemetry.io/collector/service v0.136.0/go.mod h1:xE6YQmPW5/5g4I/R3PTRBdaGr2Epc2NxkMAAEttJo1k= -go.opentelemetry.io/collector/service/hostcapabilities v0.136.0 h1:YxOwlA7mmKVQq/+vbOs37WpZ2yRZGkKmC0qKrPQwlCY= -go.opentelemetry.io/collector/service/hostcapabilities v0.136.0/go.mod h1:mONVgs/2Sw/h/fjqURBKGTB22B+7KXL9TSWNX/37LCA= -go.opentelemetry.io/contrib/bridges/otelzap v0.12.0 h1:FGre0nZh5BSw7G73VpT3xs38HchsfPsa2aZtMp0NPOs= -go.opentelemetry.io/contrib/bridges/otelzap v0.12.0/go.mod h1:X2PYPViI2wTPIMIOBjG17KNybTzsrATnvPJ02kkz7LM= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 h1:rbRJ8BBoVMsQShESYZ0FkvcITu8X8QNwJogcLUmDNNw= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0/go.mod h1:ru6KHrNtNHxM4nD/vd6QrLVWgKhxPYgblq4VAtNawTQ= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 h1:lREC4C0ilyP4WibDhQ7Gg2ygAQFP8oR07Fst/5cafwI= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0/go.mod h1:HfvuU0kW9HewH14VCOLImqKvUgONodURG7Alj/IrnGI= +go.opentelemetry.io/collector/service v0.141.0 h1:O44J7WXD+UbElR/KdadGJJFQfH1gGUH8ewJUrelxcQQ= +go.opentelemetry.io/collector/service v0.141.0/go.mod h1:/Vnq/GIgiDk2TcDrNf1d6ZndLY6Ef/64sjwU5Xg7ry0= +go.opentelemetry.io/collector/service/hostcapabilities v0.141.0 h1:bgyYFO++891ecFpoJQX13UHEqjt2z9RHIiULXkmA98M= +go.opentelemetry.io/collector/service/hostcapabilities v0.141.0/go.mod h1:RxYWH5w6oAxqzLJ3QkNKuAKEUxS5OhwJMTOuWP2CrH0= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.141.0 h1:fE86k1S++PRslh6nubNWM/DQTkp2GFCY4mmwKqv8128= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.141.0/go.mod h1:yVBEDExr2C00N5D6hzf032I7NkbqSoibrQdvrhB61OM= +go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 h1:aBKdhLVieqvwWe9A79UHI/0vgp2t/s2euY8X59pGRlw= +go.opentelemetry.io/contrib/bridges/otelzap v0.13.0/go.mod h1:SYqtxLQE7iINgh6WFuVi2AI70148B8EI35DSk0Wr8m4= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 h1:2pn7OzMewmYRiNtv1doZnLo3gONcnMHlFnmOR8Vgt+8= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0/go.mod h1:rjbQTDEPQymPE0YnRQp9/NuPwwtL0sesz/fnqRW/v84= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= -go.opentelemetry.io/contrib/otelconf v0.16.0 h1:mTYGRlZtpc/zDaTaUQSnsZ1hyoRONaS4Od/Ny5++lhE= -go.opentelemetry.io/contrib/otelconf v0.16.0/go.mod h1:gnsljuyDyVDg39vUvXKj0BVCiVaokN3b8N5BL/ab8fQ= -go.opentelemetry.io/contrib/propagators/b3 v1.37.0 h1:0aGKdIuVhy5l4GClAjl72ntkZJhijf2wg1S7b5oLoYA= -go.opentelemetry.io/contrib/propagators/b3 v1.37.0/go.mod h1:nhyrxEJEOQdwR15zXrCKI6+cJK60PXAkJ/jRyfhr2mg= -go.opentelemetry.io/contrib/zpages v0.62.0 h1:9fUYTLmrK0x/lweM2uM+BOx069jLx8PxVqWhegGJ9Bo= -go.opentelemetry.io/contrib/zpages v0.62.0/go.mod h1:C8kXoiC1Ytvereztus2R+kqdSa6W/MZ8FfS8Zwj+LiM= +go.opentelemetry.io/contrib/otelconf v0.18.0 h1:ciF2Gf00BWs0DnexKFZXcxg9kJ8r3SUW1LOzW3CsKA8= +go.opentelemetry.io/contrib/otelconf v0.18.0/go.mod h1:FcP7k+JLwBLdOxS6qY6VQ/4b5VBntI6L6o80IMwhAeI= +go.opentelemetry.io/contrib/propagators/b3 v1.38.0 h1:uHsCCOSKl0kLrV2dLkFK+8Ywk9iKa/fptkytc6aFFEo= +go.opentelemetry.io/contrib/propagators/b3 v1.38.0/go.mod h1:wMRSZJZcY8ya9mApLLhwIMjqmApy2o/Ml+62lhvxyHU= +go.opentelemetry.io/contrib/zpages v0.63.0 h1:TppOKuZGbqXMgsfjqq3i09N5Vbo1JLtLImUqiTPGnX4= +go.opentelemetry.io/contrib/zpages v0.63.0/go.mod h1:5F8uugz75ay/MMhRRhxAXY33FuaI8dl7jTxefrIy5qk= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0 h1:z6lNIajgEBVtQZHjfw2hAccPEBDs+nx58VemmXWa2ec= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0/go.mod h1:+kyc3bRx/Qkq05P6OCu3mTEIOxYRYzoIg+JsUp5X+PM= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 h1:zUfYw8cscHHLwaY8Xz3fiJu+R59xBnkgq2Zr1lwmK/0= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0/go.mod h1:514JLMCcFLQFS8cnTepOk6I09cKWJ5nGHBxHrMJ8Yfg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0 h1:zG8GlgXCJQd5BU98C0hZnBbElszTmUgCNCfYneaDL0A= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0/go.mod h1:hOfBCz8kv/wuq73Mx2H2QnWokh/kHZxkh6SNF2bdKtw= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 h1:9PgnL3QNlj10uGxExowIDIZu66aVBwWhXmbOp1pa6RA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0/go.mod h1:0ineDcLELf6JmKfuo0wvvhAVMuxWFYvkTin2iV4ydPQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 h1:Ahq7pZmv87yiyn3jeFz/LekZmPLLdKejuO3NcK9MssM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0/go.mod h1:MJTqhM0im3mRLw1i8uGHnCvUEeS7VwRyxlLC78PA18M= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 h1:EtFWSnwW9hGObjkIdmlnWSydO+Qs8OwzfzXLUPg4xOc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0/go.mod h1:QjUEoiGCPkvFZ/MjK6ZZfNOS6mfVEVKYE99dFhuN2LI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 h1:bDMKF3RUSxshZ5OjOTi8rsHGaPKsAt76FaqgvIUySLc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0/go.mod h1:dDT67G/IkA46Mr2l9Uj7HsQVwsjASyV9SjGofsiUZDA= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 h1:OMqPldHt79PqWKOMYIAQs3CxAi7RLgPxwfFSwr4ZxtM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0/go.mod h1:1biG4qiqTxKiUCtoWDPpL3fB3KxVwCiGw81j3nKMuHE= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 h1:vl9obrcoWVKp/lwl8tRE33853I8Xru9HFbw/skNeLs8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0/go.mod h1:GAXRxmLJcVM3u22IjTg74zWBrRCKq8BnOqUVLodpcpw= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= go.opentelemetry.io/otel/exporters/prometheus v0.60.0/go.mod h1:hkd1EekxNo69PTV4OWFGZcKQiIqg0RfuWExcPKFvepk= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0 h1:yEX3aC9KDgvYPhuKECHbOlr5GLwH6KTjLJ1sBSkkxkc= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0/go.mod h1:/GXR0tBmmkxDaCUGahvksvp66mx4yh5+cFXgSlhg0vQ= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0 h1:6VjV6Et+1Hd2iLZEPtdV7vie80Yyqf7oikJLjQ/myi0= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0/go.mod h1:u8hcp8ji5gaM/RfcOo8z9NMnf1pVLfVY7lBY2VOGuUU= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 h1:SNhVp/9q4Go/XHBkQ1/d5u9P/U+L1yaGPoi0x+mStaI= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0/go.mod h1:tx8OOlGH6R4kLV67YaYO44GFXloEjGPZuMjEkaaqIp4= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 h1:B/g+qde6Mkzxbry5ZZag0l7QrQBCtVm7lVjaLgmpje8= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0/go.mod h1:mOJK8eMmgW6ocDJn6Bn11CcZ05gi3P8GylBXEkZtbgA= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE= go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM= go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno= go.opentelemetry.io/otel/log/logtest v0.14.0 h1:BGTqNeluJDK2uIHAY8lRqxjVAYfqgcaTbVk1n3MWe5A= @@ -818,34 +815,34 @@ go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgf go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= -go.opentelemetry.io/otel/sdk/log v0.13.0 h1:I3CGUszjM926OphK8ZdzF+kLqFvfRY/IIoFq/TjwfaQ= -go.opentelemetry.io/otel/sdk/log v0.13.0/go.mod h1:lOrQyCCXmpZdN7NchXb6DOZZa1N5G1R2tm5GMMTpDBw= -go.opentelemetry.io/otel/sdk/log/logtest v0.13.0 h1:9yio6AFZ3QD9j9oqshV1Ibm9gPLlHNxurno5BreMtIA= -go.opentelemetry.io/otel/sdk/log/logtest v0.13.0/go.mod h1:QOGiAJHl+fob8Nu85ifXfuQYmJTFAvcrxL6w5/tu168= +go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg= +go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA= go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os= -go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo= -go.opentelemetry.io/proto/slim/otlp v1.8.0 h1:afcLwp2XOeCbGrjufT1qWyruFt+6C9g5SOuymrSPUXQ= -go.opentelemetry.io/proto/slim/otlp v1.8.0/go.mod h1:Yaa5fjYm1SMCq0hG0x/87wV1MP9H5xDuG/1+AhvBcsI= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0 h1:Uc+elixz922LHx5colXGi1ORbsW8DTIGM+gg+D9V7HE= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0/go.mod h1:VyU6dTWBWv6h9w/+DYgSZAPMabWbPTFTuxp25sM8+s0= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0 h1:i8YpvWGm/Uq1koL//bnbJ/26eV3OrKWm09+rDYo7keU= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0/go.mod h1:pQ70xHY/ZVxNUBPn+qUWPl8nwai87eWdqL3M37lNi9A= +go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= +go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= +go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= +go.opentelemetry.io/proto/slim/otlp v1.9.0/go.mod h1:xXdeJJ90Gqyll+orzUkY4bOd2HECo5JofeoLpymVqdI= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0 h1:o13nadWDNkH/quoDomDUClnQBpdQQ2Qqv0lQBjIXjE8= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0/go.mod h1:Gyb6Xe7FTi/6xBHwMmngGoHqL0w29Y4eW8TGFzpefGA= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0 h1:EiUYvtwu6PMrMHVjcPfnsG3v+ajPkbUeH+IL93+QYyk= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0/go.mod h1:mUUHKFiN2SST3AhJ8XhJxEoeVW12oqfXog0Bo8W3Ec4= 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= 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= +go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= +go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.uber.org/zap/exp v0.3.0 h1:6JYzdifzYkGmTdRR59oYH+Ng7k49H9qVpWwNSsGJj3U= go.uber.org/zap/exp v0.3.0/go.mod h1:5I384qq7XGxYyByIhHm6jg5CHkGY0nsTfbDLgDDlgJQ= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -858,10 +855,10 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY 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.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= -golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a h1:Y+7uR/b1Mw2iSXZ3G//1haIiSElDQZ8KWh0h+sZPG90= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= 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= @@ -869,8 +866,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -887,10 +884,10 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= 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.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= +golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= 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= @@ -903,8 +900,8 @@ 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.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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= @@ -940,8 +937,8 @@ golang.org/x/sys v0.12.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.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= @@ -951,8 +948,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= 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.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= 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= @@ -964,10 +961,10 @@ 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.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -977,26 +974,28 @@ 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.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/tools/godoc v0.1.0-deprecated h1:o+aZ1BOj6Hsx/GBdJO/s815sqftjSnrZZwyYTHODvtk= +golang.org/x/tools/godoc v0.1.0-deprecated/go.mod h1:qM63CriJ961IHWmnWa9CjZnBndniPt4a3CK0PVB9bIg= 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= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/api v0.239.0 h1:2hZKUnFZEy81eugPs4e2XzIJ5SOwQg0G82bpXD65Puo= -google.golang.org/api v0.239.0/go.mod h1:cOVEm2TpdAGHL2z+UwyS+kmlGr3bVWQQ6sYEqkKje50= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 h1:1tXaIXCracvtsRxSBsYDiSBN0cuJvM7QYW+MrpIRY78= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:49MsLSx0oWMOZqcpB3uL8ZOkAh1+TndpJ8ONoCBWiZk= -google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 h1:FiusG7LWj+4byqhbvmB+Q93B/mOxJLN2DTozDuZm4EU= -google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:kXqgZtrWaf6qS3jZOCnCH7WYfrvFjkC51bM8fz3RsCA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= -google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= -google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/api v0.250.0 h1:qvkwrf/raASj82UegU2RSDGWi/89WkLckn4LuO4lVXM= +google.golang.org/api v0.250.0/go.mod h1:Y9Uup8bDLJJtMzJyQnu+rLRJLA0wn+wTtc6vTlOvfXo= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s= +google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4= +google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM= +google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= 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-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1019,22 +1018,23 @@ 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.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= -k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= -k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= -k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= -k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= +k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= +k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= +k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= +k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= +k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= 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-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= -sigs.k8s.io/yaml v1.5.0 h1:M10b2U7aEUY6hRtU870n2VTPgR5RZiL/I6Lcc2F4NUQ= -sigs.k8s.io/yaml v1.5.0/go.mod h1:wZs27Rbxoai4C0f8/9urLZtZtF3avA3gKvGyPdDqTO4= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/otelcollector/opentelemetry-collector-builder/main.go b/otelcollector/opentelemetry-collector-builder/main.go index 5457ecb7e..b031c3db2 100644 --- a/otelcollector/opentelemetry-collector-builder/main.go +++ b/otelcollector/opentelemetry-collector-builder/main.go @@ -14,7 +14,7 @@ func main() { info := component.BuildInfo{ Command: "custom-collector-distro", Description: "Custom OpenTelemetry Collector distribution", - Version: "0.136.0", + Version: "0.141.0", } set := otelcol.CollectorSettings{ diff --git a/otelcollector/otel-allocator/go.mod b/otelcollector/otel-allocator/go.mod index 39c9b5694..3abd18a8a 100644 --- a/otelcollector/otel-allocator/go.mod +++ b/otelcollector/otel-allocator/go.mod @@ -186,17 +186,17 @@ require ( go.opentelemetry.io/otel/trace v1.38.0 // indirect go.uber.org/atomic v1.11.0 golang.org/x/arch v0.8.0 // indirect - golang.org/x/crypto v0.41.0 // indirect + golang.org/x/crypto v0.45.0 // indirect golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/net v0.43.0 // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/sys v0.35.0 // indirect - golang.org/x/term v0.34.0 // indirect - golang.org/x/text v0.28.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect golang.org/x/time v0.9.0 // indirect - golang.org/x/tools v0.35.0 // indirect + golang.org/x/tools v0.38.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect google.golang.org/api v0.213.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250825161204-c5933d9347a5 // indirect diff --git a/otelcollector/otel-allocator/go.sum b/otelcollector/otel-allocator/go.sum index 086c58147..6b37067fe 100644 --- a/otelcollector/otel-allocator/go.sum +++ b/otelcollector/otel-allocator/go.sum @@ -557,14 +557,14 @@ golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3 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-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= -golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= 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.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -575,8 +575,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-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -585,8 +585,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.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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= @@ -614,17 +614,17 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.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.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= -golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= 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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -632,8 +632,8 @@ golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/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.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= 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/otelcollector/otel-allocator/internal/allocation/allocator_test.go b/otelcollector/otel-allocator/internal/allocation/allocator_test.go index 4a6f4e428..dd67f7b40 100644 --- a/otelcollector/otel-allocator/internal/allocation/allocator_test.go +++ b/otelcollector/otel-allocator/internal/allocation/allocator_test.go @@ -165,12 +165,8 @@ func TestAllocationCollision(t *testing.T) { cols := MakeNCollectors(3, 0) allocator.SetCollectors(cols) - firstLabels := labels.Labels{ - {Name: "test", Value: "test1"}, - } - secondLabels := labels.Labels{ - {Name: "test", Value: "test2"}, - } + firstLabels := labels.New(labels.Label{Name: "test", Value: "test1"}) + secondLabels := labels.New(labels.Label{Name: "test", Value: "test2"}) firstTarget := target.NewItem("sample-name", "0.0.0.0:8000", firstLabels, "") secondTarget := target.NewItem("sample-name", "0.0.0.0:8000", secondLabels, "") diff --git a/otelcollector/otel-allocator/internal/allocation/per_node_test.go b/otelcollector/otel-allocator/internal/allocation/per_node_test.go index 2e36395a7..52cd8e930 100644 --- a/otelcollector/otel-allocator/internal/allocation/per_node_test.go +++ b/otelcollector/otel-allocator/internal/allocation/per_node_test.go @@ -32,24 +32,22 @@ func TestAllocationPerNode(t *testing.T) { cols := MakeNCollectors(4, 0) s.SetCollectors(cols) - firstLabels := labels.Labels{ - {Name: "test", Value: "test1"}, - {Name: "__meta_kubernetes_pod_node_name", Value: "node-0"}, - } - secondLabels := labels.Labels{ - {Name: "test", Value: "test2"}, - {Name: "__meta_kubernetes_node_name", Value: "node-1"}, - } + firstLabels := labels.New( + labels.Label{Name: "test", Value: "test1"}, + labels.Label{Name: "__meta_kubernetes_pod_node_name", Value: "node-0"}, + ) + secondLabels := labels.New( + labels.Label{Name: "test", Value: "test2"}, + labels.Label{Name: "__meta_kubernetes_node_name", Value: "node-1"}, + ) // no label, should be skipped - thirdLabels := labels.Labels{ - {Name: "test", Value: "test3"}, - } + thirdLabels := labels.New(labels.Label{Name: "test", Value: "test3"}) // endpointslice target kind and name - fourthLabels := labels.Labels{ - {Name: "test", Value: "test4"}, - {Name: "__meta_kubernetes_endpointslice_address_target_kind", Value: "Node"}, - {Name: "__meta_kubernetes_endpointslice_address_target_name", Value: "node-3"}, - } + fourthLabels := labels.New( + labels.Label{Name: "test", Value: "test4"}, + labels.Label{Name: "__meta_kubernetes_endpointslice_address_target_kind", Value: "Node"}, + labels.Label{Name: "__meta_kubernetes_endpointslice_address_target_name", Value: "node-3"}, + ) firstTarget := target.NewItem("sample-name", "0.0.0.0:8000", firstLabels, "") secondTarget := target.NewItem("sample-name", "0.0.0.0:8000", secondLabels, "") @@ -99,24 +97,22 @@ func TestAllocationPerNodeUsingFallback(t *testing.T) { cols := MakeNCollectors(4, 0) s.SetCollectors(cols) - firstLabels := labels.Labels{ - {Name: "test", Value: "test1"}, - {Name: "__meta_kubernetes_pod_node_name", Value: "node-0"}, - } - secondLabels := labels.Labels{ - {Name: "test", Value: "test2"}, - {Name: "__meta_kubernetes_node_name", Value: "node-1"}, - } + firstLabels := labels.New( + labels.Label{Name: "test", Value: "test1"}, + labels.Label{Name: "__meta_kubernetes_pod_node_name", Value: "node-0"}, + ) + secondLabels := labels.New( + labels.Label{Name: "test", Value: "test2"}, + labels.Label{Name: "__meta_kubernetes_node_name", Value: "node-1"}, + ) // no label, should be allocated by the fallback strategy - thirdLabels := labels.Labels{ - {Name: "test", Value: "test3"}, - } + thirdLabels := labels.New(labels.Label{Name: "test", Value: "test3"}) // endpointslice target kind and name - fourthLabels := labels.Labels{ - {Name: "test", Value: "test4"}, - {Name: "__meta_kubernetes_endpointslice_address_target_kind", Value: "Node"}, - {Name: "__meta_kubernetes_endpointslice_address_target_name", Value: "node-3"}, - } + fourthLabels := labels.New( + labels.Label{Name: "test", Value: "test4"}, + labels.Label{Name: "__meta_kubernetes_endpointslice_address_target_kind", Value: "Node"}, + labels.Label{Name: "__meta_kubernetes_endpointslice_address_target_name", Value: "node-3"}, + ) firstTarget := target.NewItem("sample-name", "0.0.0.0:8000", firstLabels, "") secondTarget := target.NewItem("sample-name", "0.0.0.0:8000", secondLabels, "") diff --git a/otelcollector/otel-allocator/internal/allocation/testutils.go b/otelcollector/otel-allocator/internal/allocation/testutils.go index 91e8762e6..f92c35dcb 100644 --- a/otelcollector/otel-allocator/internal/allocation/testutils.go +++ b/otelcollector/otel-allocator/internal/allocation/testutils.go @@ -28,10 +28,10 @@ func MakeNNewTargets(n int, numCollectors int, startingIndex int) []*target.Item toReturn := []*target.Item{} for i := startingIndex; i < n+startingIndex; i++ { collector := fmt.Sprintf("collector-%d", colIndex(i, numCollectors)) - label := labels.Labels{ - {Name: "i", Value: strconv.Itoa(i)}, - {Name: "total", Value: strconv.Itoa(n + startingIndex)}, - } + label := labels.New( + labels.Label{Name: "i", Value: strconv.Itoa(i)}, + labels.Label{Name: "total", Value: strconv.Itoa(n + startingIndex)}, + ) newTarget := target.NewItem(fmt.Sprintf("test-job-%d", i), fmt.Sprintf("test-url-%d", i), label, collector) toReturn = append(toReturn, newTarget) } @@ -54,11 +54,11 @@ func MakeNCollectors(n int, startingIndex int) map[string]*Collector { func MakeNNewTargetsWithEmptyCollectors(n int, startingIndex int) []*target.Item { toReturn := []*target.Item{} for i := startingIndex; i < n+startingIndex; i++ { - label := labels.Labels{ - {Name: "i", Value: strconv.Itoa(i)}, - {Name: "total", Value: strconv.Itoa(n + startingIndex)}, - {Name: "__meta_kubernetes_pod_node_name", Value: "node-0"}, - } + label := labels.New( + labels.Label{Name: "i", Value: strconv.Itoa(i)}, + labels.Label{Name: "total", Value: strconv.Itoa(n + startingIndex)}, + labels.Label{Name: "__meta_kubernetes_pod_node_name", Value: "node-0"}, + ) newTarget := target.NewItem(fmt.Sprintf("test-job-%d", i), fmt.Sprintf("test-url-%d", i), label, "") toReturn = append(toReturn, newTarget) } diff --git a/otelcollector/otel-allocator/internal/config/config.go b/otelcollector/otel-allocator/internal/config/config.go index 409fdac37..c24736a61 100644 --- a/otelcollector/otel-allocator/internal/config/config.go +++ b/otelcollector/otel-allocator/internal/config/config.go @@ -89,6 +89,7 @@ type PrometheusCRConfig struct { ProbeNamespaceSelector *metav1.LabelSelector `yaml:"probe_namespace_selector,omitempty"` ScrapeProtocols []monitoringv1.ScrapeProtocol `yaml:"scrape_protocols,omitempty"` ScrapeInterval model.Duration `yaml:"scrape_interval,omitempty"` + EvaluationInterval model.Duration `yaml:"evaluation_interval,omitempty"` } type HTTPSServerConfig struct { diff --git a/otelcollector/otel-allocator/internal/config/flags.go b/otelcollector/otel-allocator/internal/config/flags.go index ae156ff85..27b001d45 100644 --- a/otelcollector/otel-allocator/internal/config/flags.go +++ b/otelcollector/otel-allocator/internal/config/flags.go @@ -4,6 +4,7 @@ package config import ( + uberzap "go.uber.org/zap" "flag" "github.com/spf13/pflag" @@ -40,6 +41,8 @@ func getFlagSet(errorHandling pflag.ErrorHandling) *pflag.FlagSet { flagSet.String(httpsTLSKeyFilePathFlagName, "", "The path to the HTTPS server TLS key file.") zapFlagSet := flag.NewFlagSet("", flag.ErrorHandling(errorHandling)) zapCmdLineOpts.BindFlags(zapFlagSet) + lvl := uberzap.NewAtomicLevelAt(uberzap.PanicLevel) + zapCmdLineOpts.Level = &lvl flagSet.AddGoFlagSet(zapFlagSet) return flagSet } diff --git a/otelcollector/otel-allocator/internal/prehook/relabel.go b/otelcollector/otel-allocator/internal/prehook/relabel.go index f6a6c084d..bda8134e6 100644 --- a/otelcollector/otel-allocator/internal/prehook/relabel.go +++ b/otelcollector/otel-allocator/internal/prehook/relabel.go @@ -48,7 +48,7 @@ func (tf *relabelConfigTargetFilter) Apply(targets []*target.Item) []*target.Ite } if keepTarget { - targets[writeIndex] = tItem + targets[writeIndex] = target.NewItem(tItem.JobName, tItem.TargetURL, tItem.Labels, tItem.CollectorName, target.WithRelabeledLabels(lset)) writeIndex++ } } diff --git a/otelcollector/otel-allocator/internal/prehook/relabel_test.go b/otelcollector/otel-allocator/internal/prehook/relabel_test.go index 51debfc37..7014e5b6c 100644 --- a/otelcollector/otel-allocator/internal/prehook/relabel_test.go +++ b/otelcollector/otel-allocator/internal/prehook/relabel_test.go @@ -5,12 +5,16 @@ package prehook import ( "crypto/rand" + "errors" "fmt" "math/big" "strconv" + "strings" "testing" + "time" "github.com/prometheus/common/model" + "github.com/prometheus/prometheus/config" "github.com/prometheus/prometheus/model/labels" "github.com/prometheus/prometheus/model/relabel" "github.com/stretchr/testify/assert" @@ -25,6 +29,8 @@ var ( defaultNumCollectors = 3 defaultStartIndex = 0 + checkDistinctConfigLabel = "check-distinct-label-key" + relabelConfigs = []relabelConfigObj{ { cfg: []*relabel.Config{ @@ -153,6 +159,11 @@ var ( Regex: relabel.MustNewRegexp("(.*)"), Action: "drop", } + + CheckDistinctConfig = relabel.Config{ + Regex: relabel.MustNewRegexp(checkDistinctConfigLabel), + Action: "labeldrop", + } ) type relabelConfigObj struct { @@ -167,20 +178,40 @@ func colIndex(index, numCols int) int { return index % numCols } -func makeNNewTargets(rCfgs []relabelConfigObj, n int, numCollectors int, startingIndex int) ([]*target.Item, int, []*target.Item, map[string][]*relabel.Config) { +func makeNNewTargets(rCfgs []relabelConfigObj, n int, numCollectors int, startingIndex int) ([]*target.Item, int, []*target.Item, map[string][]*relabel.Config, error) { toReturn := []*target.Item{} expected := []*target.Item{} numItemsRemaining := n relabelConfig := make(map[string][]*relabel.Config) for i := startingIndex; i < n+startingIndex; i++ { collector := fmt.Sprintf("collector-%d", colIndex(i, numCollectors)) - label := labels.Labels{ - {Name: "collector", Value: collector}, - {Name: "i", Value: strconv.Itoa(i)}, - {Name: "total", Value: strconv.Itoa(n + startingIndex)}, - } jobName := fmt.Sprintf("test-job-%d", i) - newTarget := target.NewItem(jobName, "test-url", label, collector) + label := labels.New( + labels.Label{Name: "collector", Value: collector}, + labels.Label{Name: "i", Value: strconv.Itoa(i)}, + labels.Label{Name: "total", Value: strconv.Itoa(n + startingIndex)}, + labels.Label{Name: model.MetaLabelPrefix + strconv.Itoa(i), Value: strconv.Itoa(i)}, + labels.Label{Name: model.AddressLabel, Value: "address_value"}, + // These labels are typically required for correct scraping behavior and are expected to be retained after relabeling.: + // - job + // - __scrape_interval__ + // - __scrape_timeout__ + // - __scheme__ + // - __metrics_path__ + // Prometheus adds these labels by default. Removing them via relabel_configs is considered invalid and is therefore ignored. + // For details, see: + // https://github.com/prometheus/prometheus/blob/e6cfa720fbe6280153fab13090a483dbd40bece3/scrape/target.go#L429 + labels.Label{Name: model.JobLabel, Value: jobName}, + labels.Label{Name: model.ScrapeIntervalLabel, Value: "10s"}, + labels.Label{Name: model.ScrapeTimeoutLabel, Value: "10s"}, + labels.Label{Name: model.SchemeLabel, Value: "http"}, + labels.Label{Name: model.MetricsPathLabel, Value: "/metrics" + strconv.Itoa(i)}, + + // Prometheus will automatically add the "instance" label if it is not present. + labels.Label{Name: model.InstanceLabel, Value: "address_value"}, + ) + rawTarget := target.NewItem(jobName, "test-url", label, collector) + // add a single replace, drop, or keep action as relabel_config for targets var index int ind, _ := rand.Int(rand.Reader, big.NewInt(int64(len(relabelConfigs)))) @@ -192,18 +223,24 @@ func makeNNewTargets(rCfgs []relabelConfigObj, n int, numCollectors int, startin if relabelConfigs[index].isDrop { numItemsRemaining-- } else { + newTarget, err := MakeTargetFromProm(relabelConfig[jobName], rawTarget) + if err != nil || newTarget == nil { + return nil, 0, nil, nil, fmt.Errorf("failed to create target from relabel config: %w", err) + } expected = append(expected, newTarget) } - toReturn = append(toReturn, newTarget) + toReturn = append(toReturn, rawTarget) } - return toReturn, numItemsRemaining, expected, relabelConfig + return toReturn, numItemsRemaining, expected, relabelConfig, nil } func TestApply(t *testing.T) { allocatorPrehook := New("relabel-config", logger) assert.NotNil(t, allocatorPrehook) - targets, numRemaining, expectedTargetMap, relabelCfg := makeNNewTargets(relabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + targets, numRemaining, expectedTargetMap, relabelCfg, err := makeNNewTargets(relabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + assert.NoError(t, err) + allocatorPrehook.SetConfig(relabelCfg) remainingItems := allocatorPrehook.Apply(targets) assert.Len(t, remainingItems, numRemaining) @@ -227,7 +264,9 @@ func TestApplyHashmodAction(t *testing.T) { assert.NotNil(t, allocatorPrehook) hashRelabelConfigs := append(relabelConfigs, HashmodConfig) - targets, numRemaining, expectedTargetMap, relabelCfg := makeNNewTargets(hashRelabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + targets, numRemaining, expectedTargetMap, relabelCfg, err := makeNNewTargets(hashRelabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + assert.NoError(t, err) + allocatorPrehook.SetConfig(relabelCfg) remainingItems := allocatorPrehook.Apply(targets) assert.Len(t, remainingItems, numRemaining) @@ -239,7 +278,8 @@ func TestApplyEmptyRelabelCfg(t *testing.T) { allocatorPrehook := New("relabel-config", logger) assert.NotNil(t, allocatorPrehook) - targets, _, _, _ := makeNNewTargets(relabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + targets, _, _, _, err := makeNNewTargets(relabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + assert.NoError(t, err) relabelCfg := map[string][]*relabel.Config{} allocatorPrehook.SetConfig(relabelCfg) @@ -253,7 +293,173 @@ func TestSetConfig(t *testing.T) { allocatorPrehook := New("relabel-config", logger) assert.NotNil(t, allocatorPrehook) - _, _, _, relabelCfg := makeNNewTargets(relabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + _, _, _, relabelCfg, err := makeNNewTargets(relabelConfigs, defaultNumTargets, defaultNumCollectors, defaultStartIndex) + assert.NoError(t, err) + allocatorPrehook.SetConfig(relabelCfg) assert.Equal(t, relabelCfg, allocatorPrehook.GetConfig()) } + +func TestDistinctTarget(t *testing.T) { + allocatorPrehook := New("relabel-config", logger) + assert.NotNil(t, allocatorPrehook) + + targets, _, expectedTarget, relabelCfg, err := makeNNewTargets(relabelConfigs, 10, defaultNumCollectors, defaultStartIndex) + assert.NoError(t, err) + + duplicatedTargets := make([]*target.Item, 0, 2*len(targets)) + for _, item := range targets { + builder := labels.NewBuilder(item.Labels) + builder.Set(checkDistinctConfigLabel, "check-distinct-label-value") + ls := builder.Labels() + + duplItem := target.NewItem(item.JobName, item.TargetURL, ls, item.CollectorName) + duplicatedTargets = append(duplicatedTargets, duplItem) + } + // Append original targets after duplicated ones to preserve original labels after deduplication. + duplicatedTargets = append(duplicatedTargets, targets...) + + for k, cfg := range relabelCfg { + cfg = append(cfg, &CheckDistinctConfig) + relabelCfg[k] = cfg + } + + // The expected result after deduplication. + expectedTargetMap := make(map[target.ItemHash]*target.Item) + for _, item := range expectedTarget { + expectedTargetMap[item.Hash()] = item + } + + // The deduplicated result after Prometheus relabeling. + promTargetMap := make(map[target.ItemHash]*target.Item) + for _, item := range targets { + tfp, err := MakeTargetFromProm(relabelCfg[item.JobName], item) + assert.NoError(t, err) + // If the target is dropped by Prometheus, it will be nil. + if tfp != nil { + promTargetMap[tfp.Hash()] = tfp + } + } + + assert.Len(t, promTargetMap, len(expectedTargetMap)) + assert.Equal(t, promTargetMap, expectedTargetMap) + + // The deduplicated result after otel-allocator processing. + allocatorPrehook.SetConfig(relabelCfg) + remainingItems := allocatorPrehook.Apply(duplicatedTargets) + remainingItemsMap := make(map[target.ItemHash]*target.Item) + for _, item := range remainingItems { + remainingItemsMap[item.Hash()] = item + } + + assert.Len(t, remainingItemsMap, len(expectedTargetMap)) + assert.Equal(t, remainingItemsMap, expectedTargetMap) +} + +func MakeTargetFromProm(rCfgs []*relabel.Config, rawTarget *target.Item) (*target.Item, error) { + lb := labels.NewBuilder(rawTarget.Labels) + cfg := &config.ScrapeConfig{ + RelabelConfigs: rCfgs, + } + lset, _, err := PopulateLabels(lb, cfg) + if err != nil { + return nil, err + } + // If the lset is empty after relabeling, Prometheus drops the target. + if lset.IsEmpty() { + return nil, nil + } + + newTarget := target.NewItem(rawTarget.JobName, rawTarget.TargetURL, rawTarget.Labels, rawTarget.CollectorName, target.WithRelabeledLabels(lset)) + return newTarget, nil +} + +// PopulateLabels is Copied from prometheus/scrape/target.go. +// Reason: "github.com/prometheus/common@0.65.0" and "github.com/prometheus/scrape@0.301.0" are incompatible (undefined: promslog.AllowedFormat). +func PopulateLabels(lb *labels.Builder, cfg *config.ScrapeConfig) (res, orig labels.Labels, err error) { + // Copy labels into the labelset for the target if they are not set already. + scrapeLabels := []labels.Label{ + {Name: model.JobLabel, Value: cfg.JobName}, + {Name: model.ScrapeIntervalLabel, Value: cfg.ScrapeInterval.String()}, + {Name: model.ScrapeTimeoutLabel, Value: cfg.ScrapeTimeout.String()}, + {Name: model.MetricsPathLabel, Value: cfg.MetricsPath}, + {Name: model.SchemeLabel, Value: cfg.Scheme}, + } + + for _, l := range scrapeLabels { + if lb.Get(l.Name) == "" { + lb.Set(l.Name, l.Value) + } + } + // Encode scrape query parameters as labels. + for k, v := range cfg.Params { + if name := model.ParamLabelPrefix + k; len(v) > 0 && lb.Get(name) == "" { + lb.Set(name, v[0]) + } + } + + preRelabelLabels := lb.Labels() + keep := relabel.ProcessBuilder(lb, cfg.RelabelConfigs...) + + // Check if the target was dropped. + if !keep { + return labels.EmptyLabels(), preRelabelLabels, nil + } + if v := lb.Get(model.AddressLabel); v == "" { + return labels.EmptyLabels(), labels.EmptyLabels(), errors.New("no address") + } + + addr := lb.Get(model.AddressLabel) + + if err = config.CheckTargetAddress(model.LabelValue(addr)); err != nil { + return labels.EmptyLabels(), labels.EmptyLabels(), err + } + + interval := lb.Get(model.ScrapeIntervalLabel) + intervalDuration, err := model.ParseDuration(interval) + if err != nil { + return labels.EmptyLabels(), labels.EmptyLabels(), fmt.Errorf("error parsing scrape interval: %w", err) + } + if time.Duration(intervalDuration) == 0 { + return labels.EmptyLabels(), labels.EmptyLabels(), errors.New("scrape interval cannot be 0") + } + + timeout := lb.Get(model.ScrapeTimeoutLabel) + timeoutDuration, err := model.ParseDuration(timeout) + if err != nil { + return labels.EmptyLabels(), labels.EmptyLabels(), fmt.Errorf("error parsing scrape timeout: %w", err) + } + if time.Duration(timeoutDuration) == 0 { + return labels.EmptyLabels(), labels.EmptyLabels(), errors.New("scrape timeout cannot be 0") + } + + if timeoutDuration > intervalDuration { + return labels.EmptyLabels(), labels.EmptyLabels(), fmt.Errorf("scrape timeout cannot be greater than scrape interval (%q > %q)", timeout, interval) + } + + // Meta labels are deleted after relabelling. Other internal labels propagate to + // the target which decides whether they will be part of their label set. + lb.Range(func(l labels.Label) { + if strings.HasPrefix(l.Name, model.MetaLabelPrefix) { + lb.Del(l.Name) + } + }) + + // Default the instance label to the target address. + if v := lb.Get(model.InstanceLabel); v == "" { + lb.Set(model.InstanceLabel, addr) + } + + res = lb.Labels() + err = res.Validate(func(l labels.Label) error { + // Check label values are valid, drop the target if not. + if !model.LabelValue(l.Value).IsValid() { + return fmt.Errorf("invalid label value for %q: %q", l.Name, l.Value) + } + return nil + }) + if err != nil { + return labels.EmptyLabels(), labels.EmptyLabels(), err + } + return res, preRelabelLabels, nil +} diff --git a/otelcollector/otel-allocator/internal/server/server.go b/otelcollector/otel-allocator/internal/server/server.go index d42cde84d..7a7bc8e00 100644 --- a/otelcollector/otel-allocator/internal/server/server.go +++ b/otelcollector/otel-allocator/internal/server/server.go @@ -426,9 +426,9 @@ func (s *Server) TargetHTMLHandler(c *gin.Context) { Headers: []string{"Label", "Value"}, Rows: func() [][]Cell { var rows [][]Cell - for _, l := range target.Labels { + target.Labels.Range(func(l labels.Label) { rows = append(rows, []Cell{NewCell(l.Name), NewCell(l.Value)}) - } + }) return rows }(), }) diff --git a/otelcollector/otel-allocator/internal/server/server_test.go b/otelcollector/otel-allocator/internal/server/server_test.go index ac7adff7f..105ab6fda 100644 --- a/otelcollector/otel-allocator/internal/server/server_test.go +++ b/otelcollector/otel-allocator/internal/server/server_test.go @@ -31,13 +31,9 @@ import ( ) var ( - logger = logf.Log.WithName("server-unit-tests") - baseLabelSet = labels.Labels{ - {Name: "test_label", Value: "test-value"}, - } - testJobLabelSetTwo = labels.Labels{ - {Name: "test_label", Value: "test-value2"}, - } + logger = logf.Log.WithName("server-unit-tests") + baseLabelSet = labels.New(labels.Label{Name: "test_label", Value: "test-value"}) + testJobLabelSetTwo = labels.New(labels.Label{Name: "test_label", Value: "test-value2"}) baseTargetItem = target.NewItem("test-job", "test-url", baseLabelSet, "test-collector") secondTargetItem = target.NewItem("test-job", "test-url", baseLabelSet, "test-collector") testJobTargetItemTwo = target.NewItem("test-job", "test-url2", testJobLabelSetTwo, "test-collector2") @@ -101,9 +97,7 @@ func TestServer_TargetsHandler(t *testing.T) { items: []*targetJSON{ { TargetURL: []string{"test-url"}, - Labels: labels.Labels{ - {Name: "test_label", Value: "test-value"}, - }, + Labels: labels.New(labels.Label{Name: "test_label", Value: "test-value"}), }, }, }, @@ -123,9 +117,7 @@ func TestServer_TargetsHandler(t *testing.T) { items: []*targetJSON{ { TargetURL: []string{"test-url"}, - Labels: labels.Labels{ - {Name: "test_label", Value: "test-value"}, - }, + Labels: labels.New(labels.Label{Name: "test_label", Value: "test-value"}), }, }, }, @@ -145,15 +137,11 @@ func TestServer_TargetsHandler(t *testing.T) { items: []*targetJSON{ { TargetURL: []string{"test-url"}, - Labels: labels.Labels{ - {Name: "test_label", Value: "test-value"}, - }, + Labels: labels.New(labels.Label{Name: "test_label", Value: "test-value"}), }, { TargetURL: []string{"test-url2"}, - Labels: labels.Labels{ - {Name: "test_label", Value: "test-value2"}, - }, + Labels: labels.New(labels.Label{Name: "test_label", Value: "test-value2"}), }, }, }, @@ -568,7 +556,7 @@ func TestServer_JobHandler(t *testing.T) { { description: "one job", targetItems: map[target.ItemHash]*target.Item{ - 0: target.NewItem("job1", "", labels.Labels{}, ""), + 0: target.NewItem("job1", "", labels.New(), ""), }, expectedCode: http.StatusOK, expectedJobs: map[string]linkJSON{ @@ -578,11 +566,11 @@ func TestServer_JobHandler(t *testing.T) { { description: "multiple jobs", targetItems: map[target.ItemHash]*target.Item{ - 0: target.NewItem("job1", "", labels.Labels{}, ""), - 1: target.NewItem("job2", "", labels.Labels{}, ""), - 2: target.NewItem("job3", "", labels.Labels{}, ""), - 3: target.NewItem("job3", "", labels.Labels{}, ""), - 4: target.NewItem("job3", "", labels.Labels{}, "")}, + 0: target.NewItem("job1", "", labels.New(), ""), + 1: target.NewItem("job2", "", labels.New(), ""), + 2: target.NewItem("job3", "", labels.New(), ""), + 3: target.NewItem("job3", "", labels.New(), ""), + 4: target.NewItem("job3", "", labels.New(), "")}, expectedCode: http.StatusOK, expectedJobs: map[string]linkJSON{ "job1": newLink("job1"), @@ -635,7 +623,7 @@ func TestServer_JobsHandler_HTML(t *testing.T) { { description: "one job", targetItems: map[target.ItemHash]*target.Item{ - 0: target.NewItem("job1", "", labels.Labels{}, ""), + 0: target.NewItem("job1", "", labels.New(), ""), }, expectedCode: http.StatusOK, Golden: "jobs_one.html", @@ -643,11 +631,11 @@ func TestServer_JobsHandler_HTML(t *testing.T) { { description: "multiple jobs", targetItems: map[target.ItemHash]*target.Item{ - 0: target.NewItem("job1", "1.1.1.1:8080", labels.Labels{}, ""), - 1: target.NewItem("job2", "1.1.1.2:8080", labels.Labels{}, ""), - 2: target.NewItem("job3", "1.1.1.3:8080", labels.Labels{}, ""), - 3: target.NewItem("job3", "1.1.1.4:8080", labels.Labels{}, ""), - 4: target.NewItem("job3", "1.1.1.5:8080", labels.Labels{}, "")}, + 0: target.NewItem("job1", "1.1.1.1:8080", labels.New(), ""), + 1: target.NewItem("job2", "1.1.1.2:8080", labels.New(), ""), + 2: target.NewItem("job3", "1.1.1.3:8080", labels.New(), ""), + 3: target.NewItem("job3", "1.1.1.4:8080", labels.New(), ""), + 4: target.NewItem("job3", "1.1.1.5:8080", labels.New(), "")}, expectedCode: http.StatusOK, Golden: "jobs_multiple.html", }, diff --git a/otelcollector/otel-allocator/internal/server/testdata/collector_multiple.html b/otelcollector/otel-allocator/internal/server/testdata/collector_multiple.html index a16cf2594..bad64503e 100644 --- a/otelcollector/otel-allocator/internal/server/testdata/collector_multiple.html +++ b/otelcollector/otel-allocator/internal/server/testdata/collector_multiple.html @@ -31,7 +31,7 @@

Collector: test-collector2

test-job - test-url + test-url diff --git a/otelcollector/otel-allocator/internal/server/testdata/collector_single.html b/otelcollector/otel-allocator/internal/server/testdata/collector_single.html index a16cf2594..bad64503e 100644 --- a/otelcollector/otel-allocator/internal/server/testdata/collector_single.html +++ b/otelcollector/otel-allocator/internal/server/testdata/collector_single.html @@ -31,7 +31,7 @@

Collector: test-collector2

test-job - test-url + test-url diff --git a/otelcollector/otel-allocator/internal/server/testdata/targets_multiple.html b/otelcollector/otel-allocator/internal/server/testdata/targets_multiple.html index 39773ea48..63137e183 100644 --- a/otelcollector/otel-allocator/internal/server/testdata/targets_multiple.html +++ b/otelcollector/otel-allocator/internal/server/testdata/targets_multiple.html @@ -31,10 +31,10 @@

OpenTelemetry Target Allocator - Targets

- test-job2 + test-job - test-url3 + test-url test-collector1 @@ -48,10 +48,10 @@

OpenTelemetry Target Allocator - Targets

test-job - test-url + test-url2 - test-collector1 + test-collector2 @@ -59,13 +59,13 @@

OpenTelemetry Target Allocator - Targets

- test-job + test-job2 - test-url2 + test-url3 - test-collector2 + test-collector1 diff --git a/otelcollector/otel-allocator/internal/server/testdata/targets_single.html b/otelcollector/otel-allocator/internal/server/testdata/targets_single.html index c58933a6e..df36979c6 100644 --- a/otelcollector/otel-allocator/internal/server/testdata/targets_single.html +++ b/otelcollector/otel-allocator/internal/server/testdata/targets_single.html @@ -34,7 +34,7 @@

OpenTelemetry Target Allocator - Targets

test-job - test-url + test-url test-collector1 diff --git a/otelcollector/otel-allocator/internal/target/discovery_test.go b/otelcollector/otel-allocator/internal/target/discovery_test.go index 23e21b25d..cadcfc09f 100644 --- a/otelcollector/otel-allocator/internal/target/discovery_test.go +++ b/otelcollector/otel-allocator/internal/target/discovery_test.go @@ -501,7 +501,7 @@ func TestProcessTargetGroups_StableLabelIterationOrder(t *testing.T) { require.NoError(t, err) d.processTargetGroups("test", groups, results) - for i, l := range results[0].Labels { + for i, l := range results[0].Labels { //nolint:gosec expected := string(rune('a' + i)) assert.Equal(t, expected, l.Name, "unexpected label key at index %d", i) assert.Equal(t, expected, l.Value, "unexpected label value at index %d", i) diff --git a/otelcollector/otel-allocator/internal/target/target.go b/otelcollector/otel-allocator/internal/target/target.go index c8a1ad388..d7cd7c5ca 100644 --- a/otelcollector/otel-allocator/internal/target/target.go +++ b/otelcollector/otel-allocator/internal/target/target.go @@ -4,9 +4,13 @@ package target import ( + "encoding/binary" + "slices" "strconv" + "strings" "github.com/cespare/xxhash/v2" + "github.com/prometheus/common/model" "github.com/prometheus/prometheus/model/labels" ) @@ -33,16 +37,36 @@ func (h ItemHash) String() string { // Item represents a target to be scraped. type Item struct { - JobName string - TargetURL string - Labels labels.Labels - CollectorName string - hash ItemHash + JobName string + TargetURL string + Labels labels.Labels + // relabeledLabels contains the final labels after Prometheus relabeling processing. + relabeledLabels labels.Labels + CollectorName string + hash ItemHash +} + +type ItemOption func(*Item) + +func WithRelabeledLabels(lbs labels.Labels) ItemOption { + return func(i *Item) { + // In Prometheus, labels with the MetaLabelPrefix are discarded after relabeling, which means they are not used in hash calculation. + // For details, see https://github.com/prometheus/prometheus/blob/e6cfa720fbe6280153fab13090a483dbd40bece3/scrape/target.go#L534. + writeIndex := 0 + relabeledLabels := make(labels.Labels, len(lbs)) + for _, l := range lbs { + if !strings.HasPrefix(l.Name, model.MetaLabelPrefix) { + relabeledLabels[writeIndex] = l + writeIndex++ + } + } + i.relabeledLabels = slices.Clip(relabeledLabels[:writeIndex]) + } } func (t *Item) Hash() ItemHash { if t.hash == 0 { - t.hash = ItemHash(LabelsHashWithJobName(t.Labels, t.JobName)) + t.hash = ItemHash(LabelsHashWithJobName(t.relabeledLabels, t.JobName)) } return t.hash } @@ -71,13 +95,19 @@ func (t *Item) GetEndpointSliceName() string { // NewItem Creates a new target item. // INVARIANTS: // * Item fields must not be modified after creation. -func NewItem(jobName string, targetURL string, labels labels.Labels, collectorName string) *Item { - return &Item{ - JobName: jobName, - TargetURL: targetURL, - Labels: labels, - CollectorName: collectorName, +func NewItem(jobName string, targetURL string, labels labels.Labels, collectorName string, opts ...ItemOption) *Item { + item := &Item{ + JobName: jobName, + TargetURL: targetURL, + Labels: labels, + // relabeledLabels defaults to original labels if WithRelabeledLabels is not specified. + relabeledLabels: labels, + CollectorName: collectorName, + } + for _, opt := range opts { + opt(item) } + return item } // LabelsHashWithJobName computes a hash of the labels and the job name. @@ -85,35 +115,11 @@ func NewItem(jobName string, targetURL string, labels labels.Labels, collectorNa // but adds in the job name since this is not in the labelset from the discovery manager. // The scrape manager adds it later. Address is already included in the labels, so it is not needed here. func LabelsHashWithJobName(ls labels.Labels, jobName string) uint64 { - var sep byte = '\xff' - var seps = []byte{sep} - - // Use xxhash.Sum64(b) for fast path as it's faster. - b := make([]byte, 0, 1024) - - // Differs from Prometheus implementation by adding job name. - b = append(b, jobName...) - b = append(b, sep) - - for i, v := range ls { - if len(b)+len(v.Name)+len(v.Value)+2 >= cap(b) { - // If labels entry is 1KB+ do not allocate whole entry. - h := xxhash.New() - _, _ = h.Write(b) - for _, v := range ls[i:] { - _, _ = h.WriteString(v.Name) - _, _ = h.Write(seps) - _, _ = h.WriteString(v.Value) - _, _ = h.Write(seps) - } - return h.Sum64() - } - - b = append(b, v.Name...) - b = append(b, sep) - b = append(b, v.Value...) - b = append(b, sep) - } - - return xxhash.Sum64(b) + labelsHash := ls.Hash() + labelsHashBytes := make([]byte, 8) + _, _ = binary.Encode(labelsHashBytes, binary.LittleEndian, labelsHash) // nolint: errcheck // this can only fail if the buffer size is wrong + hash := xxhash.New() + _, _ = hash.Write(labelsHashBytes) // nolint: errcheck // xxhash.Write can't fail + _, _ = hash.Write([]byte(jobName)) // nolint: errcheck // xxhash.Write can't fail + return hash.Sum64() } diff --git a/otelcollector/otel-allocator/internal/watcher/promOperator.go b/otelcollector/otel-allocator/internal/watcher/promOperator.go index fd934167f..58525cd02 100644 --- a/otelcollector/otel-allocator/internal/watcher/promOperator.go +++ b/otelcollector/otel-allocator/internal/watcher/promOperator.go @@ -4,15 +4,14 @@ package watcher import ( + promMonitoring "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring" + "k8s.io/client-go/metadata" "context" "fmt" "log/slog" "os" "time" - promMonitoring "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring" - "k8s.io/client-go/metadata" - "github.com/blang/semver/v4" "github.com/go-logr/logr" monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" @@ -65,6 +64,7 @@ func NewPrometheusCRWatcher( monitoringInformerFactory := informers.NewMonitoringInformerFactories(allowList, denyList, monitoringclient, allocatorconfig.DefaultResyncTime, nil) metaDataInformerFactory := informers.NewMetadataInformerFactory(allowList, denyList, mdClient, allocatorconfig.DefaultResyncTime, nil) + monitoringInformers, err := getInformers(monitoringInformerFactory, cfg.ClusterConfig, promLogger, metaDataInformerFactory) if err != nil { return nil, err @@ -73,7 +73,7 @@ func NewPrometheusCRWatcher( // we want to use endpointslices by default serviceDiscoveryRole := monitoringv1.ServiceDiscoveryRole("EndpointSlice") - // TODO: We should make these durations configurable + //no need to hardcode durations, use default if not set prom := &monitoringv1.Prometheus{ ObjectMeta: metav1.ObjectMeta{ Namespace: cfg.CollectorNamespace, @@ -92,7 +92,7 @@ func NewPrometheusCRWatcher( ServiceDiscoveryRole: &serviceDiscoveryRole, ScrapeProtocols: cfg.PrometheusCR.ScrapeProtocols, }, - EvaluationInterval: monitoringv1.Duration("30s"), + EvaluationInterval: monitoringv1.Duration(cfg.PrometheusCR.EvaluationInterval.String()), }, } @@ -322,7 +322,6 @@ func getInformers(factory informers.FactoriesForNamespaces, clusterConfig *rest. if secretInformers != nil { informersMap[string(v1.ResourceSecrets)] = secretInformers } - return informersMap, nil } @@ -389,131 +388,29 @@ func (w *PrometheusCRWatcher) Watch(upstreamEvents chan Event, upstreamErrors ch continue } - // Use a custom event handler for secrets since secret update requires asset store to be updated so that CRs can pick up updated secrets. - if name == string(v1.ResourceSecrets) { - w.logger.Info("Using custom event handler for secrets informer", "informer", name) - // only send an event notification if there isn't one already - resource.AddEventHandler(cache.ResourceEventHandlerFuncs{ - // these functions only write to the notification channel if it's empty to avoid blocking - // if scrape config updates are being rate-limited - AddFunc: func(obj interface{}) { - select { - case notifyEvents <- struct{}{}: - default: - } - }, - UpdateFunc: func(oldObj, newObj interface{}) { - oldMeta, _ := oldObj.(metav1.ObjectMetaAccessor) - newMeta, _ := newObj.(metav1.ObjectMetaAccessor) - secretName := newMeta.GetObjectMeta().GetName() - secretNamespace := newMeta.GetObjectMeta().GetNamespace() - _, exists, err := w.store.GetObject(&v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: secretName, - Namespace: secretNamespace, - }, - }) - if !exists || err != nil { - if err != nil { - w.logger.Error("unexpected store error when checking if secret exists, skipping update", secretName, "error", err) - return - } - // if the secret does not exist in the store, we skip the update - return - } - - newSecret, err := w.store.GetSecretClient().Secrets(secretNamespace).Get(context.Background(), secretName, metav1.GetOptions{}) - - if err != nil { - w.logger.Error("unexpected store error when getting updated secret - ", secretName, "error", err) - return - } - - w.logger.Info("Updating secret in store", "newObjName", newMeta.GetObjectMeta().GetName(), "newobjnamespace", newMeta.GetObjectMeta().GetNamespace()) - if err := w.store.UpdateObject(newSecret); err != nil { - w.logger.Error("unexpected store error when updating secret - ", newMeta.GetObjectMeta().GetName(), "error", err) - } else { - w.logger.Info( - "Successfully updated store, sending update event to notifyEvents channel", - "oldObjName", oldMeta.GetObjectMeta().GetName(), - "oldobjnamespace", oldMeta.GetObjectMeta().GetNamespace(), - "newObjName", newMeta.GetObjectMeta().GetName(), - "newobjnamespace", newMeta.GetObjectMeta().GetNamespace(), - ) - select { - case notifyEvents <- struct{}{}: - default: - } - } - }, - DeleteFunc: func(obj interface{}) { - secretMeta, _ := obj.(metav1.ObjectMetaAccessor) - - secretName := secretMeta.GetObjectMeta().GetName() - secretNamespace := secretMeta.GetObjectMeta().GetNamespace() - - // check if the secret exists in the store - secretObj := &v1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Name: secretName, - Namespace: secretNamespace, - }, - } - _, exists, err := w.store.GetObject(secretObj) - // if the secret does not exist in the store, we skip the delete - if !exists || err != nil { - if err != nil { - w.logger.Error("unexpected store error when checking if secret exists, skipping delete", secretMeta.GetObjectMeta().GetName(), "error", err) - return - } - // if the secret does not exist in the store, we skip the delete - return - } - w.logger.Info("Deleting secret from store", "objName", secretMeta.GetObjectMeta().GetName(), "objnamespace", secretMeta.GetObjectMeta().GetNamespace()) - // if the secret exists in the store, we delete it - // and send an event notification to the notifyEvents channel - if err := w.store.DeleteObject(secretObj); err != nil { - w.logger.Error("unexpected store error when deleting secret - ", secretMeta.GetObjectMeta().GetName(), "error", err) - //return - } else { - w.logger.Info( - "Successfully removed secret from store, sending update event to notifyEvents channel", - "objName", secretMeta.GetObjectMeta().GetName(), - "objnamespace", secretMeta.GetObjectMeta().GetNamespace(), - ) - select { - case notifyEvents <- struct{}{}: - default: - } - } - }, - }) - } else { - w.logger.Info("Using default event handler for informer", "informer", name) - // only send an event notification if there isn't one already - resource.AddEventHandler(cache.ResourceEventHandlerFuncs{ - // these functions only write to the notification channel if it's empty to avoid blocking - // if scrape config updates are being rate-limited - AddFunc: func(obj interface{}) { - select { - case notifyEvents <- struct{}{}: - default: - } - }, - UpdateFunc: func(oldObj, newObj interface{}) { - select { - case notifyEvents <- struct{}{}: - default: - } - }, - DeleteFunc: func(obj interface{}) { - select { - case notifyEvents <- struct{}{}: - default: - } - }, - }) - } + // only send an event notification if there isn't one already + resource.AddEventHandler(cache.ResourceEventHandlerFuncs{ + // these functions only write to the notification channel if it's empty to avoid blocking + // if scrape config updates are being rate-limited + AddFunc: func(obj interface{}) { + select { + case notifyEvents <- struct{}{}: + default: + } + }, + UpdateFunc: func(oldObj, newObj interface{}) { + select { + case notifyEvents <- struct{}{}: + default: + } + }, + DeleteFunc: func(obj interface{}) { + select { + case notifyEvents <- struct{}{}: + default: + } + }, + }) } if !success { return fmt.Errorf("failed to sync one of the caches") diff --git a/otelcollector/otel-allocator/internal/watcher/promOperator_test.go b/otelcollector/otel-allocator/internal/watcher/promOperator_test.go index 6880afcf9..0b0afca17 100644 --- a/otelcollector/otel-allocator/internal/watcher/promOperator_test.go +++ b/otelcollector/otel-allocator/internal/watcher/promOperator_test.go @@ -94,7 +94,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "serviceMonitor/test/simple/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -116,7 +116,7 @@ func TestLoadConfig(t *testing.T) { }, { JobName: "podMonitor/test/simple/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -187,7 +187,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "serviceMonitor/test/auth/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -255,7 +255,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "podMonitor/test/bearer/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -351,7 +351,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "serviceMonitor/test/valid-sm/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -373,7 +373,7 @@ func TestLoadConfig(t *testing.T) { }, { JobName: "podMonitor/test/valid-pm/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -462,7 +462,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "serviceMonitor/test/valid-sm/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -484,7 +484,7 @@ func TestLoadConfig(t *testing.T) { }, { JobName: "podMonitor/test/valid-pm/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -555,7 +555,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "serviceMonitor/test/sm-1/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -626,7 +626,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "podMonitor/test/pm-1/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -687,7 +687,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "scrapeConfig/test/scrapeconfig-test-1", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -751,7 +751,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "probe/test/probe-test-1", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -826,7 +826,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "serviceMonitor/labellednamespace/sm-1/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -896,7 +896,7 @@ func TestLoadConfig(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "podMonitor/labellednamespace/pm-1/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -1002,7 +1002,7 @@ func TestNamespaceLabelUpdate(t *testing.T) { ScrapeConfigs: []*promconfig.ScrapeConfig{ { JobName: "podMonitor/labellednamespace/pm-1/0", - ScrapeInterval: model.Duration(30 * time.Second), + ScrapeInterval: model.Duration(60 * time.Second), ScrapeProtocols: promconfig.DefaultScrapeProtocols, ScrapeTimeout: model.Duration(10 * time.Second), HonorTimestamps: true, @@ -1065,11 +1065,11 @@ func TestNamespaceLabelUpdate(t *testing.T) { assert.EventuallyWithT(t, func(collect *assert.CollectT) { got, err = w.LoadConfig(context.Background()) - assert.NoError(t, err) + assert.NoError(collect, err) sanitizeScrapeConfigsForTest(got.ScrapeConfigs) - assert.Equal(t, want_after.ScrapeConfigs, got.ScrapeConfigs) - }, time.Second*30, time.Millisecond*100) + assert.Equal(collect, want_after.ScrapeConfigs, got.ScrapeConfigs) + }, time.Second*60, time.Millisecond*100) } func TestRateLimit(t *testing.T) { @@ -1152,6 +1152,108 @@ func TestRateLimit(t *testing.T) { assert.Less(t, eventInterval, elapsedTime) } +func TestDefaultDurations(t *testing.T) { + namespace := "test" + portName := "web" + tests := []struct { + name string + serviceMonitors []*monitoringv1.ServiceMonitor + cfg allocatorconfig.Config + expectedScrape model.Duration + expectedEval model.Duration + }{ + { + name: "custom scrape and evaluation intervals", + serviceMonitors: []*monitoringv1.ServiceMonitor{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "test-sm", + Namespace: namespace, + }, + Spec: monitoringv1.ServiceMonitorSpec{ + JobLabel: "test", + Endpoints: []monitoringv1.Endpoint{ + { + Port: portName, + }, + }, + }, + }, + }, + cfg: allocatorconfig.Config{ + PrometheusCR: allocatorconfig.PrometheusCRConfig{ + ScrapeInterval: model.Duration(120 * time.Second), + EvaluationInterval: model.Duration(120 * time.Second), + ServiceMonitorSelector: &metav1.LabelSelector{}, + }, + }, + expectedScrape: model.Duration(120 * time.Second), + expectedEval: model.Duration(120 * time.Second), + }, + { + name: "prometheus operator applies defaults when intervals nil", + serviceMonitors: []*monitoringv1.ServiceMonitor{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "test-sm", + Namespace: namespace, + }, + Spec: monitoringv1.ServiceMonitorSpec{ + JobLabel: "test", + Endpoints: []monitoringv1.Endpoint{ + { + Port: portName, + }, + }, + }, + }, + }, + cfg: allocatorconfig.Config{ + PrometheusCR: allocatorconfig.PrometheusCRConfig{ + ServiceMonitorSelector: &metav1.LabelSelector{}, + }, + }, + expectedScrape: model.Duration(60 * time.Second), + expectedEval: model.Duration(60 * time.Second), + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + w, _ := getTestPrometheusCRWatcher(t, namespace, tt.serviceMonitors, nil, nil, nil, tt.cfg) + defer w.Close() + + events := make(chan Event, 1) + eventInterval := 5 * time.Millisecond + w.eventInterval = eventInterval + + go func() { + watchErr := w.Watch(events, make(chan error)) + require.NoError(t, watchErr) + }() + + if success := cache.WaitForNamedCacheSync("namespace", w.stopChannel, w.nsInformer.HasSynced); !success { + require.True(t, success) + } + + for _, informer := range w.informers { + success := cache.WaitForCacheSync(w.stopChannel, informer.HasSynced) + require.True(t, success) + } + + got, err := w.LoadConfig(context.Background()) + assert.NoError(t, err) + + assert.NotEmpty(t, got.ScrapeConfigs) + + for _, sc := range got.ScrapeConfigs { + assert.Equal(t, tt.expectedScrape, sc.ScrapeInterval) + } + assert.Equal(t, tt.expectedEval, got.GlobalConfig.EvaluationInterval) + }) + } +} + // getTestPrometheusCRWatcher creates a test instance of PrometheusCRWatcher with fake clients // and test secrets. func getTestPrometheusCRWatcher( @@ -1235,7 +1337,7 @@ func getTestPrometheusCRWatcher( }, Spec: monitoringv1.PrometheusSpec{ CommonPrometheusFields: monitoringv1.CommonPrometheusFields{ - ScrapeInterval: monitoringv1.Duration("30s"), + ScrapeInterval: monitoringv1.Duration(cfg.PrometheusCR.ScrapeInterval.String()), ServiceMonitorSelector: cfg.PrometheusCR.ServiceMonitorSelector, PodMonitorSelector: cfg.PrometheusCR.PodMonitorSelector, ServiceMonitorNamespaceSelector: cfg.PrometheusCR.ServiceMonitorNamespaceSelector, @@ -1246,7 +1348,7 @@ func getTestPrometheusCRWatcher( ScrapeConfigNamespaceSelector: cfg.PrometheusCR.ScrapeConfigNamespaceSelector, ServiceDiscoveryRole: &serviceDiscoveryRole, }, - EvaluationInterval: monitoringv1.Duration("30s"), + EvaluationInterval: monitoringv1.Duration(cfg.PrometheusCR.EvaluationInterval.String()), }, } diff --git a/otelcollector/prom-config-validator-builder/go.mod b/otelcollector/prom-config-validator-builder/go.mod index 3ff69008f..8563dae86 100644 --- a/otelcollector/prom-config-validator-builder/go.mod +++ b/otelcollector/prom-config-validator-builder/go.mod @@ -5,79 +5,79 @@ go 1.24.0 toolchain go1.24.7 require ( - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.136.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.141.0 github.com/prometheus-collector/shared v0.0.0-00010101000000-000000000000 - go.opentelemetry.io/collector/component v1.42.0 - go.opentelemetry.io/collector/confmap v1.42.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.42.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0 - go.opentelemetry.io/collector/exporter v1.42.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.136.0 - go.opentelemetry.io/collector/extension v1.42.0 - go.opentelemetry.io/collector/otelcol v0.136.0 - go.opentelemetry.io/collector/processor v1.42.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.136.0 - go.opentelemetry.io/collector/receiver v1.42.0 + go.opentelemetry.io/collector/component v1.47.0 + go.opentelemetry.io/collector/confmap v1.47.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.47.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0 + go.opentelemetry.io/collector/exporter v1.47.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.141.0 + go.opentelemetry.io/collector/extension v1.47.0 + go.opentelemetry.io/collector/otelcol v0.141.0 + go.opentelemetry.io/collector/processor v1.47.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.141.0 + go.opentelemetry.io/collector/receiver v1.47.0 gopkg.in/yaml.v2 v2.4.0 ) require ( - cloud.google.com/go/auth v0.16.2 // indirect + cloud.google.com/go/auth v0.16.5 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect - cloud.google.com/go/compute/metadata v0.7.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect + cloud.google.com/go/compute/metadata v0.9.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect 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.4.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/alecthomas/participle/v2 v2.1.4 // indirect github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect - github.com/antchfx/xmlquery v1.4.4 // indirect + github.com/antchfx/xmlquery v1.5.0 // indirect github.com/antchfx/xpath v1.3.5 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/aws/aws-sdk-go-v2 v1.37.0 // indirect - github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.39.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.12 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect - github.com/aws/smithy-go v1.22.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 // indirect + github.com/aws/smithy-go v1.23.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect + github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/coreos/go-systemd/v22 v22.6.0 // 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.157.0 // indirect + github.com/digitalocean/godo v1.165.1 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/docker v28.3.3+incompatible // indirect + github.com/docker/docker v28.5.1+incompatible // indirect github.com/docker/go-connections v0.6.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/ebitengine/purego v0.8.4 // indirect + github.com/ebitengine/purego v0.9.0 // indirect github.com/edsrzf/mmap-go v1.2.0 // 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/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/elastic/lunes v0.2.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect github.com/expr-lang/expr v1.17.6 // indirect github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect @@ -85,19 +85,19 @@ require ( github.com/felixge/httpsnoop v1.0.4 // indirect github.com/foxboron/go-tpm-keyfiles v0.0.0-20250903184740-5d135037bd4d // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/analysis v0.23.0 // indirect - github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/errors v0.22.3 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/loads v0.22.0 // indirect github.com/go-openapi/spec v0.21.0 // indirect - github.com/go-openapi/strfmt v0.23.0 // indirect + github.com/go-openapi/strfmt v0.24.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect github.com/go-openapi/validate v0.24.0 // indirect github.com/go-resty/resty/v2 v2.16.5 // indirect @@ -107,25 +107,23 @@ require ( github.com/goccy/go-json v0.10.5 // indirect github.com/goccy/go-yaml v1.18.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v1.0.0 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/go-tpm v0.9.6 // indirect - github.com/google/gofuzz v1.2.0 // indirect + github.com/google/go-tpm v0.9.7 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect - github.com/googleapis/gax-go/v2 v2.14.2 // indirect - github.com/gophercloud/gophercloud/v2 v2.7.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.27.1 // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect + github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect + github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect + github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect github.com/hashicorp/consul/api v1.32.0 // indirect - github.com/hashicorp/cronexpr v1.1.2 // indirect + github.com/hashicorp/cronexpr v1.1.3 // 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 @@ -136,9 +134,9 @@ require ( 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/nomad/api v0.0.0-20241218080744-e3ac00f30eec // indirect + github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af // indirect github.com/hashicorp/serf v0.10.1 // indirect - github.com/hetznercloud/hcloud-go/v2 v2.21.1 // indirect + github.com/hetznercloud/hcloud-go/v2 v2.25.1 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/ionos-cloud/sdk-go/v6 v6.3.4 // indirect @@ -146,13 +144,14 @@ require ( github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/julienschmidt/httprouter v1.3.0 // indirect - github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/compress v1.18.1 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/knadh/koanf/maps v0.1.2 // indirect github.com/knadh/koanf/providers/confmap v1.0.0 // indirect github.com/knadh/koanf/v2 v2.3.0 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/linode/linodego v1.52.2 // indirect + github.com/linode/linodego v1.59.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magefile/mage v1.15.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -160,7 +159,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mdlayher/socket v0.4.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect - github.com/miekg/dns v1.1.66 // indirect + github.com/miekg/dns v1.1.68 // 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 @@ -173,14 +172,14 @@ require ( github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/oklog/ulid/v2 v2.1.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.136.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.141.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/ovh/go-ovh v1.9.0 // indirect @@ -193,21 +192,21 @@ require ( github.com/prometheus/alertmanager v0.28.1 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect + github.com/prometheus/common v0.67.4 // indirect github.com/prometheus/common/assets v0.2.0 // indirect - github.com/prometheus/exporter-toolkit v0.14.0 // indirect - github.com/prometheus/otlptranslator v0.0.2 // indirect + github.com/prometheus/exporter-toolkit v0.15.0 // indirect + github.com/prometheus/otlptranslator v1.0.0 // indirect github.com/prometheus/procfs v0.17.0 // indirect - github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 // indirect - github.com/prometheus/sigv4 v0.2.0 // indirect + github.com/prometheus/prometheus v0.307.3 // indirect + github.com/prometheus/sigv4 v0.2.1 // indirect github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect github.com/rs/cors v1.11.1 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 // indirect - github.com/shirou/gopsutil/v4 v4.25.8 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 // indirect + github.com/shirou/gopsutil/v4 v4.25.10 // indirect github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c // indirect github.com/spf13/cobra v1.10.1 // indirect github.com/spf13/pflag v1.0.9 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.17.2 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.17.3 // indirect github.com/stretchr/testify v1.11.1 // indirect github.com/tklauser/go-sysconf v0.3.15 // indirect github.com/tklauser/numcpus v0.10.0 // indirect @@ -216,122 +215,124 @@ require ( 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.mongodb.org/mongo-driver v1.14.0 // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/collector v0.136.0 // indirect - go.opentelemetry.io/collector/client v1.42.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.136.0 // indirect - go.opentelemetry.io/collector/component/componenttest v0.136.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.136.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.42.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.136.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.136.0 // indirect - go.opentelemetry.io/collector/config/configmiddleware v1.42.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.42.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.42.0 // indirect - go.opentelemetry.io/collector/config/configoptional v0.136.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.42.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.136.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.42.0 // indirect - go.opentelemetry.io/collector/confmap/xconfmap v0.136.0 // indirect - go.opentelemetry.io/collector/connector v0.136.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.136.0 // indirect - go.opentelemetry.io/collector/connector/xconnector v0.136.0 // indirect - go.opentelemetry.io/collector/consumer v1.42.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/xconsumer v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/xexporter v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensionauth v1.42.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensiontest v0.136.0 // indirect - go.opentelemetry.io/collector/extension/xextension v0.136.0 // indirect - go.opentelemetry.io/collector/featuregate v1.42.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0 // indirect - go.opentelemetry.io/collector/internal/telemetry v0.136.0 // indirect - go.opentelemetry.io/collector/pdata v1.42.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.136.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.136.0 // indirect - go.opentelemetry.io/collector/pdata/xpdata v0.136.0 // indirect - go.opentelemetry.io/collector/pipeline v1.42.0 // indirect - go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper v0.136.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.136.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.136.0 // indirect - go.opentelemetry.io/collector/processor/xprocessor v0.136.0 // indirect - go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.136.0 // indirect - go.opentelemetry.io/collector/receiver/xreceiver v0.136.0 // indirect + github.com/zeebo/xxh3 v1.0.2 // indirect + go.mongodb.org/mongo-driver v1.17.4 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/collector v0.141.0 // indirect + go.opentelemetry.io/collector/client v1.47.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.141.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.141.0 // indirect + go.opentelemetry.io/collector/config/configauth v1.47.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.47.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.141.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.141.0 // indirect + go.opentelemetry.io/collector/config/configmiddleware v1.47.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.47.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.47.0 // indirect + go.opentelemetry.io/collector/config/configoptional v1.47.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.47.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.141.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.47.0 // indirect + go.opentelemetry.io/collector/confmap/xconfmap v0.141.0 // indirect + go.opentelemetry.io/collector/connector v0.141.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.141.0 // indirect + go.opentelemetry.io/collector/connector/xconnector v0.141.0 // indirect + go.opentelemetry.io/collector/consumer v1.47.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/xconsumer v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/xexporter v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensionauth v1.47.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.141.0 // indirect + go.opentelemetry.io/collector/extension/xextension v0.141.0 // indirect + go.opentelemetry.io/collector/featuregate v1.47.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0 // indirect + go.opentelemetry.io/collector/internal/telemetry v0.141.0 // indirect + go.opentelemetry.io/collector/pdata v1.47.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.141.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.141.0 // indirect + go.opentelemetry.io/collector/pdata/xpdata v0.141.0 // indirect + go.opentelemetry.io/collector/pipeline v1.47.0 // indirect + go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper v0.141.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.141.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.141.0 // indirect + go.opentelemetry.io/collector/processor/xprocessor v0.141.0 // indirect + go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.141.0 // indirect + go.opentelemetry.io/collector/receiver/xreceiver v0.141.0 // indirect go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 // indirect - go.opentelemetry.io/collector/service v0.136.0 // indirect - go.opentelemetry.io/collector/service/hostcapabilities v0.136.0 // indirect - go.opentelemetry.io/contrib/bridges/otelzap v0.12.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 // indirect + go.opentelemetry.io/collector/service v0.141.0 // indirect + go.opentelemetry.io/collector/service/hostcapabilities v0.141.0 // indirect + go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect - go.opentelemetry.io/contrib/otelconf v0.16.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.37.0 // indirect + go.opentelemetry.io/contrib/otelconf v0.18.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.38.0 // indirect go.opentelemetry.io/otel v1.38.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.60.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 // indirect go.opentelemetry.io/otel/log v0.14.0 // indirect go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/sdk v1.38.0 // indirect - go.opentelemetry.io/otel/sdk/log v0.13.0 // indirect + go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect - go.opentelemetry.io/proto/otlp v1.7.0 // indirect + go.opentelemetry.io/proto/otlp v1.7.1 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/goleak v1.3.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap v1.27.0 // indirect + go.uber.org/zap v1.27.1 // indirect go.uber.org/zap/exp v0.3.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.42.0 // indirect - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.27.0 // indirect - golang.org/x/net v0.44.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.17.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/term v0.35.0 // indirect - golang.org/x/text v0.29.0 // indirect - golang.org/x/time v0.12.0 // indirect - golang.org/x/tools v0.36.0 // indirect + golang.org/x/crypto v0.45.0 // indirect + golang.org/x/exp v0.0.0-20250808145144-a408d31f581a // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/oauth2 v0.32.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect + golang.org/x/time v0.13.0 // indirect + golang.org/x/tools v0.38.0 // indirect gonum.org/v1/gonum v0.16.0 // indirect - google.golang.org/api v0.239.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect - google.golang.org/grpc v1.75.1 // indirect - google.golang.org/protobuf v1.36.9 // indirect + google.golang.org/api v0.250.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect + google.golang.org/grpc v1.77.0 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // 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 - k8s.io/api v0.32.3 // indirect - k8s.io/apimachinery v0.32.3 // indirect - k8s.io/client-go v0.32.3 // indirect + k8s.io/api v0.34.1 // indirect + k8s.io/apimachinery v0.34.1 // indirect + k8s.io/client-go v0.34.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect - sigs.k8s.io/yaml v1.5.0 // indirect + k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver => ../prometheusreceiver diff --git a/otelcollector/prom-config-validator-builder/go.sum b/otelcollector/prom-config-validator-builder/go.sum index e46ba1034..031c57f46 100644 --- a/otelcollector/prom-config-validator-builder/go.sum +++ b/otelcollector/prom-config-validator-builder/go.sum @@ -1,19 +1,19 @@ -cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4= -cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA= +cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI= +cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= -cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= -cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= -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/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= +dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 h1:wL5IEG5zb7BVv1Kv0Xm92orq+5hB5Nipn3B5tn4Rqfk= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0/go.mod h1:J7MUC/wtRpfGVbQ5sIItY5/FuVWmvzlY21WAOfQnq/I= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= @@ -26,8 +26,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= 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/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -45,9 +45,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/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b h1:mimo19zliBX/vSQ6PWWSL9lK8qwHozUj03+zLoEB8O0= github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs= -github.com/antchfx/xmlquery v1.4.4 h1:mxMEkdYP3pjKSftxss4nUHfjBhnMk4imGoR96FRY2dg= -github.com/antchfx/xmlquery v1.4.4/go.mod h1:AEPEEPYE9GnA2mj5Ur2L5Q5/2PycJ0N9Fusrx9b12fc= -github.com/antchfx/xpath v1.3.3/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= +github.com/antchfx/xmlquery v1.5.0 h1:uAi+mO40ZWfyU6mlUBxRVvL6uBNZ6LMU4M3+mQIBV4c= +github.com/antchfx/xmlquery v1.5.0/go.mod h1:lJfWRXzYMK1ss32zm1GQV3gMIW/HFey3xDZmkP1SuNc= github.com/antchfx/xpath v1.3.5 h1:PqbXLC3TkfeZyakF5eeh3NTWEbYl4VHNVeufANzDbKQ= github.com/antchfx/xpath v1.3.5/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= @@ -58,36 +57,36 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go-v2 v1.37.0 h1:YtCOESR/pN4j5oA7cVHSfOwIcuh/KwHC4DOSXFbv5F0= -github.com/aws/aws-sdk-go-v2 v1.37.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= -github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= -github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 h1:H2iZoqW/v2Jnrh1FnU725Bq6KJ0k2uP63yH+DcY+HUI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0/go.mod h1:L0FqLbwMXHvNC/7crWV1iIxUlOKYZUE8KuTIA+TozAI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 h1:EDped/rNzAhFPhVY0sDGbtD16OKqksfA8OjF/kLEgw8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0/go.mod h1:uUI335jvzpZRPpjYx6ODc/wg1qH+NnoSTK/FwVeK0C0= +github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= +github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8= +github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 h1:Mv4Bc0mWmv6oDuSWTKnk+wgeqPL5DRFu5bQL9BGPQ8Y= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9/go.mod h1:IKlKfRppK2a1y0gy1yH6zD+yX5uplJ6UuPlgd48dJiQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 h1:XHE2G+yaDQql32FZt19QmQt4WuisqQJIkMUSCxeCUl8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0/go.mod h1:t11/j/nH9i6bbsPH9xc04BJOsV2nVPUqrB67/TLDsyM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 h1:eRhU3Sh8dGbaniI6B+I48XJMrTPRkK4DKo+vqIxziOU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0/go.mod h1:paNLV18DZ6FnWE/bd06RIKPDIFpjuvCkGKWTG/GDBeM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 h1:QiiCqpKy0prxq+92uWfESzcb7/8Y9JAamcMOzVYLEoM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0/go.mod h1:ESppxYqXQCpCY+KWl3BdkQjmsQX6zxKP39SnDtRDoU0= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= -github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= -github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 h1:7p9bJCZ/b3EJXXARW7JMEs2IhsnI4YFHpfXQfgMh0eg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1/go.mod h1:M8WWWIfXmxA4RgTXcI/5cSByxRqjgne32Sh0VIbrn0A= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 h1:J1A0VJlt5HgUX6s11Obe9zrBDECeE2uhQc7Dwhdei9o= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1/go.mod h1:WEOSRNyfIfvgrD9MuSIGrogKyuFahaVMziVq1pHI0NQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 h1:A1oRkiSQOWstGh61y4Wc/yQ04sqrQZr1Si/oAXj20/s= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 h1:5fm5RTONng73/QA73LhCNR7UT9RpFH3hR6HWL6bIgVY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1/go.mod h1:xBEjWD13h+6nq+z4AkqSfSvqRKFgDIQeaMguAJndOWo= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 h1:p3jIvqYwUZgu/XYeI48bJxOhvm47hZb5HUQ0tn6Q9kA= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6/go.mod h1:WtKK+ppze5yKPkZ0XwqIVWD4beCwv056ZbPQNoeHqM8= +github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= +github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3/go.mod h1:CIWtjkly68+yqLPbvwwR/fjNJA/idrtULjZWh2v1ys0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -104,8 +103,8 @@ 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/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -114,8 +113,8 @@ 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= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -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/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo= +github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU= github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= @@ -125,32 +124,30 @@ 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/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/digitalocean/godo v1.157.0 h1:ReELaS6FxXNf8gryUiVH0wmyUmZN8/NCmBX4gXd3F0o= -github.com/digitalocean/godo v1.157.0/go.mod h1:tYeiWY5ZXVpU48YaFv0M5irUFHXGorZpDNm7zzdWMzM= +github.com/digitalocean/godo v1.165.1 h1:H37+W7TaGFOVH+HpMW4ZeW/hrq3AGNxg+B/K8/dZ9mQ= +github.com/digitalocean/godo v1.165.1/go.mod h1:xQsWpVCCbkDrWisHA72hPzPlnC+4W5w/McZY5ij9uvU= 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/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v28.3.3+incompatible h1:Dypm25kh4rmk49v1eiVbsAtpAsYURjYkaKubwuBdxEI= -github.com/docker/docker v28.3.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.5.1+incompatible h1:Bm8DchhSD2J6PsFzxC35TZo4TLGR2PdW/E69rU45NhM= +github.com/docker/docker v28.5.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= 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/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= -github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/ebitengine/purego v0.9.0 h1:mh0zpKBIXDceC63hpvPuGLiJ8ZAa3DfrFTudmfi8A4k= +github.com/ebitengine/purego v0.9.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/edsrzf/mmap-go v1.2.0 h1:hXLYlkbaPzt1SaQk+anYwKSRNhufIDCchSPkUD6dD84= github.com/edsrzf/mmap-go v1.2.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= 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/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= -github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/elastic/lunes v0.2.0 h1:WI3bsdOTuaYXVe2DS1KbqA7u7FOHN4o8qJw80ZyZoQs= +github.com/elastic/lunes v0.2.0/go.mod h1:u3W/BdONWTrh0JjNZ21C907dDc+cUZttZrGa625nf2k= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo= +github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/expr-lang/expr v1.17.6 h1:1h6i8ONk9cexhDmowO/A64VPxHScu7qfSl2k8OlINec= @@ -170,8 +167,8 @@ github.com/foxboron/swtpm_test v0.0.0-20230726224112-46aaafdf7006 h1:50sW4r0Pcvl github.com/foxboron/swtpm_test v0.0.0-20230726224112-46aaafdf7006/go.mod h1:eIXCMsMYCaqq9m1KSSxXwQG11krpuNPGP3k0uaWrbas= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.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/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= 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.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= @@ -189,8 +186,8 @@ 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-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= -github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= -github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= +github.com/go-openapi/errors v0.22.3 h1:k6Hxa5Jg1TUyZnOwV2Lh81j8ayNw5VVYLvKrp4zFKFs= +github.com/go-openapi/errors v0.22.3/go.mod h1:+WvbaBBULWCOna//9B9TbLNGSFOfF8lY9dw4hGiEiKQ= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -199,8 +196,8 @@ github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8A github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= -github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= -github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= +github.com/go-openapi/strfmt v0.24.0 h1:dDsopqbI3wrrlIzeXRbqMihRNnjzGC+ez4NQaAAJLuc= +github.com/go-openapi/strfmt v0.24.0/go.mod h1:Lnn1Bk9rZjXxU9VMADbEEOo7D7CDyKGLsSKekhFr7s4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= @@ -220,12 +217,11 @@ github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= 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/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -236,51 +232,48 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/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.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -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/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.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= 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.2/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/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= -github.com/google/go-tpm v0.9.6 h1:Ku42PT4LmjDu1H5C5ISWLlpI1mj+Zq7sPGKoRw2XROA= -github.com/google/go-tpm v0.9.6/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= +github.com/google/go-tpm v0.9.7 h1:u89J4tUUeDTlH8xxC3CTW7OHZjbjKoHdQ9W7gCUhtxA= +github.com/google/go-tpm v0.9.7/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= github.com/google/go-tpm-tools v0.4.4 h1:oiQfAIkc6xTy9Fl5NKTeTJkBTlXdHsxAofmQyxBKY98= github.com/google/go-tpm-tools v0.4.4/go.mod h1:T8jXkp2s+eltnCDIsXR84/MTcVU9Ja7bh3Mit0pa4AY= 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-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18= -github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8 h1:ZI8gCoCjGzPsum4L21jHdQs8shFBIQih1TM9Rd/c+EQ= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= 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.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= -github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= -github.com/gophercloud/gophercloud/v2 v2.7.0 h1:o0m4kgVcPgHlcXiWAjoVxGd8QCmvM5VU+YM71pFbn0E= -github.com/gophercloud/gophercloud/v2 v2.7.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= -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/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= +github.com/gophercloud/gophercloud/v2 v2.8.0 h1:of2+8tT6+FbEYHfYC8GBu8TXJNsXYSNm9KuvpX7Neqo= +github.com/gophercloud/gophercloud/v2 v2.8.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 h1:cLN4IBkmkYZNnk7EAJ0BHIethd+J6LqxFNw5mSiI2bM= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/hashicorp/consul/api v1.32.0 h1:5wp5u780Gri7c4OedGEPzmlUEzi0g2KyiPphSr6zjVg= github.com/hashicorp/consul/api v1.32.0/go.mod h1:Z8YgY0eVPukT/17ejW+l+C7zJmKwgPHtjU1q16v/Y40= 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= -github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/cronexpr v1.1.3 h1:rl5IkxXN2m681EfivTlccqIryzYJSXRGRNa0xeG7NA4= +github.com/hashicorp/cronexpr v1.1.3/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= 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= @@ -327,12 +320,12 @@ github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/ github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= github.com/hashicorp/memberlist v0.5.1 h1:mk5dRuzeDNis2bi6LLoQIXfMH7JQvAzt3mQD0vNZZUo= github.com/hashicorp/memberlist v0.5.1/go.mod h1:zGDXV6AqbDTKTM6yxW0I4+JtFzZAJVoIPvss4hV8F24= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec h1:+YBzb977VrmffaCX/OBm17dEVJUcWn5dW+eqs3aIJ/A= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af h1:ScAYf8O+9xTqTJPZH8MIlUfO+ak8cb31rW1aYJgS+jE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af/go.mod h1:sldFTIgs+FsUeKU3LwVjviAIuksxD8TzDOn02MYwslE= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hetznercloud/hcloud-go/v2 v2.21.1 h1:IH3liW8/cCRjfJ4cyqYvw3s1ek+KWP8dl1roa0lD8JM= -github.com/hetznercloud/hcloud-go/v2 v2.21.1/go.mod h1:XOaYycZJ3XKMVWzmqQ24/+1V7ormJHmPdck/kxrNnQA= +github.com/hetznercloud/hcloud-go/v2 v2.25.1 h1:ib86acotlvgUSnKfFG5FJl0VFeYKe/Ht8nmikdUp+po= +github.com/hetznercloud/hcloud-go/v2 v2.25.1/go.mod h1:uQdAWaW3d9TimiyOjQWY8HKShs0Nd6S4wNYqo0HjvIY= 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/iancoleman/strcase v0.3.0 h1:nTXanmYxhfFAMjZL34Ov6gkzEsSJZ5DbhxWjvSASxEI= @@ -341,8 +334,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/ionos-cloud/sdk-go/v6 v6.3.4 h1:jTvGl4LOF8v8OYoEIBNVwbFoqSGAFqn6vGE7sp7/BqQ= github.com/ionos-cloud/sdk-go/v6 v6.3.4/go.mod h1:wCVwNJ/21W29FWFUv+fNawOTMlFoP1dS3L+ZuztFW48= -github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= -github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= +github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= +github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -358,8 +351,10 @@ github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRt github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= 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.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= -github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= +github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= +github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v1.0.0 h1:mHKLJTE7iXEys6deO5p6olAiZdG5zwp8Aebir+/EaRE= @@ -379,8 +374,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/linode/linodego v1.52.2 h1:N9ozU27To1LMSrDd8WvJZ5STSz1eGYdyLnxhAR/dIZg= -github.com/linode/linodego v1.52.2/go.mod h1:bI949fZaVchjWyKIA08hNyvAcV6BAS+PM2op3p7PAWA= +github.com/linode/linodego v1.59.0 h1:kYz6sQH9g0u21gbI1UUFjZmFLirtc39JPybygrW76Q0= +github.com/linode/linodego v1.59.0/go.mod h1:1+Bt0oTz5rBnDOJbGhccxn7LYVytXTIIfAy7QYmijDs= 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/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= @@ -413,15 +408,13 @@ github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= 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.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE= -github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE= +github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA= +github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= 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= 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 v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/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= @@ -468,38 +461,38 @@ github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.136.0 h1:pVhDE2Ju3y5kojjRJ0qElBKrfhICXFzMzwcIA2rwerc= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.136.0/go.mod h1:978Wrtzu0OJbrfW6rpuBLfvl671rKqcjV3/Y0sOC8Fs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.136.0 h1:jgNOzBqIkRvh5jTEaWjwtqbgP2DIYdjb3JgcVu3Hg2s= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.136.0/go.mod h1:ND2gE9ky7XdVCPvJL/uH3Upzdq2Wp1+HZZDNLDh++Tc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.136.0 h1:ofSNZonHS44OCPgi/rPoNkNxC1v8nHxPNWa5TAtK6Cs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.136.0/go.mod h1:Loh7TRQEfeJ+N3KvPBjIE+7ewhtKtk58ac5B/eEcXhE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.136.0 h1:iw305OKkyu6xYgHA/zV4HvEpU6w9fzg5COEh5bMhor4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.136.0/go.mod h1:LqKBsP+TSqiaMlOv9lQ731roP0JTjCUekw0rcm0sghE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.136.0 h1:OuR81KyWJaEXOoPT/qa9B8RJsUEPyniZwJwANPPdEvk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.136.0/go.mod h1:rHQxv7q4gR8ZKk6rzPhXsjlXDY3o54SC6stTpgYw8q8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.136.0 h1:mKELU5kjXPclcITDvCwy7xZ9za6J7sCIiVj2DlEMqng= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.136.0/go.mod h1:ZCfcimdENbhW1A/ubn6KHgVn2PRoeZ3DDy0vrH4uvGA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.136.0 h1:QUOaiK3ur0645Ivt/sbIHZpmPEWBj0Gbv05Q4mRgBCE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.136.0/go.mod h1:Vhkv+ColKVM57X6VXnrwQN22XvvZZ052pA5ghpQPH2Y= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.136.0 h1:EYLhEj1o8j/FhMPm3zMY+PsSsMPGCV6HK/9owsVhOQw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.136.0/go.mod h1:8MyCN0t5LHRe6Y1nOhpZkUBl7FPGJY8gQZaUHOQClUU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.136.0 h1:lDLdXA9WIvFCK4P6dFdsYJSDDNgaacj+afw7dOBIel8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.136.0/go.mod h1:q15PuRASnJ6doVHWTt6ug2VvB0rSeUf39CjqKKVqFlU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.136.0 h1:gp2AYLP2yL5O0RTiKpyORvxqjSEypMSH/6laB5bh0l4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.136.0/go.mod h1:5mPPRoLAp4uhg7tV+OLR+HmHyYtALSGZ0oMVHgMAfL8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.136.0 h1:GqXklBwfz5soY4wRzYrMTljPOSgGwtGZUFeJ377v2CU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.136.0/go.mod h1:t7VtqzYX3cQXcELIaoYzAAQ4fMVzMJxYP6eQmi5FFWI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.136.0 h1:u8SJhb+BmHukyg0DszoYMpsBLJ0ZUuRjKqLOcjnczhE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.136.0/go.mod h1:HIPCM9JaZ31QUfkEUJY7SYdmfH3zWuhcNt0PoOlBWKE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.136.0 h1:7mLIozG1dsFkT4bN9AjY24RsESWddOAxwcMLsGcVdkU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.136.0/go.mod h1:ZsTpEnxDR6VFCnx6o2vBW1bSd7kJwjEgTjdgp0/Fbmw= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.136.0 h1:3m1GQBFf8xRXjozuuyJD97122Rh81KiSR4HAMaN4Xfk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.136.0/go.mod h1:5LdAGh7nkcym4+EzmzCDNK9Qdp7mL1TPzzQpdPEJtds= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.136.0 h1:Z+pxuXaNWM34xoS5ktUHkI55uBDBrA3D6XZU3vDCQFA= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.136.0/go.mod h1:nMaiQG/zpgLmKqIDitLUZNMM9JGbHu75udMeEQ96Zc4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.136.0 h1:GHAl/v04NITgEg4PB/eJELVVMKcL/JJ6rnwmFWOMvEU= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.136.0/go.mod h1:/F1/oNY6fOPsS7z73MWCn6dIeA0oQiCMtlP3EqBAuK0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.141.0 h1:hNsgOLxOZrWFxWM2vsmoyhwzBAkM5GeYpzNC8fNhraE= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.141.0/go.mod h1:9xM9ZPfSCS+hAFYYJdMQBwCVhD6uTqCx8v4n/W9azmo= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.141.0 h1:2EzfxvGyBqT1Xsl6TCuzRuedpShwMDW+oLMkM4FKICg= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.141.0/go.mod h1:ZCswp+K42xFdAAlpvW5j8UhMRS+U6+3fBkjGIC11Qvs= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.141.0 h1:6gwdPMl80oNOMlPqmwVDMA+FxLY7eT7yhodMG3fO6nc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.141.0/go.mod h1:QaA5DvWjGF/jOzcKW2fzmmPs6NJNO470wWLXU6xnxM8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.141.0 h1:Qld0XhVUI81Fyx0y4lPRuKCYws9OpBqhyALteFAIwUU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.141.0/go.mod h1:7f7+goLrZ8HYMfm810sBxscn33kGaQJFWcLJgJ5tq5A= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.141.0 h1:faF6pRSmxtLmHtHQR9MiStuF4qsTHETEMEoUkKGZHMc= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.141.0/go.mod h1:Lfbwcn6JY7XgukcmE06RpJ9VxPUvINK7UJbrihuo32g= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.141.0 h1:2CC05z0fpxFnEsB4XpVMpIaQa1hv0ZfJ5TsCjLPTOfM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.141.0/go.mod h1:QTceC+e3mAclBVDvBUuWvOvzRcIBikDr7jPJ4d/OgHs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.141.0 h1:i7ky2m55NLa38k2lIIMP+kafco7dT2dpNkAiv/iYtQM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.141.0/go.mod h1:1ZyTGGX3SK9wJ0aLLW6S60bDnFo0aQmjywkWs059wlc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.141.0 h1:3nlsF0fNlR5sp5SMcUJLUiaHyRIXTd4Cws87sDgqhdM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.141.0/go.mod h1:a9zs/F71CSxdsV37GUQO8HJykDPA1TJyYSTztO2+x4U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.141.0 h1:jy4EmUFaNUiY6NkyxjF8kHj6bal3O+D/r0XefaCh0bo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.141.0/go.mod h1:sxSF8MmAnLHlXctRgT9s2fbl7uNR5g4uh4CMQsggJO4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.141.0 h1:35xMzHfdAK4WFa+p6q+XgwY/Et7eHJD77p/kKj+F29s= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.141.0/go.mod h1:1MQ6n2yZtJHH59iIb4eU2RIJVt5nVCS2w82yL6wuRU4= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.141.0 h1:I9N4Oyxf0CqND+PwGu7f0EIxMNJoliIAbSDbdp+nifE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.141.0/go.mod h1:mF0nNqBnrqAiRDGyr5eKv9YsIzFkzIUb9jcmO3s4cxU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.141.0 h1:+QiCicV2AW48akQTn7eDjRh4xwjCkK7wC+U8TaEktC8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.141.0/go.mod h1:RbRbltRdagN1XJi8RNzi5Kb1pPJrF2uXIz0njyaVEaY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.141.0 h1:tvNr9AgMCb3QzNWXolKCJxpuyujrhRN77HyctzG9WUE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.141.0/go.mod h1:+0wa84ghb3vqUVtN5oO2iacqDD9FFtzDyO+1Stl52mE= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.141.0 h1:czIcDtf+Jx/A6V7WnlMdQfRZh2VEnEd9etHS1sTQMx4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.141.0/go.mod h1:kMzVuBFzE+sE+BkWHJCylv3sKXQqPdtfwyQIU7TrQJM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.141.0 h1:OKRG4Wwg9zEN/BL7IGONrjgJ0YPwuLwrCXPG5Kcvj74= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.141.0/go.mod h1:K+qndqUqnztWPyK8LAX9VpIBupoeHD4LnZoAwH4HmCs= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.141.0 h1:PqeNU2uqBa6tLM+1fGvysooSHYWA+3cR8lkmSt3Jzoc= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.141.0/go.mod h1:e20CbQWp8c3FA7IJCvxA7fuuOJvLe7r9/GrqlcLsmrA= 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.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= @@ -541,41 +534,39 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= 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.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc= +github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM= github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI= -github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= -github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= -github.com/prometheus/otlptranslator v0.0.2 h1:+1CdeLVrRQ6Psmhnobldo0kTp96Rj80DRXRd5OSnMEQ= -github.com/prometheus/otlptranslator v0.0.2/go.mod h1:P8AwMgdD7XEr6QRUJ2QWLpiAZTgTE2UYgjlu3svompI= +github.com/prometheus/exporter-toolkit v0.15.0 h1:Pcle5sSViwR1x0gdPd0wtYrPQENBieQAM7TmT0qtb2U= +github.com/prometheus/exporter-toolkit v0.15.0/go.mod h1:OyRWd2iTo6Xge9Kedvv0IhCrJSBu36JCfJ2yVniRIYk= +github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= +github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= 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.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0= github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 h1:EtTzzd5UW9TXf9C8BUHv66RgdjG51efqGKWmlxMqjgs= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261/go.mod h1:KMw//femth6oNhcWeCrh4Er45VNPkNac87cTK6er/dA= -github.com/prometheus/sigv4 v0.2.0 h1:qDFKnHYFswJxdzGeRP63c4HlH3Vbn1Yf/Ao2zabtVXk= -github.com/prometheus/sigv4 v0.2.0/go.mod h1:D04rqmAaPPEUkjRQxGqjoxdyJuyCh6E0M18fZr0zBiE= +github.com/prometheus/prometheus v0.307.3 h1:zGIN3EpiKacbMatcUL2i6wC26eRWXdoXfNPjoBc2l34= +github.com/prometheus/prometheus v0.307.3/go.mod h1:sPbNW+KTS7WmzFIafC3Inzb6oZVaGLnSvwqTdz2jxRQ= +github.com/prometheus/sigv4 v0.2.1 h1:hl8D3+QEzU9rRmbKIRwMKRwaFGyLkbPdH5ZerglRHY0= +github.com/prometheus/sigv4 v0.2.1/go.mod h1:ySk6TahIlsR2sxADuHy4IBFhwEjRGGsfbbLGhFYFj6Q= github.com/puzpuzpuz/xsync/v3 v3.5.1 h1:GJYJZwO6IdxN/IKbneznS6yPkVC+c3zyY/j19c++5Fg= github.com/puzpuzpuz/xsync/v3 v3.5.1/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= -github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= -github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -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/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= 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/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 h1:KhF0WejiUTDbL5X55nXowP7zNopwpowa6qaMAWyIE+0= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33/go.mod h1:792k1RTU+5JeMXm35/e2Wgp71qPH/DmDoZrRc+EFZDk= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 h1:8xfn1RzeI9yoCUuEwDy08F+No6PcKZGEDOQ6hrRyLts= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35/go.mod h1:47B1d/YXmSAxlJxUJxClzHR6b3T4M1WyCvwENPQNBWc= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shirou/gopsutil/v4 v4.25.8 h1:NnAsw9lN7587WHxjJA9ryDnqhJpFH6A+wagYWTOH970= -github.com/shirou/gopsutil/v4 v4.25.8/go.mod h1:q9QdMmfAOVIw7a+eF86P7ISEU6ka+NLgkUxlopV4RwI= -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.25.10 h1:at8lk/5T1OgtuCp+AwrDofFRjnvosn0nkN2OLQ6g8tA= +github.com/shirou/gopsutil/v4 v4.25.10/go.mod h1:+kSwyC8DRUD9XXEHCAFjK+0nuArFJM0lva+StQAcskM= +github.com/shoenig/test v1.12.2 h1:ZVT8NeIUwGWpZcKaepPmFMoNQ3sVpxvqUh/MAqwFiJI= +github.com/shoenig/test v1.12.2/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c h1:aqg5Vm5dwtvL+YgDpBcK1ITf3o96N/K7/wsRXQnUTEs= github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c/go.mod h1:owqhoLW1qZoYLZzLnBw+QkPP9WZnjlSWihhxAJC1+/M= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -586,8 +577,8 @@ github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2 h1:jPyn+i8rkp2hM80+hOg0B/1EVRbMt778Tr5RWyK1m2E= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2/go.mod h1:8KIw3czdNJ9sdil9QQimxjR6vHjeINFrRv0iZ67wfn0= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg= 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= @@ -604,8 +595,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.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/testcontainers/testcontainers-go v0.38.0 h1:d7uEapLcv2P8AvH8ahLqDMMxda2W9gQN1nRbHS28HBw= -github.com/testcontainers/testcontainers-go v0.38.0/go.mod h1:C52c9MoHpWO+C4aqmgSU+hxlR5jlEayWtgYrb8Pzz1w= +github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= +github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY= github.com/tidwall/gjson v1.10.2 h1:APbLGOM0rrEkd8WBw9C24nllro4ajFuJu0Sc9hRz8Bo= github.com/tidwall/gjson v1.10.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -634,182 +625,188 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec 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.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= -go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/collector v0.136.0 h1:fEXsiNTa7itOD2SCspqBep6fnULa7mglLlNyhSizqok= -go.opentelemetry.io/collector v0.136.0/go.mod h1:m7YjwJ3xAzGIWa+vyHOE48R6pTKgh90vnlXjFhoB5+A= -go.opentelemetry.io/collector/client v1.42.0 h1:oBEWwd0ZgC9OLlIKZX7vo8PLXuUFoXuy3k0CuzLiKcM= -go.opentelemetry.io/collector/client v1.42.0/go.mod h1:GbBP2Ztn1xeeaAX6hIus0NOH/J0HcRgHP7SU8VDxwP0= -go.opentelemetry.io/collector/component v1.42.0 h1:on4XJ/NT1oPnuCVKDEtlpcr3GGPAS9taWBe8woHSTmY= -go.opentelemetry.io/collector/component v1.42.0/go.mod h1:mehIbkABLhEEs3kmAqer2GRmLwcQLoeF7C48CR6lxP0= -go.opentelemetry.io/collector/component/componentstatus v0.136.0 h1:MOD0t//ZYi23kIpjUm3Cqbp48xoNXPgFL8JBXp/kKaY= -go.opentelemetry.io/collector/component/componentstatus v0.136.0/go.mod h1:rwy++UVZJmymzltlvdYZptTvfxqLC4Vn9jMcM9X8U1c= -go.opentelemetry.io/collector/component/componenttest v0.136.0 h1:24U54okKfUl7tSApQ+84joz8KXgZicWgH+O7UB4fgNI= -go.opentelemetry.io/collector/component/componenttest v0.136.0/go.mod h1:diUZ4BjPMz0PJ/ur5BO9jSBWd8qebvOWMxVrEAoT6dQ= -go.opentelemetry.io/collector/config/configauth v0.136.0 h1:Xpi7zmpvidot/RRAcWN+8xkx87947+Ec1xMDGOLd+l4= -go.opentelemetry.io/collector/config/configauth v0.136.0/go.mod h1:WzZxFZqlc7pxbQxeto+kkV2zXFiEm5NA14fkjDp5kKU= -go.opentelemetry.io/collector/config/configcompression v1.42.0 h1:vznptUF452U526FHHp/fhGL9KgFCLb3sZ+iq4PXQYII= -go.opentelemetry.io/collector/config/configcompression v1.42.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= -go.opentelemetry.io/collector/config/configgrpc v0.136.0 h1:JutKKrIa44ec6VSrE8/0K/hPewJ4H69QbkYs3Gh3/k4= -go.opentelemetry.io/collector/config/configgrpc v0.136.0/go.mod h1:yxJgGrmH9jW/hPUvLlpGLsNRiQcOgK67r5RL4dvvdDE= -go.opentelemetry.io/collector/config/confighttp v0.136.0 h1:7wnmvlm4mZOnF4LD9Q0FIU35EW2z0KB94HRBqM0S0Xw= -go.opentelemetry.io/collector/config/confighttp v0.136.0/go.mod h1:F6zKdR0MagtYZ8NBJOgw9VqPbY+BwkWmO9UYE5mODGU= -go.opentelemetry.io/collector/config/configmiddleware v1.42.0 h1:11LMjkIPnNirc5okrcjO8CEbJ+2Xo7WM/CJqv6J97+M= -go.opentelemetry.io/collector/config/configmiddleware v1.42.0/go.mod h1:v45dyG4WvLxC0Yfw80NvjSFzngTUJdH9zzZOTAXenjg= -go.opentelemetry.io/collector/config/confignet v1.42.0 h1:K2tHmUzCOQiIYr84K+dxugkxQ0jVvYEyHxAhMU7CR0Y= -go.opentelemetry.io/collector/config/confignet v1.42.0/go.mod h1:4jJWdoe1MmpqxMzxrIILcS5FK2JPocXYZGUvv5ZQVKE= -go.opentelemetry.io/collector/config/configopaque v1.42.0 h1:AffFfB6FMKrgvgeSHCsOo+Q1cR4I2kqM3nRwEr/iHyk= -go.opentelemetry.io/collector/config/configopaque v1.42.0/go.mod h1:9uzLyGsWX0FtPWkomQXqLtblmSHgJFaM4T0gMBrCma0= -go.opentelemetry.io/collector/config/configoptional v0.136.0 h1:DwrduTAWbPwOW/k4GPcYUFB7DLruLvs+Zg2/RAHJ2DI= -go.opentelemetry.io/collector/config/configoptional v0.136.0/go.mod h1:hFcVjh2DqKIVMA9mbb2ctSW8d0SRN2UrNim33WxZM4o= -go.opentelemetry.io/collector/config/configretry v1.42.0 h1:iCm6gr8V7+J1ZI6fiHHeDqMzvFvJ9xKMlZt5DC2M5Vw= -go.opentelemetry.io/collector/config/configretry v1.42.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= -go.opentelemetry.io/collector/config/configtelemetry v0.136.0 h1:d5So8zVG6gRl7I3v2Trvk9kPkzSO6kubrcEUZ+wrasw= -go.opentelemetry.io/collector/config/configtelemetry v0.136.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= -go.opentelemetry.io/collector/config/configtls v1.42.0 h1:gACpOXSmxBeo+M8qjSxt7AU04B0qWzjqg2ZLvMA8Sdo= -go.opentelemetry.io/collector/config/configtls v1.42.0/go.mod h1:SJNnptQLBW+nO4CgTtNI1di8nAHNOIl2gclu9GsmK8g= -go.opentelemetry.io/collector/confmap v1.42.0 h1:Hdeqq1RkGBBWbmDpa96aC5LchklzUzCu4aSRRoPicng= -go.opentelemetry.io/collector/confmap v1.42.0/go.mod h1:KW/l4uXBGnl5OM8WYi3gTg6PeG+y24nlIMS71KwWQjk= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.42.0 h1:I4ijuuEUBtePNu7v3C8S/uwEwcXsQnos6d/lvCKby6k= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.42.0/go.mod h1:Nd5diM9jWG9sg6d6eHvR3sIuYgnU9PptExuCgELKTIs= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0 h1:BGejutI9811qBuzlV9jUI0vOLLR/6P/yprn4HqrQkh4= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0/go.mod h1:tT2TNx//LDPh5vxKg07kW07n5lPRJmbKkT3oISTdBa4= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.42.0 h1:M0Vo2jp1LJrtudwGO4jdhNGKnRxh3D0NsJV/pY6Nnwk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.42.0/go.mod h1:SJLJgZ7Q21O+MXOQnoNhliEjmk1Wr3DDRf3MTeB3Dlk= -go.opentelemetry.io/collector/confmap/xconfmap v0.136.0 h1:eC14gN+NL5HxmOmN9Aa4SkAnJhmUgmYP5cgEjCdz0sw= -go.opentelemetry.io/collector/confmap/xconfmap v0.136.0/go.mod h1:bDvQo42iyxLGR/Nl4eKP//F/jpDcD52JCb7uLGKA3lc= -go.opentelemetry.io/collector/connector v0.136.0 h1:q697P3BcHJcuqT+GE/Am5bqXGpAvCTf5gSlLL2HZ2iM= -go.opentelemetry.io/collector/connector v0.136.0/go.mod h1:zCKUihQzRDkAkszDPXg9RqTc/NcpRNGBbILySFaZ6zA= -go.opentelemetry.io/collector/connector/connectortest v0.136.0 h1:NQgEvJvAJKcswQ/5GQmo57gVgJQqYFvvLpYEpFCptaE= -go.opentelemetry.io/collector/connector/connectortest v0.136.0/go.mod h1:kBPRa9qDsuH7MGvgBwWxV4mLP7yG4fnLwxdBG2jigAA= -go.opentelemetry.io/collector/connector/xconnector v0.136.0 h1:7kEvmi1pARTHqGsBkmoi/IpG5xpAU7PMKDaWfLF18ps= -go.opentelemetry.io/collector/connector/xconnector v0.136.0/go.mod h1:+adB64pX2hOcDxgYmFN6gN6B5oLwKgnczzCqffrSiaE= -go.opentelemetry.io/collector/consumer v1.42.0 h1:RhdoAXrLODs4cnh1m/ihWfHTyWzGO1jL0X+E7wETzUE= -go.opentelemetry.io/collector/consumer v1.42.0/go.mod h1:jKcMYx9LXWMK4dupP2NhiAuHK063JiVMlyAC+ZMqlD0= -go.opentelemetry.io/collector/consumer/consumererror v0.136.0 h1:lYnTR/fJ8gBfVZ813sKPWXmj9a8+TajhrHBfqKwrWvQ= -go.opentelemetry.io/collector/consumer/consumererror v0.136.0/go.mod h1:DIivxQ3sy3mDZLaEcXdwZvEFLILpcyHxRiqEaPkHRFU= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.136.0 h1:0p5xkXuvCKMKwGdTeuzy1Vz04XJyk4cVdyebtGr/PFI= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.136.0/go.mod h1:e8DN9AXPONTtXKO9ycYSWKrvj7I9hHIlCg2mIu2cUlc= -go.opentelemetry.io/collector/consumer/consumertest v0.136.0 h1:zzO47GjzIg2X3uVW+lwtqS6S0vRm5qMx5O4zmQznCME= -go.opentelemetry.io/collector/consumer/consumertest v0.136.0/go.mod h1:gTdRvUiJSmzmWp2Ndlh0N0yQ3hPnmTYul2DWuy31/D0= -go.opentelemetry.io/collector/consumer/xconsumer v0.136.0 h1:7GczvR8x75lTyP9M+oWHQyGRDIRJ+QjY7IiJkucgOo4= -go.opentelemetry.io/collector/consumer/xconsumer v0.136.0/go.mod h1:sXw0lOF6D1iKhLy2xorJ8D3PysDXT0egmHJZu8TY0lE= -go.opentelemetry.io/collector/exporter v1.42.0 h1:YMWMSAfaMu3lgy+lgaJDszdAOsg0lRh4EvIyA974Uuw= -go.opentelemetry.io/collector/exporter v1.42.0/go.mod h1:is8qnDQ1NLFMGNagY986ASIJJRIeHJZ+d1hDdOY6u1w= -go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0 h1:fJuA2u4Ls5+OWqcrXYSC6m8hpC4fFDI8kwNjYn4O34w= -go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0/go.mod h1:1F2UKZ68AQaWkjxlk6rtQ/oehL83O2AoDEex9+lEasg= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.136.0 h1:XkUU01WC9ZGYwD0DJgeeEsfmVK7qZOcEbC+1Y6UcqxA= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.136.0/go.mod h1:VFewDMp0wztsEXHXF4Hc7QaFoYPSo8vY+S9c0zFOT2k= -go.opentelemetry.io/collector/exporter/exportertest v0.136.0 h1:VIXgWzwok1bfQtAryfAZa5yEomzKEbhobjiHgKWuPmw= -go.opentelemetry.io/collector/exporter/exportertest v0.136.0/go.mod h1:aZkv1l+97E/onJ1rnlMzO/PEDFDfVtgIFvNJB0/EmXI= -go.opentelemetry.io/collector/exporter/otlpexporter v0.136.0 h1:mDHEYBDZ4SzziMq2PlqE0gwZax/t9zLmt/9Flaj0lks= -go.opentelemetry.io/collector/exporter/otlpexporter v0.136.0/go.mod h1:KY5693AbBX4IYfBlCTRPFlFjJTkzYlr5+XpPZR+VwwM= -go.opentelemetry.io/collector/exporter/xexporter v0.136.0 h1:7ELBwU8sSnUMAWr+jQHDNM0+o878BTk++DiW0KA7Dr4= -go.opentelemetry.io/collector/exporter/xexporter v0.136.0/go.mod h1:W4e+GmyokpCt6+d5pvCA17b7oU1fm968t5fDwW4zQv0= -go.opentelemetry.io/collector/extension v1.42.0 h1:+9pK5AGHyV3LpWcF8ez45O/6QwOnxXBRS06a7hokLVg= -go.opentelemetry.io/collector/extension v1.42.0/go.mod h1:mS3Ucj0UQw4Qy9KmXtTkdQTQxan+LbGeH4stPuTYofU= -go.opentelemetry.io/collector/extension/extensionauth v1.42.0 h1:Re0wxZOplHtdV8YaypVaktHYPiaWPwVDt+hrBFXHEoI= -go.opentelemetry.io/collector/extension/extensionauth v1.42.0/go.mod h1:m8A4ZoWKvE91c5fF7HFvnZvwxbXtPJiNSoreGYoXt6A= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.136.0 h1:yx0474FuJHinlSbAXU/IZov6TXc5LPSGRPsQRiMGRG4= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.136.0/go.mod h1:etBi3U/UCSa9x5Lao6CRcj7CmuULJbkxqXUoaSDeLOA= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0 h1:hFqIp1TiXdIDlGJRMlV+Xm4GwTxRO6Wmaxe/uYH6U7E= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0/go.mod h1:cwa7CHOF39Oqq5SFiYOs1bsjgKmDUFzYysfQ45RPT88= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0 h1:H+c3QyaN5tL3VmX3rSbV9Che5cpokLThJxZmJXed6cE= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0/go.mod h1:Vxtt+KlwwO4mpPEFyUMb/92BlMqOZc4Jk8RNjM99vcU= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.136.0 h1:0Mqxievpq+Lu7nd7/Y7LSW30cgTYyJIpOg48+0XTRcI= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.136.0/go.mod h1:Rd+mz0JkBudg+RYZuETiJpx4aByF5CyV+15mBf+1SJA= -go.opentelemetry.io/collector/extension/extensiontest v0.136.0 h1:BkL2AC38Xa/WU71YfEKdjYGl/pjALmJDtHZIm5gzEzk= -go.opentelemetry.io/collector/extension/extensiontest v0.136.0/go.mod h1:XxRKblTb56a6zkrb8i9qowl7mY9ebW2NnOvCIXgxjZM= -go.opentelemetry.io/collector/extension/xextension v0.136.0 h1:Ykw3UUAKugGDLTz+Secowj6pL9Mg6H/V+pezeQKhTJY= -go.opentelemetry.io/collector/extension/xextension v0.136.0/go.mod h1:BLED8xk0WmkZ0bfjl/WwQ7jk4cJnnrHlo3MHsdhtr/U= -go.opentelemetry.io/collector/extension/zpagesextension v0.136.0 h1:acfmAXEGmvLlM2N6KtieLVKXBvJ/dmkOfOFDftZFFXg= -go.opentelemetry.io/collector/extension/zpagesextension v0.136.0/go.mod h1:fXFm8bNm6QegoFjFk3QINvSXUDyBSy/3r/mv366xQ5A= -go.opentelemetry.io/collector/featuregate v1.42.0 h1:uCVwumVBVex46DsG/fvgiTGuf9f53bALra7vGyKaqFI= -go.opentelemetry.io/collector/featuregate v1.42.0/go.mod h1:d0tiRzVYrytB6LkcYgz2ESFTv7OktRPQe0QEQcPt1L4= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0 h1:GxjQ+9q6M7PwE3QnA3VVBLt5aHVnk4z7wQLo+J+0tho= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0/go.mod h1:DOvL5ZalQk/zmYBjKZok52dXIxUOK0JoOoQfm5qjbhM= -go.opentelemetry.io/collector/internal/telemetry v0.136.0 h1:3TcnxyUFs6jJZeLo5ju3fMWS4lRmIApl9To2XWk922M= -go.opentelemetry.io/collector/internal/telemetry v0.136.0/go.mod h1:dTykH9zv/zOnlyUvqfGIqpaQZhmayW7NssD7TPU4paE= -go.opentelemetry.io/collector/otelcol v0.136.0 h1:1QpVMUxPmrJ2HmrKFPXWEfQYALEC1kDmHp2YtzqjlPE= -go.opentelemetry.io/collector/otelcol v0.136.0/go.mod h1:TscxAyGfBSss2Rre6NMvJX6q6CU9kzaucSBOf5f+QKY= -go.opentelemetry.io/collector/pdata v1.42.0 h1:XEzisp/SNfKDcY4aRU6qrHeLzGypRUdYHjbBqkDFOO4= -go.opentelemetry.io/collector/pdata v1.42.0/go.mod h1:nnOmgf+RI/D5xYWgFPZ5nKuhf2E0Qy9Nx/mxoTvIq3k= -go.opentelemetry.io/collector/pdata/pprofile v0.136.0 h1:ysyWnVnEzAwUH+MAhEuu7X0y/YnTtjEY1gC7aj05QzA= -go.opentelemetry.io/collector/pdata/pprofile v0.136.0/go.mod h1:vAvrFj+xpwlSH85QFYGKYQ4xc0Lym5pWNRh1hMUH3TY= -go.opentelemetry.io/collector/pdata/testdata v0.136.0 h1:amivoDBK7ALqhwwCkSOYqfT95t1+o/TS6MHycseNs80= -go.opentelemetry.io/collector/pdata/testdata v0.136.0/go.mod h1:KlNRkMO7MZdbGjNJGFS0+yc2gpuraJg6F6gkuqaqA8Y= -go.opentelemetry.io/collector/pdata/xpdata v0.136.0 h1:KAYBx6+aS5rYUlwJ85QM9pxHq0VdftC9lTyXIzv1oM4= -go.opentelemetry.io/collector/pdata/xpdata v0.136.0/go.mod h1:bSnwXzg3wKjaKc8FgMZ23OmcodD6eDNyntUZdtlxPeU= -go.opentelemetry.io/collector/pipeline v1.42.0 h1:jqn1lPwUdCn+lsyNubCtwzXZLEm+R3kRWxLpDkhlvvs= -go.opentelemetry.io/collector/pipeline v1.42.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= -go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0 h1:dvzL/yfXUjBxcCqtl4ifvQqi5cIeYAmFdZz1OPE2gXA= -go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0/go.mod h1:0trVl/7QYhPyIohE+n+hL0F0DdiceghKPG2olvZqipc= -go.opentelemetry.io/collector/processor v1.42.0 h1:JVMaRA8QkiOJHAswCVAugMaFhDbNedat2XRKjlsNv2A= -go.opentelemetry.io/collector/processor v1.42.0/go.mod h1:O9uYN7VeC4gnD2qsaXaM50rvO8tt2zJS/9bnzucJ+N8= -go.opentelemetry.io/collector/processor/batchprocessor v0.136.0 h1:8IIzCdjD7WyLb1Rbg6t/UPXMJl8rdSbdvkP+fYvY4FE= -go.opentelemetry.io/collector/processor/batchprocessor v0.136.0/go.mod h1:te1bnTdwdQNYxHBHJJSZMAWLWyX+ZB0JKO43zKc6bck= -go.opentelemetry.io/collector/processor/processorhelper v0.136.0 h1:LxQhJuOkhkrZjTlabAaCW+KVv3BlOXaf8F13k/ze3dQ= -go.opentelemetry.io/collector/processor/processorhelper v0.136.0/go.mod h1:atZGpAhMdMtu0jF8jGUdRKj0V1i+DKaZ+q7xsH0+q/0= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.136.0 h1:tqdeDvJiMc16r3s1QOhk5MVCMo6UApWWh/5tJCnL6u4= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.136.0/go.mod h1:NT4ntzR9UA8XPI7EQIjW3D+9bvF6DMQ1GUU7FS/kvos= -go.opentelemetry.io/collector/processor/processortest v0.136.0 h1:lQC435oZdDmLnSczmQ7Cdoca+y7SBpLQ0m/fVsd8pJY= -go.opentelemetry.io/collector/processor/processortest v0.136.0/go.mod h1:uWH1oXGiCzvnWuLyvzyqm8a/g6dGyfJWgAj2yEhhrWg= -go.opentelemetry.io/collector/processor/xprocessor v0.136.0 h1:/Ee8JT9pM3moxPDM18NbNYQzVzzg+80ewTOFyVUmOd0= -go.opentelemetry.io/collector/processor/xprocessor v0.136.0/go.mod h1:RtmNJHS/MS6XO7gBdjiDWep1TN1vMlrcH5qQr1MOWxM= -go.opentelemetry.io/collector/receiver v1.42.0 h1:wdR3SShnOUj6PQFNOHJl8amKDaMrY6gnnU7oh7z61rQ= -go.opentelemetry.io/collector/receiver v1.42.0/go.mod h1:ts8UqHPKm+fP3/nsPrLizbUClqpL8JO3HM5Rd9UQEWA= -go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0 h1:Le0/Ow1GIvRRo4XwDjf/xERzWJf1JkoJEUjqHVPIXr8= -go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0/go.mod h1:N8MEtYYYJncGC9PQ+YdRN7WkHpYNTh3MAxPLVLf7cn8= -go.opentelemetry.io/collector/receiver/receivertest v0.136.0 h1:xPhvg2K72Iy+bqzMwz+q4CmudYKy/Vq+dS1x2ETojP0= -go.opentelemetry.io/collector/receiver/receivertest v0.136.0/go.mod h1:DgPO43LjdtRXJ7BnXU2gGKak74cvGOie9qSdb7D/UWg= -go.opentelemetry.io/collector/receiver/xreceiver v0.136.0 h1:eb2DLzWewhJMJU34mgmL8WxgoYim44+Ry6/AMrjfY8E= -go.opentelemetry.io/collector/receiver/xreceiver v0.136.0/go.mod h1:k/j2K4krExMopkkOBFyPyDSgkrnQSN1fXHqLCvh8O5g= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= +go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw= +go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/collector v0.141.0 h1:TrB5VlTVvWBPdx9Kvl4kigvkPr5RI2NhvXcN4CErrFY= +go.opentelemetry.io/collector v0.141.0/go.mod h1:etSWqFxETgvoEjTINqGu+B/Lm+EbJiu3PZGW+bemo1A= +go.opentelemetry.io/collector/client v1.47.0 h1:6CqobnsruBntfkSltCsKs8iiK1N+IwMr7fKhnIDXF0Y= +go.opentelemetry.io/collector/client v1.47.0/go.mod h1:6Jzcja4/O5IffJtZjJ9YjnwPqJiDiwCQou4DioLFwpI= +go.opentelemetry.io/collector/component v1.47.0 h1:wXvcjNhpWUU4OJph7KyxENkbfnGrfDURa+L/rvPTHyo= +go.opentelemetry.io/collector/component v1.47.0/go.mod h1:Hz9fcIbc7tOA4hIjvW5bb1rJJc2TH0gtQEvDBaZLUUA= +go.opentelemetry.io/collector/component/componentstatus v0.141.0 h1:WoMJdv2ofwHJDXzMP6DvYPqREaqOcGw+gkXG7S+PJvc= +go.opentelemetry.io/collector/component/componentstatus v0.141.0/go.mod h1:upr5QxmYLEZ7PKMCZHImQcp3xNM4VXtZnAKuhhHopg4= +go.opentelemetry.io/collector/component/componenttest v0.141.0 h1:dYdFbm52+e2DwrJ0bEoo7qVOPDuFXl9E/FfaqViIfPU= +go.opentelemetry.io/collector/component/componenttest v0.141.0/go.mod h1:EI7SUBy8Grxso69j2KYf3BYv8rkJjFgxlmWf5ElcWdk= +go.opentelemetry.io/collector/config/configauth v1.47.0 h1:aYSX3mD586qKiHRQYFBMIvujC1zUhYhw6nBLC7oIgvI= +go.opentelemetry.io/collector/config/configauth v1.47.0/go.mod h1:o2GZwoeuCKzhZm6VDTMAKkVlTLKGqUi126sAN5Xjaa8= +go.opentelemetry.io/collector/config/configcompression v1.47.0 h1:g6PL4dd8ng74XVI0YOyucIWUwQwF2BMFgHMyQ7f5Z7A= +go.opentelemetry.io/collector/config/configcompression v1.47.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= +go.opentelemetry.io/collector/config/configgrpc v0.141.0 h1:iN+RBB3BifRHoH1jFqxCxcF3Ptpehiqh09nFVjMQyF0= +go.opentelemetry.io/collector/config/configgrpc v0.141.0/go.mod h1:giRFp9C98N8FkvlBPaibHr7Jj4nDx92tyinbGXhiJSk= +go.opentelemetry.io/collector/config/confighttp v0.141.0 h1:ukn0BvFqe2HBDqDYs9gllVLFrhDbgNrTTjEEWPJ0O3s= +go.opentelemetry.io/collector/config/confighttp v0.141.0/go.mod h1:IbW7wb+rMuoh8WUNBsgblFvPuofZUGk6Lu9PvVDwnHo= +go.opentelemetry.io/collector/config/configmiddleware v1.47.0 h1:0LKbWzew6Y8sU0zeXb9VQf3PE/Nqnn+2RcDFgxaypvM= +go.opentelemetry.io/collector/config/configmiddleware v1.47.0/go.mod h1:QyWuy/D1fdURXxdnKPweX/5pT6uAsK8PxTDXMHKeLcI= +go.opentelemetry.io/collector/config/confignet v1.47.0 h1:3T1qpFH1YsXTLeHpFboNDTCg2Ax871+MZZ6J/fvuuxM= +go.opentelemetry.io/collector/config/confignet v1.47.0/go.mod h1:4jJWdoe1MmpqxMzxrIILcS5FK2JPocXYZGUvv5ZQVKE= +go.opentelemetry.io/collector/config/configopaque v1.47.0 h1:eQpdM3vGB8/VbUscZ4MM6y4JI5YTog7qv/G/nWxUlmA= +go.opentelemetry.io/collector/config/configopaque v1.47.0/go.mod h1:NtM24SOlXT84NxS9ry8Y2qOurLskTKOd7VS78WLkPuM= +go.opentelemetry.io/collector/config/configoptional v1.47.0 h1:x/wxmHZe9bKdsfeOhfgNdpoMRZxi0x4rTTxbLFkpiz4= +go.opentelemetry.io/collector/config/configoptional v1.47.0/go.mod h1:nlcEmR01MMD5Nla5f4weZ0OcCq1LSxPGwlAWG8GUCbw= +go.opentelemetry.io/collector/config/configretry v1.47.0 h1:YlRON2zh88wldtSyqkxC24SzHjzBntuj2zEYokjEISM= +go.opentelemetry.io/collector/config/configretry v1.47.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= +go.opentelemetry.io/collector/config/configtelemetry v0.141.0 h1:waUnWigFfXoiHNWjmOo5nj46H8xDLsLvBzJWzr0WTXg= +go.opentelemetry.io/collector/config/configtelemetry v0.141.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= +go.opentelemetry.io/collector/config/configtls v1.47.0 h1:uuXkdsHouWkDli/o/+1y9e8KaIGTCLNRMPxJLN2zXBs= +go.opentelemetry.io/collector/config/configtls v1.47.0/go.mod h1:WfwC2ODU/ADiYI9tY4dWwH0S6k4iwKNqlEC55epQk5M= +go.opentelemetry.io/collector/confmap v1.47.0 h1:iXx4Pm1VbGboQCuY442mbBgihPv6gNpEItsod4rkW04= +go.opentelemetry.io/collector/confmap v1.47.0/go.mod h1:ipnIWHs3VdMOxkIjQnOw3Qou2hjXZELrphHuqjTh4QM= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.47.0 h1:PfAkFHDpt8ZbSk67LqZeXrQk9OARJNBTooXtt6CHSIw= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.47.0/go.mod h1:KSkJ7gCv5jQj7ulJV147rzUcBBuHdmpxIeDeGf7QDeo= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0 h1:wMEl2gzlhmFrBZdWr0AU7GSSiY23LN1PkNAm4C32o3g= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0/go.mod h1:0YkK2SdfQpX0lyIeDuLlrugpceEwEtgTGrOhzpHyFFs= +go.opentelemetry.io/collector/confmap/xconfmap v0.141.0 h1:EhxPYLvUERsE4eThocTsmL1mDeSXn0AOX7Ta4GAjLNY= +go.opentelemetry.io/collector/confmap/xconfmap v0.141.0/go.mod h1:c4f/AT97CxQ5fYaCclj9fGnD0E2+5hLvL4fNQ7YkEEo= +go.opentelemetry.io/collector/connector v0.141.0 h1:kDxl66+nbB12HmMXS/Cl9bVxKiB0EKm3AW0G8dvXFUk= +go.opentelemetry.io/collector/connector v0.141.0/go.mod h1:bSNiaIycyVBsz1JBcGSHMEl9Pw9Pba1fjMvNf8mMkSk= +go.opentelemetry.io/collector/connector/connectortest v0.141.0 h1:s02SmglD5DUDVuUnYIEKAnt1bcBS3hJcepYWQaJSFis= +go.opentelemetry.io/collector/connector/connectortest v0.141.0/go.mod h1:jrLSLEnYCgNNPS4+kWkEVn/fHU/P3sAi9KZlvhsk2cM= +go.opentelemetry.io/collector/connector/xconnector v0.141.0 h1:0FjMgtVhDbfm7jG5mzuz1XbHq0+tIGor2l8TeVOBblg= +go.opentelemetry.io/collector/connector/xconnector v0.141.0/go.mod h1:fNdivTW1tvmUYzut9pcZ4MwVQ+JGMk5WXM2gGNIh5ok= +go.opentelemetry.io/collector/consumer v1.47.0 h1:eriMvNAsityaea361luVfNe8wp6QKWJQoU4d4i3tyOA= +go.opentelemetry.io/collector/consumer v1.47.0/go.mod h1:wBsF8koieun0CK4laZLN2MvGKNqad8gwQa+1jXWWn5k= +go.opentelemetry.io/collector/consumer/consumererror v0.141.0 h1:lUgIRGDPQy+qwvGQOx+GJuf/cRUIp2Eve6BOoEN9vfY= +go.opentelemetry.io/collector/consumer/consumererror v0.141.0/go.mod h1:DsO9l7yTeoxgWyk3psHMPepZ4Dv5gg/d7XFH3Teh8zc= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.141.0 h1:OWAE82H4ZWfnP+BudwmSjRemoaHuMXyMRdGTxm4QQno= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.141.0/go.mod h1:tVEZL9rOn3tqNmTY4quxxWTsrRGByIeI4oIQVvA5hm4= +go.opentelemetry.io/collector/consumer/consumertest v0.141.0 h1:Q5X7rOI8I5xj35Q1NQiwGJsJ4OZx1n7szw3MbOfNgiM= +go.opentelemetry.io/collector/consumer/consumertest v0.141.0/go.mod h1:yjSSOFx0oBjH2fouw0TTN/U82hYyJPq35ClIZrpz60g= +go.opentelemetry.io/collector/consumer/xconsumer v0.141.0 h1:qR9H8tWo6NtPBDBv3fz8J8QBkqbnaU8vwUvtIO3QeZo= +go.opentelemetry.io/collector/consumer/xconsumer v0.141.0/go.mod h1:Ud55EhQ0cgqDTtnvHQNjtktLGMeefOzF6SFk0bLheOc= +go.opentelemetry.io/collector/exporter v1.47.0 h1:2RgIFPCTPlm8IPtx8VF7f/qeC4UywMGiAF2ffnCWN6Q= +go.opentelemetry.io/collector/exporter v1.47.0/go.mod h1:rUn1GU8Hdz7TSDQQvv9iqfN0xaGWQrUAVIQgT5PdrYU= +go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0 h1:448RLUk0k0Cq+JjqosyRr7lUSPPx3EZiomI2Fxg/KkA= +go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0/go.mod h1:BlNweRtWgwNqQKtImoZkdagNUn2vxkBlEbmJYdqIH9w= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.141.0 h1:CW/dH2GIhTh0chgCkwfCkLXsZKfaR7sC51BnQj//a2o= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.141.0/go.mod h1:FLX+t1XmNv529mkg0Wt6PjFFFvGM/BNVBw9PsNZlHCg= +go.opentelemetry.io/collector/exporter/exportertest v0.141.0 h1:g52hJvBkseHeoAZzj0MlBmDxg7VOk9goa8dFojTr4fw= +go.opentelemetry.io/collector/exporter/exportertest v0.141.0/go.mod h1:WD9liBCgGbW6M3m64XS+RSDUyT/aC3gfy4H1PD06x5A= +go.opentelemetry.io/collector/exporter/otlpexporter v0.141.0 h1:kMVzed7ujCPWhJVbkMfLxLER5To0TlJ8pdDkVWnToek= +go.opentelemetry.io/collector/exporter/otlpexporter v0.141.0/go.mod h1:x6Baxh+n/3IItltaAHuf5U4E0qmEYaMfvBCbkmH0RCQ= +go.opentelemetry.io/collector/exporter/xexporter v0.141.0 h1:aGKacYq6uIEweIfw/at35XfjdCUqf/t6L4J2/4u6Fio= +go.opentelemetry.io/collector/exporter/xexporter v0.141.0/go.mod h1:0QfPORq7Z2iKKg2pSEh7ARn09P30QNhJp+xnKhIGtDg= +go.opentelemetry.io/collector/extension v1.47.0 h1:3tuOP79eXWHQvS1ITtSzipPqURK4JDHj1n8HFQQWe3A= +go.opentelemetry.io/collector/extension v1.47.0/go.mod h1:Zfozkdo63ltydtPnuu1PotxWXJRsaX1wPamxuF3JbaQ= +go.opentelemetry.io/collector/extension/extensionauth v1.47.0 h1:rF1nh638CY0Qi3RcyOnTuGYPrQv2U7CI/pjInkR8pFA= +go.opentelemetry.io/collector/extension/extensionauth v1.47.0/go.mod h1:CtNVU6ivNIAcJoCL7GRxDGpuvSgWVpgmrRiGD7FQAyY= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.141.0 h1:EoUYtxYqMosP9yIgUOK8QG61yvHIN+zSkSxwyQDekDc= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.141.0/go.mod h1:PS6B7i383Ajj3dPhb2OiYYqSspgVkDqbVfJ1qQo9TKM= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0 h1:yMHw735gpgxnwryu//gQ+AfRWA07zCmCQEU4iCz14Rs= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0/go.mod h1:Ugk9jcz0/zHwJndOF61dKOzomOEIK1jFx0LvWrWPT1o= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0 h1:dj/H1kBDgypI1oD8xMCc9Ha5NamYwN/AyrJP1M3rayc= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0/go.mod h1:rdpsumcbndkZ00eDBaLL4Q5PNWYBOXqt4YR9wtk2sH0= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.141.0 h1:ekuapTC9RPSuvbTIKyWClIduJ9RDCMt5ToLJuTQTaKI= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.141.0/go.mod h1:BpzE+gqh/RlBhSBXVbKivYor4EZgcFTh90/+eX9tDPk= +go.opentelemetry.io/collector/extension/extensiontest v0.141.0 h1:JjnCUMDk5+fgjgmg9az+CM4J4AJugarDT/PHWZNMQl4= +go.opentelemetry.io/collector/extension/extensiontest v0.141.0/go.mod h1:w8PCvxBL1R1v1waezDZlNtm5Wmxtkfljjj+Vnj5cviU= +go.opentelemetry.io/collector/extension/xextension v0.141.0 h1:VIDCodSJGeS/4fvwBSCvUSaXOYhpNHtwySlPffzv87o= +go.opentelemetry.io/collector/extension/xextension v0.141.0/go.mod h1:bUUsO+CmZZQBhCljV+cxA10bazpsRXhAD/+mBSKasJ4= +go.opentelemetry.io/collector/extension/zpagesextension v0.141.0 h1:x6PCZW0F6AnMhvwcZWA7yWsocme9cUcCC8iOn5scR5c= +go.opentelemetry.io/collector/extension/zpagesextension v0.141.0/go.mod h1:sJ02ZaSx9fEZPsobwWlTurMAD+S/8BVKD7IAubzzV6A= +go.opentelemetry.io/collector/featuregate v1.47.0 h1:LuJnDngViDzPKds5QOGxVYNL1QCCVWN/m61lHTV8Pf4= +go.opentelemetry.io/collector/featuregate v1.47.0/go.mod h1:d0tiRzVYrytB6LkcYgz2ESFTv7OktRPQe0QEQcPt1L4= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0 h1:XE0+2eJgixbDveL/pUqbfxJIIAVojYcTY2ZdaqTH3QQ= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0/go.mod h1:vO7+na6RT/sKSOHuTRx/UbYvezvAQnjNQUA+P4d5H9M= +go.opentelemetry.io/collector/internal/telemetry v0.141.0 h1:vHbH5YbBJGtsn1+PH99WZRJsODgkBD4g39zONslfti4= +go.opentelemetry.io/collector/internal/telemetry v0.141.0/go.mod h1:5TOmlQDc4gE3TZuC+W0Ra44HiKXzVQiZzS6BCIncbCQ= +go.opentelemetry.io/collector/internal/testutil v0.141.0 h1:/rUGApojPtUPMN3rFfApNgEjAt03rCGt2qxNxGGs/4A= +go.opentelemetry.io/collector/internal/testutil v0.141.0/go.mod h1:YAD9EAkwh/l5asZNbEBEUCqEjoL1OKMjAMoPjPqH76c= +go.opentelemetry.io/collector/otelcol v0.141.0 h1:4DdP20QvxLh+e/wOQZROB20WE98U15gQyk3sw81jT4o= +go.opentelemetry.io/collector/otelcol v0.141.0/go.mod h1:uOM85bSEtiFZJsphjmYwFNyQlA5gcqZykiL8BaAKo+0= +go.opentelemetry.io/collector/pdata v1.47.0 h1:4Mk0mo2RlKCUPomV8ISm+Yx/STFtuSn88yjiCePHkGA= +go.opentelemetry.io/collector/pdata v1.47.0/go.mod h1:yMdjdWZBNA8wLFCQXOCLb0RfcpZOxp7exH+bN7udWO0= +go.opentelemetry.io/collector/pdata/pprofile v0.141.0 h1:15lbbHKzPIG4aVT6hsJO7XZLvMrGll+i36es/FEgn7c= +go.opentelemetry.io/collector/pdata/pprofile v0.141.0/go.mod h1:gUtWKniP3O0jXYVDISp1y3dCbYFIyglFw6B8ATyrrWs= +go.opentelemetry.io/collector/pdata/testdata v0.141.0 h1:AfjNbZ/DUSr0aiP4H+z7pqrzTuBQFaT6oca0zaJ3gCA= +go.opentelemetry.io/collector/pdata/testdata v0.141.0/go.mod h1:/KX316ZF30G4eUQadM+SPUqCCPoiAkhMxcvAu4uM72I= +go.opentelemetry.io/collector/pdata/xpdata v0.141.0 h1:Bhpnwett0KhK7AjEwUhEBVYNlbMwBO5t9ASNIwrtqzY= +go.opentelemetry.io/collector/pdata/xpdata v0.141.0/go.mod h1:Du2E8XK3Yl82TzWu08b5ShzZ36pPZNE0O0QrvbY8ZD4= +go.opentelemetry.io/collector/pipeline v1.47.0 h1:Ql2cfIopfo/e0Y6r/Fw3mNorKYi8MAoA7zgouzAN8eI= +go.opentelemetry.io/collector/pipeline v1.47.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= +go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0 h1:wiER5GXVTSq1orSYM1q847aGc8IaHpBjzO8rO3kXGaU= +go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0/go.mod h1:9u8hFIicFWVhi7rCJCpgVW7AR1OCNk1Pfv2dLrCJDh8= +go.opentelemetry.io/collector/processor v1.47.0 h1:WA4AP+w+ohFItWx0eG5iGEvLCE70Le5wC2Uw7YVN1Vg= +go.opentelemetry.io/collector/processor v1.47.0/go.mod h1:XaC3o+kNM5wq7ET+FJt+9hTnqqICmruylBpVerb+TZo= +go.opentelemetry.io/collector/processor/batchprocessor v0.141.0 h1:tm2NRcrAETazsFU0F9Gs7N+FHG8GoG4pyEvljJG459c= +go.opentelemetry.io/collector/processor/batchprocessor v0.141.0/go.mod h1:lKwRWLBU8BcouHvxf8xkCkhMFJ6lxaWXwLMjr1bC+3o= +go.opentelemetry.io/collector/processor/processorhelper v0.141.0 h1:4NCArw4JJsJ8YNtbcJXYNOczQ9gon+m1yGV5VPh8Lwk= +go.opentelemetry.io/collector/processor/processorhelper v0.141.0/go.mod h1:idjJbBjKlBmXnhWwiqKG8AYBJmdowNn82F36OhBcMwg= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.141.0 h1:Lvufz+Z0DTKgI4ju69kQaoIK5B6Xctn7LQRAm685WGY= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.141.0/go.mod h1:fd76xwfwfI7c9uAkhfF99Ev/PvZUN6pk3xIES9+ABSk= +go.opentelemetry.io/collector/processor/processortest v0.141.0 h1:HY/o+CkKTU2Db96TfugwfMKkRFcaJb2vxPUHluS5/F8= +go.opentelemetry.io/collector/processor/processortest v0.141.0/go.mod h1:n0QKOTH2m2vVbDGdIHvDmIEHU02LOQtuCzzN4BJgK5U= +go.opentelemetry.io/collector/processor/xprocessor v0.141.0 h1:rlvqx4aW7dgrYqWrNTkq1+IDiWOKdX/DDZPxk1DQMVw= +go.opentelemetry.io/collector/processor/xprocessor v0.141.0/go.mod h1:jSSsP1pFgkxN4MvVsyZA1MI5DKhN+kg9Y27Ev0lEwqs= +go.opentelemetry.io/collector/receiver v1.47.0 h1:x9kofoR+PyoFktNVVPdfP1iw08SMNzNw6Z9qYdOV18U= +go.opentelemetry.io/collector/receiver v1.47.0/go.mod h1:Uln4nIZB5qn+dyVQr32V7/5/t92o7o4Fo5sPjxcrdRM= +go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0 h1:x1w+UCeFcs8/18QcBQAAvyakCab5HhsWWpYR4ONcT8c= +go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0/go.mod h1:co9h8puOBRzUynrjbptkA7lvKTsM/ASMZGIxwaE0vbE= +go.opentelemetry.io/collector/receiver/receivertest v0.141.0 h1:D5lRyj92ZekGRNxI8ufeQfdicQHRvgfISuZwxjaq1Go= +go.opentelemetry.io/collector/receiver/receivertest v0.141.0/go.mod h1:w6sopQCUydOypIp1ym8Lytgt9C+QjrfEU3fN21z6NCU= +go.opentelemetry.io/collector/receiver/xreceiver v0.141.0 h1:jvnSzS4gaGwbnG90t3e5keZVfcZChrXk7Ykn46gatgE= +go.opentelemetry.io/collector/receiver/xreceiver v0.141.0/go.mod h1:HCGNAJHKHb1JB/So3tZnaCi+eUTxaothQ7BptRprjhg= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 h1:XCN7qkZRNzRYfn6chsMZkbFZxoFcW6fZIsZs2aCzcbc= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685/go.mod h1:OPXer4l43X23cnjLXIZnRj/qQOjSuq4TgBLI76P9hns= -go.opentelemetry.io/collector/service v0.136.0 h1:NvGStX9kN1KrcKO1aJjB4LFLRCBcPERzhlOiOxrFcG4= -go.opentelemetry.io/collector/service v0.136.0/go.mod h1:xE6YQmPW5/5g4I/R3PTRBdaGr2Epc2NxkMAAEttJo1k= -go.opentelemetry.io/collector/service/hostcapabilities v0.136.0 h1:YxOwlA7mmKVQq/+vbOs37WpZ2yRZGkKmC0qKrPQwlCY= -go.opentelemetry.io/collector/service/hostcapabilities v0.136.0/go.mod h1:mONVgs/2Sw/h/fjqURBKGTB22B+7KXL9TSWNX/37LCA= -go.opentelemetry.io/contrib/bridges/otelzap v0.12.0 h1:FGre0nZh5BSw7G73VpT3xs38HchsfPsa2aZtMp0NPOs= -go.opentelemetry.io/contrib/bridges/otelzap v0.12.0/go.mod h1:X2PYPViI2wTPIMIOBjG17KNybTzsrATnvPJ02kkz7LM= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 h1:rbRJ8BBoVMsQShESYZ0FkvcITu8X8QNwJogcLUmDNNw= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0/go.mod h1:ru6KHrNtNHxM4nD/vd6QrLVWgKhxPYgblq4VAtNawTQ= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 h1:lREC4C0ilyP4WibDhQ7Gg2ygAQFP8oR07Fst/5cafwI= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0/go.mod h1:HfvuU0kW9HewH14VCOLImqKvUgONodURG7Alj/IrnGI= +go.opentelemetry.io/collector/service v0.141.0 h1:O44J7WXD+UbElR/KdadGJJFQfH1gGUH8ewJUrelxcQQ= +go.opentelemetry.io/collector/service v0.141.0/go.mod h1:/Vnq/GIgiDk2TcDrNf1d6ZndLY6Ef/64sjwU5Xg7ry0= +go.opentelemetry.io/collector/service/hostcapabilities v0.141.0 h1:bgyYFO++891ecFpoJQX13UHEqjt2z9RHIiULXkmA98M= +go.opentelemetry.io/collector/service/hostcapabilities v0.141.0/go.mod h1:RxYWH5w6oAxqzLJ3QkNKuAKEUxS5OhwJMTOuWP2CrH0= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.141.0 h1:fE86k1S++PRslh6nubNWM/DQTkp2GFCY4mmwKqv8128= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.141.0/go.mod h1:yVBEDExr2C00N5D6hzf032I7NkbqSoibrQdvrhB61OM= +go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 h1:aBKdhLVieqvwWe9A79UHI/0vgp2t/s2euY8X59pGRlw= +go.opentelemetry.io/contrib/bridges/otelzap v0.13.0/go.mod h1:SYqtxLQE7iINgh6WFuVi2AI70148B8EI35DSk0Wr8m4= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 h1:2pn7OzMewmYRiNtv1doZnLo3gONcnMHlFnmOR8Vgt+8= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0/go.mod h1:rjbQTDEPQymPE0YnRQp9/NuPwwtL0sesz/fnqRW/v84= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= -go.opentelemetry.io/contrib/otelconf v0.16.0 h1:mTYGRlZtpc/zDaTaUQSnsZ1hyoRONaS4Od/Ny5++lhE= -go.opentelemetry.io/contrib/otelconf v0.16.0/go.mod h1:gnsljuyDyVDg39vUvXKj0BVCiVaokN3b8N5BL/ab8fQ= -go.opentelemetry.io/contrib/propagators/b3 v1.37.0 h1:0aGKdIuVhy5l4GClAjl72ntkZJhijf2wg1S7b5oLoYA= -go.opentelemetry.io/contrib/propagators/b3 v1.37.0/go.mod h1:nhyrxEJEOQdwR15zXrCKI6+cJK60PXAkJ/jRyfhr2mg= -go.opentelemetry.io/contrib/zpages v0.62.0 h1:9fUYTLmrK0x/lweM2uM+BOx069jLx8PxVqWhegGJ9Bo= -go.opentelemetry.io/contrib/zpages v0.62.0/go.mod h1:C8kXoiC1Ytvereztus2R+kqdSa6W/MZ8FfS8Zwj+LiM= +go.opentelemetry.io/contrib/otelconf v0.18.0 h1:ciF2Gf00BWs0DnexKFZXcxg9kJ8r3SUW1LOzW3CsKA8= +go.opentelemetry.io/contrib/otelconf v0.18.0/go.mod h1:FcP7k+JLwBLdOxS6qY6VQ/4b5VBntI6L6o80IMwhAeI= +go.opentelemetry.io/contrib/propagators/b3 v1.38.0 h1:uHsCCOSKl0kLrV2dLkFK+8Ywk9iKa/fptkytc6aFFEo= +go.opentelemetry.io/contrib/propagators/b3 v1.38.0/go.mod h1:wMRSZJZcY8ya9mApLLhwIMjqmApy2o/Ml+62lhvxyHU= +go.opentelemetry.io/contrib/zpages v0.63.0 h1:TppOKuZGbqXMgsfjqq3i09N5Vbo1JLtLImUqiTPGnX4= +go.opentelemetry.io/contrib/zpages v0.63.0/go.mod h1:5F8uugz75ay/MMhRRhxAXY33FuaI8dl7jTxefrIy5qk= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0 h1:z6lNIajgEBVtQZHjfw2hAccPEBDs+nx58VemmXWa2ec= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0/go.mod h1:+kyc3bRx/Qkq05P6OCu3mTEIOxYRYzoIg+JsUp5X+PM= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 h1:zUfYw8cscHHLwaY8Xz3fiJu+R59xBnkgq2Zr1lwmK/0= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0/go.mod h1:514JLMCcFLQFS8cnTepOk6I09cKWJ5nGHBxHrMJ8Yfg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0 h1:zG8GlgXCJQd5BU98C0hZnBbElszTmUgCNCfYneaDL0A= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0/go.mod h1:hOfBCz8kv/wuq73Mx2H2QnWokh/kHZxkh6SNF2bdKtw= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 h1:9PgnL3QNlj10uGxExowIDIZu66aVBwWhXmbOp1pa6RA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0/go.mod h1:0ineDcLELf6JmKfuo0wvvhAVMuxWFYvkTin2iV4ydPQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 h1:Ahq7pZmv87yiyn3jeFz/LekZmPLLdKejuO3NcK9MssM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0/go.mod h1:MJTqhM0im3mRLw1i8uGHnCvUEeS7VwRyxlLC78PA18M= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 h1:EtFWSnwW9hGObjkIdmlnWSydO+Qs8OwzfzXLUPg4xOc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0/go.mod h1:QjUEoiGCPkvFZ/MjK6ZZfNOS6mfVEVKYE99dFhuN2LI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 h1:bDMKF3RUSxshZ5OjOTi8rsHGaPKsAt76FaqgvIUySLc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0/go.mod h1:dDT67G/IkA46Mr2l9Uj7HsQVwsjASyV9SjGofsiUZDA= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 h1:OMqPldHt79PqWKOMYIAQs3CxAi7RLgPxwfFSwr4ZxtM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0/go.mod h1:1biG4qiqTxKiUCtoWDPpL3fB3KxVwCiGw81j3nKMuHE= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 h1:vl9obrcoWVKp/lwl8tRE33853I8Xru9HFbw/skNeLs8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0/go.mod h1:GAXRxmLJcVM3u22IjTg74zWBrRCKq8BnOqUVLodpcpw= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= go.opentelemetry.io/otel/exporters/prometheus v0.60.0/go.mod h1:hkd1EekxNo69PTV4OWFGZcKQiIqg0RfuWExcPKFvepk= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0 h1:yEX3aC9KDgvYPhuKECHbOlr5GLwH6KTjLJ1sBSkkxkc= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0/go.mod h1:/GXR0tBmmkxDaCUGahvksvp66mx4yh5+cFXgSlhg0vQ= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0 h1:6VjV6Et+1Hd2iLZEPtdV7vie80Yyqf7oikJLjQ/myi0= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0/go.mod h1:u8hcp8ji5gaM/RfcOo8z9NMnf1pVLfVY7lBY2VOGuUU= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 h1:SNhVp/9q4Go/XHBkQ1/d5u9P/U+L1yaGPoi0x+mStaI= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0/go.mod h1:tx8OOlGH6R4kLV67YaYO44GFXloEjGPZuMjEkaaqIp4= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 h1:B/g+qde6Mkzxbry5ZZag0l7QrQBCtVm7lVjaLgmpje8= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0/go.mod h1:mOJK8eMmgW6ocDJn6Bn11CcZ05gi3P8GylBXEkZtbgA= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE= go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM= go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno= go.opentelemetry.io/otel/log/logtest v0.14.0 h1:BGTqNeluJDK2uIHAY8lRqxjVAYfqgcaTbVk1n3MWe5A= @@ -818,34 +815,34 @@ go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgf go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= -go.opentelemetry.io/otel/sdk/log v0.13.0 h1:I3CGUszjM926OphK8ZdzF+kLqFvfRY/IIoFq/TjwfaQ= -go.opentelemetry.io/otel/sdk/log v0.13.0/go.mod h1:lOrQyCCXmpZdN7NchXb6DOZZa1N5G1R2tm5GMMTpDBw= -go.opentelemetry.io/otel/sdk/log/logtest v0.13.0 h1:9yio6AFZ3QD9j9oqshV1Ibm9gPLlHNxurno5BreMtIA= -go.opentelemetry.io/otel/sdk/log/logtest v0.13.0/go.mod h1:QOGiAJHl+fob8Nu85ifXfuQYmJTFAvcrxL6w5/tu168= +go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg= +go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA= go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os= -go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo= -go.opentelemetry.io/proto/slim/otlp v1.8.0 h1:afcLwp2XOeCbGrjufT1qWyruFt+6C9g5SOuymrSPUXQ= -go.opentelemetry.io/proto/slim/otlp v1.8.0/go.mod h1:Yaa5fjYm1SMCq0hG0x/87wV1MP9H5xDuG/1+AhvBcsI= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0 h1:Uc+elixz922LHx5colXGi1ORbsW8DTIGM+gg+D9V7HE= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0/go.mod h1:VyU6dTWBWv6h9w/+DYgSZAPMabWbPTFTuxp25sM8+s0= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0 h1:i8YpvWGm/Uq1koL//bnbJ/26eV3OrKWm09+rDYo7keU= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0/go.mod h1:pQ70xHY/ZVxNUBPn+qUWPl8nwai87eWdqL3M37lNi9A= +go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= +go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= +go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= +go.opentelemetry.io/proto/slim/otlp v1.9.0/go.mod h1:xXdeJJ90Gqyll+orzUkY4bOd2HECo5JofeoLpymVqdI= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0 h1:o13nadWDNkH/quoDomDUClnQBpdQQ2Qqv0lQBjIXjE8= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0/go.mod h1:Gyb6Xe7FTi/6xBHwMmngGoHqL0w29Y4eW8TGFzpefGA= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0 h1:EiUYvtwu6PMrMHVjcPfnsG3v+ajPkbUeH+IL93+QYyk= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0/go.mod h1:mUUHKFiN2SST3AhJ8XhJxEoeVW12oqfXog0Bo8W3Ec4= 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= 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= +go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= +go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.uber.org/zap/exp v0.3.0 h1:6JYzdifzYkGmTdRR59oYH+Ng7k49H9qVpWwNSsGJj3U= go.uber.org/zap/exp v0.3.0/go.mod h1:5I384qq7XGxYyByIhHm6jg5CHkGY0nsTfbDLgDDlgJQ= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -858,10 +855,10 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY 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.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= -golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a h1:Y+7uR/b1Mw2iSXZ3G//1haIiSElDQZ8KWh0h+sZPG90= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= 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= @@ -869,8 +866,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -887,10 +884,10 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= 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.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= +golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= 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= @@ -903,8 +900,8 @@ 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.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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= @@ -940,8 +937,8 @@ golang.org/x/sys v0.12.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.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 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= @@ -951,8 +948,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= 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.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= 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= @@ -964,10 +961,10 @@ 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.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -977,26 +974,28 @@ 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.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/tools/godoc v0.1.0-deprecated h1:o+aZ1BOj6Hsx/GBdJO/s815sqftjSnrZZwyYTHODvtk= +golang.org/x/tools/godoc v0.1.0-deprecated/go.mod h1:qM63CriJ961IHWmnWa9CjZnBndniPt4a3CK0PVB9bIg= 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= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/api v0.239.0 h1:2hZKUnFZEy81eugPs4e2XzIJ5SOwQg0G82bpXD65Puo= -google.golang.org/api v0.239.0/go.mod h1:cOVEm2TpdAGHL2z+UwyS+kmlGr3bVWQQ6sYEqkKje50= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 h1:1tXaIXCracvtsRxSBsYDiSBN0cuJvM7QYW+MrpIRY78= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:49MsLSx0oWMOZqcpB3uL8ZOkAh1+TndpJ8ONoCBWiZk= -google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 h1:FiusG7LWj+4byqhbvmB+Q93B/mOxJLN2DTozDuZm4EU= -google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:kXqgZtrWaf6qS3jZOCnCH7WYfrvFjkC51bM8fz3RsCA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= -google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= -google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/api v0.250.0 h1:qvkwrf/raASj82UegU2RSDGWi/89WkLckn4LuO4lVXM= +google.golang.org/api v0.250.0/go.mod h1:Y9Uup8bDLJJtMzJyQnu+rLRJLA0wn+wTtc6vTlOvfXo= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s= +google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4= +google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM= +google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= 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-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1019,24 +1018,23 @@ 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.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= -k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= -k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= -k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= -k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= +k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= +k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= +k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= +k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= +k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= 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-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016 h1:kXv6kKdoEtedwuqMmkqhbkgvYKeycVbC8+iPCP9j5kQ= -sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc= -sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= -sigs.k8s.io/yaml v1.5.0 h1:M10b2U7aEUY6hRtU870n2VTPgR5RZiL/I6Lcc2F4NUQ= -sigs.k8s.io/yaml v1.5.0/go.mod h1:wZs27Rbxoai4C0f8/9urLZtZtF3avA3gKvGyPdDqTO4= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/otelcollector/prometheus-ui/go.mod b/otelcollector/prometheus-ui/go.mod index 7114be300..d0ccb38d9 100644 --- a/otelcollector/prometheus-ui/go.mod +++ b/otelcollector/prometheus-ui/go.mod @@ -1,21 +1,25 @@ module prometheus-collector/otelcollector/prometheus-ui -go 1.23.8 +go 1.24.0 + +toolchain go1.24.11 require ( - github.com/prometheus/common v0.66.1 + github.com/prometheus/common v0.67.4 github.com/prometheus/common/assets v0.2.0 - github.com/prometheus/exporter-toolkit v0.14.0 + github.com/prometheus/exporter-toolkit v0.15.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 ) require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/coreos/go-systemd/v22 v22.6.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/julienschmidt/httprouter v1.3.0 // indirect github.com/mdlayher/socket v0.4.1 // indirect @@ -29,13 +33,13 @@ require ( go.opentelemetry.io/otel v1.38.0 // indirect go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect - golang.org/x/crypto v0.41.0 // indirect - golang.org/x/net v0.43.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/sys v0.35.0 // indirect - golang.org/x/text v0.28.0 // indirect - google.golang.org/protobuf v1.36.8 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect + golang.org/x/crypto v0.43.0 // indirect + golang.org/x/net v0.46.0 // indirect + golang.org/x/oauth2 v0.32.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.37.0 // indirect + golang.org/x/text v0.30.0 // indirect + golang.org/x/time v0.13.0 // indirect + google.golang.org/protobuf v1.36.10 // indirect ) diff --git a/otelcollector/prometheus-ui/go.sum b/otelcollector/prometheus-ui/go.sum index 6358731b5..8127ba37f 100644 --- a/otelcollector/prometheus-ui/go.sum +++ b/otelcollector/prometheus-ui/go.sum @@ -2,8 +2,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/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -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/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo= +github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU= 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/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -13,7 +13,8 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= github.com/go-logr/logr v1.4.3/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/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -42,12 +43,12 @@ github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zI github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc= +github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM= github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI= -github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= -github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= +github.com/prometheus/exporter-toolkit v0.15.0 h1:Pcle5sSViwR1x0gdPd0wtYrPQENBieQAM7TmT0qtb2U= +github.com/prometheus/exporter-toolkit v0.15.0/go.mod h1:OyRWd2iTo6Xge9Kedvv0IhCrJSBu36JCfJ2yVniRIYk= 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= @@ -68,26 +69,26 @@ go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6 go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= -golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= -golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= -golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= +golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= +golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= +golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= +golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= +golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= 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= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/otelcollector/prometheusreceiver/README.md b/otelcollector/prometheusreceiver/README.md index 928f8e89b..f8238507a 100644 --- a/otelcollector/prometheusreceiver/README.md +++ b/otelcollector/prometheusreceiver/README.md @@ -88,7 +88,7 @@ The prometheus receiver also supports additional top-level options: - **trim_metric_suffixes**: [**Experimental**] When set to true, this enables trimming unit and some counter type suffixes from metric names. For example, it would cause `singing_duration_seconds_total` to be trimmed to `singing_duration`. This can be useful when trying to restore the original metric names used in OpenTelemetry instrumentation. Defaults to false. - **use_start_time_metric**: When set to true, this enables retrieving the start time of all counter metrics from the process_start_time_seconds metric. This is only correct if all counters on that endpoint started after the process start time, and the process is the only actor exporting the metric after the process started. It should not be used in "exporters" which export counters that may have started before the process itself. Use only if you know what you are doing, as this may result in incorrect rate calculations. Defaults to false. - **start_time_metric_regex**: The regular expression for the start time metric, and is only applied when use_start_time_metric is enabled. Defaults to process_start_time_seconds. -- **report_extra_scrape_metrics**: Extra Prometheus scrape metrics can be reported by setting this parameter to `true` +- **report_extra_scrape_metrics**: Extra Prometheus scrape metrics can be reported by setting this parameter to `true`. Deprecated; use the feature gate `receiver.prometheusreceiver.EnableReportExtraScrapeMetrics` instead. Example configuration: @@ -97,7 +97,6 @@ receivers: prometheus: trim_metric_suffixes: true use_start_time_metric: true - report_extra_scrape_metrics: true start_time_metric_regex: foo_bar_.* config: scrape_configs: @@ -109,7 +108,7 @@ receivers: ## Prometheus native histograms -Native histograms are an experimental [feature](https://prometheus.io/docs/prometheus/latest/feature_flags/#native-histograms) of Prometheus. +Native histograms are a data type in Prometheus, for more information see the [specification](https://prometheus.io/docs/specs/native_histograms/). To start scraping native histograms, set `config.global.scrape_protocols` to `[ PrometheusProto, OpenMetricsText1.0.0, OpenMetricsText0.0.1, PrometheusText0.0.4 ]` in the receiver configuration. This requirement will be lifted once Prometheus can scrape native histograms over text formats. @@ -120,7 +119,7 @@ The feature is considered experimental. This feature applies to the most common integer counter histograms, gauge histograms are dropped. In case a metric has both the conventional (aka classic) buckets and also native histogram buckets, only the native histogram buckets will be taken into account to create the corresponding exponential histogram. To scrape the classic buckets instead use the -[scrape option](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) `scrape_classic_histograms`. +[scrape option](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) `always_scrape_classic_histograms`. ## OpenTelemetry Operator Additional to this static job definitions this receiver allows to query a list of jobs from the @@ -182,6 +181,14 @@ More info about querying `/api/v1/` and the data format that is returned can be ## Feature gates +- `receiver.prometheusreceiver.EnableReportExtraScrapeMetrics`: Extra Prometheus scrape metrics + can be reported by setting this feature gate option. This replaces the deprecated + `report_extra_scrape_metrics` configuration flag: + +```shell +"--feature-gates=receiver.prometheusreceiver.EnableReportExtraScrapeMetrics" +``` + - `receiver.prometheusreceiver.UseCreatedMetric`: Start time for Summary, Histogram and Sum metrics can be retrieved from `_created` metrics. Currently, this behaviour is disabled by default. To enable it, use the following feature gate option: diff --git a/otelcollector/prometheusreceiver/apiserver/config.go b/otelcollector/prometheusreceiver/apiserver/config.go deleted file mode 100644 index 2cb7a591b..000000000 --- a/otelcollector/prometheusreceiver/apiserver/config.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -package apiserver // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/apiserver" - -import ( - "errors" - - "go.opentelemetry.io/collector/config/confighttp" -) - -type Config struct { - ServerConfig confighttp.ServerConfig `mapstructure:"server_config"` -} - -func (cfg *Config) Validate() error { - if cfg.ServerConfig.Endpoint == "" { - return errors.New("if api_server is enabled, it requires a non-empty server_config endpoint") - } - - return nil -} diff --git a/otelcollector/prometheusreceiver/apiserver/manager.go b/otelcollector/prometheusreceiver/apiserver/manager.go deleted file mode 100644 index bfcffc9d3..000000000 --- a/otelcollector/prometheusreceiver/apiserver/manager.go +++ /dev/null @@ -1,265 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -package apiserver - -import ( - "context" - "fmt" - "net/http" - "net/url" - "os" - "runtime" - "runtime/debug" - "strings" - "sync" - "time" - - "github.com/mwitkow/go-conntrack" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" - "github.com/prometheus/common/promslog" - "github.com/prometheus/common/route" - "github.com/prometheus/common/version" - promconfig "github.com/prometheus/prometheus/config" - "github.com/prometheus/prometheus/scrape" - "github.com/prometheus/prometheus/storage" - "github.com/prometheus/prometheus/util/httputil" - "github.com/prometheus/prometheus/web" - "go.opentelemetry.io/collector/component" - "go.opentelemetry.io/collector/receiver" - "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" - "go.uber.org/zap" - "golang.org/x/net/netutil" - - grafanaRegexp "github.com/grafana/regexp" - toolkit_web "github.com/prometheus/exporter-toolkit/web" - api_v1 "github.com/prometheus/prometheus/web/api/v1" -) - -// Use same settings as Prometheus web server -const ( - maxConnections = 512 - readTimeoutMinutes = 10 -) - -type Manager struct { - settings receiver.Settings - shutdown chan struct{} - cfg *Config - promCfg *promconfig.Config - scrapeManager *scrape.Manager - registry *prometheus.Registry - registerer prometheus.Registerer - server *http.Server - mtx sync.RWMutex -} - -func NewManager(set receiver.Settings, cfg *Config, promCfg *promconfig.Config, registry *prometheus.Registry, registerer prometheus.Registerer) *Manager { - return &Manager{ - shutdown: make(chan struct{}), - settings: set, - cfg: cfg, - promCfg: promCfg, - registry: registry, - registerer: registerer, - } -} - -func (m *Manager) Start(ctx context.Context, host component.Host, scrapeManager *scrape.Manager) error { - m.settings.Logger.Info("Starting Prometheus API server") - m.scrapeManager = scrapeManager - - // If allowed CORS origins are provided in the receiver config, combine them into a single regex since the Prometheus API server requires this format. - var corsOriginRegexp *grafanaRegexp.Regexp - corsConfig := m.cfg.ServerConfig.CORS.Get() - if corsConfig != nil && len(corsConfig.AllowedOrigins) > 0 { - var combinedOriginsBuilder strings.Builder - combinedOriginsBuilder.WriteString(corsConfig.AllowedOrigins[0]) - for _, origin := range corsConfig.AllowedOrigins[1:] { - combinedOriginsBuilder.WriteString("|") - combinedOriginsBuilder.WriteString(origin) - } - combinedRegexp, err := grafanaRegexp.Compile(combinedOriginsBuilder.String()) - if err != nil { - return fmt.Errorf("failed to compile combined CORS allowed origins into regex: %s", err.Error()) - } - corsOriginRegexp = combinedRegexp - } - - // If read timeout is not set in the receiver config, use the default Prometheus value. - readTimeout := m.cfg.ServerConfig.ReadTimeout - if readTimeout == 0 { - readTimeout = time.Duration(readTimeoutMinutes) * time.Minute - } - - // Set the options to keep similar code to the Prometheus repo. - o := &web.Options{ - ScrapeManager: m.scrapeManager, - Context: ctx, - ListenAddresses: []string{m.cfg.ServerConfig.Endpoint}, - ExternalURL: &url.URL{ - Scheme: "http", - Host: m.cfg.ServerConfig.Endpoint, - Path: "", - }, - RoutePrefix: "/", - ReadTimeout: readTimeout, - PageTitle: "Prometheus Receiver", - Flags: make(map[string]string), - MaxConnections: maxConnections, - IsAgent: true, - Registerer: m.registerer, - Gatherer: m.registry, - CORSOrigin: corsOriginRegexp, - } - - // Creates the API object in the same way as the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L314-L354 - // Anything not defined by the options above will be nil, such as o.QueryEngine, o.Storage, etc. IsAgent=true, so these being nil is expected by Prometheus. - factorySPr := func(_ context.Context) api_v1.ScrapePoolsRetriever { return o.ScrapeManager } - factoryTr := func(_ context.Context) api_v1.TargetRetriever { return o.ScrapeManager } - factoryAr := func(_ context.Context) api_v1.AlertmanagerRetriever { return nil } - factoryRr := func(_ context.Context) api_v1.RulesRetriever { return nil } - var app storage.Appendable - logger := promslog.NewNopLogger() - - apiV1 := api_v1.NewAPI(o.QueryEngine, o.Storage, app, o.ExemplarStorage, factorySPr, factoryTr, factoryAr, - - // This ensures that any changes to the config made, even by the target allocator, are reflected in the API. - func() promconfig.Config { - m.mtx.RLock() - defer m.mtx.RUnlock() - return *m.promCfg - }, - o.Flags, // nil - api_v1.GlobalURLOptions{ - ListenAddress: o.ListenAddresses[0], - Host: o.ExternalURL.Host, - Scheme: o.ExternalURL.Scheme, - }, - func(f http.HandlerFunc) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - f(w, r) - } - }, - o.LocalStorage, // nil - o.TSDBDir, // nil - o.EnableAdminAPI, // nil - logger, - factoryRr, - o.RemoteReadSampleLimit, // nil - o.RemoteReadConcurrencyLimit, // nil - o.RemoteReadBytesInFrame, // nil - o.IsAgent, - o.CORSOrigin, - func() (api_v1.RuntimeInfo, error) { - status := api_v1.RuntimeInfo{ - GoroutineCount: runtime.NumGoroutine(), - GOMAXPROCS: runtime.GOMAXPROCS(0), - GOMEMLIMIT: debug.SetMemoryLimit(-1), - GOGC: os.Getenv("GOGC"), - GODEBUG: os.Getenv("GODEBUG"), - } - - return status, nil - }, - &web.PrometheusVersion{ - Version: version.Version, - Revision: version.Revision, - Branch: version.Branch, - BuildUser: version.BuildUser, - BuildDate: version.BuildDate, - GoVersion: version.GoVersion, - }, - o.NotificationsGetter, - o.NotificationsSub, - o.Gatherer, - o.Registerer, - nil, - o.EnableRemoteWriteReceiver, - o.AcceptRemoteWriteProtoMsgs, - o.EnableOTLPWriteReceiver, - o.ConvertOTLPDelta, - o.NativeOTLPDeltaIngestion, - o.CTZeroIngestionEnabled, - 5*time.Minute, // LookbackDelta - Using the default value of 5 minutes - o.EnableTypeAndUnitLabels, - ) - - // Create listener and monitor with conntrack in the same way as the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L564-L579 - listener, err := m.cfg.ServerConfig.ToListener(ctx) - if err != nil { - return fmt.Errorf("failed to create listener: %s", err.Error()) - } - listener = netutil.LimitListener(listener, o.MaxConnections) - listener = conntrack.NewListener(listener, - conntrack.TrackWithName("http"), - conntrack.TrackWithTracing()) - - // Run the API server in the same way as the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L582-L630 - mux := http.NewServeMux() - promHandler := promhttp.HandlerFor(o.Gatherer, promhttp.HandlerOpts{Registry: o.Registerer}) - mux.Handle("/metrics", promHandler) - - // This is the path the web package uses, but the router above with no prefix can also be Registered by apiV1 instead. - apiPath := "/api" - if o.RoutePrefix != "/" { - apiPath = o.RoutePrefix + apiPath - logger.Info("Router prefix", "prefix", o.RoutePrefix) - } - av1 := route.New(). - WithInstrumentation(setPathWithPrefix(apiPath + "/v1")) - apiV1.Register(av1) - mux.Handle(apiPath+"/v1/", http.StripPrefix(apiPath+"/v1", av1)) - - spanNameFormatter := otelhttp.WithSpanNameFormatter(func(_ string, r *http.Request) string { - return fmt.Sprintf("%s %s", r.Method, r.URL.Path) - }) - m.server, err = m.cfg.ServerConfig.ToServer(ctx, host, m.settings.TelemetrySettings, otelhttp.NewHandler(mux, "", spanNameFormatter)) - if err != nil { - return err - } - webconfig := "" - - go func() { - if err := toolkit_web.Serve(listener, m.server, &toolkit_web.FlagConfig{WebConfigFile: &webconfig}, logger); err != nil { - m.settings.Logger.Error("API server failed", zap.Error(err)) - } - }() - - return nil -} - -// ApplyConfig updates the config field of the Manager struct. -func (m *Manager) ApplyConfig(cfg *promconfig.Config) error { - m.mtx.Lock() - defer m.mtx.Unlock() - - m.promCfg = cfg - - return nil -} - -func (m *Manager) GetConfig() *promconfig.Config { - m.mtx.RLock() - defer m.mtx.RUnlock() - - return m.promCfg -} - -func (m *Manager) Shutdown(ctx context.Context) error { - close(m.shutdown) - if m.server != nil { - return m.server.Shutdown(ctx) - } - return nil -} - -// Helper function from the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L582-L630 -func setPathWithPrefix(prefix string) func(handlerName string, handler http.HandlerFunc) http.HandlerFunc { - return func(_ string, handler http.HandlerFunc) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - handler(w, r.WithContext(httputil.ContextWithPath(r.Context(), prefix+r.URL.Path))) - } - } -} diff --git a/otelcollector/prometheusreceiver/config.go b/otelcollector/prometheusreceiver/config.go index 7bb0fbff4..84305a996 100644 --- a/otelcollector/prometheusreceiver/config.go +++ b/otelcollector/prometheusreceiver/config.go @@ -18,11 +18,11 @@ import ( "github.com/prometheus/prometheus/discovery" "github.com/prometheus/prometheus/discovery/kubernetes" "github.com/prometheus/prometheus/discovery/targetgroup" + "go.opentelemetry.io/collector/config/confighttp" "go.opentelemetry.io/collector/config/configoptional" "go.opentelemetry.io/collector/confmap" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/apiserver" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/targetallocator" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/targetallocator" ) // Config defines configuration for Prometheus receiver. @@ -39,6 +39,8 @@ type Config struct { StartTimeMetricRegex string `mapstructure:"start_time_metric_regex"` // ReportExtraScrapeMetrics - enables reporting of additional metrics for Prometheus client like scrape_body_size_bytes + // + // Deprecated: use the feature gate "receiver.prometheusreceiver.EnableReportExtraScrapeMetrics" instead. ReportExtraScrapeMetrics bool `mapstructure:"report_extra_scrape_metrics"` TargetAllocator configoptional.Optional[targetallocator.Config] `mapstructure:"target_allocator"` @@ -46,7 +48,12 @@ type Config struct { // APIServer has the settings to enable the receiver to host the Prometheus API // server in agent mode. This allows the user to call the endpoint to get // the config, service discovery, and targets for debugging purposes. - APIServer configoptional.Optional[apiserver.Config] `mapstructure:"api_server"` + APIServer APIServer `mapstructure:"api_server"` + + // From feature gate. + enableNativeHistograms bool + // For testing only. + ignoreMetadata bool } // Validate checks the receiver configuration is valid. @@ -231,3 +238,20 @@ func checkTLSConfig(tlsConfig commonconfig.TLSConfig) error { } return nil } + +type APIServer struct { + Enabled bool `mapstructure:"enabled"` + ServerConfig confighttp.ServerConfig `mapstructure:"server_config"` +} + +func (cfg *APIServer) Validate() error { + if !cfg.Enabled { + return nil + } + + if cfg.ServerConfig.Endpoint == "" { + return errors.New("if api_server is enabled, it requires a non-empty server_config endpoint") + } + + return nil +} diff --git a/otelcollector/prometheusreceiver/config_test.go b/otelcollector/prometheusreceiver/config_test.go index 50fb56de3..9bc341de5 100644 --- a/otelcollector/prometheusreceiver/config_test.go +++ b/otelcollector/prometheusreceiver/config_test.go @@ -467,6 +467,53 @@ scrape_configs: assert.Equal(t, "Bearer", scrapeConfig.HTTPClientConfig.Authorization.Type) }, }, + { + name: "oauth2 client credentials secret preservation", + configYAML: ` +scrape_configs: + - job_name: "test-client-secredentialscret-auth" + oauth2: + client_id: "id-1" + client_secret: "mySuperSecretClientSecret" + token_url: "https://auth.example.com/token" + static_configs: + - targets: ["localhost:8080"] +`, + checkFn: func(t *testing.T, dst *PromConfig) { + require.Len(t, dst.ScrapeConfigs, 1) + scrapeConfig := dst.ScrapeConfigs[0] + assert.Equal(t, "test-client-secredentialscret-auth", scrapeConfig.JobName) + + // The critical check: ensure the client_secret is not "" + require.NotNil(t, scrapeConfig.HTTPClientConfig.OAuth2, "basic auth should be configured") + secret := string(scrapeConfig.HTTPClientConfig.OAuth2.ClientSecret) + assert.Equal(t, "mySuperSecretClientSecret", secret, "client_secret should preserve original value") + }, + }, + { + name: "oauth2 jwt-bearer certificate preservation", + configYAML: ` +scrape_configs: + - job_name: "test-jwt-bearer-auth" + oauth2: + client_id: "id-1" + client_certificate_key: "mySuperSecretCertificateKey" + token_url: "https://auth.example.com/token" + grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer" + static_configs: + - targets: ["localhost:8080"] +`, + checkFn: func(t *testing.T, dst *PromConfig) { + require.Len(t, dst.ScrapeConfigs, 1) + scrapeConfig := dst.ScrapeConfigs[0] + assert.Equal(t, "test-jwt-bearer-auth", scrapeConfig.JobName) + + // The critical check: ensure the client_certificate_key is not "" + require.NotNil(t, scrapeConfig.HTTPClientConfig.OAuth2, "basic auth should be configured") + key := string(scrapeConfig.HTTPClientConfig.OAuth2.ClientCertificateKey) + assert.Equal(t, "mySuperSecretCertificateKey", key, "client_certificate_key should preserve original value") + }, + }, } for _, tt := range tests { diff --git a/otelcollector/prometheusreceiver/factory.go b/otelcollector/prometheusreceiver/factory.go index cfcf2e7dc..4af7b29e1 100644 --- a/otelcollector/prometheusreceiver/factory.go +++ b/otelcollector/prometheusreceiver/factory.go @@ -40,6 +40,13 @@ var enableCreatedTimestampZeroIngestionGate = featuregate.GlobalRegistry().MustR " Created timestamps are injected as 0 valued samples when appropriate."), ) +var enableReportExtraScrapeMetricsGate = featuregate.GlobalRegistry().MustRegister( + "receiver.prometheusreceiver.EnableReportExtraScrapeMetrics", + featuregate.StageAlpha, + featuregate.WithRegisterDescription("Enables reporting of extra scrape metrics."+ + " Extra scrape metrics are metrics that are not scraped by Prometheus but are reported by the Prometheus server."), +) + // NewFactory creates a new Prometheus receiver factory. func NewFactory() receiver.Factory { return receiver.NewFactory( @@ -63,6 +70,7 @@ func createMetricsReceiver( nextConsumer consumer.Metrics, ) (receiver.Metrics, error) { configWarnings(set.Logger, cfg.(*Config)) + cfg.(*Config).enableNativeHistograms = enableNativeHistogramsGate.IsEnabled() return newPrometheusReceiver(set, cfg.(*Config), nextConsumer) } diff --git a/otelcollector/prometheusreceiver/go.mod b/otelcollector/prometheusreceiver/go.mod index 43f324f70..9ed06b87e 100644 --- a/otelcollector/prometheusreceiver/go.mod +++ b/otelcollector/prometheusreceiver/go.mod @@ -8,143 +8,142 @@ require ( github.com/goccy/go-yaml v1.18.0 github.com/gogo/protobuf v1.3.2 github.com/golang/snappy v1.0.0 - github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc + github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.136.0 - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.136.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.141.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.141.0 github.com/prometheus/client_golang v1.23.2 - github.com/prometheus/common v0.66.1 - github.com/prometheus/exporter-toolkit v0.14.0 - github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 + github.com/prometheus/common v0.67.4 + github.com/prometheus/exporter-toolkit v0.15.0 + github.com/prometheus/prometheus v0.307.3 github.com/stretchr/testify v1.11.1 - go.opentelemetry.io/collector/component v1.42.0 - go.opentelemetry.io/collector/component/componentstatus v0.136.0 - go.opentelemetry.io/collector/component/componenttest v0.136.0 - go.opentelemetry.io/collector/config/confighttp v0.136.0 - go.opentelemetry.io/collector/config/configopaque v1.42.0 - go.opentelemetry.io/collector/config/configoptional v0.136.0 - go.opentelemetry.io/collector/config/configtls v1.42.0 - go.opentelemetry.io/collector/confmap v1.42.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0 - go.opentelemetry.io/collector/confmap/xconfmap v0.136.0 - go.opentelemetry.io/collector/consumer v1.42.0 - go.opentelemetry.io/collector/consumer/consumertest v0.136.0 - go.opentelemetry.io/collector/exporter v1.42.0 - go.opentelemetry.io/collector/featuregate v1.42.0 - go.opentelemetry.io/collector/otelcol v0.136.0 - go.opentelemetry.io/collector/pdata v1.42.0 - go.opentelemetry.io/collector/processor v1.42.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.136.0 - go.opentelemetry.io/collector/receiver v1.42.0 - go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0 - go.opentelemetry.io/collector/receiver/receivertest v0.136.0 + go.opentelemetry.io/collector/component v1.47.0 + go.opentelemetry.io/collector/component/componentstatus v0.141.0 + go.opentelemetry.io/collector/component/componenttest v0.141.0 + go.opentelemetry.io/collector/config/confighttp v0.141.0 + go.opentelemetry.io/collector/config/configopaque v1.47.0 + go.opentelemetry.io/collector/config/configoptional v1.47.0 + go.opentelemetry.io/collector/config/configtls v1.47.0 + go.opentelemetry.io/collector/confmap v1.47.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0 + go.opentelemetry.io/collector/confmap/xconfmap v0.141.0 + go.opentelemetry.io/collector/consumer v1.47.0 + go.opentelemetry.io/collector/consumer/consumertest v0.141.0 + go.opentelemetry.io/collector/exporter v1.47.0 + go.opentelemetry.io/collector/featuregate v1.47.0 + go.opentelemetry.io/collector/otelcol v0.141.0 + go.opentelemetry.io/collector/pdata v1.47.0 + go.opentelemetry.io/collector/processor v1.47.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.141.0 + go.opentelemetry.io/collector/receiver v1.47.0 + go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0 + go.opentelemetry.io/collector/receiver/receivertest v0.141.0 + go.opentelemetry.io/collector/service v0.141.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 go.opentelemetry.io/otel v1.38.0 go.uber.org/goleak v1.3.0 - go.uber.org/zap v1.27.0 + go.uber.org/zap v1.27.1 go.uber.org/zap/exp v0.3.0 - golang.org/x/net v0.44.0 - google.golang.org/protobuf v1.36.9 + golang.org/x/net v0.47.0 + google.golang.org/protobuf v1.36.10 ) require ( - cloud.google.com/go/auth v0.16.2 // indirect + cloud.google.com/go/auth v0.16.5 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect - cloud.google.com/go/compute/metadata v0.7.0 // indirect - dario.cat/mergo v1.0.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect + cloud.google.com/go/compute/metadata v0.9.0 // indirect + dario.cat/mergo v1.0.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/aws/aws-sdk-go-v2 v1.37.0 // indirect - github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.39.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.12 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect - github.com/aws/smithy-go v1.22.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 // indirect + github.com/aws/smithy-go v1.23.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // 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/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect + github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect - github.com/coreos/go-systemd/v22 v22.5.0 // indirect + github.com/coreos/go-systemd/v22 v22.6.0 // indirect github.com/cpuguy83/dockercfg v0.3.2 // 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.157.0 // indirect + github.com/digitalocean/godo v1.165.1 // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/docker v28.3.3+incompatible // indirect + github.com/docker/docker v28.5.1+incompatible // indirect github.com/docker/go-connections v0.6.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/ebitengine/purego v0.8.4 // indirect + github.com/ebitengine/purego v0.9.0 // indirect github.com/edsrzf/mmap-go v1.2.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect github.com/fatih/color v1.16.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/foxboron/go-tpm-keyfiles v0.0.0-20250903184740-5d135037bd4d // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-openapi/analysis v0.23.0 // indirect - github.com/go-openapi/errors v0.22.0 // indirect + github.com/go-openapi/errors v0.22.3 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect github.com/go-openapi/loads v0.22.0 // indirect github.com/go-openapi/spec v0.21.0 // indirect - github.com/go-openapi/strfmt v0.23.0 // indirect + github.com/go-openapi/strfmt v0.24.0 // indirect github.com/go-openapi/swag v0.23.0 // indirect github.com/go-openapi/validate v0.24.0 // indirect github.com/go-resty/resty/v2 v2.16.5 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/go-zookeeper/zk v1.0.4 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/go-tpm v0.9.6 // indirect - github.com/google/gofuzz v1.2.0 // indirect + github.com/google/go-tpm v0.9.7 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect - github.com/googleapis/gax-go/v2 v2.14.2 // indirect - github.com/gophercloud/gophercloud/v2 v2.7.0 // indirect - github.com/gorilla/websocket v1.5.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect + github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect + github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 // indirect github.com/hashicorp/consul/api v1.32.0 // indirect - github.com/hashicorp/cronexpr v1.1.2 // indirect + github.com/hashicorp/cronexpr v1.1.3 // 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 @@ -154,22 +153,22 @@ require ( github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-version v1.7.0 // indirect github.com/hashicorp/golang-lru v1.0.2 // indirect - github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec // indirect + github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af // indirect github.com/hashicorp/serf v0.10.1 // indirect - github.com/hetznercloud/hcloud-go/v2 v2.21.1 // indirect + github.com/hetznercloud/hcloud-go/v2 v2.25.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/ionos-cloud/sdk-go/v6 v6.3.4 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/julienschmidt/httprouter v1.3.0 // indirect - github.com/klauspost/compress v1.18.0 // indirect + github.com/klauspost/compress v1.18.1 // indirect github.com/knadh/koanf/maps v0.1.2 // indirect github.com/knadh/koanf/providers/confmap v1.0.0 // indirect github.com/knadh/koanf/v2 v2.3.0 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/linode/linodego v1.52.2 // indirect + github.com/linode/linodego v1.59.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.10 // indirect github.com/mailru/easyjson v0.7.7 // indirect @@ -177,7 +176,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mdlayher/socket v0.4.1 // indirect github.com/mdlayher/vsock v1.2.1 // indirect - github.com/miekg/dns v1.1.66 // indirect + github.com/miekg/dns v1.1.68 // 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 @@ -195,11 +194,11 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/oklog/ulid/v2 v2.1.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.136.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.136.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.141.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.141.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/ovh/go-ovh v1.9.0 // indirect @@ -212,19 +211,19 @@ require ( github.com/prometheus/alertmanager v0.28.1 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common/assets v0.2.0 // indirect - github.com/prometheus/otlptranslator v0.0.2 // indirect + github.com/prometheus/otlptranslator v1.0.0 // indirect github.com/prometheus/procfs v0.17.0 // indirect - github.com/prometheus/sigv4 v0.2.0 // indirect + github.com/prometheus/sigv4 v0.2.1 // indirect github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect github.com/rs/cors v1.11.1 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 // indirect - github.com/shirou/gopsutil/v4 v4.25.8 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 // indirect + github.com/shirou/gopsutil/v4 v4.25.10 // indirect github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/spf13/cobra v1.10.1 // indirect github.com/spf13/pflag v1.0.9 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.17.2 // indirect - github.com/testcontainers/testcontainers-go v0.38.0 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.17.3 // indirect + github.com/testcontainers/testcontainers-go v0.40.0 // indirect github.com/tidwall/gjson v1.10.2 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect @@ -235,96 +234,97 @@ require ( 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.mongodb.org/mongo-driver v1.14.0 // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/collector/client v1.42.0 // indirect - go.opentelemetry.io/collector/config/configauth v0.136.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.42.0 // indirect - go.opentelemetry.io/collector/config/configmiddleware v1.42.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.42.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.136.0 // indirect - go.opentelemetry.io/collector/connector v0.136.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.136.0 // indirect - go.opentelemetry.io/collector/connector/xconnector v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.136.0 // indirect - go.opentelemetry.io/collector/consumer/xconsumer v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.136.0 // indirect - go.opentelemetry.io/collector/exporter/xexporter v0.136.0 // indirect - go.opentelemetry.io/collector/extension v1.42.0 // indirect - go.opentelemetry.io/collector/extension/extensionauth v1.42.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0 // indirect - go.opentelemetry.io/collector/extension/extensiontest v0.136.0 // indirect - go.opentelemetry.io/collector/extension/xextension v0.136.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0 // indirect - go.opentelemetry.io/collector/internal/telemetry v0.136.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.136.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.136.0 // indirect - go.opentelemetry.io/collector/pdata/xpdata v0.136.0 // indirect - go.opentelemetry.io/collector/pipeline v1.42.0 // indirect - go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.136.0 // indirect - go.opentelemetry.io/collector/processor/xprocessor v0.136.0 // indirect - go.opentelemetry.io/collector/receiver/xreceiver v0.136.0 // indirect + go.mongodb.org/mongo-driver v1.17.4 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/collector/client v1.47.0 // indirect + go.opentelemetry.io/collector/config/configauth v1.47.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.47.0 // indirect + go.opentelemetry.io/collector/config/configmiddleware v1.47.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.47.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.141.0 // indirect + go.opentelemetry.io/collector/connector v0.141.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.141.0 // indirect + go.opentelemetry.io/collector/connector/xconnector v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.141.0 // indirect + go.opentelemetry.io/collector/consumer/xconsumer v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.141.0 // indirect + go.opentelemetry.io/collector/exporter/xexporter v0.141.0 // indirect + go.opentelemetry.io/collector/extension v1.47.0 // indirect + go.opentelemetry.io/collector/extension/extensionauth v1.47.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.141.0 // indirect + go.opentelemetry.io/collector/extension/xextension v0.141.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0 // indirect + go.opentelemetry.io/collector/internal/telemetry v0.141.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.141.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.141.0 // indirect + go.opentelemetry.io/collector/pdata/xpdata v0.141.0 // indirect + go.opentelemetry.io/collector/pipeline v1.47.0 // indirect + go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.141.0 // indirect + go.opentelemetry.io/collector/processor/xprocessor v0.141.0 // indirect + go.opentelemetry.io/collector/receiver/xreceiver v0.141.0 // indirect go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 // indirect - go.opentelemetry.io/collector/service v0.136.0 // indirect - go.opentelemetry.io/collector/service/hostcapabilities v0.136.0 // indirect - go.opentelemetry.io/contrib/bridges/otelzap v0.12.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 // indirect - go.opentelemetry.io/contrib/otelconf v0.16.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 // indirect + go.opentelemetry.io/collector/service/hostcapabilities v0.141.0 // indirect + go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 // indirect + go.opentelemetry.io/contrib/otelconf v0.18.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 // indirect go.opentelemetry.io/otel/exporters/prometheus v0.60.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 // indirect go.opentelemetry.io/otel/log v0.14.0 // indirect go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/sdk v1.38.0 // indirect - go.opentelemetry.io/otel/sdk/log v0.13.0 // indirect + go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect - go.opentelemetry.io/proto/otlp v1.7.0 // indirect + go.opentelemetry.io/proto/otlp v1.7.1 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect - golang.org/x/crypto v0.42.0 // indirect - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.27.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.17.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/term v0.35.0 // indirect - golang.org/x/text v0.29.0 // indirect - golang.org/x/time v0.12.0 // indirect - golang.org/x/tools v0.36.0 // indirect + golang.org/x/crypto v0.45.0 // indirect + golang.org/x/exp v0.0.0-20250808145144-a408d31f581a // indirect + golang.org/x/mod v0.29.0 // indirect + golang.org/x/oauth2 v0.32.0 // indirect + golang.org/x/sync v0.18.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect + golang.org/x/text v0.31.0 // indirect + golang.org/x/time v0.13.0 // indirect + golang.org/x/tools v0.38.0 // indirect + golang.org/x/tools/godoc v0.1.0-deprecated // indirect gonum.org/v1/gonum v0.16.0 // indirect - google.golang.org/api v0.239.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 // indirect - google.golang.org/grpc v1.75.1 // indirect + google.golang.org/api v0.250.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect + google.golang.org/grpc v1.77.0 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // 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 - k8s.io/api v0.32.3 // indirect - k8s.io/apimachinery v0.32.3 // indirect - k8s.io/client-go v0.32.3 // indirect + k8s.io/api v0.34.1 // indirect + k8s.io/apimachinery v0.34.1 // indirect + k8s.io/client-go v0.34.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect - sigs.k8s.io/yaml v1.5.0 // indirect + k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/otelcollector/prometheusreceiver/go.sum b/otelcollector/prometheusreceiver/go.sum index a6a1b5e21..26db67804 100644 --- a/otelcollector/prometheusreceiver/go.sum +++ b/otelcollector/prometheusreceiver/go.sum @@ -1,21 +1,21 @@ -cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4= -cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA= +cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI= +cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= -cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= -cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= -dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= -dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= +dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 h1:wL5IEG5zb7BVv1Kv0Xm92orq+5hB5Nipn3B5tn4Rqfk= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0/go.mod h1:J7MUC/wtRpfGVbQ5sIItY5/FuVWmvzlY21WAOfQnq/I= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= @@ -28,8 +28,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= 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/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -49,36 +49,36 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go-v2 v1.37.0 h1:YtCOESR/pN4j5oA7cVHSfOwIcuh/KwHC4DOSXFbv5F0= -github.com/aws/aws-sdk-go-v2 v1.37.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= -github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= -github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 h1:H2iZoqW/v2Jnrh1FnU725Bq6KJ0k2uP63yH+DcY+HUI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0/go.mod h1:L0FqLbwMXHvNC/7crWV1iIxUlOKYZUE8KuTIA+TozAI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 h1:EDped/rNzAhFPhVY0sDGbtD16OKqksfA8OjF/kLEgw8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0/go.mod h1:uUI335jvzpZRPpjYx6ODc/wg1qH+NnoSTK/FwVeK0C0= +github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= +github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8= +github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 h1:Mv4Bc0mWmv6oDuSWTKnk+wgeqPL5DRFu5bQL9BGPQ8Y= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9/go.mod h1:IKlKfRppK2a1y0gy1yH6zD+yX5uplJ6UuPlgd48dJiQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 h1:XHE2G+yaDQql32FZt19QmQt4WuisqQJIkMUSCxeCUl8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0/go.mod h1:t11/j/nH9i6bbsPH9xc04BJOsV2nVPUqrB67/TLDsyM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 h1:eRhU3Sh8dGbaniI6B+I48XJMrTPRkK4DKo+vqIxziOU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0/go.mod h1:paNLV18DZ6FnWE/bd06RIKPDIFpjuvCkGKWTG/GDBeM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 h1:QiiCqpKy0prxq+92uWfESzcb7/8Y9JAamcMOzVYLEoM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0/go.mod h1:ESppxYqXQCpCY+KWl3BdkQjmsQX6zxKP39SnDtRDoU0= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= -github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= -github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 h1:7p9bJCZ/b3EJXXARW7JMEs2IhsnI4YFHpfXQfgMh0eg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1/go.mod h1:M8WWWIfXmxA4RgTXcI/5cSByxRqjgne32Sh0VIbrn0A= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 h1:J1A0VJlt5HgUX6s11Obe9zrBDECeE2uhQc7Dwhdei9o= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1/go.mod h1:WEOSRNyfIfvgrD9MuSIGrogKyuFahaVMziVq1pHI0NQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 h1:A1oRkiSQOWstGh61y4Wc/yQ04sqrQZr1Si/oAXj20/s= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 h1:5fm5RTONng73/QA73LhCNR7UT9RpFH3hR6HWL6bIgVY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1/go.mod h1:xBEjWD13h+6nq+z4AkqSfSvqRKFgDIQeaMguAJndOWo= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 h1:p3jIvqYwUZgu/XYeI48bJxOhvm47hZb5HUQ0tn6Q9kA= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6/go.mod h1:WtKK+ppze5yKPkZ0XwqIVWD4beCwv056ZbPQNoeHqM8= +github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= +github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps= github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3/go.mod h1:CIWtjkly68+yqLPbvwwR/fjNJA/idrtULjZWh2v1ys0= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -95,8 +95,8 @@ 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/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= -github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0= +github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -105,8 +105,8 @@ 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= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -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/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo= +github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU= github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GKorA= github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= @@ -118,28 +118,26 @@ 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/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/digitalocean/godo v1.157.0 h1:ReELaS6FxXNf8gryUiVH0wmyUmZN8/NCmBX4gXd3F0o= -github.com/digitalocean/godo v1.157.0/go.mod h1:tYeiWY5ZXVpU48YaFv0M5irUFHXGorZpDNm7zzdWMzM= +github.com/digitalocean/godo v1.165.1 h1:H37+W7TaGFOVH+HpMW4ZeW/hrq3AGNxg+B/K8/dZ9mQ= +github.com/digitalocean/godo v1.165.1/go.mod h1:xQsWpVCCbkDrWisHA72hPzPlnC+4W5w/McZY5ij9uvU= 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/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v28.3.3+incompatible h1:Dypm25kh4rmk49v1eiVbsAtpAsYURjYkaKubwuBdxEI= -github.com/docker/docker v28.3.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.5.1+incompatible h1:Bm8DchhSD2J6PsFzxC35TZo4TLGR2PdW/E69rU45NhM= +github.com/docker/docker v28.5.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= 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/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= -github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/ebitengine/purego v0.9.0 h1:mh0zpKBIXDceC63hpvPuGLiJ8ZAa3DfrFTudmfi8A4k= +github.com/ebitengine/purego v0.9.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/edsrzf/mmap-go v1.2.0 h1:hXLYlkbaPzt1SaQk+anYwKSRNhufIDCchSPkUD6dD84= github.com/edsrzf/mmap-go v1.2.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= -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/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= -github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo= +github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb h1:IT4JYU7k4ikYg1SCxNI1/Tieq/NFvh6dzLdgi7eu0tM= @@ -157,8 +155,8 @@ github.com/foxboron/swtpm_test v0.0.0-20230726224112-46aaafdf7006 h1:50sW4r0Pcvl github.com/foxboron/swtpm_test v0.0.0-20230726224112-46aaafdf7006/go.mod h1:eIXCMsMYCaqq9m1KSSxXwQG11krpuNPGP3k0uaWrbas= github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= github.com/fsnotify/fsnotify v1.9.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/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= 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.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= @@ -176,8 +174,8 @@ 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-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU= github.com/go-openapi/analysis v0.23.0/go.mod h1:9mz9ZWaSlV8TvjQHLl2mUW2PbZtemkE8yA5v22ohupo= -github.com/go-openapi/errors v0.22.0 h1:c4xY/OLxUBSTiepAg3j/MHuAv5mJhnf53LLMWFB+u/w= -github.com/go-openapi/errors v0.22.0/go.mod h1:J3DmZScxCDufmIMsdOuDHxJbdOGC0xtUynjIx092vXE= +github.com/go-openapi/errors v0.22.3 h1:k6Hxa5Jg1TUyZnOwV2Lh81j8ayNw5VVYLvKrp4zFKFs= +github.com/go-openapi/errors v0.22.3/go.mod h1:+WvbaBBULWCOna//9B9TbLNGSFOfF8lY9dw4hGiEiKQ= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -186,8 +184,8 @@ github.com/go-openapi/loads v0.22.0 h1:ECPGd4jX1U6NApCGG1We+uEozOAvXvJSF4nnwHZ8A github.com/go-openapi/loads v0.22.0/go.mod h1:yLsaTCS92mnSAZX5WWoxszLj0u+Ojl+Zs5Stn1oF+rs= github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY= github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk= -github.com/go-openapi/strfmt v0.23.0 h1:nlUS6BCqcnAk0pyhi9Y+kdDVZdZMHfEKQiS4HaMgO/c= -github.com/go-openapi/strfmt v0.23.0/go.mod h1:NrtIpfKtWIygRkKVsxh7XQMDQW5HKQl6S5ik2elW+K4= +github.com/go-openapi/strfmt v0.24.0 h1:dDsopqbI3wrrlIzeXRbqMihRNnjzGC+ez4NQaAAJLuc= +github.com/go-openapi/strfmt v0.24.0/go.mod h1:Lnn1Bk9rZjXxU9VMADbEEOo7D7CDyKGLsSKekhFr7s4= github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= github.com/go-openapi/validate v0.24.0 h1:LdfDKwNbpB6Vn40xhTdNZAnfLECL81w+VX3BumrGD58= @@ -205,12 +203,11 @@ 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/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= 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= @@ -219,50 +216,47 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6 github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= github.com/golang/snappy v1.0.0/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.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -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/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.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= 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.2/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.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= -github.com/google/go-tpm v0.9.6 h1:Ku42PT4LmjDu1H5C5ISWLlpI1mj+Zq7sPGKoRw2XROA= -github.com/google/go-tpm v0.9.6/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= +github.com/google/go-tpm v0.9.7 h1:u89J4tUUeDTlH8xxC3CTW7OHZjbjKoHdQ9W7gCUhtxA= +github.com/google/go-tpm v0.9.7/go.mod h1:h9jEsEECg7gtLis0upRBQU+GhYVH6jMjrFxI8u6bVUY= github.com/google/go-tpm-tools v0.4.4 h1:oiQfAIkc6xTy9Fl5NKTeTJkBTlXdHsxAofmQyxBKY98= github.com/google/go-tpm-tools v0.4.4/go.mod h1:T8jXkp2s+eltnCDIsXR84/MTcVU9Ja7bh3Mit0pa4AY= 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-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18= -github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8 h1:ZI8gCoCjGzPsum4L21jHdQs8shFBIQih1TM9Rd/c+EQ= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= 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.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= -github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= -github.com/gophercloud/gophercloud/v2 v2.7.0 h1:o0m4kgVcPgHlcXiWAjoVxGd8QCmvM5VU+YM71pFbn0E= -github.com/gophercloud/gophercloud/v2 v2.7.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= -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/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= +github.com/gophercloud/gophercloud/v2 v2.8.0 h1:of2+8tT6+FbEYHfYC8GBu8TXJNsXYSNm9KuvpX7Neqo= +github.com/gophercloud/gophercloud/v2 v2.8.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 h1:cLN4IBkmkYZNnk7EAJ0BHIethd+J6LqxFNw5mSiI2bM= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/hashicorp/consul/api v1.32.0 h1:5wp5u780Gri7c4OedGEPzmlUEzi0g2KyiPphSr6zjVg= github.com/hashicorp/consul/api v1.32.0/go.mod h1:Z8YgY0eVPukT/17ejW+l+C7zJmKwgPHtjU1q16v/Y40= 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= -github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/cronexpr v1.1.3 h1:rl5IkxXN2m681EfivTlccqIryzYJSXRGRNa0xeG7NA4= +github.com/hashicorp/cronexpr v1.1.3/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= 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= @@ -306,18 +300,18 @@ github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/ github.com/hashicorp/memberlist v0.5.0/go.mod h1:yvyXLpo0QaGE59Y7hDTsTzDD25JYBZ4mHgHUZ8lrOI0= github.com/hashicorp/memberlist v0.5.1 h1:mk5dRuzeDNis2bi6LLoQIXfMH7JQvAzt3mQD0vNZZUo= github.com/hashicorp/memberlist v0.5.1/go.mod h1:zGDXV6AqbDTKTM6yxW0I4+JtFzZAJVoIPvss4hV8F24= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec h1:+YBzb977VrmffaCX/OBm17dEVJUcWn5dW+eqs3aIJ/A= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af h1:ScAYf8O+9xTqTJPZH8MIlUfO+ak8cb31rW1aYJgS+jE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af/go.mod h1:sldFTIgs+FsUeKU3LwVjviAIuksxD8TzDOn02MYwslE= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hetznercloud/hcloud-go/v2 v2.21.1 h1:IH3liW8/cCRjfJ4cyqYvw3s1ek+KWP8dl1roa0lD8JM= -github.com/hetznercloud/hcloud-go/v2 v2.21.1/go.mod h1:XOaYycZJ3XKMVWzmqQ24/+1V7ormJHmPdck/kxrNnQA= +github.com/hetznercloud/hcloud-go/v2 v2.25.1 h1:ib86acotlvgUSnKfFG5FJl0VFeYKe/Ht8nmikdUp+po= +github.com/hetznercloud/hcloud-go/v2 v2.25.1/go.mod h1:uQdAWaW3d9TimiyOjQWY8HKShs0Nd6S4wNYqo0HjvIY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/ionos-cloud/sdk-go/v6 v6.3.4 h1:jTvGl4LOF8v8OYoEIBNVwbFoqSGAFqn6vGE7sp7/BqQ= github.com/ionos-cloud/sdk-go/v6 v6.3.4/go.mod h1:wCVwNJ/21W29FWFUv+fNawOTMlFoP1dS3L+ZuztFW48= -github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= -github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= +github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= +github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -333,8 +327,8 @@ github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRt github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= 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.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= -github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= +github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co= +github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0= github.com/knadh/koanf/maps v0.1.2 h1:RBfmAW5CnZT+PJ1CVc1QSJKf4Xu9kxfQgYVQSu8hpbo= github.com/knadh/koanf/maps v0.1.2/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI= github.com/knadh/koanf/providers/confmap v1.0.0 h1:mHKLJTE7iXEys6deO5p6olAiZdG5zwp8Aebir+/EaRE= @@ -354,8 +348,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/linode/linodego v1.52.2 h1:N9ozU27To1LMSrDd8WvJZ5STSz1eGYdyLnxhAR/dIZg= -github.com/linode/linodego v1.52.2/go.mod h1:bI949fZaVchjWyKIA08hNyvAcV6BAS+PM2op3p7PAWA= +github.com/linode/linodego v1.59.0 h1:kYz6sQH9g0u21gbI1UUFjZmFLirtc39JPybygrW76Q0= +github.com/linode/linodego v1.59.0/go.mod h1:1+Bt0oTz5rBnDOJbGhccxn7LYVytXTIIfAy7QYmijDs= 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.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= @@ -386,15 +380,13 @@ github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ= github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE= 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.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE= -github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE= +github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA= +github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= 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= 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 v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/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= @@ -480,41 +472,39 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= 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.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= +github.com/prometheus/common v0.67.4 h1:yR3NqWO1/UyO1w2PhUvXlGQs/PtFmoveVO0KZ4+Lvsc= +github.com/prometheus/common v0.67.4/go.mod h1:gP0fq6YjjNCLssJCQp0yk4M8W6ikLURwkdd/YKtTbyI= github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/5AahrSrfM= github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI= -github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg= -github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA= -github.com/prometheus/otlptranslator v0.0.2 h1:+1CdeLVrRQ6Psmhnobldo0kTp96Rj80DRXRd5OSnMEQ= -github.com/prometheus/otlptranslator v0.0.2/go.mod h1:P8AwMgdD7XEr6QRUJ2QWLpiAZTgTE2UYgjlu3svompI= +github.com/prometheus/exporter-toolkit v0.15.0 h1:Pcle5sSViwR1x0gdPd0wtYrPQENBieQAM7TmT0qtb2U= +github.com/prometheus/exporter-toolkit v0.15.0/go.mod h1:OyRWd2iTo6Xge9Kedvv0IhCrJSBu36JCfJ2yVniRIYk= +github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= +github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= 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.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0= github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 h1:EtTzzd5UW9TXf9C8BUHv66RgdjG51efqGKWmlxMqjgs= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261/go.mod h1:KMw//femth6oNhcWeCrh4Er45VNPkNac87cTK6er/dA= -github.com/prometheus/sigv4 v0.2.0 h1:qDFKnHYFswJxdzGeRP63c4HlH3Vbn1Yf/Ao2zabtVXk= -github.com/prometheus/sigv4 v0.2.0/go.mod h1:D04rqmAaPPEUkjRQxGqjoxdyJuyCh6E0M18fZr0zBiE= +github.com/prometheus/prometheus v0.307.3 h1:zGIN3EpiKacbMatcUL2i6wC26eRWXdoXfNPjoBc2l34= +github.com/prometheus/prometheus v0.307.3/go.mod h1:sPbNW+KTS7WmzFIafC3Inzb6oZVaGLnSvwqTdz2jxRQ= +github.com/prometheus/sigv4 v0.2.1 h1:hl8D3+QEzU9rRmbKIRwMKRwaFGyLkbPdH5ZerglRHY0= +github.com/prometheus/sigv4 v0.2.1/go.mod h1:ySk6TahIlsR2sxADuHy4IBFhwEjRGGsfbbLGhFYFj6Q= github.com/puzpuzpuz/xsync/v3 v3.5.1 h1:GJYJZwO6IdxN/IKbneznS6yPkVC+c3zyY/j19c++5Fg= github.com/puzpuzpuz/xsync/v3 v3.5.1/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= -github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= -github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= -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/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= 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/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 h1:KhF0WejiUTDbL5X55nXowP7zNopwpowa6qaMAWyIE+0= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33/go.mod h1:792k1RTU+5JeMXm35/e2Wgp71qPH/DmDoZrRc+EFZDk= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 h1:8xfn1RzeI9yoCUuEwDy08F+No6PcKZGEDOQ6hrRyLts= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35/go.mod h1:47B1d/YXmSAxlJxUJxClzHR6b3T4M1WyCvwENPQNBWc= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shirou/gopsutil/v4 v4.25.8 h1:NnAsw9lN7587WHxjJA9ryDnqhJpFH6A+wagYWTOH970= -github.com/shirou/gopsutil/v4 v4.25.8/go.mod h1:q9QdMmfAOVIw7a+eF86P7ISEU6ka+NLgkUxlopV4RwI= -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.25.10 h1:at8lk/5T1OgtuCp+AwrDofFRjnvosn0nkN2OLQ6g8tA= +github.com/shirou/gopsutil/v4 v4.25.10/go.mod h1:+kSwyC8DRUD9XXEHCAFjK+0nuArFJM0lva+StQAcskM= +github.com/shoenig/test v1.12.2 h1:ZVT8NeIUwGWpZcKaepPmFMoNQ3sVpxvqUh/MAqwFiJI= +github.com/shoenig/test v1.12.2/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c h1:aqg5Vm5dwtvL+YgDpBcK1ITf3o96N/K7/wsRXQnUTEs= github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c/go.mod h1:owqhoLW1qZoYLZzLnBw+QkPP9WZnjlSWihhxAJC1+/M= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -525,8 +515,8 @@ github.com/spf13/cobra v1.10.1 h1:lJeBwCfmrnXthfAupyUTzJ/J4Nc1RsHC/mSRU2dll/s= github.com/spf13/cobra v1.10.1/go.mod h1:7SmJGaTHFVBY0jW4NXGluQoLvhqFQM+6XSKD+P4XaB0= github.com/spf13/pflag v1.0.9 h1:9exaQaMOCwffKiiiYk6/BndUBv+iRViNW+4lEMi0PvY= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2 h1:jPyn+i8rkp2hM80+hOg0B/1EVRbMt778Tr5RWyK1m2E= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2/go.mod h1:8KIw3czdNJ9sdil9QQimxjR6vHjeINFrRv0iZ67wfn0= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg= 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= @@ -544,8 +534,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.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/testcontainers/testcontainers-go v0.38.0 h1:d7uEapLcv2P8AvH8ahLqDMMxda2W9gQN1nRbHS28HBw= -github.com/testcontainers/testcontainers-go v0.38.0/go.mod h1:C52c9MoHpWO+C4aqmgSU+hxlR5jlEayWtgYrb8Pzz1w= +github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= +github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY= github.com/tidwall/gjson v1.10.2 h1:APbLGOM0rrEkd8WBw9C24nllro4ajFuJu0Sc9hRz8Bo= github.com/tidwall/gjson v1.10.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -569,164 +559,164 @@ 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.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= -go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= -go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= -go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/collector v0.136.0 h1:fEXsiNTa7itOD2SCspqBep6fnULa7mglLlNyhSizqok= -go.opentelemetry.io/collector v0.136.0/go.mod h1:m7YjwJ3xAzGIWa+vyHOE48R6pTKgh90vnlXjFhoB5+A= -go.opentelemetry.io/collector/client v1.42.0 h1:oBEWwd0ZgC9OLlIKZX7vo8PLXuUFoXuy3k0CuzLiKcM= -go.opentelemetry.io/collector/client v1.42.0/go.mod h1:GbBP2Ztn1xeeaAX6hIus0NOH/J0HcRgHP7SU8VDxwP0= -go.opentelemetry.io/collector/component v1.42.0 h1:on4XJ/NT1oPnuCVKDEtlpcr3GGPAS9taWBe8woHSTmY= -go.opentelemetry.io/collector/component v1.42.0/go.mod h1:mehIbkABLhEEs3kmAqer2GRmLwcQLoeF7C48CR6lxP0= -go.opentelemetry.io/collector/component/componentstatus v0.136.0 h1:MOD0t//ZYi23kIpjUm3Cqbp48xoNXPgFL8JBXp/kKaY= -go.opentelemetry.io/collector/component/componentstatus v0.136.0/go.mod h1:rwy++UVZJmymzltlvdYZptTvfxqLC4Vn9jMcM9X8U1c= -go.opentelemetry.io/collector/component/componenttest v0.136.0 h1:24U54okKfUl7tSApQ+84joz8KXgZicWgH+O7UB4fgNI= -go.opentelemetry.io/collector/component/componenttest v0.136.0/go.mod h1:diUZ4BjPMz0PJ/ur5BO9jSBWd8qebvOWMxVrEAoT6dQ= -go.opentelemetry.io/collector/config/configauth v0.136.0 h1:Xpi7zmpvidot/RRAcWN+8xkx87947+Ec1xMDGOLd+l4= -go.opentelemetry.io/collector/config/configauth v0.136.0/go.mod h1:WzZxFZqlc7pxbQxeto+kkV2zXFiEm5NA14fkjDp5kKU= -go.opentelemetry.io/collector/config/configcompression v1.42.0 h1:vznptUF452U526FHHp/fhGL9KgFCLb3sZ+iq4PXQYII= -go.opentelemetry.io/collector/config/configcompression v1.42.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= -go.opentelemetry.io/collector/config/confighttp v0.136.0 h1:7wnmvlm4mZOnF4LD9Q0FIU35EW2z0KB94HRBqM0S0Xw= -go.opentelemetry.io/collector/config/confighttp v0.136.0/go.mod h1:F6zKdR0MagtYZ8NBJOgw9VqPbY+BwkWmO9UYE5mODGU= -go.opentelemetry.io/collector/config/configmiddleware v1.42.0 h1:11LMjkIPnNirc5okrcjO8CEbJ+2Xo7WM/CJqv6J97+M= -go.opentelemetry.io/collector/config/configmiddleware v1.42.0/go.mod h1:v45dyG4WvLxC0Yfw80NvjSFzngTUJdH9zzZOTAXenjg= -go.opentelemetry.io/collector/config/configopaque v1.42.0 h1:AffFfB6FMKrgvgeSHCsOo+Q1cR4I2kqM3nRwEr/iHyk= -go.opentelemetry.io/collector/config/configopaque v1.42.0/go.mod h1:9uzLyGsWX0FtPWkomQXqLtblmSHgJFaM4T0gMBrCma0= -go.opentelemetry.io/collector/config/configoptional v0.136.0 h1:DwrduTAWbPwOW/k4GPcYUFB7DLruLvs+Zg2/RAHJ2DI= -go.opentelemetry.io/collector/config/configoptional v0.136.0/go.mod h1:hFcVjh2DqKIVMA9mbb2ctSW8d0SRN2UrNim33WxZM4o= -go.opentelemetry.io/collector/config/configretry v1.42.0 h1:iCm6gr8V7+J1ZI6fiHHeDqMzvFvJ9xKMlZt5DC2M5Vw= -go.opentelemetry.io/collector/config/configretry v1.42.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= -go.opentelemetry.io/collector/config/configtelemetry v0.136.0 h1:d5So8zVG6gRl7I3v2Trvk9kPkzSO6kubrcEUZ+wrasw= -go.opentelemetry.io/collector/config/configtelemetry v0.136.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= -go.opentelemetry.io/collector/config/configtls v1.42.0 h1:gACpOXSmxBeo+M8qjSxt7AU04B0qWzjqg2ZLvMA8Sdo= -go.opentelemetry.io/collector/config/configtls v1.42.0/go.mod h1:SJNnptQLBW+nO4CgTtNI1di8nAHNOIl2gclu9GsmK8g= -go.opentelemetry.io/collector/confmap v1.42.0 h1:Hdeqq1RkGBBWbmDpa96aC5LchklzUzCu4aSRRoPicng= -go.opentelemetry.io/collector/confmap v1.42.0/go.mod h1:KW/l4uXBGnl5OM8WYi3gTg6PeG+y24nlIMS71KwWQjk= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0 h1:BGejutI9811qBuzlV9jUI0vOLLR/6P/yprn4HqrQkh4= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.42.0/go.mod h1:tT2TNx//LDPh5vxKg07kW07n5lPRJmbKkT3oISTdBa4= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.42.0 h1:M0Vo2jp1LJrtudwGO4jdhNGKnRxh3D0NsJV/pY6Nnwk= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.42.0/go.mod h1:SJLJgZ7Q21O+MXOQnoNhliEjmk1Wr3DDRf3MTeB3Dlk= -go.opentelemetry.io/collector/confmap/xconfmap v0.136.0 h1:eC14gN+NL5HxmOmN9Aa4SkAnJhmUgmYP5cgEjCdz0sw= -go.opentelemetry.io/collector/confmap/xconfmap v0.136.0/go.mod h1:bDvQo42iyxLGR/Nl4eKP//F/jpDcD52JCb7uLGKA3lc= -go.opentelemetry.io/collector/connector v0.136.0 h1:q697P3BcHJcuqT+GE/Am5bqXGpAvCTf5gSlLL2HZ2iM= -go.opentelemetry.io/collector/connector v0.136.0/go.mod h1:zCKUihQzRDkAkszDPXg9RqTc/NcpRNGBbILySFaZ6zA= -go.opentelemetry.io/collector/connector/connectortest v0.136.0 h1:NQgEvJvAJKcswQ/5GQmo57gVgJQqYFvvLpYEpFCptaE= -go.opentelemetry.io/collector/connector/connectortest v0.136.0/go.mod h1:kBPRa9qDsuH7MGvgBwWxV4mLP7yG4fnLwxdBG2jigAA= -go.opentelemetry.io/collector/connector/xconnector v0.136.0 h1:7kEvmi1pARTHqGsBkmoi/IpG5xpAU7PMKDaWfLF18ps= -go.opentelemetry.io/collector/connector/xconnector v0.136.0/go.mod h1:+adB64pX2hOcDxgYmFN6gN6B5oLwKgnczzCqffrSiaE= -go.opentelemetry.io/collector/consumer v1.42.0 h1:RhdoAXrLODs4cnh1m/ihWfHTyWzGO1jL0X+E7wETzUE= -go.opentelemetry.io/collector/consumer v1.42.0/go.mod h1:jKcMYx9LXWMK4dupP2NhiAuHK063JiVMlyAC+ZMqlD0= -go.opentelemetry.io/collector/consumer/consumererror v0.136.0 h1:lYnTR/fJ8gBfVZ813sKPWXmj9a8+TajhrHBfqKwrWvQ= -go.opentelemetry.io/collector/consumer/consumererror v0.136.0/go.mod h1:DIivxQ3sy3mDZLaEcXdwZvEFLILpcyHxRiqEaPkHRFU= -go.opentelemetry.io/collector/consumer/consumertest v0.136.0 h1:zzO47GjzIg2X3uVW+lwtqS6S0vRm5qMx5O4zmQznCME= -go.opentelemetry.io/collector/consumer/consumertest v0.136.0/go.mod h1:gTdRvUiJSmzmWp2Ndlh0N0yQ3hPnmTYul2DWuy31/D0= -go.opentelemetry.io/collector/consumer/xconsumer v0.136.0 h1:7GczvR8x75lTyP9M+oWHQyGRDIRJ+QjY7IiJkucgOo4= -go.opentelemetry.io/collector/consumer/xconsumer v0.136.0/go.mod h1:sXw0lOF6D1iKhLy2xorJ8D3PysDXT0egmHJZu8TY0lE= -go.opentelemetry.io/collector/exporter v1.42.0 h1:YMWMSAfaMu3lgy+lgaJDszdAOsg0lRh4EvIyA974Uuw= -go.opentelemetry.io/collector/exporter v1.42.0/go.mod h1:is8qnDQ1NLFMGNagY986ASIJJRIeHJZ+d1hDdOY6u1w= -go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0 h1:fJuA2u4Ls5+OWqcrXYSC6m8hpC4fFDI8kwNjYn4O34w= -go.opentelemetry.io/collector/exporter/exporterhelper v0.136.0/go.mod h1:1F2UKZ68AQaWkjxlk6rtQ/oehL83O2AoDEex9+lEasg= -go.opentelemetry.io/collector/exporter/exportertest v0.136.0 h1:VIXgWzwok1bfQtAryfAZa5yEomzKEbhobjiHgKWuPmw= -go.opentelemetry.io/collector/exporter/exportertest v0.136.0/go.mod h1:aZkv1l+97E/onJ1rnlMzO/PEDFDfVtgIFvNJB0/EmXI= -go.opentelemetry.io/collector/exporter/xexporter v0.136.0 h1:7ELBwU8sSnUMAWr+jQHDNM0+o878BTk++DiW0KA7Dr4= -go.opentelemetry.io/collector/exporter/xexporter v0.136.0/go.mod h1:W4e+GmyokpCt6+d5pvCA17b7oU1fm968t5fDwW4zQv0= -go.opentelemetry.io/collector/extension v1.42.0 h1:+9pK5AGHyV3LpWcF8ez45O/6QwOnxXBRS06a7hokLVg= -go.opentelemetry.io/collector/extension v1.42.0/go.mod h1:mS3Ucj0UQw4Qy9KmXtTkdQTQxan+LbGeH4stPuTYofU= -go.opentelemetry.io/collector/extension/extensionauth v1.42.0 h1:Re0wxZOplHtdV8YaypVaktHYPiaWPwVDt+hrBFXHEoI= -go.opentelemetry.io/collector/extension/extensionauth v1.42.0/go.mod h1:m8A4ZoWKvE91c5fF7HFvnZvwxbXtPJiNSoreGYoXt6A= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.136.0 h1:yx0474FuJHinlSbAXU/IZov6TXc5LPSGRPsQRiMGRG4= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.136.0/go.mod h1:etBi3U/UCSa9x5Lao6CRcj7CmuULJbkxqXUoaSDeLOA= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0 h1:hFqIp1TiXdIDlGJRMlV+Xm4GwTxRO6Wmaxe/uYH6U7E= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.136.0/go.mod h1:cwa7CHOF39Oqq5SFiYOs1bsjgKmDUFzYysfQ45RPT88= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0 h1:H+c3QyaN5tL3VmX3rSbV9Che5cpokLThJxZmJXed6cE= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.136.0/go.mod h1:Vxtt+KlwwO4mpPEFyUMb/92BlMqOZc4Jk8RNjM99vcU= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.136.0 h1:0Mqxievpq+Lu7nd7/Y7LSW30cgTYyJIpOg48+0XTRcI= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.136.0/go.mod h1:Rd+mz0JkBudg+RYZuETiJpx4aByF5CyV+15mBf+1SJA= -go.opentelemetry.io/collector/extension/extensiontest v0.136.0 h1:BkL2AC38Xa/WU71YfEKdjYGl/pjALmJDtHZIm5gzEzk= -go.opentelemetry.io/collector/extension/extensiontest v0.136.0/go.mod h1:XxRKblTb56a6zkrb8i9qowl7mY9ebW2NnOvCIXgxjZM= -go.opentelemetry.io/collector/extension/xextension v0.136.0 h1:Ykw3UUAKugGDLTz+Secowj6pL9Mg6H/V+pezeQKhTJY= -go.opentelemetry.io/collector/extension/xextension v0.136.0/go.mod h1:BLED8xk0WmkZ0bfjl/WwQ7jk4cJnnrHlo3MHsdhtr/U= -go.opentelemetry.io/collector/extension/zpagesextension v0.136.0 h1:acfmAXEGmvLlM2N6KtieLVKXBvJ/dmkOfOFDftZFFXg= -go.opentelemetry.io/collector/extension/zpagesextension v0.136.0/go.mod h1:fXFm8bNm6QegoFjFk3QINvSXUDyBSy/3r/mv366xQ5A= -go.opentelemetry.io/collector/featuregate v1.42.0 h1:uCVwumVBVex46DsG/fvgiTGuf9f53bALra7vGyKaqFI= -go.opentelemetry.io/collector/featuregate v1.42.0/go.mod h1:d0tiRzVYrytB6LkcYgz2ESFTv7OktRPQe0QEQcPt1L4= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0 h1:GxjQ+9q6M7PwE3QnA3VVBLt5aHVnk4z7wQLo+J+0tho= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.136.0/go.mod h1:DOvL5ZalQk/zmYBjKZok52dXIxUOK0JoOoQfm5qjbhM= -go.opentelemetry.io/collector/internal/telemetry v0.136.0 h1:3TcnxyUFs6jJZeLo5ju3fMWS4lRmIApl9To2XWk922M= -go.opentelemetry.io/collector/internal/telemetry v0.136.0/go.mod h1:dTykH9zv/zOnlyUvqfGIqpaQZhmayW7NssD7TPU4paE= -go.opentelemetry.io/collector/otelcol v0.136.0 h1:1QpVMUxPmrJ2HmrKFPXWEfQYALEC1kDmHp2YtzqjlPE= -go.opentelemetry.io/collector/otelcol v0.136.0/go.mod h1:TscxAyGfBSss2Rre6NMvJX6q6CU9kzaucSBOf5f+QKY= -go.opentelemetry.io/collector/pdata v1.42.0 h1:XEzisp/SNfKDcY4aRU6qrHeLzGypRUdYHjbBqkDFOO4= -go.opentelemetry.io/collector/pdata v1.42.0/go.mod h1:nnOmgf+RI/D5xYWgFPZ5nKuhf2E0Qy9Nx/mxoTvIq3k= -go.opentelemetry.io/collector/pdata/pprofile v0.136.0 h1:ysyWnVnEzAwUH+MAhEuu7X0y/YnTtjEY1gC7aj05QzA= -go.opentelemetry.io/collector/pdata/pprofile v0.136.0/go.mod h1:vAvrFj+xpwlSH85QFYGKYQ4xc0Lym5pWNRh1hMUH3TY= -go.opentelemetry.io/collector/pdata/testdata v0.136.0 h1:amivoDBK7ALqhwwCkSOYqfT95t1+o/TS6MHycseNs80= -go.opentelemetry.io/collector/pdata/testdata v0.136.0/go.mod h1:KlNRkMO7MZdbGjNJGFS0+yc2gpuraJg6F6gkuqaqA8Y= -go.opentelemetry.io/collector/pdata/xpdata v0.136.0 h1:KAYBx6+aS5rYUlwJ85QM9pxHq0VdftC9lTyXIzv1oM4= -go.opentelemetry.io/collector/pdata/xpdata v0.136.0/go.mod h1:bSnwXzg3wKjaKc8FgMZ23OmcodD6eDNyntUZdtlxPeU= -go.opentelemetry.io/collector/pipeline v1.42.0 h1:jqn1lPwUdCn+lsyNubCtwzXZLEm+R3kRWxLpDkhlvvs= -go.opentelemetry.io/collector/pipeline v1.42.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= -go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0 h1:dvzL/yfXUjBxcCqtl4ifvQqi5cIeYAmFdZz1OPE2gXA= -go.opentelemetry.io/collector/pipeline/xpipeline v0.136.0/go.mod h1:0trVl/7QYhPyIohE+n+hL0F0DdiceghKPG2olvZqipc= -go.opentelemetry.io/collector/processor v1.42.0 h1:JVMaRA8QkiOJHAswCVAugMaFhDbNedat2XRKjlsNv2A= -go.opentelemetry.io/collector/processor v1.42.0/go.mod h1:O9uYN7VeC4gnD2qsaXaM50rvO8tt2zJS/9bnzucJ+N8= -go.opentelemetry.io/collector/processor/batchprocessor v0.136.0 h1:8IIzCdjD7WyLb1Rbg6t/UPXMJl8rdSbdvkP+fYvY4FE= -go.opentelemetry.io/collector/processor/batchprocessor v0.136.0/go.mod h1:te1bnTdwdQNYxHBHJJSZMAWLWyX+ZB0JKO43zKc6bck= -go.opentelemetry.io/collector/processor/processortest v0.136.0 h1:lQC435oZdDmLnSczmQ7Cdoca+y7SBpLQ0m/fVsd8pJY= -go.opentelemetry.io/collector/processor/processortest v0.136.0/go.mod h1:uWH1oXGiCzvnWuLyvzyqm8a/g6dGyfJWgAj2yEhhrWg= -go.opentelemetry.io/collector/processor/xprocessor v0.136.0 h1:/Ee8JT9pM3moxPDM18NbNYQzVzzg+80ewTOFyVUmOd0= -go.opentelemetry.io/collector/processor/xprocessor v0.136.0/go.mod h1:RtmNJHS/MS6XO7gBdjiDWep1TN1vMlrcH5qQr1MOWxM= -go.opentelemetry.io/collector/receiver v1.42.0 h1:wdR3SShnOUj6PQFNOHJl8amKDaMrY6gnnU7oh7z61rQ= -go.opentelemetry.io/collector/receiver v1.42.0/go.mod h1:ts8UqHPKm+fP3/nsPrLizbUClqpL8JO3HM5Rd9UQEWA= -go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0 h1:Le0/Ow1GIvRRo4XwDjf/xERzWJf1JkoJEUjqHVPIXr8= -go.opentelemetry.io/collector/receiver/receiverhelper v0.136.0/go.mod h1:N8MEtYYYJncGC9PQ+YdRN7WkHpYNTh3MAxPLVLf7cn8= -go.opentelemetry.io/collector/receiver/receivertest v0.136.0 h1:xPhvg2K72Iy+bqzMwz+q4CmudYKy/Vq+dS1x2ETojP0= -go.opentelemetry.io/collector/receiver/receivertest v0.136.0/go.mod h1:DgPO43LjdtRXJ7BnXU2gGKak74cvGOie9qSdb7D/UWg= -go.opentelemetry.io/collector/receiver/xreceiver v0.136.0 h1:eb2DLzWewhJMJU34mgmL8WxgoYim44+Ry6/AMrjfY8E= -go.opentelemetry.io/collector/receiver/xreceiver v0.136.0/go.mod h1:k/j2K4krExMopkkOBFyPyDSgkrnQSN1fXHqLCvh8O5g= +go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw= +go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/collector/client v1.47.0 h1:6CqobnsruBntfkSltCsKs8iiK1N+IwMr7fKhnIDXF0Y= +go.opentelemetry.io/collector/client v1.47.0/go.mod h1:6Jzcja4/O5IffJtZjJ9YjnwPqJiDiwCQou4DioLFwpI= +go.opentelemetry.io/collector/component v1.47.0 h1:wXvcjNhpWUU4OJph7KyxENkbfnGrfDURa+L/rvPTHyo= +go.opentelemetry.io/collector/component v1.47.0/go.mod h1:Hz9fcIbc7tOA4hIjvW5bb1rJJc2TH0gtQEvDBaZLUUA= +go.opentelemetry.io/collector/component/componentstatus v0.141.0 h1:WoMJdv2ofwHJDXzMP6DvYPqREaqOcGw+gkXG7S+PJvc= +go.opentelemetry.io/collector/component/componentstatus v0.141.0/go.mod h1:upr5QxmYLEZ7PKMCZHImQcp3xNM4VXtZnAKuhhHopg4= +go.opentelemetry.io/collector/component/componenttest v0.141.0 h1:dYdFbm52+e2DwrJ0bEoo7qVOPDuFXl9E/FfaqViIfPU= +go.opentelemetry.io/collector/component/componenttest v0.141.0/go.mod h1:EI7SUBy8Grxso69j2KYf3BYv8rkJjFgxlmWf5ElcWdk= +go.opentelemetry.io/collector/config/configauth v1.47.0 h1:aYSX3mD586qKiHRQYFBMIvujC1zUhYhw6nBLC7oIgvI= +go.opentelemetry.io/collector/config/configauth v1.47.0/go.mod h1:o2GZwoeuCKzhZm6VDTMAKkVlTLKGqUi126sAN5Xjaa8= +go.opentelemetry.io/collector/config/configcompression v1.47.0 h1:g6PL4dd8ng74XVI0YOyucIWUwQwF2BMFgHMyQ7f5Z7A= +go.opentelemetry.io/collector/config/configcompression v1.47.0/go.mod h1:ZlnKaXFYL3HVMUNWVAo/YOLYoxNZo7h8SrQp3l7GV00= +go.opentelemetry.io/collector/config/confighttp v0.141.0 h1:ukn0BvFqe2HBDqDYs9gllVLFrhDbgNrTTjEEWPJ0O3s= +go.opentelemetry.io/collector/config/confighttp v0.141.0/go.mod h1:IbW7wb+rMuoh8WUNBsgblFvPuofZUGk6Lu9PvVDwnHo= +go.opentelemetry.io/collector/config/configmiddleware v1.47.0 h1:0LKbWzew6Y8sU0zeXb9VQf3PE/Nqnn+2RcDFgxaypvM= +go.opentelemetry.io/collector/config/configmiddleware v1.47.0/go.mod h1:QyWuy/D1fdURXxdnKPweX/5pT6uAsK8PxTDXMHKeLcI= +go.opentelemetry.io/collector/config/configopaque v1.47.0 h1:eQpdM3vGB8/VbUscZ4MM6y4JI5YTog7qv/G/nWxUlmA= +go.opentelemetry.io/collector/config/configopaque v1.47.0/go.mod h1:NtM24SOlXT84NxS9ry8Y2qOurLskTKOd7VS78WLkPuM= +go.opentelemetry.io/collector/config/configoptional v1.47.0 h1:x/wxmHZe9bKdsfeOhfgNdpoMRZxi0x4rTTxbLFkpiz4= +go.opentelemetry.io/collector/config/configoptional v1.47.0/go.mod h1:nlcEmR01MMD5Nla5f4weZ0OcCq1LSxPGwlAWG8GUCbw= +go.opentelemetry.io/collector/config/configretry v1.47.0 h1:YlRON2zh88wldtSyqkxC24SzHjzBntuj2zEYokjEISM= +go.opentelemetry.io/collector/config/configretry v1.47.0/go.mod h1:ZSTYqAJCq4qf+/4DGoIxCElDIl5yHt8XxEbcnpWBbMM= +go.opentelemetry.io/collector/config/configtelemetry v0.141.0 h1:waUnWigFfXoiHNWjmOo5nj46H8xDLsLvBzJWzr0WTXg= +go.opentelemetry.io/collector/config/configtelemetry v0.141.0/go.mod h1:Xjw2+DpNLjYtx596EHSWBy0dNQRiJ2H+BlWU907lO40= +go.opentelemetry.io/collector/config/configtls v1.47.0 h1:uuXkdsHouWkDli/o/+1y9e8KaIGTCLNRMPxJLN2zXBs= +go.opentelemetry.io/collector/config/configtls v1.47.0/go.mod h1:WfwC2ODU/ADiYI9tY4dWwH0S6k4iwKNqlEC55epQk5M= +go.opentelemetry.io/collector/confmap v1.47.0 h1:iXx4Pm1VbGboQCuY442mbBgihPv6gNpEItsod4rkW04= +go.opentelemetry.io/collector/confmap v1.47.0/go.mod h1:ipnIWHs3VdMOxkIjQnOw3Qou2hjXZELrphHuqjTh4QM= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0 h1:wMEl2gzlhmFrBZdWr0AU7GSSiY23LN1PkNAm4C32o3g= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.47.0/go.mod h1:0YkK2SdfQpX0lyIeDuLlrugpceEwEtgTGrOhzpHyFFs= +go.opentelemetry.io/collector/confmap/xconfmap v0.141.0 h1:EhxPYLvUERsE4eThocTsmL1mDeSXn0AOX7Ta4GAjLNY= +go.opentelemetry.io/collector/confmap/xconfmap v0.141.0/go.mod h1:c4f/AT97CxQ5fYaCclj9fGnD0E2+5hLvL4fNQ7YkEEo= +go.opentelemetry.io/collector/connector v0.141.0 h1:kDxl66+nbB12HmMXS/Cl9bVxKiB0EKm3AW0G8dvXFUk= +go.opentelemetry.io/collector/connector v0.141.0/go.mod h1:bSNiaIycyVBsz1JBcGSHMEl9Pw9Pba1fjMvNf8mMkSk= +go.opentelemetry.io/collector/connector/connectortest v0.141.0 h1:s02SmglD5DUDVuUnYIEKAnt1bcBS3hJcepYWQaJSFis= +go.opentelemetry.io/collector/connector/connectortest v0.141.0/go.mod h1:jrLSLEnYCgNNPS4+kWkEVn/fHU/P3sAi9KZlvhsk2cM= +go.opentelemetry.io/collector/connector/xconnector v0.141.0 h1:0FjMgtVhDbfm7jG5mzuz1XbHq0+tIGor2l8TeVOBblg= +go.opentelemetry.io/collector/connector/xconnector v0.141.0/go.mod h1:fNdivTW1tvmUYzut9pcZ4MwVQ+JGMk5WXM2gGNIh5ok= +go.opentelemetry.io/collector/consumer v1.47.0 h1:eriMvNAsityaea361luVfNe8wp6QKWJQoU4d4i3tyOA= +go.opentelemetry.io/collector/consumer v1.47.0/go.mod h1:wBsF8koieun0CK4laZLN2MvGKNqad8gwQa+1jXWWn5k= +go.opentelemetry.io/collector/consumer/consumererror v0.141.0 h1:lUgIRGDPQy+qwvGQOx+GJuf/cRUIp2Eve6BOoEN9vfY= +go.opentelemetry.io/collector/consumer/consumererror v0.141.0/go.mod h1:DsO9l7yTeoxgWyk3psHMPepZ4Dv5gg/d7XFH3Teh8zc= +go.opentelemetry.io/collector/consumer/consumertest v0.141.0 h1:Q5X7rOI8I5xj35Q1NQiwGJsJ4OZx1n7szw3MbOfNgiM= +go.opentelemetry.io/collector/consumer/consumertest v0.141.0/go.mod h1:yjSSOFx0oBjH2fouw0TTN/U82hYyJPq35ClIZrpz60g= +go.opentelemetry.io/collector/consumer/xconsumer v0.141.0 h1:qR9H8tWo6NtPBDBv3fz8J8QBkqbnaU8vwUvtIO3QeZo= +go.opentelemetry.io/collector/consumer/xconsumer v0.141.0/go.mod h1:Ud55EhQ0cgqDTtnvHQNjtktLGMeefOzF6SFk0bLheOc= +go.opentelemetry.io/collector/exporter v1.47.0 h1:2RgIFPCTPlm8IPtx8VF7f/qeC4UywMGiAF2ffnCWN6Q= +go.opentelemetry.io/collector/exporter v1.47.0/go.mod h1:rUn1GU8Hdz7TSDQQvv9iqfN0xaGWQrUAVIQgT5PdrYU= +go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0 h1:448RLUk0k0Cq+JjqosyRr7lUSPPx3EZiomI2Fxg/KkA= +go.opentelemetry.io/collector/exporter/exporterhelper v0.141.0/go.mod h1:BlNweRtWgwNqQKtImoZkdagNUn2vxkBlEbmJYdqIH9w= +go.opentelemetry.io/collector/exporter/exportertest v0.141.0 h1:g52hJvBkseHeoAZzj0MlBmDxg7VOk9goa8dFojTr4fw= +go.opentelemetry.io/collector/exporter/exportertest v0.141.0/go.mod h1:WD9liBCgGbW6M3m64XS+RSDUyT/aC3gfy4H1PD06x5A= +go.opentelemetry.io/collector/exporter/xexporter v0.141.0 h1:aGKacYq6uIEweIfw/at35XfjdCUqf/t6L4J2/4u6Fio= +go.opentelemetry.io/collector/exporter/xexporter v0.141.0/go.mod h1:0QfPORq7Z2iKKg2pSEh7ARn09P30QNhJp+xnKhIGtDg= +go.opentelemetry.io/collector/extension v1.47.0 h1:3tuOP79eXWHQvS1ITtSzipPqURK4JDHj1n8HFQQWe3A= +go.opentelemetry.io/collector/extension v1.47.0/go.mod h1:Zfozkdo63ltydtPnuu1PotxWXJRsaX1wPamxuF3JbaQ= +go.opentelemetry.io/collector/extension/extensionauth v1.47.0 h1:rF1nh638CY0Qi3RcyOnTuGYPrQv2U7CI/pjInkR8pFA= +go.opentelemetry.io/collector/extension/extensionauth v1.47.0/go.mod h1:CtNVU6ivNIAcJoCL7GRxDGpuvSgWVpgmrRiGD7FQAyY= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.141.0 h1:EoUYtxYqMosP9yIgUOK8QG61yvHIN+zSkSxwyQDekDc= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.141.0/go.mod h1:PS6B7i383Ajj3dPhb2OiYYqSspgVkDqbVfJ1qQo9TKM= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0 h1:yMHw735gpgxnwryu//gQ+AfRWA07zCmCQEU4iCz14Rs= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.141.0/go.mod h1:Ugk9jcz0/zHwJndOF61dKOzomOEIK1jFx0LvWrWPT1o= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0 h1:dj/H1kBDgypI1oD8xMCc9Ha5NamYwN/AyrJP1M3rayc= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.141.0/go.mod h1:rdpsumcbndkZ00eDBaLL4Q5PNWYBOXqt4YR9wtk2sH0= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.141.0 h1:ekuapTC9RPSuvbTIKyWClIduJ9RDCMt5ToLJuTQTaKI= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.141.0/go.mod h1:BpzE+gqh/RlBhSBXVbKivYor4EZgcFTh90/+eX9tDPk= +go.opentelemetry.io/collector/extension/extensiontest v0.141.0 h1:JjnCUMDk5+fgjgmg9az+CM4J4AJugarDT/PHWZNMQl4= +go.opentelemetry.io/collector/extension/extensiontest v0.141.0/go.mod h1:w8PCvxBL1R1v1waezDZlNtm5Wmxtkfljjj+Vnj5cviU= +go.opentelemetry.io/collector/extension/xextension v0.141.0 h1:VIDCodSJGeS/4fvwBSCvUSaXOYhpNHtwySlPffzv87o= +go.opentelemetry.io/collector/extension/xextension v0.141.0/go.mod h1:bUUsO+CmZZQBhCljV+cxA10bazpsRXhAD/+mBSKasJ4= +go.opentelemetry.io/collector/extension/zpagesextension v0.141.0 h1:x6PCZW0F6AnMhvwcZWA7yWsocme9cUcCC8iOn5scR5c= +go.opentelemetry.io/collector/extension/zpagesextension v0.141.0/go.mod h1:sJ02ZaSx9fEZPsobwWlTurMAD+S/8BVKD7IAubzzV6A= +go.opentelemetry.io/collector/featuregate v1.47.0 h1:LuJnDngViDzPKds5QOGxVYNL1QCCVWN/m61lHTV8Pf4= +go.opentelemetry.io/collector/featuregate v1.47.0/go.mod h1:d0tiRzVYrytB6LkcYgz2ESFTv7OktRPQe0QEQcPt1L4= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0 h1:XE0+2eJgixbDveL/pUqbfxJIIAVojYcTY2ZdaqTH3QQ= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.141.0/go.mod h1:vO7+na6RT/sKSOHuTRx/UbYvezvAQnjNQUA+P4d5H9M= +go.opentelemetry.io/collector/internal/telemetry v0.141.0 h1:vHbH5YbBJGtsn1+PH99WZRJsODgkBD4g39zONslfti4= +go.opentelemetry.io/collector/internal/telemetry v0.141.0/go.mod h1:5TOmlQDc4gE3TZuC+W0Ra44HiKXzVQiZzS6BCIncbCQ= +go.opentelemetry.io/collector/internal/testutil v0.141.0 h1:/rUGApojPtUPMN3rFfApNgEjAt03rCGt2qxNxGGs/4A= +go.opentelemetry.io/collector/internal/testutil v0.141.0/go.mod h1:YAD9EAkwh/l5asZNbEBEUCqEjoL1OKMjAMoPjPqH76c= +go.opentelemetry.io/collector/otelcol v0.141.0 h1:4DdP20QvxLh+e/wOQZROB20WE98U15gQyk3sw81jT4o= +go.opentelemetry.io/collector/otelcol v0.141.0/go.mod h1:uOM85bSEtiFZJsphjmYwFNyQlA5gcqZykiL8BaAKo+0= +go.opentelemetry.io/collector/pdata v1.47.0 h1:4Mk0mo2RlKCUPomV8ISm+Yx/STFtuSn88yjiCePHkGA= +go.opentelemetry.io/collector/pdata v1.47.0/go.mod h1:yMdjdWZBNA8wLFCQXOCLb0RfcpZOxp7exH+bN7udWO0= +go.opentelemetry.io/collector/pdata/pprofile v0.141.0 h1:15lbbHKzPIG4aVT6hsJO7XZLvMrGll+i36es/FEgn7c= +go.opentelemetry.io/collector/pdata/pprofile v0.141.0/go.mod h1:gUtWKniP3O0jXYVDISp1y3dCbYFIyglFw6B8ATyrrWs= +go.opentelemetry.io/collector/pdata/testdata v0.141.0 h1:AfjNbZ/DUSr0aiP4H+z7pqrzTuBQFaT6oca0zaJ3gCA= +go.opentelemetry.io/collector/pdata/testdata v0.141.0/go.mod h1:/KX316ZF30G4eUQadM+SPUqCCPoiAkhMxcvAu4uM72I= +go.opentelemetry.io/collector/pdata/xpdata v0.141.0 h1:Bhpnwett0KhK7AjEwUhEBVYNlbMwBO5t9ASNIwrtqzY= +go.opentelemetry.io/collector/pdata/xpdata v0.141.0/go.mod h1:Du2E8XK3Yl82TzWu08b5ShzZ36pPZNE0O0QrvbY8ZD4= +go.opentelemetry.io/collector/pipeline v1.47.0 h1:Ql2cfIopfo/e0Y6r/Fw3mNorKYi8MAoA7zgouzAN8eI= +go.opentelemetry.io/collector/pipeline v1.47.0/go.mod h1:xUrAqiebzYbrgxyoXSkk6/Y3oi5Sy3im2iCA51LwUAI= +go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0 h1:wiER5GXVTSq1orSYM1q847aGc8IaHpBjzO8rO3kXGaU= +go.opentelemetry.io/collector/pipeline/xpipeline v0.141.0/go.mod h1:9u8hFIicFWVhi7rCJCpgVW7AR1OCNk1Pfv2dLrCJDh8= +go.opentelemetry.io/collector/processor v1.47.0 h1:WA4AP+w+ohFItWx0eG5iGEvLCE70Le5wC2Uw7YVN1Vg= +go.opentelemetry.io/collector/processor v1.47.0/go.mod h1:XaC3o+kNM5wq7ET+FJt+9hTnqqICmruylBpVerb+TZo= +go.opentelemetry.io/collector/processor/batchprocessor v0.141.0 h1:tm2NRcrAETazsFU0F9Gs7N+FHG8GoG4pyEvljJG459c= +go.opentelemetry.io/collector/processor/batchprocessor v0.141.0/go.mod h1:lKwRWLBU8BcouHvxf8xkCkhMFJ6lxaWXwLMjr1bC+3o= +go.opentelemetry.io/collector/processor/processortest v0.141.0 h1:HY/o+CkKTU2Db96TfugwfMKkRFcaJb2vxPUHluS5/F8= +go.opentelemetry.io/collector/processor/processortest v0.141.0/go.mod h1:n0QKOTH2m2vVbDGdIHvDmIEHU02LOQtuCzzN4BJgK5U= +go.opentelemetry.io/collector/processor/xprocessor v0.141.0 h1:rlvqx4aW7dgrYqWrNTkq1+IDiWOKdX/DDZPxk1DQMVw= +go.opentelemetry.io/collector/processor/xprocessor v0.141.0/go.mod h1:jSSsP1pFgkxN4MvVsyZA1MI5DKhN+kg9Y27Ev0lEwqs= +go.opentelemetry.io/collector/receiver v1.47.0 h1:x9kofoR+PyoFktNVVPdfP1iw08SMNzNw6Z9qYdOV18U= +go.opentelemetry.io/collector/receiver v1.47.0/go.mod h1:Uln4nIZB5qn+dyVQr32V7/5/t92o7o4Fo5sPjxcrdRM= +go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0 h1:x1w+UCeFcs8/18QcBQAAvyakCab5HhsWWpYR4ONcT8c= +go.opentelemetry.io/collector/receiver/receiverhelper v0.141.0/go.mod h1:co9h8puOBRzUynrjbptkA7lvKTsM/ASMZGIxwaE0vbE= +go.opentelemetry.io/collector/receiver/receivertest v0.141.0 h1:D5lRyj92ZekGRNxI8ufeQfdicQHRvgfISuZwxjaq1Go= +go.opentelemetry.io/collector/receiver/receivertest v0.141.0/go.mod h1:w6sopQCUydOypIp1ym8Lytgt9C+QjrfEU3fN21z6NCU= +go.opentelemetry.io/collector/receiver/xreceiver v0.141.0 h1:jvnSzS4gaGwbnG90t3e5keZVfcZChrXk7Ykn46gatgE= +go.opentelemetry.io/collector/receiver/xreceiver v0.141.0/go.mod h1:HCGNAJHKHb1JB/So3tZnaCi+eUTxaothQ7BptRprjhg= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685 h1:XCN7qkZRNzRYfn6chsMZkbFZxoFcW6fZIsZs2aCzcbc= go.opentelemetry.io/collector/semconv v0.128.1-0.20250610090210-188191247685/go.mod h1:OPXer4l43X23cnjLXIZnRj/qQOjSuq4TgBLI76P9hns= -go.opentelemetry.io/collector/service v0.136.0 h1:NvGStX9kN1KrcKO1aJjB4LFLRCBcPERzhlOiOxrFcG4= -go.opentelemetry.io/collector/service v0.136.0/go.mod h1:xE6YQmPW5/5g4I/R3PTRBdaGr2Epc2NxkMAAEttJo1k= -go.opentelemetry.io/collector/service/hostcapabilities v0.136.0 h1:YxOwlA7mmKVQq/+vbOs37WpZ2yRZGkKmC0qKrPQwlCY= -go.opentelemetry.io/collector/service/hostcapabilities v0.136.0/go.mod h1:mONVgs/2Sw/h/fjqURBKGTB22B+7KXL9TSWNX/37LCA= -go.opentelemetry.io/contrib/bridges/otelzap v0.12.0 h1:FGre0nZh5BSw7G73VpT3xs38HchsfPsa2aZtMp0NPOs= -go.opentelemetry.io/contrib/bridges/otelzap v0.12.0/go.mod h1:X2PYPViI2wTPIMIOBjG17KNybTzsrATnvPJ02kkz7LM= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0 h1:lREC4C0ilyP4WibDhQ7Gg2ygAQFP8oR07Fst/5cafwI= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.61.0/go.mod h1:HfvuU0kW9HewH14VCOLImqKvUgONodURG7Alj/IrnGI= +go.opentelemetry.io/collector/service v0.141.0 h1:O44J7WXD+UbElR/KdadGJJFQfH1gGUH8ewJUrelxcQQ= +go.opentelemetry.io/collector/service v0.141.0/go.mod h1:/Vnq/GIgiDk2TcDrNf1d6ZndLY6Ef/64sjwU5Xg7ry0= +go.opentelemetry.io/collector/service/hostcapabilities v0.141.0 h1:bgyYFO++891ecFpoJQX13UHEqjt2z9RHIiULXkmA98M= +go.opentelemetry.io/collector/service/hostcapabilities v0.141.0/go.mod h1:RxYWH5w6oAxqzLJ3QkNKuAKEUxS5OhwJMTOuWP2CrH0= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.141.0 h1:fE86k1S++PRslh6nubNWM/DQTkp2GFCY4mmwKqv8128= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.141.0/go.mod h1:yVBEDExr2C00N5D6hzf032I7NkbqSoibrQdvrhB61OM= +go.opentelemetry.io/contrib/bridges/otelzap v0.13.0 h1:aBKdhLVieqvwWe9A79UHI/0vgp2t/s2euY8X59pGRlw= +go.opentelemetry.io/contrib/bridges/otelzap v0.13.0/go.mod h1:SYqtxLQE7iINgh6WFuVi2AI70148B8EI35DSk0Wr8m4= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 h1:2pn7OzMewmYRiNtv1doZnLo3gONcnMHlFnmOR8Vgt+8= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0/go.mod h1:rjbQTDEPQymPE0YnRQp9/NuPwwtL0sesz/fnqRW/v84= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= -go.opentelemetry.io/contrib/otelconf v0.16.0 h1:mTYGRlZtpc/zDaTaUQSnsZ1hyoRONaS4Od/Ny5++lhE= -go.opentelemetry.io/contrib/otelconf v0.16.0/go.mod h1:gnsljuyDyVDg39vUvXKj0BVCiVaokN3b8N5BL/ab8fQ= -go.opentelemetry.io/contrib/propagators/b3 v1.37.0 h1:0aGKdIuVhy5l4GClAjl72ntkZJhijf2wg1S7b5oLoYA= -go.opentelemetry.io/contrib/propagators/b3 v1.37.0/go.mod h1:nhyrxEJEOQdwR15zXrCKI6+cJK60PXAkJ/jRyfhr2mg= -go.opentelemetry.io/contrib/zpages v0.62.0 h1:9fUYTLmrK0x/lweM2uM+BOx069jLx8PxVqWhegGJ9Bo= -go.opentelemetry.io/contrib/zpages v0.62.0/go.mod h1:C8kXoiC1Ytvereztus2R+kqdSa6W/MZ8FfS8Zwj+LiM= +go.opentelemetry.io/contrib/otelconf v0.18.0 h1:ciF2Gf00BWs0DnexKFZXcxg9kJ8r3SUW1LOzW3CsKA8= +go.opentelemetry.io/contrib/otelconf v0.18.0/go.mod h1:FcP7k+JLwBLdOxS6qY6VQ/4b5VBntI6L6o80IMwhAeI= +go.opentelemetry.io/contrib/propagators/b3 v1.38.0 h1:uHsCCOSKl0kLrV2dLkFK+8Ywk9iKa/fptkytc6aFFEo= +go.opentelemetry.io/contrib/propagators/b3 v1.38.0/go.mod h1:wMRSZJZcY8ya9mApLLhwIMjqmApy2o/Ml+62lhvxyHU= +go.opentelemetry.io/contrib/zpages v0.63.0 h1:TppOKuZGbqXMgsfjqq3i09N5Vbo1JLtLImUqiTPGnX4= +go.opentelemetry.io/contrib/zpages v0.63.0/go.mod h1:5F8uugz75ay/MMhRRhxAXY33FuaI8dl7jTxefrIy5qk= go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0 h1:z6lNIajgEBVtQZHjfw2hAccPEBDs+nx58VemmXWa2ec= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.13.0/go.mod h1:+kyc3bRx/Qkq05P6OCu3mTEIOxYRYzoIg+JsUp5X+PM= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 h1:zUfYw8cscHHLwaY8Xz3fiJu+R59xBnkgq2Zr1lwmK/0= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0/go.mod h1:514JLMCcFLQFS8cnTepOk6I09cKWJ5nGHBxHrMJ8Yfg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0 h1:zG8GlgXCJQd5BU98C0hZnBbElszTmUgCNCfYneaDL0A= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0/go.mod h1:hOfBCz8kv/wuq73Mx2H2QnWokh/kHZxkh6SNF2bdKtw= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 h1:9PgnL3QNlj10uGxExowIDIZu66aVBwWhXmbOp1pa6RA= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0/go.mod h1:0ineDcLELf6JmKfuo0wvvhAVMuxWFYvkTin2iV4ydPQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 h1:Ahq7pZmv87yiyn3jeFz/LekZmPLLdKejuO3NcK9MssM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0/go.mod h1:MJTqhM0im3mRLw1i8uGHnCvUEeS7VwRyxlLC78PA18M= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0 h1:EtFWSnwW9hGObjkIdmlnWSydO+Qs8OwzfzXLUPg4xOc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0/go.mod h1:QjUEoiGCPkvFZ/MjK6ZZfNOS6mfVEVKYE99dFhuN2LI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 h1:bDMKF3RUSxshZ5OjOTi8rsHGaPKsAt76FaqgvIUySLc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0/go.mod h1:dDT67G/IkA46Mr2l9Uj7HsQVwsjASyV9SjGofsiUZDA= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0 h1:OMqPldHt79PqWKOMYIAQs3CxAi7RLgPxwfFSwr4ZxtM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.14.0/go.mod h1:1biG4qiqTxKiUCtoWDPpL3fB3KxVwCiGw81j3nKMuHE= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 h1:vl9obrcoWVKp/lwl8tRE33853I8Xru9HFbw/skNeLs8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0/go.mod h1:GAXRxmLJcVM3u22IjTg74zWBrRCKq8BnOqUVLodpcpw= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= go.opentelemetry.io/otel/exporters/prometheus v0.60.0 h1:cGtQxGvZbnrWdC2GyjZi0PDKVSLWP/Jocix3QWfXtbo= go.opentelemetry.io/otel/exporters/prometheus v0.60.0/go.mod h1:hkd1EekxNo69PTV4OWFGZcKQiIqg0RfuWExcPKFvepk= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0 h1:yEX3aC9KDgvYPhuKECHbOlr5GLwH6KTjLJ1sBSkkxkc= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.13.0/go.mod h1:/GXR0tBmmkxDaCUGahvksvp66mx4yh5+cFXgSlhg0vQ= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0 h1:6VjV6Et+1Hd2iLZEPtdV7vie80Yyqf7oikJLjQ/myi0= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.37.0/go.mod h1:u8hcp8ji5gaM/RfcOo8z9NMnf1pVLfVY7lBY2VOGuUU= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 h1:SNhVp/9q4Go/XHBkQ1/d5u9P/U+L1yaGPoi0x+mStaI= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0/go.mod h1:tx8OOlGH6R4kLV67YaYO44GFXloEjGPZuMjEkaaqIp4= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0 h1:B/g+qde6Mkzxbry5ZZag0l7QrQBCtVm7lVjaLgmpje8= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.14.0/go.mod h1:mOJK8eMmgW6ocDJn6Bn11CcZ05gi3P8GylBXEkZtbgA= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE= go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM= go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno= go.opentelemetry.io/otel/log/logtest v0.14.0 h1:BGTqNeluJDK2uIHAY8lRqxjVAYfqgcaTbVk1n3MWe5A= @@ -735,34 +725,34 @@ go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgf go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= -go.opentelemetry.io/otel/sdk/log v0.13.0 h1:I3CGUszjM926OphK8ZdzF+kLqFvfRY/IIoFq/TjwfaQ= -go.opentelemetry.io/otel/sdk/log v0.13.0/go.mod h1:lOrQyCCXmpZdN7NchXb6DOZZa1N5G1R2tm5GMMTpDBw= -go.opentelemetry.io/otel/sdk/log/logtest v0.13.0 h1:9yio6AFZ3QD9j9oqshV1Ibm9gPLlHNxurno5BreMtIA= -go.opentelemetry.io/otel/sdk/log/logtest v0.13.0/go.mod h1:QOGiAJHl+fob8Nu85ifXfuQYmJTFAvcrxL6w5/tu168= +go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg= +go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM= +go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA= go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= -go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os= -go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo= -go.opentelemetry.io/proto/slim/otlp v1.8.0 h1:afcLwp2XOeCbGrjufT1qWyruFt+6C9g5SOuymrSPUXQ= -go.opentelemetry.io/proto/slim/otlp v1.8.0/go.mod h1:Yaa5fjYm1SMCq0hG0x/87wV1MP9H5xDuG/1+AhvBcsI= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0 h1:Uc+elixz922LHx5colXGi1ORbsW8DTIGM+gg+D9V7HE= -go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.1.0/go.mod h1:VyU6dTWBWv6h9w/+DYgSZAPMabWbPTFTuxp25sM8+s0= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0 h1:i8YpvWGm/Uq1koL//bnbJ/26eV3OrKWm09+rDYo7keU= -go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.1.0/go.mod h1:pQ70xHY/ZVxNUBPn+qUWPl8nwai87eWdqL3M37lNi9A= +go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= +go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= +go.opentelemetry.io/proto/slim/otlp v1.9.0 h1:fPVMv8tP3TrsqlkH1HWYUpbCY9cAIemx184VGkS6vlE= +go.opentelemetry.io/proto/slim/otlp v1.9.0/go.mod h1:xXdeJJ90Gqyll+orzUkY4bOd2HECo5JofeoLpymVqdI= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0 h1:o13nadWDNkH/quoDomDUClnQBpdQQ2Qqv0lQBjIXjE8= +go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.2.0/go.mod h1:Gyb6Xe7FTi/6xBHwMmngGoHqL0w29Y4eW8TGFzpefGA= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0 h1:EiUYvtwu6PMrMHVjcPfnsG3v+ajPkbUeH+IL93+QYyk= +go.opentelemetry.io/proto/slim/otlp/profiles/v1development v0.2.0/go.mod h1:mUUHKFiN2SST3AhJ8XhJxEoeVW12oqfXog0Bo8W3Ec4= 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= 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= +go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc= +go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.uber.org/zap/exp v0.3.0 h1:6JYzdifzYkGmTdRR59oYH+Ng7k49H9qVpWwNSsGJj3U= go.uber.org/zap/exp v0.3.0/go.mod h1:5I384qq7XGxYyByIhHm6jg5CHkGY0nsTfbDLgDDlgJQ= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -770,14 +760,14 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= 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.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= -golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= +golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a h1:Y+7uR/b1Mw2iSXZ3G//1haIiSElDQZ8KWh0h+sZPG90= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= 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.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= -golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -787,18 +777,18 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL 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-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= -golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= +golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= 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.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= -golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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= @@ -827,44 +817,46 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/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.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= -golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= -golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= 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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= -golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/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.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ= +golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs= +golang.org/x/tools/godoc v0.1.0-deprecated h1:o+aZ1BOj6Hsx/GBdJO/s815sqftjSnrZZwyYTHODvtk= +golang.org/x/tools/godoc v0.1.0-deprecated/go.mod h1:qM63CriJ961IHWmnWa9CjZnBndniPt4a3CK0PVB9bIg= 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= gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/api v0.239.0 h1:2hZKUnFZEy81eugPs4e2XzIJ5SOwQg0G82bpXD65Puo= -google.golang.org/api v0.239.0/go.mod h1:cOVEm2TpdAGHL2z+UwyS+kmlGr3bVWQQ6sYEqkKje50= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 h1:1tXaIXCracvtsRxSBsYDiSBN0cuJvM7QYW+MrpIRY78= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:49MsLSx0oWMOZqcpB3uL8ZOkAh1+TndpJ8ONoCBWiZk= -google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 h1:FiusG7LWj+4byqhbvmB+Q93B/mOxJLN2DTozDuZm4EU= -google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:kXqgZtrWaf6qS3jZOCnCH7WYfrvFjkC51bM8fz3RsCA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7 h1:pFyd6EwwL2TqFf8emdthzeX+gZE1ElRq3iM8pui4KBY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= -google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw= -google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/api v0.250.0 h1:qvkwrf/raASj82UegU2RSDGWi/89WkLckn4LuO4lVXM= +google.golang.org/api v0.250.0/go.mod h1:Y9Uup8bDLJJtMzJyQnu+rLRJLA0wn+wTtc6vTlOvfXo= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s= +google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4= +google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM= +google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= 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-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -887,22 +879,23 @@ 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.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= -k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= -k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= -k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= -k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= -k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= +k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= +k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= +k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= +k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= +k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= 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-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= -sigs.k8s.io/yaml v1.5.0 h1:M10b2U7aEUY6hRtU870n2VTPgR5RZiL/I6Lcc2F4NUQ= -sigs.k8s.io/yaml v1.5.0/go.mod h1:wZs27Rbxoai4C0f8/9urLZtZtF3avA3gKvGyPdDqTO4= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/otelcollector/prometheusreceiver/internal/appendable.go b/otelcollector/prometheusreceiver/internal/appendable.go index 5aa061f07..e6220288d 100644 --- a/otelcollector/prometheusreceiver/internal/appendable.go +++ b/otelcollector/prometheusreceiver/internal/appendable.go @@ -21,6 +21,7 @@ type appendable struct { metricAdjuster MetricsAdjuster useStartTimeMetric bool enableNativeHistograms bool + useMetadata bool trimSuffixes bool startTimeMetricRegex *regexp.Regexp externalLabels labels.Labels @@ -38,6 +39,7 @@ func NewAppendable( startTimeMetricRegex *regexp.Regexp, useCreatedMetric bool, enableNativeHistograms bool, + useMetadata bool, externalLabels labels.Labels, trimSuffixes bool, ) (storage.Appendable, error) { @@ -59,6 +61,7 @@ func NewAppendable( metricAdjuster: metricAdjuster, useStartTimeMetric: useStartTimeMetric, enableNativeHistograms: enableNativeHistograms, + useMetadata: useMetadata, startTimeMetricRegex: startTimeMetricRegex, externalLabels: externalLabels, obsrecv: obsrecv, @@ -67,5 +70,5 @@ func NewAppendable( } func (o *appendable) Appender(ctx context.Context) storage.Appender { - return newTransaction(ctx, o.metricAdjuster, o.sink, o.externalLabels, o.settings, o.obsrecv, o.trimSuffixes, o.enableNativeHistograms) + return newTransaction(ctx, o.metricAdjuster, o.sink, o.externalLabels, o.settings, o.obsrecv, o.trimSuffixes, o.enableNativeHistograms, o.useMetadata) } diff --git a/otelcollector/prometheusreceiver/internal/metadata.go b/otelcollector/prometheusreceiver/internal/metadata.go index 0a7d434ea..6ec218ff7 100644 --- a/otelcollector/prometheusreceiver/internal/metadata.go +++ b/otelcollector/prometheusreceiver/internal/metadata.go @@ -65,3 +65,21 @@ func metadataForMetric(metricName string, mc scrape.MetricMetadataStore) (*scrap Type: model.MetricTypeUnknown, }, metricName } + +type emptyMetadataStore struct{} + +func (emptyMetadataStore) ListMetadata() []scrape.MetricMetadata { + return nil +} + +func (emptyMetadataStore) GetMetadata(string) (scrape.MetricMetadata, bool) { + return scrape.MetricMetadata{}, false +} + +func (emptyMetadataStore) SizeMetadata() int { + return 0 +} + +func (emptyMetadataStore) LengthMetadata() int { + return 0 +} diff --git a/otelcollector/prometheusreceiver/internal/metadata_test.go b/otelcollector/prometheusreceiver/internal/metadata_test.go new file mode 100644 index 000000000..86157ee14 --- /dev/null +++ b/otelcollector/prometheusreceiver/internal/metadata_test.go @@ -0,0 +1,163 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package internal + +import ( + "testing" + + "github.com/prometheus/common/model" + "github.com/prometheus/prometheus/scrape" +) + +func TestMetadataForMetric_Internal(t *testing.T) { + // Internal metric should return from internalMetricMetadata, ignoring external store. + metadata, resolved := metadataForMetric(scrapeUpMetricName, emptyMetadataStore{}) + if resolved != scrapeUpMetricName { + t.Fatalf("expected resolved name %q, got %q", scrapeUpMetricName, resolved) + } + if metadata.Type != model.MetricTypeGauge { + t.Fatalf("expected type Gauge, got %v", metadata.Type) + } + if metadata.MetricFamily != scrapeUpMetricName { + t.Fatalf("expected family %q, got %q", scrapeUpMetricName, metadata.MetricFamily) + } +} + +func TestMetadataForMetric_ExternalExactHit(t *testing.T) { + store := newFakeMetadataStore(map[string]scrape.MetricMetadata{ + "http_requests_total": { + MetricFamily: "http_requests_total", + Type: model.MetricTypeCounter, + Help: "Total HTTP requests", + }, + }, + ) + metadata, resolved := metadataForMetric("http_requests_total", store) + if resolved != "http_requests_total" { + t.Fatalf("expected resolved name http_requests_total, got %q", resolved) + } + if metadata.Type != model.MetricTypeCounter { + t.Fatalf("expected Counter, got %v", metadata.Type) + } +} + +func TestMetadataForMetric_NormalizedFallback_Gauge(t *testing.T) { + // Simulate a merged metric like "histogram_count" where store only knows the base name. + store := newFakeMetadataStore(map[string]scrape.MetricMetadata{ + "histogram": { + MetricFamily: "histogram", + Type: model.MetricTypeGauge, + Help: "Histogram base metric", + }, + }) + metadata, resolved := metadataForMetric("histogram_count", store) + // For non-counter types, resolved should be the normalized base name. + if resolved != "histogram" { + t.Fatalf("expected resolved name histogram, got %q", resolved) + } + if metadata.Type != model.MetricTypeGauge { + t.Fatalf("expected Gauge, got %v", metadata.Type) + } + if metadata.MetricFamily != "histogram" { + t.Fatalf("expected family histogram, got %q", metadata.MetricFamily) + } +} + +func TestMetadataForMetric_NormalizedFallback_CounterKeepsOriginal(t *testing.T) { + // If normalized metadata type is Counter, resolved should stay the original name. + store := newFakeMetadataStore(map[string]scrape.MetricMetadata{ + "requests": { + MetricFamily: "requests", + Type: model.MetricTypeCounter, + Help: "Requests counter", + }, + }, + ) + metadata, resolved := metadataForMetric("requests_total", store) + if resolved != "requests_total" { + t.Fatalf("expected resolved name requests_total, got %q", resolved) + } + if metadata.Type != model.MetricTypeCounter { + t.Fatalf("expected Counter, got %v", metadata.Type) + } + if metadata.MetricFamily != "requests" { + t.Fatalf("expected family requests, got %q", metadata.MetricFamily) + } +} + +func TestMetadataForMetric_Unknown(t *testing.T) { + // Neither internal nor external store has the metric. + store := emptyMetadataStore{} + const name = "custom_metric_unknown" + metadata, resolved := metadataForMetric(name, store) + if resolved != name { + t.Fatalf("expected resolved name %q, got %q", name, resolved) + } + if metadata.Type != model.MetricTypeUnknown { + t.Fatalf("expected Unknown, got %v", metadata.Type) + } + if metadata.MetricFamily != name { + t.Fatalf("expected family %q, got %q", name, metadata.MetricFamily) + } +} + +func TestMetadataForMetric_PrefersInternalOverExternal(t *testing.T) { + // Ensure internal metric metadata is used even if external store provides a conflicting entry. + store := newFakeMetadataStore(map[string]scrape.MetricMetadata{ + scrapeUpMetricName: { + MetricFamily: "up_external", + Type: model.MetricTypeCounter, + Help: "External override attempt", + }, + }, + ) + m, resolved := metadataForMetric(scrapeUpMetricName, store) + if resolved != scrapeUpMetricName { + t.Fatalf("expected resolved name %q, got %q", scrapeUpMetricName, resolved) + } + // Internal definition should win: Gauge with original family. + if m.Type != model.MetricTypeGauge { + t.Fatalf("expected type Gauge from internal map, got %v", m.Type) + } + if m.MetricFamily != scrapeUpMetricName { + t.Fatalf("expected family %q from internal map, got %q", scrapeUpMetricName, m.MetricFamily) + } +} + +// fakeMetadataStore implements scrape.MetricMetadataStore for tests. +// It is safe to use from other packages' tests +type fakeMetadataStore struct { + data map[string]scrape.MetricMetadata +} + +// newFakeMetadataStore creates a FakeMetadataStore initialized with the given metadata. +func newFakeMetadataStore(init map[string]scrape.MetricMetadata) *fakeMetadataStore { + // copy defensively to avoid external mutation + cp := make(map[string]scrape.MetricMetadata, len(init)) + for k, v := range init { + cp[k] = v + } + return &fakeMetadataStore{data: cp} +} + +func (f fakeMetadataStore) ListMetadata() []scrape.MetricMetadata { + out := make([]scrape.MetricMetadata, 0, len(f.data)) + for _, m := range f.data { + out = append(out, m) + } + return out +} + +func (f fakeMetadataStore) GetMetadata(name string) (scrape.MetricMetadata, bool) { + m, ok := f.data[name] + return m, ok +} + +func (f fakeMetadataStore) SizeMetadata() int { + return len(f.data) +} + +func (f fakeMetadataStore) LengthMetadata() int { + return len(f.data) +} diff --git a/otelcollector/prometheusreceiver/internal/metricfamily.go b/otelcollector/prometheusreceiver/internal/metricfamily.go index b0cbe3493..92d3e814a 100644 --- a/otelcollector/prometheusreceiver/internal/metricfamily.go +++ b/otelcollector/prometheusreceiver/internal/metricfamily.go @@ -10,6 +10,7 @@ import ( "sort" "strings" + "github.com/prometheus/common/model" "github.com/prometheus/prometheus/model/exemplar" "github.com/prometheus/prometheus/model/histogram" "github.com/prometheus/prometheus/model/labels" @@ -52,11 +53,18 @@ type metricGroup struct { fhValue *histogram.FloatHistogram complexValue []*dataPoint exemplars pmetric.ExemplarSlice + isNHCB bool // true if this is a Native Histogram Custom Buckets (schema -53) } -func newMetricFamily(metricName string, mc scrape.MetricMetadataStore, logger *zap.Logger) *metricFamily { +func newMetricFamily(metricName string, mc scrape.MetricMetadataStore, logger *zap.Logger, isNativeHistogram, isNHCB bool) *metricFamily { metadata, familyName := metadataForMetric(metricName, mc) - mtype, isMonotonic := convToMetricType(metadata.Type) + // Native histograms have intrinsic metric type, use it, + // regardless of what metadata says. + if isNativeHistogram { + metadata.Type = model.MetricTypeHistogram + } + + mtype, isMonotonic := convToMetricType(metadata.Type, isNativeHistogram && !isNHCB) if mtype == pmetric.MetricTypeEmpty { logger.Debug(fmt.Sprintf("Unknown-typed metric : %s %+v", metricName, metadata)) } @@ -94,41 +102,63 @@ func (mg *metricGroup) toDistributionPoint(dest pmetric.HistogramDataPointSlice) mg.sortPoints() - bucketCount := len(mg.complexValue) + 1 - // if the final bucket is +Inf, we ignore it - if bucketCount > 1 && mg.complexValue[bucketCount-2].boundary == math.Inf(1) { - bucketCount-- - } + var bounds []float64 + var bucketCounts []uint64 + pointIsStale := value.IsStaleNaN(mg.sum) || value.IsStaleNaN(mg.count) - // for OTLP the bounds won't include +inf - bounds := make([]float64, bucketCount-1) - bucketCounts := make([]uint64, bucketCount) - var adjustedCount float64 + if mg.isNHCB { + switch { + case mg.hValue != nil: + if len(mg.hValue.CustomValues) == 0 { + return + } + bounds = make([]float64, len(mg.hValue.CustomValues)) + copy(bounds, mg.hValue.CustomValues) + bucketCounts = convertNHCBBDeltBuckets(mg.hValue) + case mg.fhValue != nil: + if len(mg.fhValue.CustomValues) == 0 { + return + } + bounds = make([]float64, len(mg.fhValue.CustomValues)) + copy(bounds, mg.fhValue.CustomValues) + bucketCounts = convertNHCBAbsoluteBuckets(mg.fhValue) + } + } else { + bucketCount := len(mg.complexValue) + 1 + // if the final bucket is +Inf, we ignore it + if bucketCount > 1 && mg.complexValue[bucketCount-2].boundary == math.Inf(1) { + bucketCount-- + } - pointIsStale := value.IsStaleNaN(mg.sum) || value.IsStaleNaN(mg.count) - for i := 0; i < bucketCount-1; i++ { - bounds[i] = mg.complexValue[i].boundary - adjustedCount = mg.complexValue[i].value + // for OTLP the bounds won't include +inf + bounds = make([]float64, bucketCount-1) + bucketCounts = make([]uint64, bucketCount) + var adjustedCount float64 + + for i := 0; i < bucketCount-1; i++ { + bounds[i] = mg.complexValue[i].boundary + adjustedCount = mg.complexValue[i].value + + // Buckets still need to be sent to know to set them as stale, + // but a staleness NaN converted to uint64 would be an extremely large number. + // Setting to 0 instead. + if pointIsStale { + adjustedCount = 0 + } else if i != 0 { + adjustedCount -= mg.complexValue[i-1].value + } + bucketCounts[i] = uint64(adjustedCount) + } - // Buckets still need to be sent to know to set them as stale, - // but a staleness NaN converted to uint64 would be an extremely large number. - // Setting to 0 instead. + // Add the final bucket based on the total count + adjustedCount = mg.count if pointIsStale { adjustedCount = 0 - } else if i != 0 { - adjustedCount -= mg.complexValue[i-1].value + } else if bucketCount > 1 { + adjustedCount -= mg.complexValue[bucketCount-2].value } - bucketCounts[i] = uint64(adjustedCount) - } - - // Add the final bucket based on the total count - adjustedCount = mg.count - if pointIsStale { - adjustedCount = 0 - } else if bucketCount > 1 { - adjustedCount -= mg.complexValue[bucketCount-2].value + bucketCounts[bucketCount-1] = uint64(adjustedCount) } - bucketCounts[bucketCount-1] = uint64(adjustedCount) point := dest.AppendEmpty() @@ -269,6 +299,53 @@ func convertAbsoluteBuckets(spans []histogram.Span, counts []float64, buckets pc } } +// convertNHCBBDeltBuckets converts NHCB delta buckets to otel bucket counts. +func convertNHCBBDeltBuckets(histogram *histogram.Histogram) []uint64 { + bucketCounts := make([]uint64, len(histogram.CustomValues)+1) + if len(histogram.PositiveSpans) == 0 { + return bucketCounts + } + bucketIdx := 0 + bucketCount := int64(0) + deltaIdx := 0 + + for _, span := range histogram.PositiveSpans { + bucketIdx += int(span.Offset) + + for i := uint32(0); i < span.Length && bucketIdx < len(bucketCounts) && deltaIdx < len(histogram.PositiveBuckets); i++ { + bucketCount += histogram.PositiveBuckets[deltaIdx] + deltaIdx++ + + if bucketIdx >= 0 && bucketIdx < len(bucketCounts) { + bucketCounts[bucketIdx] = uint64(bucketCount) + } + bucketIdx++ + } + } + return bucketCounts +} + +// convertNHCBAbsoluteBuckets converts NHCB absolute buckets to otel bucket counts. +func convertNHCBAbsoluteBuckets(histogram *histogram.FloatHistogram) []uint64 { + bucketCounts := make([]uint64, len(histogram.CustomValues)+1) + if len(histogram.PositiveSpans) == 0 { + return bucketCounts + } + bucketIdx := 0 + for _, span := range histogram.PositiveSpans { + bucketIdx += int(span.Offset) + + for i := uint32(0); i < span.Length && bucketIdx < len(bucketCounts) && i < uint32(len(histogram.PositiveBuckets)); i++ { + if bucketIdx >= 0 && bucketIdx < len(bucketCounts) { + // This intentionally truncates the float value to an integer (e.g. 5.7 becomes 5). + bucketCounts[bucketIdx] = uint64(histogram.PositiveBuckets[i]) + } + bucketIdx++ + } + } + return bucketCounts +} + func (mg *metricGroup) setExemplars(exemplars pmetric.ExemplarSlice) { if mg == nil { return @@ -465,6 +542,37 @@ func (mf *metricFamily) addExponentialHistogramSeries(seriesRef uint64, metricNa return nil } +// addNHCBSeries adds a Native Histogram Custom Buckets (NHCB) series to the metric family. +func (mf *metricFamily) addNHCBSeries(seriesRef uint64, metricName string, ls labels.Labels, t int64, h *histogram.Histogram, fh *histogram.FloatHistogram) error { + mg := mf.loadMetricGroupOrCreate(seriesRef, ls, t) + if mg.ts != t { + return fmt.Errorf("inconsistent timestamps on metric points for metric %v", metricName) + } + if mg.mtype != pmetric.MetricTypeHistogram { + return fmt.Errorf("metric type mismatch for NHCB metric %v type %s", metricName, mg.mtype.String()) + } + mg.isNHCB = true + + switch { + case h != nil: + mg.hValue = h + mg.count = float64(h.Count) + mg.hasCount = true + mg.sum = h.Sum + mg.hasSum = true + case fh != nil: + mg.fhValue = fh + mg.count = fh.Count + mg.hasCount = true + mg.sum = fh.Sum + mg.hasSum = true + default: + return fmt.Errorf("NHCB metric %v has no histogram data", metricName) + } + + return nil +} + func (mf *metricFamily) appendMetric(metrics pmetric.MetricSlice, trimSuffixes bool) { metric := pmetric.NewMetric() // Trims type and unit suffixes from metric name diff --git a/otelcollector/prometheusreceiver/internal/metricfamily_test.go b/otelcollector/prometheusreceiver/internal/metricfamily_test.go index 3eafed50e..61a4b1900 100644 --- a/otelcollector/prometheusreceiver/internal/metricfamily_test.go +++ b/otelcollector/prometheusreceiver/internal/metricfamily_test.go @@ -120,7 +120,7 @@ func TestMetricGroupData_toDistributionUnitTest(t *testing.T) { intervalStartTimeMs int64 }{ { - name: "histogram with startTimestamp", + name: "histogram with no startTimestamp", metricName: "histogram", intervalStartTimeMs: 11, labels: labels.FromMap(map[string]string{"a": "A", "b": "B"}), @@ -138,7 +138,6 @@ func TestMetricGroupData_toDistributionUnitTest(t *testing.T) { point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. point.ExplicitBounds().FromRaw([]float64{0.75, 2.75}) point.BucketCounts().FromRaw([]uint64{33, 22, 11}) - point.SetStartTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. attributes := point.Attributes() attributes.PutStr("a", "A") attributes.PutStr("b", "B") @@ -207,7 +206,6 @@ func TestMetricGroupData_toDistributionUnitTest(t *testing.T) { point.SetFlags(pmetric.DefaultDataPointFlags.WithNoRecordedValue(true)) point.ExplicitBounds().FromRaw([]float64{0.75, 2.75}) point.BucketCounts().FromRaw([]uint64{0, 0, 0}) - point.SetStartTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. attributes := point.Attributes() attributes.PutStr("a", "A") attributes.PutStr("b", "B") @@ -239,8 +237,7 @@ func TestMetricGroupData_toDistributionUnitTest(t *testing.T) { point := pmetric.NewHistogramDataPoint() point.SetCount(66) point.SetSum(1004.78) - point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. - point.SetStartTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. + point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. point.BucketCounts().FromRaw([]uint64{66}) attributes := point.Attributes() attributes.PutStr("a", "A") @@ -252,7 +249,7 @@ func TestMetricGroupData_toDistributionUnitTest(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - mp := newMetricFamily(tt.metricName, mc, zap.NewNop()) + mp := newMetricFamily(tt.metricName, mc, zap.NewNop(), false, false) for i, tv := range tt.scrapes { var lbls labels.Labels if tv.extraLabel.Name != "" { @@ -294,6 +291,142 @@ func TestMetricGroupData_toDistributionUnitTest(t *testing.T) { } } +func TestMetricGroupData_toNHCBDistributionUnitTest(t *testing.T) { + tests := []struct { + name string + metricName string + labels labels.Labels + integerHistogram *histogram.Histogram + floatHistogram *histogram.FloatHistogram + want func() pmetric.HistogramDataPoint + wantErr bool + intervalStartTimeMs int64 + }{ + { + name: "integer NHCB", + metricName: "histogram", + intervalStartTimeMs: 11, + labels: labels.FromMap(map[string]string{"a": "A", "b": "B"}), + integerHistogram: &histogram.Histogram{ + Schema: -53, + Count: 180, + Sum: 100.5, + CustomValues: []float64{1.0, 2.0, 5.0, 10.0}, + PositiveSpans: []histogram.Span{{Offset: 0, Length: 5}}, + PositiveBuckets: []int64{10, 15, 20, 5, 0}, + }, + want: func() pmetric.HistogramDataPoint { + point := pmetric.NewHistogramDataPoint() + point.SetCount(180) + point.SetSum(100.5) + point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) + point.ExplicitBounds().FromRaw([]float64{1.0, 2.0, 5.0, 10.0}) + point.BucketCounts().FromRaw([]uint64{10, 25, 45, 50, 50}) + attributes := point.Attributes() + attributes.PutStr("a", "A") + attributes.PutStr("b", "B") + return point + }, + }, + { + name: "integer NHCB that is stale", + metricName: "histogram", + intervalStartTimeMs: 11, + labels: labels.FromMap(map[string]string{"a": "A", "b": "B"}), + integerHistogram: &histogram.Histogram{ + Schema: -53, + Sum: math.Float64frombits(value.StaleNaN), + CustomValues: []float64{1.0, 2.0, 5.0, 10.0}, + Count: 0, + }, + want: func() pmetric.HistogramDataPoint { + point := pmetric.NewHistogramDataPoint() + point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) + point.SetFlags(pmetric.DefaultDataPointFlags.WithNoRecordedValue(true)) + point.ExplicitBounds().FromRaw([]float64{1.0, 2.0, 5.0, 10.0}) + point.BucketCounts().FromRaw([]uint64{0, 0, 0, 0, 0}) + attributes := point.Attributes() + attributes.PutStr("a", "A") + attributes.PutStr("b", "B") + return point + }, + }, + { + name: "float NHCB", + metricName: "histogram", + intervalStartTimeMs: 12, + labels: labels.FromMap(map[string]string{"a": "A"}), + floatHistogram: &histogram.FloatHistogram{ + Schema: -53, + Count: 50.0, + Sum: 125.25, + CustomValues: []float64{0.5, 2.0}, + PositiveBuckets: []float64{15.0, 20.0, 15.0}, + PositiveSpans: []histogram.Span{{Offset: 0, Length: 3}}, + }, + want: func() pmetric.HistogramDataPoint { + point := pmetric.NewHistogramDataPoint() + point.SetCount(50) + point.SetSum(125.25) + point.SetTimestamp(pcommon.Timestamp(12 * time.Millisecond)) + point.ExplicitBounds().FromRaw([]float64{0.5, 2.0}) + point.BucketCounts().FromRaw([]uint64{15, 20, 15}) + attributes := point.Attributes() + attributes.PutStr("a", "A") + return point + }, + }, + { + name: "integer NHCB with negative boundaries", + metricName: "histogram", + intervalStartTimeMs: 30, + labels: labels.FromMap(map[string]string{"a": "A"}), + integerHistogram: &histogram.Histogram{ + Schema: -53, + Count: 16, + Sum: 10.0, + CustomValues: []float64{-5.0, 0.0, 5.0}, + PositiveSpans: []histogram.Span{{Offset: 0, Length: 4}}, + PositiveBuckets: []int64{5, 5, 5, 1}, + }, + want: func() pmetric.HistogramDataPoint { + point := pmetric.NewHistogramDataPoint() + point.SetCount(16) + point.SetSum(10.0) + point.SetTimestamp(pcommon.Timestamp(30 * time.Millisecond)) + point.ExplicitBounds().FromRaw([]float64{-5.0, 0.0, 5.0}) + point.BucketCounts().FromRaw([]uint64{5, 10, 15, 16}) + point.Attributes().PutStr("a", "A") + return point + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + mp := newMetricFamily(tt.metricName, mc, zap.NewNop(), false, false) + sRef, _ := getSeriesRef(nil, tt.labels, mp.mtype) + + err := mp.addNHCBSeries(sRef, tt.metricName, tt.labels, tt.intervalStartTimeMs, tt.integerHistogram, tt.floatHistogram) + require.NoError(t, err) + + require.Len(t, mp.groups, 1) + + sl := pmetric.NewMetricSlice() + mp.appendMetric(sl, false) + + require.Equal(t, 1, sl.Len(), "Exactly one metric expected") + metric := sl.At(0) + + hdpL := metric.Histogram().DataPoints() + require.Equal(t, 1, hdpL.Len(), "Exactly one point expected") + got := hdpL.At(0) + want := tt.want() + require.Equal(t, want, got, "Expected the points to be equal") + }) + } +} + func TestMetricGroupData_toExponentialDistributionUnitTest(t *testing.T) { type scrape struct { at int64 @@ -315,7 +448,7 @@ func TestMetricGroupData_toExponentialDistributionUnitTest(t *testing.T) { intervalStartTimeMs int64 }{ { - name: "integer histogram with startTimestamp", + name: "integer histogram without startTimestamp", metricName: "request_duration_seconds", intervalStartTimeMs: 11, labels: labels.FromMap(map[string]string{"a": "A", "b": "B"}), @@ -341,8 +474,7 @@ func TestMetricGroupData_toExponentialDistributionUnitTest(t *testing.T) { point := pmetric.NewExponentialHistogramDataPoint() point.SetCount(66) point.SetSum(1004.78) - point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. - point.SetStartTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. + point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. point.SetScale(1) point.SetZeroThreshold(0.42) point.SetZeroCount(1) @@ -420,7 +552,6 @@ func TestMetricGroupData_toExponentialDistributionUnitTest(t *testing.T) { point := pmetric.NewExponentialHistogramDataPoint() point.SetTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. point.SetFlags(pmetric.DefaultDataPointFlags.WithNoRecordedValue(true)) - point.SetStartTimestamp(pcommon.Timestamp(11 * time.Millisecond)) // the time in milliseconds -> nanoseconds. attributes := point.Attributes() attributes.PutStr("a", "A") attributes.PutStr("b", "B") @@ -431,7 +562,7 @@ func TestMetricGroupData_toExponentialDistributionUnitTest(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - mp := newMetricFamily(tt.metricName, mc, zap.NewNop()) + mp := newMetricFamily(tt.metricName, mc, zap.NewNop(), true, false) for i, tv := range tt.scrapes { var lbls labels.Labels if tv.extraLabel.Name != "" { @@ -564,8 +695,7 @@ func TestMetricGroupData_toSummaryUnitTest(t *testing.T) { qn99 := qtL.AppendEmpty() qn99.SetQuantile(.99) qn99.SetValue(82) - point.SetTimestamp(pcommon.Timestamp(14 * time.Millisecond)) // the time in milliseconds -> nanoseconds. - point.SetStartTimestamp(pcommon.Timestamp(14 * time.Millisecond)) // the time in milliseconds -> nanoseconds + point.SetTimestamp(pcommon.Timestamp(14 * time.Millisecond)) // the time in milliseconds -> nanoseconds. attributes := point.Attributes() attributes.PutStr("a", "A") attributes.PutStr("b", "B") @@ -708,8 +838,7 @@ func TestMetricGroupData_toSummaryUnitTest(t *testing.T) { qn99 := qtL.AppendEmpty() qn99.SetQuantile(.99) qn99.SetValue(0) - point.SetTimestamp(pcommon.Timestamp(14 * time.Millisecond)) // the time in milliseconds -> nanoseconds. - point.SetStartTimestamp(pcommon.Timestamp(14 * time.Millisecond)) // the time in milliseconds -> nanoseconds + point.SetTimestamp(pcommon.Timestamp(14 * time.Millisecond)) // the time in milliseconds -> nanoseconds. attributes := point.Attributes() attributes.PutStr("a", "A") attributes.PutStr("b", "B") @@ -733,7 +862,7 @@ func TestMetricGroupData_toSummaryUnitTest(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - mp := newMetricFamily(tt.name, mc, zap.NewNop()) + mp := newMetricFamily(tt.name, mc, zap.NewNop(), false, false) for _, lbs := range tt.labelsScrapes { for i, scrape := range lbs.scrapes { lb := lbs.labels.Copy() @@ -802,7 +931,6 @@ func TestMetricGroupData_toNumberDataUnitTest(t *testing.T) { // the time in milliseconds -> nanoseconds. point.SetTimestamp(pcommon.Timestamp(13 * time.Millisecond)) - point.SetStartTimestamp(pcommon.Timestamp(13 * time.Millisecond)) attributes := point.Attributes() attributes.PutStr("a", "A") @@ -844,8 +972,7 @@ func TestMetricGroupData_toNumberDataUnitTest(t *testing.T) { want: func() pmetric.NumberDataPoint { point := pmetric.NewNumberDataPoint() point.SetDoubleValue(33.7) - point.SetTimestamp(pcommon.Timestamp(13 * time.Millisecond)) // the time in milliseconds -> nanoseconds. - point.SetStartTimestamp(pcommon.Timestamp(13 * time.Millisecond)) // the time in milliseconds -> nanoseconds. + point.SetTimestamp(pcommon.Timestamp(13 * time.Millisecond)) // the time in milliseconds -> nanoseconds. attributes := point.Attributes() attributes.PutStr("a", "A") attributes.PutStr("b", "B") @@ -863,8 +990,7 @@ func TestMetricGroupData_toNumberDataUnitTest(t *testing.T) { want: func() pmetric.NumberDataPoint { point := pmetric.NewNumberDataPoint() point.SetDoubleValue(99.9) - point.SetTimestamp(pcommon.Timestamp(28 * time.Millisecond)) // the time in milliseconds -> nanoseconds. - point.SetStartTimestamp(pcommon.Timestamp(28 * time.Millisecond)) // the time in milliseconds -> nanoseconds. + point.SetTimestamp(pcommon.Timestamp(28 * time.Millisecond)) // the time in milliseconds -> nanoseconds. attributes := point.Attributes() attributes.PutStr("a", "A") attributes.PutStr("b", "B") @@ -875,7 +1001,7 @@ func TestMetricGroupData_toNumberDataUnitTest(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - mp := newMetricFamily(tt.metricKind, mc, zap.NewNop()) + mp := newMetricFamily(tt.metricKind, mc, zap.NewNop(), false, false) for _, tv := range tt.scrapes { lb := tt.labels.Copy() sRef, _ := getSeriesRef(nil, lb, mp.mtype) diff --git a/otelcollector/prometheusreceiver/internal/metrics_adjuster_test.go b/otelcollector/prometheusreceiver/internal/metrics_adjuster_test.go index d9bc7e2bd..343ac9dd7 100644 --- a/otelcollector/prometheusreceiver/internal/metrics_adjuster_test.go +++ b/otelcollector/prometheusreceiver/internal/metrics_adjuster_test.go @@ -12,6 +12,8 @@ import ( "go.opentelemetry.io/collector/pdata/pmetric" semconv "go.opentelemetry.io/otel/semconv/v1.27.0" "go.uber.org/zap" + + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/common/testutil" ) var ( @@ -740,6 +742,7 @@ type metricsAdjusterTest struct { func runScript(t *testing.T, ma MetricsAdjuster, job, instance string, tests []*metricsAdjusterTest) { for _, test := range tests { t.Run(test.description, func(t *testing.T) { + defer testutil.SetFeatureGateForTest(t, removeStartTimeAdjustment, false)() adjusted := pmetric.NewMetrics() test.metrics.CopyTo(adjusted) // Add the instance/job to the input metrics if they aren't already present. @@ -784,10 +787,9 @@ func BenchmarkGetAttributesSignature(b *testing.B) { attrs.PutStr("key7", "some-random-test-value-7") attrs.PutStr("key8", "some-random-test-value-8") - b.ResetTimer() b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { getAttributesSignature(attrs) } } diff --git a/otelcollector/prometheusreceiver/internal/metricsutil_test.go b/otelcollector/prometheusreceiver/internal/metricsutil_test.go index ed3496d6c..8a6463d88 100644 --- a/otelcollector/prometheusreceiver/internal/metricsutil_test.go +++ b/otelcollector/prometheusreceiver/internal/metricsutil_test.go @@ -184,7 +184,7 @@ func exponentialHistogramPointSimplified(attributes []*kv, startTimestamp, times var sum float64 var count uint64 - for i := 0; i < bucketCount; i++ { + for i := range bucketCount { positive.BucketCounts().Append(uint64(i + 1)) negative.BucketCounts().Append(uint64(i + 1)) count += uint64(i+1) + uint64(i+1) @@ -268,7 +268,7 @@ func summaryPoint(attributes []*kv, startTimestamp, timestamp pcommon.Timestamp, sdp.SetSum(sum) qvL := sdp.QuantileValues() - for i := 0; i < len(quantiles); i++ { + for i := range quantiles { qvi := qvL.AppendEmpty() qvi.SetQuantile(quantiles[i]) qvi.SetValue(values[i]) diff --git a/otelcollector/prometheusreceiver/internal/staleness_end_to_end_test.go b/otelcollector/prometheusreceiver/internal/staleness_end_to_end_test.go index 7a52f9901..8e25918fe 100644 --- a/otelcollector/prometheusreceiver/internal/staleness_end_to_end_test.go +++ b/otelcollector/prometheusreceiver/internal/staleness_end_to_end_test.go @@ -30,6 +30,7 @@ import ( "go.opentelemetry.io/collector/processor" "go.opentelemetry.io/collector/processor/batchprocessor" "go.opentelemetry.io/collector/receiver" + "go.opentelemetry.io/collector/service/telemetry" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -119,9 +120,6 @@ exporters: insecure: true service: - telemetry: - metrics: - level: "none" pipelines: metrics: receivers: [prometheus] @@ -144,6 +142,9 @@ service: Receivers: receivers, Exporters: exporters, Processors: processors, + Telemetry: telemetry.NewFactory( + func() component.Config { return struct{}{} }, + ), } appSettings := otelcol.CollectorSettings{ @@ -188,7 +189,7 @@ service: // 5. Let's wait on 10 fetches. var wReqL []*prompb.WriteRequest - for i := 0; i < 10; i++ { + for range 10 { wReqL = append(wReqL, <-prweUploads) } defer cancel() diff --git a/otelcollector/prometheusreceiver/internal/starttimemetricadjuster_test.go b/otelcollector/prometheusreceiver/internal/starttimemetricadjuster_test.go index fa90c6083..859c0db42 100644 --- a/otelcollector/prometheusreceiver/internal/starttimemetricadjuster_test.go +++ b/otelcollector/prometheusreceiver/internal/starttimemetricadjuster_test.go @@ -167,6 +167,7 @@ func TestStartTimeMetricMatch(t *testing.T) { } func TestStartTimeMetricFallback(t *testing.T) { + defer testutil.SetFeatureGateForTest(t, removeStartTimeAdjustment, false)() const startTime = pcommon.Timestamp(123 * 1e9) const currentTime = pcommon.Timestamp(126 * 1e9) mockStartTime := time.Now().Add(-10 * time.Hour) diff --git a/otelcollector/prometheusreceiver/targetallocator/config.go b/otelcollector/prometheusreceiver/internal/targetallocator/config.go similarity index 98% rename from otelcollector/prometheusreceiver/targetallocator/config.go rename to otelcollector/prometheusreceiver/internal/targetallocator/config.go index eaa9ea966..5a7a295ed 100644 --- a/otelcollector/prometheusreceiver/targetallocator/config.go +++ b/otelcollector/prometheusreceiver/internal/targetallocator/config.go @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package targetallocator // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/targetallocator" +package targetallocator // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/targetallocator" import ( "encoding/base64" diff --git a/otelcollector/prometheusreceiver/internal/targetallocator/config_test.go b/otelcollector/prometheusreceiver/internal/targetallocator/config_test.go new file mode 100644 index 000000000..b64a35676 --- /dev/null +++ b/otelcollector/prometheusreceiver/internal/targetallocator/config_test.go @@ -0,0 +1,230 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package targetallocator // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/targetallocator" + +import ( + "path/filepath" + "testing" + "time" + + promConfig "github.com/prometheus/common/config" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/component/componenttest" + "go.opentelemetry.io/collector/confmap/confmaptest" + "go.opentelemetry.io/collector/confmap/xconfmap" +) + +func TestComponentConfigStruct(t *testing.T) { + require.NoError(t, componenttest.CheckConfigStruct(Config{})) +} + +func TestLoadTargetAllocatorConfig(t *testing.T) { + cm, err := confmaptest.LoadConf(filepath.Join("testdata", "config.yaml")) + require.NoError(t, err) + cfg := &Config{} + + sub, err := cm.Sub("target_allocator") + require.NoError(t, err) + require.NoError(t, sub.Unmarshal(cfg)) + require.NoError(t, xconfmap.Validate(cfg)) + + assert.Equal(t, "http://localhost:8080", cfg.Endpoint) + assert.Equal(t, 5*time.Second, cfg.Timeout) + assert.Equal(t, "client.crt", cfg.TLS.CertFile) + assert.Equal(t, 30*time.Second, cfg.Interval) + assert.Equal(t, "collector-1", cfg.CollectorID) +} + +func TestPromHTTPClientConfigValidateAuthorization(t *testing.T) { + cfg := PromHTTPClientConfig{} + require.NoError(t, xconfmap.Validate(cfg)) + cfg.Authorization = &promConfig.Authorization{} + require.NoError(t, xconfmap.Validate(cfg)) + cfg.Authorization.CredentialsFile = "none" + require.Error(t, xconfmap.Validate(cfg)) + cfg.Authorization.CredentialsFile = filepath.Join("testdata", "dummy-tls-cert-file") + require.NoError(t, xconfmap.Validate(cfg)) +} + +func TestPromHTTPClientConfigValidateTLSConfig(t *testing.T) { + cfg := PromHTTPClientConfig{} + require.NoError(t, xconfmap.Validate(cfg)) + cfg.TLSConfig.CertFile = "none" + require.Error(t, xconfmap.Validate(cfg)) + cfg.TLSConfig.CertFile = filepath.Join("testdata", "dummy-tls-cert-file") + cfg.TLSConfig.KeyFile = "none" + require.Error(t, xconfmap.Validate(cfg)) + cfg.TLSConfig.KeyFile = filepath.Join("testdata", "dummy-tls-key-file") + require.NoError(t, xconfmap.Validate(cfg)) +} + +func TestPromHTTPClientConfigValidateMain(t *testing.T) { + cfg := PromHTTPClientConfig{} + require.NoError(t, xconfmap.Validate(cfg)) + cfg.BearerToken = "foo" + cfg.BearerTokenFile = filepath.Join("testdata", "dummy-tls-key-file") + require.Error(t, xconfmap.Validate(cfg)) +} + +func TestConfigValidate_InvalidEndpoint(t *testing.T) { + tests := []struct { + name string + endpoint string + collectorID string + expectError bool + }{ + { + name: "valid config", + endpoint: "http://localhost:8080", + collectorID: "collector-1", + expectError: false, + }, + { + name: "invalid endpoint - malformed", + endpoint: "://invalid", + collectorID: "collector-1", + expectError: true, + }, + { + name: "invalid endpoint - empty", + endpoint: "", + collectorID: "collector-1", + expectError: true, + }, + { + name: "invalid collectorID - empty", + endpoint: "http://localhost:8080", + collectorID: "", + expectError: true, + }, + { + name: "invalid collectorID - contains variable", + endpoint: "http://localhost:8080", + collectorID: "${POD_NAME}", + expectError: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + cfg := &Config{ + CollectorID: tt.collectorID, + } + cfg.Endpoint = tt.endpoint + err := xconfmap.Validate(cfg) + if tt.expectError { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestConvertTLSVersion(t *testing.T) { + tests := []struct { + name string + version string + expectError bool + }{ + { + name: "TLS 1.2", + version: "1.2", + expectError: false, + }, + { + name: "TLS 1.3", + version: "1.3", + expectError: false, + }, + { + name: "TLS 1.0", + version: "1.0", + expectError: false, + }, + { + name: "TLS 1.1", + version: "1.1", + expectError: false, + }, + { + name: "invalid version", + version: "2.0", + expectError: true, + }, + { + name: "invalid format", + version: "invalid", + expectError: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + _, err := convertTLSVersion(tt.version) + if tt.expectError { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} + +func TestCheckTLSConfig(t *testing.T) { + tests := []struct { + name string + certFile string + keyFile string + expectError bool + }{ + { + name: "empty config", + certFile: "", + keyFile: "", + expectError: false, + }, + { + name: "valid cert and key", + certFile: filepath.Join("testdata", "dummy-tls-cert-file"), + keyFile: filepath.Join("testdata", "dummy-tls-key-file"), + expectError: false, + }, + { + name: "invalid cert file", + certFile: "nonexistent-cert.pem", + keyFile: filepath.Join("testdata", "dummy-tls-key-file"), + expectError: true, + }, + { + name: "invalid key file", + certFile: filepath.Join("testdata", "dummy-tls-cert-file"), + keyFile: "nonexistent-key.pem", + expectError: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tlsConfig := promConfig.TLSConfig{ + CertFile: tt.certFile, + KeyFile: tt.keyFile, + } + cfg := &Config{ + CollectorID: "collector-1", + HTTPScrapeConfig: &PromHTTPClientConfig{ + TLSConfig: tlsConfig, + }, + } + cfg.Endpoint = "http://localhost:8080" + err := xconfmap.Validate(cfg) + if tt.expectError { + assert.Error(t, err) + } else { + assert.NoError(t, err) + } + }) + } +} diff --git a/otelcollector/prometheusreceiver/targetallocator/manager.go b/otelcollector/prometheusreceiver/internal/targetallocator/manager.go similarity index 94% rename from otelcollector/prometheusreceiver/targetallocator/manager.go rename to otelcollector/prometheusreceiver/internal/targetallocator/manager.go index 0f401669e..ff816b427 100644 --- a/otelcollector/prometheusreceiver/targetallocator/manager.go +++ b/otelcollector/prometheusreceiver/internal/targetallocator/manager.go @@ -1,7 +1,7 @@ // Copyright The OpenTelemetry Authors // SPDX-License-Identifier: Apache-2.0 -package targetallocator // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/targetallocator" +package targetallocator // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/targetallocator" import ( "bytes" @@ -14,6 +14,7 @@ import ( "net/url" "os" "sort" + "sync" "sync/atomic" "syscall" "time" @@ -40,6 +41,7 @@ type Manager struct { scrapeManager *scrape.Manager discoveryManager *discovery.Manager enableNativeHistograms bool + wg sync.WaitGroup // configUpdateCount tracks how many times the config has changed, for // testing. @@ -70,7 +72,7 @@ func (m *Manager) Start(ctx context.Context, host component.Host, sm *scrape.Man // the target allocator is disabled return nil } - httpClient, err := m.cfg.ToClient(ctx, host, m.settings.TelemetrySettings) + httpClient, err := m.cfg.ToClient(ctx, host.GetExtensions(), m.settings.TelemetrySettings) if err != nil { m.settings.Logger.Error("Failed to create http client", zap.Error(err)) return err @@ -92,7 +94,9 @@ func (m *Manager) Start(ctx context.Context, host component.Host, sm *scrape.Man if err != nil { return err } + m.wg.Add(1) go func() { + defer m.wg.Done() targetAllocatorIntervalTicker := time.NewTicker(m.cfg.Interval) for { select { @@ -115,6 +119,7 @@ func (m *Manager) Start(ctx context.Context, host component.Host, sm *scrape.Man func (m *Manager) Shutdown() { close(m.shutdown) + m.wg.Wait() } // sync request jobs from targetAllocator and update underlying receiver, if the response does not match the provided compareHash. @@ -239,7 +244,7 @@ func getScrapeConfigsResponse(httpClient *http.Client, baseURL string) (map[stri } jobToScrapeConfig := map[string]*promconfig.ScrapeConfig{} - envReplacedBody := instantiateShard(body) + envReplacedBody := instantiateShard(body, os.LookupEnv) err = yaml.Unmarshal(envReplacedBody, &jobToScrapeConfig) if err != nil { return nil, err @@ -252,8 +257,9 @@ func getScrapeConfigsResponse(httpClient *http.Client, baseURL string) (map[stri } // instantiateShard inserts the SHARD environment variable in the returned configuration -func instantiateShard(body []byte) []byte { - shard, ok := os.LookupEnv("SHARD") +func instantiateShard(body []byte, lookup func(string) (string, bool)) []byte { + shard, ok := lookup("SHARD") + if !ok { shard = "0" } diff --git a/otelcollector/prometheusreceiver/internal/targetallocator/manager_test.go b/otelcollector/prometheusreceiver/internal/targetallocator/manager_test.go new file mode 100644 index 000000000..4afc9a0af --- /dev/null +++ b/otelcollector/prometheusreceiver/internal/targetallocator/manager_test.go @@ -0,0 +1,195 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package targetallocator + +import ( + "net/http" + "net/http/httptest" + "testing" + "time" + + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/common/promslog" + promconfig "github.com/prometheus/prometheus/config" + "github.com/prometheus/prometheus/discovery" + "github.com/prometheus/prometheus/scrape" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/component/componenttest" + "go.opentelemetry.io/collector/receiver/receivertest" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" + "go.uber.org/zap/zaptest/observer" + + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/metadata" +) + +func TestNewManager(t *testing.T) { + cfg := &Config{ + Interval: 30 * time.Second, + CollectorID: "test-collector", + } + promCfg := &promconfig.Config{ + ScrapeConfigs: []*promconfig.ScrapeConfig{ + {JobName: "test-job"}, + }, + } + + manager := NewManager(receivertest.NewNopSettings(metadata.Type), cfg, promCfg, true) + + assert.NotNil(t, manager) + assert.Equal(t, cfg, manager.cfg) + assert.Equal(t, promCfg, manager.promCfg) + assert.True(t, manager.enableNativeHistograms) + assert.NotNil(t, manager.shutdown) + assert.NotNil(t, manager.configUpdateCount) + assert.Len(t, manager.initialScrapeConfigs, 1) +} + +func TestManagerShutdown(t *testing.T) { + // Create a mock target allocator server + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + if r.URL.Path == "/scrape_configs" { + _, _ = w.Write([]byte("{}")) + } + })) + defer server.Close() + + cfg := &Config{ + Interval: 100 * time.Millisecond, + CollectorID: "test-collector", + } + cfg.Endpoint = server.URL + promCfg, err := promconfig.Load("", nil) + require.NoError(t, err) + + // Create a logger with observer to capture logs + core, logs := observer.New(zapcore.InfoLevel) + logger := zap.New(core) + settings := receivertest.NewNopSettings(metadata.Type) + settings.Logger = logger + + manager := NewManager(settings, cfg, promCfg, false) + + // Start the manager so the goroutine is running + ctx := t.Context() + + // Initialize Prometheus managers using the same pattern as manager_test.go + promLogger := promslog.NewNopLogger() + reg := prometheus.NewRegistry() + sdMetrics, err := discovery.RegisterSDMetrics(reg, discovery.NewRefreshMetrics(reg)) + require.NoError(t, err) + discoveryManager := discovery.NewManager(ctx, promLogger, reg, sdMetrics) + require.NotNil(t, discoveryManager) + + scrapeManager, err := scrape.NewManager(&scrape.Options{}, promLogger, nil, nil, reg) + require.NoError(t, err) + defer scrapeManager.Stop() + + err = manager.Start(ctx, componenttest.NewNopHost(), scrapeManager, discoveryManager) + require.NoError(t, err) + + // Shutdown the manager + manager.Shutdown() + + // Wait for the shutdown to complete with a timeout + require.Eventually(t, func() bool { + // Check if the log message "Stopping target allocator" was logged + logEntries := logs.FilterMessage("Stopping target allocator") + return logEntries.Len() > 0 + }, 5*time.Second, 50*time.Millisecond, "expected shutdown log message") +} + +func TestInstantiateShard(t *testing.T) { + tests := []struct { + name string + input []byte + envVar string + expected []byte + setEnv bool + }{ + { + name: "shard environment variable set", + input: []byte("replica-$(SHARD)"), + envVar: "5", + expected: []byte("replica-5"), + setEnv: true, + }, + { + name: "shard environment variable not set", + input: []byte("replica-$(SHARD)"), + expected: []byte("replica-0"), + setEnv: false, + }, + { + name: "multiple shard placeholders", + input: []byte("job-$(SHARD)-replica-$(SHARD)"), + envVar: "3", + expected: []byte("job-3-replica-3"), + setEnv: true, + }, + { + name: "no shard placeholder", + input: []byte("static-config"), + expected: []byte("static-config"), + setEnv: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + var lookup func(string) (string, bool) + if tt.setEnv { + lookup = func(_ string) (string, bool) { + return tt.envVar, true + } + } else { + lookup = func(_ string) (string, bool) { + return "", false + } + } + + result := instantiateShard(tt.input, lookup) + assert.Equal(t, tt.expected, result) + }) + } +} + +func TestGetScrapeConfigsResponse_InvalidURL(t *testing.T) { + httpClient := &http.Client{} + invalidURL := "://invalid-url" + + _, err := getScrapeConfigsResponse(httpClient, invalidURL) + assert.Error(t, err) +} + +func TestGetScrapeConfigsResponse_HTTPError(t *testing.T) { + // Create a test server that returns an error + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + w.WriteHeader(http.StatusInternalServerError) + })) + defer server.Close() + + httpClient := &http.Client{} + + config, err := getScrapeConfigsResponse(httpClient, server.URL) + // This should succeed in reading the response but return empty config + assert.NoError(t, err) + assert.Empty(t, config) +} + +func TestGetScrapeConfigsResponse_InvalidYAML(t *testing.T) { + // Create a test server that returns invalid YAML + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { + w.WriteHeader(http.StatusOK) + _, _ = w.Write([]byte("invalid: yaml: content: [[[")) + })) + defer server.Close() + + httpClient := &http.Client{} + + _, err := getScrapeConfigsResponse(httpClient, server.URL) + assert.Error(t, err) +} diff --git a/otelcollector/prometheusreceiver/targetallocator/manager_test.go b/otelcollector/prometheusreceiver/internal/targetallocator/manager_unsafe_test.go similarity index 99% rename from otelcollector/prometheusreceiver/targetallocator/manager_test.go rename to otelcollector/prometheusreceiver/internal/targetallocator/manager_unsafe_test.go index b41cd21d5..cffa11074 100644 --- a/otelcollector/prometheusreceiver/targetallocator/manager_test.go +++ b/otelcollector/prometheusreceiver/internal/targetallocator/manager_unsafe_test.go @@ -37,7 +37,7 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/metadata" ) -type MockTargetAllocator struct { +type mockTargetAllocator struct { mu sync.Mutex // mu protects the fields below. endpoints map[string][]mockTargetAllocatorResponse accessIndex map[string]*atomic.Int32 @@ -78,7 +78,7 @@ type expectedTestResult struct { jobMap map[string]expectedTestResultJobMap } -func (mta *MockTargetAllocator) ServeHTTP(rw http.ResponseWriter, req *http.Request) { +func (mta *mockTargetAllocator) ServeHTTP(rw http.ResponseWriter, req *http.Request) { mta.mu.Lock() defer mta.mu.Unlock() @@ -105,11 +105,11 @@ func (mta *MockTargetAllocator) ServeHTTP(rw http.ResponseWriter, req *http.Requ } } -func (mta *MockTargetAllocator) Start() { +func (mta *mockTargetAllocator) Start() { mta.srv.Start() } -func (mta *MockTargetAllocator) Stop() { +func (mta *mockTargetAllocator) Stop() { mta.srv.Close() } @@ -136,13 +136,13 @@ func transformTAResponseMap(rawResponses map[string][]mockTargetAllocatorRespons return responsesMap, responsesIndexMap, nil } -func setupMockTargetAllocator(responses Responses) (*MockTargetAllocator, error) { +func setupMockTargetAllocator(responses Responses) (*mockTargetAllocator, error) { responsesMap, responsesIndexMap, err := transformTAResponseMap(responses.responses) if err != nil { return nil, err } - mockTA := &MockTargetAllocator{ + mockTA := &mockTargetAllocator{ endpoints: responsesMap, accessIndex: responsesIndexMap, waitIndex: responses.releaserMap, diff --git a/otelcollector/prometheusreceiver/targetallocator/testdata/config.yaml b/otelcollector/prometheusreceiver/internal/targetallocator/testdata/config.yaml similarity index 100% rename from otelcollector/prometheusreceiver/targetallocator/testdata/config.yaml rename to otelcollector/prometheusreceiver/internal/targetallocator/testdata/config.yaml diff --git a/otelcollector/prometheusreceiver/targetallocator/testdata/dummy-tls-cert-file b/otelcollector/prometheusreceiver/internal/targetallocator/testdata/dummy-tls-cert-file similarity index 100% rename from otelcollector/prometheusreceiver/targetallocator/testdata/dummy-tls-cert-file rename to otelcollector/prometheusreceiver/internal/targetallocator/testdata/dummy-tls-cert-file diff --git a/otelcollector/prometheusreceiver/targetallocator/testdata/dummy-tls-key-file b/otelcollector/prometheusreceiver/internal/targetallocator/testdata/dummy-tls-key-file similarity index 100% rename from otelcollector/prometheusreceiver/targetallocator/testdata/dummy-tls-key-file rename to otelcollector/prometheusreceiver/internal/targetallocator/testdata/dummy-tls-key-file diff --git a/otelcollector/prometheusreceiver/internal/transaction.go b/otelcollector/prometheusreceiver/internal/transaction.go index 768e448dd..dc50cf226 100644 --- a/otelcollector/prometheusreceiver/internal/transaction.go +++ b/otelcollector/prometheusreceiver/internal/transaction.go @@ -32,7 +32,7 @@ import ( var removeStartTimeAdjustment = featuregate.GlobalRegistry().MustRegister( "receiver.prometheusreceiver.RemoveStartTimeAdjustment", - featuregate.StageAlpha, + featuregate.StageBeta, featuregate.WithRegisterDescription("When enabled, the Prometheus receiver will"+ " leave the start time unset. Use the new metricstarttime processor instead."), ) @@ -55,7 +55,9 @@ type transaction struct { isNew bool trimSuffixes bool enableNativeHistograms bool + useMetadata bool addingNativeHistogram bool // true if the last sample was a native histogram. + addingNHCB bool // true if the last sample was a NHCB. ctx context.Context families map[resourceKey]map[scopeID]map[metricFamilyKey]*metricFamily mc scrape.MetricMetadataStore @@ -88,6 +90,7 @@ func newTransaction( obsrecv *receiverhelper.ObsReport, trimSuffixes bool, enableNativeHistograms bool, + useMetadata bool, ) *transaction { return &transaction{ ctx: ctx, @@ -95,6 +98,7 @@ func newTransaction( isNew: true, trimSuffixes: trimSuffixes, enableNativeHistograms: enableNativeHistograms, + useMetadata: useMetadata, sink: sink, metricAdjuster: metricAdjuster, externalLabels: externalLabels, @@ -110,6 +114,7 @@ func newTransaction( // Append always returns 0 to disable label caching. func (t *transaction) Append(_ storage.SeriesRef, ls labels.Labels, atMs int64, val float64) (storage.SeriesRef, error) { t.addingNativeHistogram = false + t.addingNHCB = false select { case <-t.ctx.Done(): @@ -185,9 +190,14 @@ func (t *transaction) Append(_ storage.SeriesRef, ls labels.Labels, atMs int64, err = curMF.addSeries(seriesRef, metricName, ls, atMs, val) if err != nil { t.logger.Warn("failed to add datapoint", zap.Error(err), zap.String("metric_name", metricName), zap.Any("labels", ls)) + // never return errors, as that fails the while scrape + // return ref==0 indicating that the series was not added + return 0, nil } - return 0, nil // never return errors, as that fails the whole scrape + // never return errors, as that fails the whole scrape + // return ref==1 indicating that the series was added and needs staleness tracking + return 1, nil } // detectAndStoreNativeHistogramStaleness returns true if it detects @@ -211,6 +221,7 @@ func (t *transaction) detectAndStoreNativeHistogramStaleness(atMs int64, key *re } // Store the staleness marker as a native histogram. t.addingNativeHistogram = true + t.addingNHCB = false curMF := t.getOrCreateMetricFamily(*key, scope, metricName) seriesRef := t.getSeriesRef(ls, curMF.mtype) @@ -243,10 +254,7 @@ func (t *transaction) getOrCreateMetricFamily(key resourceKey, scope scopeID, mn fnKey := metricFamilyKey{isExponentialHistogram: mfKey.isExponentialHistogram, name: fn} mf, ok := t.families[key][scope][fnKey] if !ok || !mf.includesMetric(mn) { - curMf = newMetricFamily(mn, t.mc, t.logger) - if curMf.mtype == pmetric.MetricTypeHistogram && mfKey.isExponentialHistogram { - curMf.mtype = pmetric.MetricTypeExponentialHistogram - } + curMf = newMetricFamily(mn, t.mc, t.logger, t.addingNativeHistogram, t.addingNHCB) t.families[key][scope][metricFamilyKey{isExponentialHistogram: mfKey.isExponentialHistogram, name: curMf.name}] = curMf return curMf } @@ -295,7 +303,14 @@ func (t *transaction) AppendHistogram(_ storage.SeriesRef, ls labels.Labels, atM default: } + var schema int32 + if h != nil { + schema = h.Schema + } else if fh != nil { + schema = fh.Schema + } t.addingNativeHistogram = true + t.addingNHCB = schema == -53 if t.externalLabels.Len() != 0 { b := labels.NewBuilder(ls) @@ -332,21 +347,38 @@ func (t *transaction) AppendHistogram(_ storage.SeriesRef, ls labels.Labels, atM t.logger.Warn("dropping unsupported gauge histogram datapoint", zap.String("metric_name", metricName), zap.Any("labels", ls)) } - err = curMF.addExponentialHistogramSeries(t.getSeriesRef(ls, curMF.mtype), metricName, ls, atMs, h, fh) + if schema == -53 { + err = curMF.addNHCBSeries(t.getSeriesRef(ls, curMF.mtype), metricName, ls, atMs, h, fh) + } else { + err = curMF.addExponentialHistogramSeries(t.getSeriesRef(ls, curMF.mtype), metricName, ls, atMs, h, fh) + } if err != nil { t.logger.Warn("failed to add histogram datapoint", zap.Error(err), zap.String("metric_name", metricName), zap.Any("labels", ls)) + // never return errors, as that fails the while scrape + // return ref==0 indicating that the series was not added + return 0, nil } - return 0, nil // never return errors, as that fails the whole scrape + // never return errors, as that fails the whole scrape + // return ref==1 indicating that the series was added and needs staleness tracking + return 1, nil } func (t *transaction) AppendCTZeroSample(_ storage.SeriesRef, ls labels.Labels, atMs, ctMs int64) (storage.SeriesRef, error) { t.addingNativeHistogram = false + t.addingNHCB = false return t.setCreationTimestamp(ls, atMs, ctMs) } -func (t *transaction) AppendHistogramCTZeroSample(_ storage.SeriesRef, ls labels.Labels, atMs, ctMs int64, _ *histogram.Histogram, _ *histogram.FloatHistogram) (storage.SeriesRef, error) { +func (t *transaction) AppendHistogramCTZeroSample(_ storage.SeriesRef, ls labels.Labels, atMs, ctMs int64, h *histogram.Histogram, fh *histogram.FloatHistogram) (storage.SeriesRef, error) { + var schema int32 + if h != nil { + schema = h.Schema + } else if fh != nil { + schema = fh.Schema + } t.addingNativeHistogram = true + t.addingNHCB = schema == -53 return t.setCreationTimestamp(ls, atMs, ctMs) } @@ -488,9 +520,13 @@ func (t *transaction) initTransaction(lbs labels.Labels) (*resourceKey, error) { if !ok { return nil, errors.New("unable to find target in context") } - t.mc, ok = scrape.MetricMetadataStoreFromContext(t.ctx) - if !ok { - return nil, errors.New("unable to find MetricMetadataStore in context") + if t.useMetadata { + t.mc, ok = scrape.MetricMetadataStoreFromContext(t.ctx) + if !ok { + return nil, errors.New("unable to find MetricMetadataStore in context") + } + } else { + t.mc = &emptyMetadataStore{} } rKey, err := t.getJobAndInstance(lbs) @@ -577,6 +613,7 @@ func (*transaction) UpdateMetadata(_ storage.SeriesRef, _ labels.Labels, _ metad func (t *transaction) AddTargetInfo(key resourceKey, ls labels.Labels) { t.addingNativeHistogram = false + t.addingNHCB = false if resource, ok := t.nodeResources[key]; ok { attrs := resource.Attributes() ls.Range(func(lbl labels.Label) { @@ -590,6 +627,7 @@ func (t *transaction) AddTargetInfo(key resourceKey, ls labels.Labels) { func (t *transaction) addScopeInfo(key resourceKey, ls labels.Labels) { t.addingNativeHistogram = false + t.addingNHCB = false attrs := pcommon.NewMap() scope := scopeID{} ls.Range(func(lbl labels.Label) { diff --git a/otelcollector/prometheusreceiver/internal/transaction_bench_test.go b/otelcollector/prometheusreceiver/internal/transaction_bench_test.go new file mode 100644 index 000000000..686893a4b --- /dev/null +++ b/otelcollector/prometheusreceiver/internal/transaction_bench_test.go @@ -0,0 +1,301 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package internal + +import ( + "context" + "fmt" + "testing" + + "github.com/prometheus/common/model" + "github.com/prometheus/prometheus/config" + "github.com/prometheus/prometheus/model/histogram" + "github.com/prometheus/prometheus/model/labels" + "github.com/prometheus/prometheus/scrape" + "github.com/prometheus/prometheus/tsdb/tsdbutil" + "github.com/stretchr/testify/assert" + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/consumer/consumertest" + "go.opentelemetry.io/collector/pdata/pmetric" + "go.opentelemetry.io/collector/receiver/receiverhelper" + "go.opentelemetry.io/collector/receiver/receivertest" + + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/metadata" +) + +const ( + numSeries = 10000 +) + +var ( + benchTarget = scrape.NewTarget( + labels.FromMap(map[string]string{ + model.InstanceLabel: "localhost:8080", + model.JobLabel: "benchmark", + }), + &config.ScrapeConfig{}, + map[model.LabelName]model.LabelValue{ + model.AddressLabel: "localhost:8080", + model.SchemeLabel: "http", + }, + nil, + ) + + benchCtx = scrape.ContextWithTarget(context.Background(), benchTarget) +) + +// BenchmarkAppend benchmarks the Append method of the transaction. +// It tests the performance of appending classic metric types (counters, gauges, summaries, histograms). +func BenchmarkAppend(b *testing.B) { + benchmarkAppend(b) +} + +func benchmarkAppend(b *testing.B) { + labelSets := generateLabelSets(numSeries, 50) + timestamp := int64(1234567890) + + b.ResetTimer() + b.ReportAllocs() + + for i := 0; i < b.N; i++ { + b.StopTimer() + tx := newBenchmarkTransaction(b) + b.StartTimer() + + for j, ls := range labelSets { + value := float64(j) + _, err := tx.Append(0, ls, timestamp, value) + assert.NoError(b, err) + } + } +} + +// BenchmarkAppendHistogram benchmarks the AppendHistogram method of the transaction. +// It tests the performance of appending native histogram metrics. +func BenchmarkAppendHistogram(b *testing.B) { + benchmarkAppendHistogram(b) +} + +func benchmarkAppendHistogram(b *testing.B) { + labelSets := generateLabelSets(numSeries, 50) + histograms := generateNativeHistograms(numSeries) + timestamp := int64(1234567890) + + b.ResetTimer() + b.ReportAllocs() + + for i := 0; i < b.N; i++ { + b.StopTimer() + tx := newBenchmarkTransaction(b) + tx.enableNativeHistograms = true + b.StartTimer() + + for j := range labelSets { + _, err := tx.AppendHistogram(0, labelSets[j], timestamp, histograms[j], nil) + assert.NoError(b, err) + } + } +} + +// BenchmarkCommit benchmarks the Commit method which converts accumulated metrics to pmetrics format +// and delivers them to the consumer. This is separate from Append/AppendHistogram to measure the +// conversion and delivery overhead independently. +// Note: The presence of target_info and otel_scope_info metrics affects the performance of the Commit method, +// so they are benchmarked in sub-benchmarks. +func BenchmarkCommit(b *testing.B) { + b.Run("ClassicMetrics", func(b *testing.B) { + b.Run("Baseline", func(b *testing.B) { + benchmarkCommit(b, false, false, false) + }) + + b.Run("WithTargetInfo", func(b *testing.B) { + benchmarkCommit(b, false, true, false) + }) + + b.Run("WithScopeInfo", func(b *testing.B) { + benchmarkCommit(b, false, false, true) + }) + }) + + b.Run("NativeHistogram", func(b *testing.B) { + b.Run("Baseline", func(b *testing.B) { + benchmarkCommit(b, true, false, false) + }) + + b.Run("WithTargetInfo", func(b *testing.B) { + benchmarkCommit(b, true, true, false) + }) + + b.Run("WithScopeInfo", func(b *testing.B) { + benchmarkCommit(b, true, false, true) + }) + }) +} + +func benchmarkCommit(b *testing.B, useNativeHistograms, withTargetInfo, withScopeInfo bool) { + labelSets := generateLabelSets(numSeries, 50) + var histograms []*histogram.Histogram + if useNativeHistograms { + histograms = generateNativeHistograms(numSeries) + } + timestamp := int64(1234567890) + + b.ResetTimer() + b.ReportAllocs() + + for i := 0; i < b.N; i++ { + // Setup: Create transaction and append all data (not timed) + b.StopTimer() + tx := newBenchmarkTransaction(b) + if useNativeHistograms { + tx.enableNativeHistograms = true + } + + if withTargetInfo { + targetInfoLabels := createTargetInfoLabels() + _, _ = tx.Append(0, targetInfoLabels, timestamp, 1) + } + + if withScopeInfo { + scopeInfoLabels := createScopeInfoLabels() + _, _ = tx.Append(0, scopeInfoLabels, timestamp, 1) + } + + if useNativeHistograms { + for j := range labelSets { + _, _ = tx.AppendHistogram(0, labelSets[j], timestamp, histograms[j], nil) + } + } else { + for j, ls := range labelSets { + _, _ = tx.Append(0, ls, timestamp, float64(j)) + } + } + b.StartTimer() + + // Benchmark: Only measure Commit + err := tx.Commit() + assert.NoError(b, err) + } +} + +// newBenchmarkTransaction creates a new transaction configured for benchmarking. +// It uses a no-op consumer and minimal configuration to isolate transaction performance. +func newBenchmarkTransaction(b *testing.B) *transaction { + b.Helper() + + sink := new(consumertest.MetricsSink) + settings := receivertest.NewNopSettings(metadata.Type) + adjuster := &noOpAdjuster{} + obsrecv, err := receiverhelper.NewObsReport(receiverhelper.ObsReportSettings{ + ReceiverID: component.MustNewID("prometheus"), + Transport: "http", + ReceiverCreateSettings: settings, + }) + if err != nil { + b.Fatalf("Failed to create ObsReport: %v", err) + } + + tx := newTransaction( + benchCtx, + adjuster, + sink, + labels.EmptyLabels(), // no external labels + settings, + obsrecv, + false, // trimSuffixes + false, // enableNativeHistograms (not needed for Append benchmark) + false, // useMetadata + ) + + // Set a mock MetricMetadataStore to avoid nil pointer issues + tx.mc = &mockMetadataStore{} + + return tx +} + +// generateLabelSets creates label sets for benchmarking with the specified cardinality. +func generateLabelSets(seriesCount, cardinality int) []labels.Labels { + result := make([]labels.Labels, seriesCount) + + for i := 0; i < seriesCount; i++ { + lbls := labels.NewBuilder(labels.EmptyLabels()) + lbls.Set(model.MetricNameLabel, fmt.Sprintf("metric_%d", i)) + + for j := 0; j < cardinality; j++ { + lbls.Set(fmt.Sprintf("label_%d", j), fmt.Sprintf("value_%d_%d", i, j)) + } + + result[i] = lbls.Labels() + } + + return result +} + +// generateNativeHistograms creates native histogram instances for benchmarking. +// Uses Prometheus's test histogram generator for realistic histogram structures. +func generateNativeHistograms(count int) []*histogram.Histogram { + result := make([]*histogram.Histogram, count) + + for i := 0; i < count; i++ { + // Use tsdbutil.GenerateTestHistogram to create realistic native histograms + // The parameter controls the histogram ID, which varies the bucket counts slightly + result[i] = tsdbutil.GenerateTestHistogram(int64(i)) + } + + return result +} + +// createTargetInfoLabels creates labels for a target_info metric. +// The target_info metric is used to add resource attributes to metrics. +func createTargetInfoLabels() labels.Labels { + return labels.FromMap(map[string]string{ + model.MetricNameLabel: prometheus.TargetInfoMetricName, + model.JobLabel: "benchmark", + model.InstanceLabel: "localhost:8080", + "environment": "test", + "region": "us-west-2", + "cluster": "benchmark-cluster", + }) +} + +// createScopeInfoLabels creates labels for an otel_scope_info metric. +// The otel_scope_info metric is used to add scope-level attributes. +func createScopeInfoLabels() labels.Labels { + return labels.FromMap(map[string]string{ + model.MetricNameLabel: prometheus.ScopeInfoMetricName, + model.JobLabel: "benchmark", + model.InstanceLabel: "localhost:8080", + prometheus.ScopeNameLabelKey: "benchmark.scope", + prometheus.ScopeVersionLabelKey: "1.0.0", + "scope_attribute": "test_value", + }) +} + +// noOpAdjuster is a MetricsAdjuster that doesn't modify metrics. +// This isolates the transaction performance from adjustment overhead. +type noOpAdjuster struct{} + +func (*noOpAdjuster) AdjustMetrics(_ pmetric.Metrics) error { + return nil +} + +// mockMetadataStore is a minimal implementation of scrape.MetricMetadataStore for testing +type mockMetadataStore struct{} + +func (*mockMetadataStore) ListMetadata() []scrape.MetricMetadata { + return nil +} + +func (*mockMetadataStore) GetMetadata(_ string) (scrape.MetricMetadata, bool) { + return scrape.MetricMetadata{}, false +} + +func (*mockMetadataStore) SizeMetadata() int { + return 0 +} + +func (*mockMetadataStore) LengthMetadata() int { + return 0 +} diff --git a/otelcollector/prometheusreceiver/internal/transaction_test.go b/otelcollector/prometheusreceiver/internal/transaction_test.go index 49e42ef48..c6b97e570 100644 --- a/otelcollector/prometheusreceiver/internal/transaction_test.go +++ b/otelcollector/prometheusreceiver/internal/transaction_test.go @@ -68,7 +68,7 @@ func TestTransactionCommitWithoutAdding(t *testing.T) { } func testTransactionCommitWithoutAdding(t *testing.T, enableNativeHistograms bool) { - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) assert.NoError(t, tr.Commit()) } @@ -81,7 +81,7 @@ func TestTransactionRollbackDoesNothing(t *testing.T) { } func testTransactionRollbackDoesNothing(t *testing.T, enableNativeHistograms bool) { - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) assert.NoError(t, tr.Rollback()) } @@ -94,7 +94,7 @@ func TestTransactionUpdateMetadataDoesNothing(t *testing.T) { } func testTransactionUpdateMetadataDoesNothing(t *testing.T, enableNativeHistograms bool) { - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.UpdateMetadata(0, labels.New(), metadata.Metadata{}) assert.NoError(t, err) } @@ -109,7 +109,7 @@ func TestTransactionAppendNoTarget(t *testing.T) { func testTransactionAppendNoTarget(t *testing.T, enableNativeHistograms bool) { badLabels := labels.FromStrings(model.MetricNameLabel, "counter_test") - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, badLabels, time.Now().Unix()*1000, 1.0) assert.Error(t, err) } @@ -127,7 +127,7 @@ func testTransactionAppendNoMetricName(t *testing.T, enableNativeHistograms bool model.InstanceLabel: "localhost:8080", model.JobLabel: "test2", }) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, jobNotFoundLb, time.Now().Unix()*1000, 1.0) assert.ErrorIs(t, err, errMetricNameNotFound) assert.ErrorIs(t, tr.Commit(), errNoDataToBuild) @@ -142,7 +142,7 @@ func TestTransactionAppendEmptyMetricName(t *testing.T) { } func testTransactionAppendEmptyMetricName(t *testing.T, enableNativeHistograms bool) { - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, consumertest.NewNop(), labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, labels.FromMap(map[string]string{ model.InstanceLabel: "localhost:8080", model.JobLabel: "test2", @@ -161,7 +161,7 @@ func TestTransactionAppendResource(t *testing.T) { func testTransactionAppendResource(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, labels.FromMap(map[string]string{ model.InstanceLabel: "localhost:8080", model.JobLabel: "test", @@ -192,7 +192,7 @@ func TestTransactionAppendMultipleResources(t *testing.T) { func testTransactionAppendMultipleResources(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, labels.FromMap(map[string]string{ model.InstanceLabel: "localhost:8080", model.JobLabel: "test-1", @@ -243,7 +243,7 @@ func TestReceiverVersionAndNameAreAttached(t *testing.T) { func testReceiverVersionAndNameAreAttached(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, labels.FromMap(map[string]string{ model.InstanceLabel: "localhost:8080", model.JobLabel: "test", @@ -266,6 +266,7 @@ func testReceiverVersionAndNameAreAttached(t *testing.T, enableNativeHistograms func TestTransactionCommitErrorWhenAdjusterError(t *testing.T) { for _, enableNativeHistograms := range []bool{true, false} { t.Run(fmt.Sprintf("enableNativeHistograms=%v", enableNativeHistograms), func(t *testing.T) { + defer testutil.SetFeatureGateForTest(t, removeStartTimeAdjustment, false)() testTransactionCommitErrorWhenAdjusterError(t, enableNativeHistograms) }) } @@ -279,7 +280,7 @@ func testTransactionCommitErrorWhenAdjusterError(t *testing.T, enableNativeHisto }) sink := new(consumertest.MetricsSink) adjusterErr := errors.New("adjuster error") - tr := newTransaction(scrapeCtx, &errorAdjuster{err: adjusterErr}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &errorAdjuster{err: adjusterErr}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, goodLabels, time.Now().Unix()*1000, 1.0) assert.NoError(t, err) assert.ErrorIs(t, tr.Commit(), adjusterErr) @@ -296,7 +297,7 @@ func TestTransactionAppendDuplicateLabels(t *testing.T) { func testTransactionAppendDuplicateLabels(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) dupLabels := labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -333,6 +334,7 @@ func testTransactionAppendHistogramNoLe(t *testing.T, enableNativeHistograms boo nopObsRecv(t), false, enableNativeHistograms, + true, ) goodLabels := labels.FromStrings( @@ -372,6 +374,7 @@ func testTransactionAppendSummaryNoQuantile(t *testing.T, enableNativeHistograms nopObsRecv(t), false, enableNativeHistograms, + true, ) goodLabels := labels.FromStrings( @@ -411,6 +414,7 @@ func testTransactionAppendValidAndInvalid(t *testing.T, enableNativeHistograms b nopObsRecv(t), false, enableNativeHistograms, + true, ) // a valid counter @@ -471,7 +475,7 @@ func testTransactionAppendWithEmptyLabelArrayFallbackToTargetLabels(t *testing.T scrape.ContextWithTarget(t.Context(), scrapeTarget), testMetadataStore(testMetadata)) - tr := newTransaction(ctx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(ctx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.Append(0, labels.FromMap(map[string]string{ model.MetricNameLabel: "counter_test", @@ -489,7 +493,7 @@ func TestAppendExemplarWithNoMetricName(t *testing.T) { func testAppendExemplarWithNoMetricName(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) labels := labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -510,7 +514,7 @@ func TestAppendExemplarWithEmptyMetricName(t *testing.T) { func testAppendExemplarWithEmptyMetricName(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) labels := labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -531,7 +535,7 @@ func TestAppendExemplarWithDuplicateLabels(t *testing.T) { func testAppendExemplarWithDuplicateLabels(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) labels := labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -554,7 +558,7 @@ func TestAppendExemplarWithoutAddingMetric(t *testing.T) { func testAppendExemplarWithoutAddingMetric(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) labels := labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -576,7 +580,7 @@ func TestAppendExemplarWithNoLabels(t *testing.T) { func testAppendExemplarWithNoLabels(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.AppendExemplar(0, labels.EmptyLabels(), exemplar.Exemplar{Value: 0}) assert.Equal(t, errNoJobInstance, err) @@ -592,7 +596,7 @@ func TestAppendExemplarWithEmptyLabelArray(t *testing.T) { func testAppendExemplarWithEmptyLabelArray(t *testing.T, enableNativeHistograms bool) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) _, err := tr.AppendExemplar(0, labels.FromStrings(), exemplar.Exemplar{Value: 0}) assert.Equal(t, errNoJobInstance, err) @@ -600,7 +604,7 @@ func testAppendExemplarWithEmptyLabelArray(t *testing.T, enableNativeHistograms func TestAppendCTZeroSampleNoLabels(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false, true) _, err := tr.AppendCTZeroSample(0, labels.FromStrings(), 0, 100) assert.ErrorContains(t, err, "job or instance cannot be found from labels") @@ -608,7 +612,7 @@ func TestAppendCTZeroSampleNoLabels(t *testing.T) { func TestAppendHistogramCTZeroSampleNoLabels(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false, true) _, err := tr.AppendHistogramCTZeroSample(0, labels.FromStrings(), 0, 100, nil, nil) assert.ErrorContains(t, err, "job or instance cannot be found from labels") @@ -616,7 +620,7 @@ func TestAppendHistogramCTZeroSampleNoLabels(t *testing.T) { func TestAppendCTZeroSampleDuplicateLabels(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false, true) _, err := tr.AppendCTZeroSample(0, labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -630,7 +634,7 @@ func TestAppendCTZeroSampleDuplicateLabels(t *testing.T) { func TestAppendHistogramCTZeroSampleDuplicateLabels(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false, true) _, err := tr.AppendHistogramCTZeroSample(0, labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -644,7 +648,7 @@ func TestAppendHistogramCTZeroSampleDuplicateLabels(t *testing.T) { func TestAppendCTZeroSampleEmptyMetricName(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false, true) _, err := tr.AppendCTZeroSample(0, labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -656,7 +660,7 @@ func TestAppendCTZeroSampleEmptyMetricName(t *testing.T) { func TestAppendHistogramCTZeroSampleEmptyMetricName(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false, true) _, err := tr.AppendHistogramCTZeroSample(0, labels.FromStrings( model.InstanceLabel, "0.0.0.0:8855", @@ -668,7 +672,7 @@ func TestAppendHistogramCTZeroSampleEmptyMetricName(t *testing.T) { func TestAppendCTZeroSample(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &nopAdjuster{}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false) + tr := newTransaction(scrapeCtx, &nopAdjuster{}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, false, true) var atMs, ctMs int64 atMs, ctMs = 200, 100 @@ -702,7 +706,7 @@ func TestAppendCTZeroSample(t *testing.T) { func TestAppendHistogramCTZeroSample(t *testing.T) { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &nopAdjuster{}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, true) + tr := newTransaction(scrapeCtx, &nopAdjuster{}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, true, true) var atMs, ctMs int64 atMs, ctMs = 200, 100 @@ -1326,668 +1330,602 @@ func TestMetricBuilderUntyped(t *testing.T) { } func TestMetricBuilderHistogram(t *testing.T) { - tests := []buildTestData{ - { - name: "single item", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), - createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + for _, disableMetricAdjustment := range []bool{true, false} { + tests := []buildTestData{ + { + name: "single item", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(10) - pt0.SetSum(99) - pt0.ExplicitBounds().FromRaw([]float64{10, 20}) - pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(10) + pt0.SetSum(99) + pt0.ExplicitBounds().FromRaw([]float64{10, 20}) + pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - name: "single item with exemplars", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint( - "hist_test_bucket", - 1, - []exemplar.Exemplar{ - { - Value: 1, - Ts: 1663113420863, - Labels: labels.New([]labels.Label{{Name: model.MetricNameLabel, Value: "counter_test"}, {Name: model.JobLabel, Value: "job"}, {Name: model.InstanceLabel, Value: "instance"}, {Name: "foo", Value: "bar"}}...), - }, - { - Value: 1, - Ts: 1663113420863, - Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: ""}, {Name: "span_id", Value: ""}, {Name: "le", Value: "20"}}...), - }, - { - Value: 1, - Ts: 1663113420863, - Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: "10a47365b8aa04e08291fab9deca84db6170"}, {Name: "traceid", Value: "e3688e1aa2961786"}, {Name: "span_id", Value: "719cee4a669fd7d109ff"}}...), - }, - { - Value: 1, - Ts: 1663113420863, - Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: "174137cab66dc880"}, {Name: "span_id", Value: "dfa4597a9d"}}...), - }, - { - Value: 1, - Ts: 1663113420863, - Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: "174137cab66dc88"}, {Name: "span_id", Value: "dfa4597a9"}}...), + { + name: "single item with exemplars", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint( + "hist_test_bucket", + 1, + []exemplar.Exemplar{ + { + Value: 1, + Ts: 1663113420863, + Labels: labels.New([]labels.Label{{Name: model.MetricNameLabel, Value: "counter_test"}, {Name: model.JobLabel, Value: "job"}, {Name: model.InstanceLabel, Value: "instance"}, {Name: "foo", Value: "bar"}}...), + }, + { + Value: 1, + Ts: 1663113420863, + Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: ""}, {Name: "span_id", Value: ""}, {Name: "le", Value: "20"}}...), + }, + { + Value: 1, + Ts: 1663113420863, + Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: "10a47365b8aa04e08291fab9deca84db6170"}, {Name: "traceid", Value: "e3688e1aa2961786"}, {Name: "span_id", Value: "719cee4a669fd7d109ff"}}...), + }, + { + Value: 1, + Ts: 1663113420863, + Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: "174137cab66dc880"}, {Name: "span_id", Value: "dfa4597a9d"}}...), + }, + { + Value: 1, + Ts: 1663113420863, + Labels: labels.New([]labels.Label{{Name: "foo", Value: "bar"}, {Name: "trace_id", Value: "174137cab66dc88"}, {Name: "span_id", Value: "dfa4597a9"}}...), + }, }, - }, - "foo", "bar", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), - createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + "foo", "bar", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(10) - pt0.SetSum(99) - pt0.ExplicitBounds().FromRaw([]float64{10, 20}) - pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(10) + pt0.SetSum(99) + pt0.ExplicitBounds().FromRaw([]float64{10, 20}) + pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - e0 := pt0.Exemplars().AppendEmpty() - e0.SetTimestamp(timestampFromMs(1663113420863)) - e0.SetDoubleValue(1) - e0.FilteredAttributes().PutStr(model.MetricNameLabel, "counter_test") - e0.FilteredAttributes().PutStr("foo", "bar") - e0.FilteredAttributes().PutStr(model.InstanceLabel, "instance") - e0.FilteredAttributes().PutStr(model.JobLabel, "job") + e0 := pt0.Exemplars().AppendEmpty() + e0.SetTimestamp(timestampFromMs(1663113420863)) + e0.SetDoubleValue(1) + e0.FilteredAttributes().PutStr(model.MetricNameLabel, "counter_test") + e0.FilteredAttributes().PutStr("foo", "bar") + e0.FilteredAttributes().PutStr(model.InstanceLabel, "instance") + e0.FilteredAttributes().PutStr(model.JobLabel, "job") - e1 := pt0.Exemplars().AppendEmpty() - e1.SetTimestamp(timestampFromMs(1663113420863)) - e1.SetDoubleValue(1) - e1.FilteredAttributes().PutStr("foo", "bar") - e1.FilteredAttributes().PutStr("le", "20") + e1 := pt0.Exemplars().AppendEmpty() + e1.SetTimestamp(timestampFromMs(1663113420863)) + e1.SetDoubleValue(1) + e1.FilteredAttributes().PutStr("foo", "bar") + e1.FilteredAttributes().PutStr("le", "20") - e2 := pt0.Exemplars().AppendEmpty() - e2.SetTimestamp(timestampFromMs(1663113420863)) - e2.SetDoubleValue(1) - e2.FilteredAttributes().PutStr("foo", "bar") - e2.FilteredAttributes().PutStr("traceid", "e3688e1aa2961786") - e2.SetTraceID([16]byte{0x10, 0xa4, 0x73, 0x65, 0xb8, 0xaa, 0x04, 0xe0, 0x82, 0x91, 0xfa, 0xb9, 0xde, 0xca, 0x84, 0xdb}) - e2.SetSpanID([8]byte{0x71, 0x9c, 0xee, 0x4a, 0x66, 0x9f, 0xd7, 0xd1}) + e2 := pt0.Exemplars().AppendEmpty() + e2.SetTimestamp(timestampFromMs(1663113420863)) + e2.SetDoubleValue(1) + e2.FilteredAttributes().PutStr("foo", "bar") + e2.FilteredAttributes().PutStr("traceid", "e3688e1aa2961786") + e2.SetTraceID([16]byte{0x10, 0xa4, 0x73, 0x65, 0xb8, 0xaa, 0x04, 0xe0, 0x82, 0x91, 0xfa, 0xb9, 0xde, 0xca, 0x84, 0xdb}) + e2.SetSpanID([8]byte{0x71, 0x9c, 0xee, 0x4a, 0x66, 0x9f, 0xd7, 0xd1}) - e3 := pt0.Exemplars().AppendEmpty() - e3.SetTimestamp(timestampFromMs(1663113420863)) - e3.SetDoubleValue(1) - e3.FilteredAttributes().PutStr("foo", "bar") - e3.SetTraceID([16]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x41, 0x37, 0xca, 0xb6, 0x6d, 0xc8, 0x80}) - e3.SetSpanID([8]byte{0x00, 0x00, 0x00, 0xdf, 0xa4, 0x59, 0x7a, 0x9d}) + e3 := pt0.Exemplars().AppendEmpty() + e3.SetTimestamp(timestampFromMs(1663113420863)) + e3.SetDoubleValue(1) + e3.FilteredAttributes().PutStr("foo", "bar") + e3.SetTraceID([16]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x41, 0x37, 0xca, 0xb6, 0x6d, 0xc8, 0x80}) + e3.SetSpanID([8]byte{0x00, 0x00, 0x00, 0xdf, 0xa4, 0x59, 0x7a, 0x9d}) - e4 := pt0.Exemplars().AppendEmpty() - e4.SetTimestamp(timestampFromMs(1663113420863)) - e4.SetDoubleValue(1) - e4.FilteredAttributes().PutStr("foo", "bar") - e4.FilteredAttributes().PutStr("span_id", "dfa4597a9") - e4.FilteredAttributes().PutStr("trace_id", "174137cab66dc88") + e4 := pt0.Exemplars().AppendEmpty() + e4.SetTimestamp(timestampFromMs(1663113420863)) + e4.SetDoubleValue(1) + e4.FilteredAttributes().PutStr("foo", "bar") + e4.FilteredAttributes().PutStr("span_id", "dfa4597a9") + e4.FilteredAttributes().PutStr("trace_id", "174137cab66dc88") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - name: "multi-groups", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), - createDataPoint("hist_test_count", 10, nil, "foo", "bar"), - createDataPoint("hist_test_bucket", 1, nil, "key2", "v2", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "key2", "v2", "le", "20"), - createDataPoint("hist_test_bucket", 3, nil, "key2", "v2", "le", "+inf"), - createDataPoint("hist_test_sum", 50, nil, "key2", "v2"), - createDataPoint("hist_test_count", 3, nil, "key2", "v2"), + { + name: "multi-groups", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + createDataPoint("hist_test_bucket", 1, nil, "key2", "v2", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "key2", "v2", "le", "20"), + createDataPoint("hist_test_bucket", 3, nil, "key2", "v2", "le", "+inf"), + createDataPoint("hist_test_sum", 50, nil, "key2", "v2"), + createDataPoint("hist_test_count", 3, nil, "key2", "v2"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(10) - pt0.SetSum(99) - pt0.ExplicitBounds().FromRaw([]float64{10, 20}) - pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(10) + pt0.SetSum(99) + pt0.ExplicitBounds().FromRaw([]float64{10, 20}) + pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - pt1 := hist0.DataPoints().AppendEmpty() - pt1.SetCount(3) - pt1.SetSum(50) - pt1.ExplicitBounds().FromRaw([]float64{10, 20}) - pt1.BucketCounts().FromRaw([]uint64{1, 1, 1}) - pt1.SetTimestamp(tsNanos) - pt1.SetStartTimestamp(startTimestamp) - pt1.Attributes().PutStr("key2", "v2") + pt1 := hist0.DataPoints().AppendEmpty() + pt1.SetCount(3) + pt1.SetSum(50) + pt1.ExplicitBounds().FromRaw([]float64{10, 20}) + pt1.BucketCounts().FromRaw([]uint64{1, 1, 1}) + pt1.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt1.SetStartTimestamp(startTimestamp) + } + pt1.Attributes().PutStr("key2", "v2") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - name: "multi-groups-and-families", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), - createDataPoint("hist_test_count", 10, nil, "foo", "bar"), - createDataPoint("hist_test_bucket", 1, nil, "key2", "v2", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "key2", "v2", "le", "20"), - createDataPoint("hist_test_bucket", 3, nil, "key2", "v2", "le", "+inf"), - createDataPoint("hist_test_sum", 50, nil, "key2", "v2"), - createDataPoint("hist_test_count", 3, nil, "key2", "v2"), - createDataPoint("hist_test2_bucket", 1, nil, "foo", "bar", "le", "10"), - createDataPoint("hist_test2_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test2_bucket", 3, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test2_sum", 50, nil, "foo", "bar"), - createDataPoint("hist_test2_count", 3, nil, "foo", "bar"), + { + name: "multi-groups-and-families", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + createDataPoint("hist_test_bucket", 1, nil, "key2", "v2", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "key2", "v2", "le", "20"), + createDataPoint("hist_test_bucket", 3, nil, "key2", "v2", "le", "+inf"), + createDataPoint("hist_test_sum", 50, nil, "key2", "v2"), + createDataPoint("hist_test_count", 3, nil, "key2", "v2"), + createDataPoint("hist_test2_bucket", 1, nil, "foo", "bar", "le", "10"), + createDataPoint("hist_test2_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test2_bucket", 3, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test2_sum", 50, nil, "foo", "bar"), + createDataPoint("hist_test2_count", 3, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(10) - pt0.SetSum(99) - pt0.ExplicitBounds().FromRaw([]float64{10, 20}) - pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(10) + pt0.SetSum(99) + pt0.ExplicitBounds().FromRaw([]float64{10, 20}) + pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - pt1 := hist0.DataPoints().AppendEmpty() - pt1.SetCount(3) - pt1.SetSum(50) - pt1.ExplicitBounds().FromRaw([]float64{10, 20}) - pt1.BucketCounts().FromRaw([]uint64{1, 1, 1}) - pt1.SetTimestamp(tsNanos) - pt1.SetStartTimestamp(startTimestamp) - pt1.Attributes().PutStr("key2", "v2") + pt1 := hist0.DataPoints().AppendEmpty() + pt1.SetCount(3) + pt1.SetSum(50) + pt1.ExplicitBounds().FromRaw([]float64{10, 20}) + pt1.BucketCounts().FromRaw([]uint64{1, 1, 1}) + pt1.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt1.SetStartTimestamp(startTimestamp) + } + pt1.Attributes().PutStr("key2", "v2") - m1 := mL0.AppendEmpty() - m1.SetName("hist_test2") - m1.Metadata().PutStr("prometheus.type", "histogram") - hist1 := m1.SetEmptyHistogram() - hist1.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt2 := hist1.DataPoints().AppendEmpty() - pt2.SetCount(3) - pt2.SetSum(50) - pt2.ExplicitBounds().FromRaw([]float64{10, 20}) - pt2.BucketCounts().FromRaw([]uint64{1, 1, 1}) - pt2.SetTimestamp(tsNanos) - pt2.SetStartTimestamp(startTimestamp) - pt2.Attributes().PutStr("foo", "bar") + m1 := mL0.AppendEmpty() + m1.SetName("hist_test2") + m1.Metadata().PutStr("prometheus.type", "histogram") + hist1 := m1.SetEmptyHistogram() + hist1.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt2 := hist1.DataPoints().AppendEmpty() + pt2.SetCount(3) + pt2.SetSum(50) + pt2.ExplicitBounds().FromRaw([]float64{10, 20}) + pt2.BucketCounts().FromRaw([]uint64{1, 1, 1}) + pt2.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt2.SetStartTimestamp(startTimestamp) + } + pt2.Attributes().PutStr("foo", "bar") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - name: "unordered-buckets", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), - createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + { + name: "unordered-buckets", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 10, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(10) - pt0.SetSum(99) - pt0.ExplicitBounds().FromRaw([]float64{10, 20}) - pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(10) + pt0.SetSum(99) + pt0.ExplicitBounds().FromRaw([]float64{10, 20}) + pt0.BucketCounts().FromRaw([]uint64{1, 1, 8}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - // this won't likely happen in real env, as prometheus wont generate histogram with less than 3 buckets - name: "only-one-bucket", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_count", 3, nil, "foo", "bar"), - createDataPoint("hist_test_sum", 100, nil, "foo", "bar"), + { + // this won't likely happen in real env, as prometheus wont generate histogram with less than 3 buckets + name: "only-one-bucket", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_count", 3, nil, "foo", "bar"), + createDataPoint("hist_test_sum", 100, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(3) - pt0.SetSum(100) - pt0.BucketCounts().FromRaw([]uint64{3}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(3) + pt0.SetSum(100) + pt0.BucketCounts().FromRaw([]uint64{3}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - // this won't likely happen in real env, as prometheus wont generate histogram with less than 3 buckets - name: "only-one-bucket-noninf", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_count", 3, nil, "foo", "bar"), - createDataPoint("hist_test_sum", 100, nil, "foo", "bar"), + { + // this won't likely happen in real env, as prometheus wont generate histogram with less than 3 buckets + name: "only-one-bucket-noninf", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_count", 3, nil, "foo", "bar"), + createDataPoint("hist_test_sum", 100, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(3) - pt0.SetSum(100) - pt0.BucketCounts().FromRaw([]uint64{3, 0}) - pt0.ExplicitBounds().FromRaw([]float64{20}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(3) + pt0.SetSum(100) + pt0.BucketCounts().FromRaw([]uint64{3, 0}) + pt0.ExplicitBounds().FromRaw([]float64{20}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - name: "no-sum", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_count", 3, nil, "foo", "bar"), + { + name: "no-sum", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_count", 3, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(3) - pt0.ExplicitBounds().FromRaw([]float64{10, 20}) - pt0.BucketCounts().FromRaw([]uint64{1, 1, 1}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(3) + pt0.ExplicitBounds().FromRaw([]float64{10, 20}) + pt0.BucketCounts().FromRaw([]uint64{1, 1, 1}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - name: "corrupted-no-buckets", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), - createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + { + name: "corrupted-no-buckets", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + createDataPoint("hist_test_count", 10, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - hist0 := m0.SetEmptyHistogram() - hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := hist0.DataPoints().AppendEmpty() - pt0.SetCount(10) - pt0.SetSum(99) - pt0.BucketCounts().FromRaw([]uint64{10}) - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.Attributes().PutStr("foo", "bar") + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + hist0 := m0.SetEmptyHistogram() + hist0.SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := hist0.DataPoints().AppendEmpty() + pt0.SetCount(10) + pt0.SetSum(99) + pt0.BucketCounts().FromRaw([]uint64{10}) + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.Attributes().PutStr("foo", "bar") - return []pmetric.Metrics{md0} + return []pmetric.Metrics{md0} + }, }, - }, - { - name: "corrupted-no-count", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), - createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), - createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "+inf"), - createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + { + name: "corrupted-no-count", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("hist_test_bucket", 1, nil, "foo", "bar", "le", "10"), + createDataPoint("hist_test_bucket", 2, nil, "foo", "bar", "le", "20"), + createDataPoint("hist_test_bucket", 3, nil, "foo", "bar", "le", "+inf"), + createDataPoint("hist_test_sum", 99, nil, "foo", "bar"), + }, }, }, + wants: func() []pmetric.Metrics { + return []pmetric.Metrics{pmetric.NewMetrics()} + }, }, - wants: func() []pmetric.Metrics { - return []pmetric.Metrics{pmetric.NewMetrics()} - }, - }, - } + } - for _, tt := range tests { - for _, enableNativeHistograms := range []bool{true, false} { - // None of the histograms above have native histogram versions, so enabling native histograms has no effect. - t.Run(fmt.Sprintf("%s/enableNativeHistograms=%v", tt.name, enableNativeHistograms), func(t *testing.T) { - tt.run(t, enableNativeHistograms) - }) + for _, tt := range tests { + for _, enableNativeHistograms := range []bool{true, false} { + // None of the histograms above have native histogram versions, so enabling native histograms has no effect. + t.Run(fmt.Sprintf("%s/enableNativeHistograms=%v/removeStartTimeAdjustment=%v", tt.name, enableNativeHistograms, disableMetricAdjustment), func(t *testing.T) { + defer testutil.SetFeatureGateForTest(t, removeStartTimeAdjustment, disableMetricAdjustment)() + tt.run(t, enableNativeHistograms) + }) + } } } } func TestMetricBuilderSummary(t *testing.T) { - tests := []buildTestData{ - { - name: "no-sum-and-count", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), + for _, disableMetricAdjustment := range []bool{true, false} { + tests := []buildTestData{ + { + name: "no-sum-and-count", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - return []pmetric.Metrics{pmetric.NewMetrics()} - }, - }, - { - name: "no-count", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("summary_test", 1, nil, "foo", "bar", "quantile", "0.5"), - createDataPoint("summary_test", 2, nil, "foo", "bar", "quantile", "0.75"), - createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), - createDataPoint("summary_test_sum", 500, nil, "foo", "bar"), - }, + wants: func() []pmetric.Metrics { + return []pmetric.Metrics{pmetric.NewMetrics()} }, }, - wants: func() []pmetric.Metrics { - return []pmetric.Metrics{pmetric.NewMetrics()} - }, - }, - { - name: "no-sum", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("summary_test", 1, nil, "foo", "bar", "quantile", "0.5"), - createDataPoint("summary_test", 2, nil, "foo", "bar", "quantile", "0.75"), - createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), - createDataPoint("summary_test_count", 500, nil, "foo", "bar"), + { + name: "no-count", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("summary_test", 1, nil, "foo", "bar", "quantile", "0.5"), + createDataPoint("summary_test", 2, nil, "foo", "bar", "quantile", "0.75"), + createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), + createDataPoint("summary_test_sum", 500, nil, "foo", "bar"), + }, }, }, - }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("summary_test") - m0.Metadata().PutStr("prometheus.type", "summary") - sum0 := m0.SetEmptySummary() - pt0 := sum0.DataPoints().AppendEmpty() - pt0.SetTimestamp(tsNanos) - pt0.SetStartTimestamp(startTimestamp) - pt0.SetCount(500) - pt0.SetSum(0.0) - pt0.Attributes().PutStr("foo", "bar") - qvL := pt0.QuantileValues() - q50 := qvL.AppendEmpty() - q50.SetQuantile(.50) - q50.SetValue(1.0) - q75 := qvL.AppendEmpty() - q75.SetQuantile(.75) - q75.SetValue(2.0) - q100 := qvL.AppendEmpty() - q100.SetQuantile(1) - q100.SetValue(5.0) - return []pmetric.Metrics{md0} - }, - }, - { - name: "empty-quantiles", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("summary_test_sum", 100, nil, "foo", "bar"), - createDataPoint("summary_test_count", 500, nil, "foo", "bar"), - }, + wants: func() []pmetric.Metrics { + return []pmetric.Metrics{pmetric.NewMetrics()} }, }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("summary_test") - m0.Metadata().PutStr("prometheus.type", "summary") - sum0 := m0.SetEmptySummary() - pt0 := sum0.DataPoints().AppendEmpty() - pt0.SetStartTimestamp(startTimestamp) - pt0.SetTimestamp(tsNanos) - pt0.SetCount(500) - pt0.SetSum(100.0) - pt0.Attributes().PutStr("foo", "bar") - - return []pmetric.Metrics{md0} - }, - }, - { - name: "regular-summary", - inputs: []*testScrapedPage{ - { - pts: []*testDataPoint{ - createDataPoint("summary_test", 1, nil, "foo", "bar", "quantile", "0.5"), - createDataPoint("summary_test", 2, nil, "foo", "bar", "quantile", "0.75"), - createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), - createDataPoint("summary_test_sum", 100, nil, "foo", "bar"), - createDataPoint("summary_test_count", 500, nil, "foo", "bar"), + { + name: "no-sum", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createDataPoint("summary_test", 1, nil, "foo", "bar", "quantile", "0.5"), + createDataPoint("summary_test", 2, nil, "foo", "bar", "quantile", "0.75"), + createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), + createDataPoint("summary_test_count", 500, nil, "foo", "bar"), + }, }, }, + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("summary_test") + m0.Metadata().PutStr("prometheus.type", "summary") + sum0 := m0.SetEmptySummary() + pt0 := sum0.DataPoints().AppendEmpty() + pt0.SetTimestamp(tsNanos) + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.SetCount(500) + pt0.SetSum(0.0) + pt0.Attributes().PutStr("foo", "bar") + qvL := pt0.QuantileValues() + q50 := qvL.AppendEmpty() + q50.SetQuantile(.50) + q50.SetValue(1.0) + q75 := qvL.AppendEmpty() + q75.SetQuantile(.75) + q75.SetValue(2.0) + q100 := qvL.AppendEmpty() + q100.SetQuantile(1) + q100.SetValue(5.0) + return []pmetric.Metrics{md0} + }, }, - wants: func() []pmetric.Metrics { - md0 := pmetric.NewMetrics() - mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() - m0 := mL0.AppendEmpty() - m0.SetName("summary_test") - m0.Metadata().PutStr("prometheus.type", "summary") - sum0 := m0.SetEmptySummary() - pt0 := sum0.DataPoints().AppendEmpty() - pt0.SetStartTimestamp(startTimestamp) - pt0.SetTimestamp(tsNanos) - pt0.SetCount(500) - pt0.SetSum(100.0) - pt0.Attributes().PutStr("foo", "bar") - qvL := pt0.QuantileValues() - q50 := qvL.AppendEmpty() - q50.SetQuantile(.50) - q50.SetValue(1.0) - q75 := qvL.AppendEmpty() - q75.SetQuantile(.75) - q75.SetValue(2.0) - q100 := qvL.AppendEmpty() - q100.SetQuantile(1) - q100.SetValue(5.0) - - return []pmetric.Metrics{md0} - }, - }, - } - - for _, tt := range tests { - for _, enableNativeHistograms := range []bool{false, true} { - t.Run(fmt.Sprintf("%s/enableNativeHistograms=%v", tt.name, enableNativeHistograms), func(t *testing.T) { - tt.run(t, enableNativeHistograms) - }) - } - } -} - -func TestMetricBuilderNativeHistogram(t *testing.T) { - for _, enableNativeHistograms := range []bool{false, true} { - emptyH := &histogram.Histogram{ - Schema: 1, - Count: 0, - Sum: 0, - ZeroThreshold: 0.001, - ZeroCount: 0, - } - h0 := tsdbutil.GenerateTestHistogram(0) - - tests := []buildTestData{ { - name: "empty integer histogram", + name: "empty-quantiles", inputs: []*testScrapedPage{ { pts: []*testDataPoint{ - createHistogramDataPoint("hist_test", emptyH, nil, nil, "foo", "bar"), + createDataPoint("summary_test_sum", 100, nil, "foo", "bar"), + createDataPoint("summary_test_count", 500, nil, "foo", "bar"), }, }, }, wants: func() []pmetric.Metrics { md0 := pmetric.NewMetrics() - if !enableNativeHistograms { - return []pmetric.Metrics{md0} - } mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - m0.SetEmptyExponentialHistogram() - m0.ExponentialHistogram().SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := m0.ExponentialHistogram().DataPoints().AppendEmpty() - pt0.Attributes().PutStr("foo", "bar") - pt0.SetStartTimestamp(startTimestamp) + m0.SetName("summary_test") + m0.Metadata().PutStr("prometheus.type", "summary") + sum0 := m0.SetEmptySummary() + pt0 := sum0.DataPoints().AppendEmpty() + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } pt0.SetTimestamp(tsNanos) - pt0.SetCount(0) - pt0.SetSum(0) - pt0.SetZeroThreshold(0.001) - pt0.SetScale(1) + pt0.SetCount(500) + pt0.SetSum(100.0) + pt0.Attributes().PutStr("foo", "bar") return []pmetric.Metrics{md0} }, }, { - name: "integer histogram", + name: "regular-summary", inputs: []*testScrapedPage{ { pts: []*testDataPoint{ - createHistogramDataPoint("hist_test", h0, nil, nil, "foo", "bar"), + createDataPoint("summary_test", 1, nil, "foo", "bar", "quantile", "0.5"), + createDataPoint("summary_test", 2, nil, "foo", "bar", "quantile", "0.75"), + createDataPoint("summary_test", 5, nil, "foo", "bar", "quantile", "1"), + createDataPoint("summary_test_sum", 100, nil, "foo", "bar"), + createDataPoint("summary_test_count", 500, nil, "foo", "bar"), }, }, }, wants: func() []pmetric.Metrics { md0 := pmetric.NewMetrics() - if !enableNativeHistograms { - return []pmetric.Metrics{md0} - } mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() m0 := mL0.AppendEmpty() - m0.SetName("hist_test") - m0.Metadata().PutStr("prometheus.type", "histogram") - m0.SetEmptyExponentialHistogram() - m0.ExponentialHistogram().SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) - pt0 := m0.ExponentialHistogram().DataPoints().AppendEmpty() - pt0.Attributes().PutStr("foo", "bar") - pt0.SetStartTimestamp(startTimestamp) + m0.SetName("summary_test") + m0.Metadata().PutStr("prometheus.type", "summary") + sum0 := m0.SetEmptySummary() + pt0 := sum0.DataPoints().AppendEmpty() + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } pt0.SetTimestamp(tsNanos) - pt0.SetCount(12) - pt0.SetSum(18.4) - pt0.SetScale(1) - pt0.SetZeroThreshold(0.001) - pt0.SetZeroCount(2) - pt0.Positive().SetOffset(-1) - pt0.Positive().BucketCounts().Append(1) - pt0.Positive().BucketCounts().Append(2) - pt0.Positive().BucketCounts().Append(0) - pt0.Positive().BucketCounts().Append(1) - pt0.Positive().BucketCounts().Append(1) - pt0.Negative().SetOffset(-1) - pt0.Negative().BucketCounts().Append(1) - pt0.Negative().BucketCounts().Append(2) - pt0.Negative().BucketCounts().Append(0) - pt0.Negative().BucketCounts().Append(1) - pt0.Negative().BucketCounts().Append(1) + pt0.SetCount(500) + pt0.SetSum(100.0) + pt0.Attributes().PutStr("foo", "bar") + qvL := pt0.QuantileValues() + q50 := qvL.AppendEmpty() + q50.SetQuantile(.50) + q50.SetValue(1.0) + q75 := qvL.AppendEmpty() + q75.SetQuantile(.75) + q75.SetValue(2.0) + q100 := qvL.AppendEmpty() + q100.SetQuantile(1) + q100.SetValue(5.0) return []pmetric.Metrics{md0} }, @@ -1995,9 +1933,118 @@ func TestMetricBuilderNativeHistogram(t *testing.T) { } for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - tt.run(t, enableNativeHistograms) - }) + for _, enableNativeHistograms := range []bool{false, true} { + t.Run(fmt.Sprintf("%s/enableNativeHistograms=%v/removeStartTimeAdjustment=%v", tt.name, enableNativeHistograms, disableMetricAdjustment), func(t *testing.T) { + defer testutil.SetFeatureGateForTest(t, removeStartTimeAdjustment, disableMetricAdjustment)() + tt.run(t, enableNativeHistograms) + }) + } + } + } +} + +func TestMetricBuilderNativeHistogram(t *testing.T) { + for _, disableMetricAdjustment := range []bool{true, false} { + for _, enableNativeHistograms := range []bool{false, true} { + emptyH := &histogram.Histogram{ + Schema: 1, + Count: 0, + Sum: 0, + ZeroThreshold: 0.001, + ZeroCount: 0, + } + h0 := tsdbutil.GenerateTestHistogram(0) + + tests := []buildTestData{ + { + name: "empty integer histogram", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createHistogramDataPoint("hist_test", emptyH, nil, nil, "foo", "bar"), + }, + }, + }, + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + if !enableNativeHistograms { + return []pmetric.Metrics{md0} + } + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + m0.SetEmptyExponentialHistogram() + m0.ExponentialHistogram().SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := m0.ExponentialHistogram().DataPoints().AppendEmpty() + pt0.Attributes().PutStr("foo", "bar") + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.SetTimestamp(tsNanos) + pt0.SetCount(0) + pt0.SetSum(0) + pt0.SetZeroThreshold(0.001) + pt0.SetScale(1) + + return []pmetric.Metrics{md0} + }, + }, + { + name: "integer histogram", + inputs: []*testScrapedPage{ + { + pts: []*testDataPoint{ + createHistogramDataPoint("hist_test", h0, nil, nil, "foo", "bar"), + }, + }, + }, + wants: func() []pmetric.Metrics { + md0 := pmetric.NewMetrics() + if !enableNativeHistograms { + return []pmetric.Metrics{md0} + } + mL0 := md0.ResourceMetrics().AppendEmpty().ScopeMetrics().AppendEmpty().Metrics() + m0 := mL0.AppendEmpty() + m0.SetName("hist_test") + m0.Metadata().PutStr("prometheus.type", "histogram") + m0.SetEmptyExponentialHistogram() + m0.ExponentialHistogram().SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + pt0 := m0.ExponentialHistogram().DataPoints().AppendEmpty() + pt0.Attributes().PutStr("foo", "bar") + if !disableMetricAdjustment { + pt0.SetStartTimestamp(startTimestamp) + } + pt0.SetTimestamp(tsNanos) + pt0.SetCount(12) + pt0.SetSum(18.4) + pt0.SetScale(1) + pt0.SetZeroThreshold(0.001) + pt0.SetZeroCount(2) + pt0.Positive().SetOffset(-1) + pt0.Positive().BucketCounts().Append(1) + pt0.Positive().BucketCounts().Append(2) + pt0.Positive().BucketCounts().Append(0) + pt0.Positive().BucketCounts().Append(1) + pt0.Positive().BucketCounts().Append(1) + pt0.Negative().SetOffset(-1) + pt0.Negative().BucketCounts().Append(1) + pt0.Negative().BucketCounts().Append(2) + pt0.Negative().BucketCounts().Append(0) + pt0.Negative().BucketCounts().Append(1) + pt0.Negative().BucketCounts().Append(1) + + return []pmetric.Metrics{md0} + }, + }, + } + + for _, tt := range tests { + t.Run(fmt.Sprintf("%s/enableNativeHistograms=%v/removeStartTimeAdjustment=%v", tt.name, enableNativeHistograms, disableMetricAdjustment), func(t *testing.T) { + defer testutil.SetFeatureGateForTest(t, removeStartTimeAdjustment, disableMetricAdjustment)() + tt.run(t, enableNativeHistograms) + }) + } } } } @@ -2014,7 +2061,7 @@ func (tt buildTestData) run(t *testing.T, enableNativeHistograms bool) { st := ts for i, page := range tt.inputs { sink := new(consumertest.MetricsSink) - tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms) + tr := newTransaction(scrapeCtx, &startTimeAdjuster{startTime: startTimestamp}, sink, labels.EmptyLabels(), receivertest.NewNopSettings(receivertest.NopType), nopObsRecv(t), false, enableNativeHistograms, true) for _, pt := range page.pts { // set ts for testing pt.t = st @@ -2166,3 +2213,126 @@ func assertEquivalentMetrics(t *testing.T, want, got pmetric.Metrics) { } } } + +func newObs(t *testing.T) *receiverhelper.ObsReport { + obs, err := receiverhelper.NewObsReport(receiverhelper.ObsReportSettings{ + Transport: "http", + ReceiverCreateSettings: receivertest.NewNopSettings(receivertest.NopType), + }) + require.NoError(t, err) + return obs +} + +func TestDetectAndStoreNativeHistogramStaleness_NonHistogramReturnsFalse(t *testing.T) { + tr := newTxn(t, true, true) + // metadata says "gauge" → should not be considered native histogram staleness + tr.mc = newFakeMetadataStore(map[string]scrape.MetricMetadata{ + "foo": {MetricFamily: "foo", Type: model.MetricTypeGauge}, + }) + + rk := resourceKey{job: "job-a", instance: "localhost:1234"} + ok := tr.detectAndStoreNativeHistogramStaleness(time.Now().UnixMilli(), &rk, emptyScopeID, "foo", labels.FromMap(map[string]string{ + string(model.MetricNameLabel): "foo", + })) + require.False(t, ok, "expected false when metadata type != histogram") +} + +func TestGetOrCreateMetricFamily_DistinctFamiliesForNativeVsClassic(t *testing.T) { + tr := newTxn(t, true, true) + // Provide metadata so normalization doesn't kick in; name is the same family + tr.mc = newFakeMetadataStore(map[string]scrape.MetricMetadata{ + "same_family": {MetricFamily: "same_family", Type: model.MetricTypeHistogram}, + }) + + rk := resourceKey{job: "job-a", instance: "localhost:1234"} + + // First: classic path (addingNativeHistogram=false) + tr.addingNativeHistogram = false + mfClassic := tr.getOrCreateMetricFamily(rk, emptyScopeID, "same_family") + + // Second: native path (addingNativeHistogram=true) + tr.addingNativeHistogram = true + mfNative := tr.getOrCreateMetricFamily(rk, emptyScopeID, "same_family") + + require.NotNil(t, mfClassic) + require.NotNil(t, mfNative) + // Even with the same name, keys include native flag → distinct entries + require.NotEqual(t, mfClassic, mfNative, "expected distinct metric family instances for native vs classic") +} + +func TestGetSeriesRef_IgnoresNotUsefulLabels(t *testing.T) { + // Build two label sets that differ only in labels likely excluded by getSortedNotUsefulLabels (e.g., _otel_* scope labels) + lsA := labels.FromStrings( + string(model.MetricNameLabel), "metric_x", + "env", "prod", + "__name__", "metric_x", // already the metric name label + "otel_scope_name", "scope_a", + ) + lsB := labels.FromStrings( + string(model.MetricNameLabel), "metric_x", + "env", "prod", + "otel_scope_name", "scope_b", // differs only in an excluded label + ) + + var buf []byte + hashA, buf := getSeriesRef(buf, lsA, pmetric.MetricTypeSum) + hashB, _ := getSeriesRef(buf, lsB, pmetric.MetricTypeSum) + + require.Equal(t, hashA, hashB, "series ref should be equal when differing only by excluded labels") +} + +func TestAddTargetInfo_DoesNotCopyJobInstanceOrMetricName(t *testing.T) { + tr := newTxn(t, false, false) + rk := resourceKey{job: "job-a", instance: "localhost:1234"} + // Prime nodeResources + tr.nodeResources[rk] = CreateResource(rk.job, rk.instance, labels.FromStrings(model.SchemeLabel, "http")) + + ls := labels.FromStrings( + string(model.MetricNameLabel), "target_info", + string(model.JobLabel), rk.job, + string(model.InstanceLabel), rk.instance, + "extra", "v", + "another", "x", + ) + tr.AddTargetInfo(rk, ls) + + res := tr.nodeResources[rk] + attrs := res.Attributes() + _, hasJob := attrs.Get(string(model.JobLabel)) + _, hasInstance := attrs.Get(string(model.InstanceLabel)) + _, hasName := attrs.Get(string(model.MetricNameLabel)) + _, hasExtra := attrs.Get("extra") + _, hasAnother := attrs.Get("another") + + require.False(t, hasJob, "job label must not be copied to resource attributes") + require.False(t, hasInstance, "instance label must not be copied to resource attributes") + require.False(t, hasName, "metric name label must not be copied to resource attributes") + require.True(t, hasExtra, "custom label should be copied") + require.True(t, hasAnother, "custom label should be copied") +} + +func newTxn(t *testing.T, useMetadata, enableNative bool) *transaction { + ctx := t.Context() + lbls := labels.FromMap(map[string]string{ + string(model.InstanceLabel): "localhost:1234", + string(model.JobLabel): "job-a", + }) + target := scrape.NewTarget( + lbls, + &config.ScrapeConfig{}, + map[model.LabelName]model.LabelValue{ + model.AddressLabel: "localhost:1234", + model.SchemeLabel: "http", + }, + nil, + ) + ctx = scrape.ContextWithTarget(ctx, target) + if useMetadata { + ctx = scrape.ContextWithMetricMetadataStore(ctx, newFakeMetadataStore(map[string]scrape.MetricMetadata{})) + } + sink := &consumertest.MetricsSink{} + settings := receivertest.NewNopSettings(receivertest.NopType) + // quiet logger + settings.Logger = zap.NewNop() + return newTransaction(ctx, &nopAdjuster{}, sink, labels.EmptyLabels(), settings, newObs(t), false, enableNative, useMetadata) +} diff --git a/otelcollector/prometheusreceiver/internal/util.go b/otelcollector/prometheusreceiver/internal/util.go index 84308bb9d..cb6fd0478 100644 --- a/otelcollector/prometheusreceiver/internal/util.go +++ b/otelcollector/prometheusreceiver/internal/util.go @@ -96,7 +96,7 @@ func getBoundary(metricType pmetric.MetricType, labels labels.Labels) (float64, } // convToMetricType returns the data type and if it is monotonic -func convToMetricType(metricType model.MetricType) (pmetric.MetricType, bool) { +func convToMetricType(metricType model.MetricType, exponentialHistogram bool) (pmetric.MetricType, bool) { switch metricType { case model.MetricTypeCounter: // always use float64, as it's the internal data type used in prometheus @@ -105,6 +105,9 @@ func convToMetricType(metricType model.MetricType) (pmetric.MetricType, bool) { case model.MetricTypeGauge, model.MetricTypeUnknown: return pmetric.MetricTypeGauge, false case model.MetricTypeHistogram: + if exponentialHistogram { + return pmetric.MetricTypeExponentialHistogram, true + } return pmetric.MetricTypeHistogram, true // dropping support for gaugehistogram for now until we have an official spec of its implementation // a draft can be found in: https://docs.google.com/document/d/1KwV0mAXwwbvvifBvDKH_LU1YjyXE_wxCkHNoCGq1GX0/edit#heading=h.1cvzqd4ksd23 diff --git a/otelcollector/prometheusreceiver/internal/util_test.go b/otelcollector/prometheusreceiver/internal/util_test.go index a9a4cef35..452ddc391 100644 --- a/otelcollector/prometheusreceiver/internal/util_test.go +++ b/otelcollector/prometheusreceiver/internal/util_test.go @@ -59,6 +59,7 @@ func TestConvToMetricType(t *testing.T) { tests := []struct { name string mtype model.MetricType + isExponential bool want pmetric.MetricType wantMonotonic bool }{ @@ -86,6 +87,13 @@ func TestConvToMetricType(t *testing.T) { want: pmetric.MetricTypeHistogram, wantMonotonic: true, }, + { + name: "model.histogram", + mtype: model.MetricTypeHistogram, + isExponential: true, + want: pmetric.MetricTypeExponentialHistogram, + wantMonotonic: true, + }, { name: "model.summary", mtype: model.MetricTypeSummary, @@ -114,7 +122,7 @@ func TestConvToMetricType(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got, monotonic := convToMetricType(tt.mtype) + got, monotonic := convToMetricType(tt.mtype, tt.isExponential) require.Equal(t, got.String(), tt.want.String()) require.Equal(t, tt.wantMonotonic, monotonic) }) diff --git a/otelcollector/prometheusreceiver/metrics_receiver.go b/otelcollector/prometheusreceiver/metrics_receiver.go index 156ef6877..00ca8799a 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver.go +++ b/otelcollector/prometheusreceiver/metrics_receiver.go @@ -8,32 +8,54 @@ import ( "errors" "fmt" "log/slog" + "net/http" + "net/url" + "os" "reflect" "regexp" + "runtime" + "runtime/debug" + "strings" "sync" "time" "unsafe" + grafanaRegexp "github.com/grafana/regexp" + "github.com/mwitkow/go-conntrack" "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promhttp" commonconfig "github.com/prometheus/common/config" + "github.com/prometheus/common/promslog" + "github.com/prometheus/common/route" + "github.com/prometheus/common/version" + toolkit_web "github.com/prometheus/exporter-toolkit/web" promconfig "github.com/prometheus/prometheus/config" "github.com/prometheus/prometheus/discovery" "github.com/prometheus/prometheus/scrape" + "github.com/prometheus/prometheus/storage" + "github.com/prometheus/prometheus/util/httputil" + "github.com/prometheus/prometheus/web" + api_v1 "github.com/prometheus/prometheus/web/api/v1" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/component/componentstatus" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/receiver" + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" "go.uber.org/zap" "go.uber.org/zap/exp/zapslog" + "golang.org/x/net/netutil" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/apiserver" "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/targetallocator" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/targetallocator" ) const ( defaultGCInterval = 2 * time.Minute gcIntervalDelta = 1 * time.Minute + + // Use same settings as Prometheus web server + maxConnections = 512 + readTimeoutMinutes = 10 ) // pReceiver is the type that provides Prometheus scraper/receiver functionality. @@ -48,7 +70,7 @@ type pReceiver struct { scrapeManager *scrape.Manager discoveryManager *discovery.Manager targetAllocatorManager *targetallocator.Manager - apiServerManager *apiserver.Manager + apiServer *http.Server registry *prometheus.Registry registerer prometheus.Registerer unregisterMetrics func() @@ -65,11 +87,6 @@ func newPrometheusReceiver(set receiver.Settings, cfg *Config, next consumer.Met registerer := prometheus.WrapRegistererWith( prometheus.Labels{"receiver": set.ID.String()}, registry) - apiServerManager := (*apiserver.Manager)(nil) - apiServerCfg := cfg.APIServer.Get() - if apiServerCfg != nil { - apiServerManager = apiserver.NewManager(set, apiServerCfg, &baseCfg, registry, registerer) - } pr := &pReceiver{ cfg: cfg, consumer: next, @@ -81,9 +98,8 @@ func newPrometheusReceiver(set receiver.Settings, cfg *Config, next consumer.Met set, cfg.TargetAllocator.Get(), &baseCfg, - enableNativeHistogramsGate.IsEnabled(), + cfg.enableNativeHistograms, ), - apiServerManager: apiServerManager, } return pr, nil } @@ -107,6 +123,13 @@ func (r *pReceiver) Start(ctx context.Context, host component.Host) error { return err } + if r.cfg.APIServer.Enabled { + err = r.initAPIServer(discoveryCtx, host) + if err != nil { + r.settings.Logger.Error("Failed to initAPIServer", zap.Error(err)) + } + } + r.loadConfigOnce.Do(func() { close(r.configLoaded) }) @@ -153,7 +176,8 @@ func (r *pReceiver) initPrometheusComponents(ctx context.Context, logger *slog.L r.cfg.UseStartTimeMetric, startTimeMetricRegex, useCreatedMetricGate.IsEnabled(), - enableNativeHistogramsGate.IsEnabled(), + r.cfg.enableNativeHistograms, + !r.cfg.ignoreMetadata, r.cfg.PrometheusConfig.GlobalConfig.ExternalLabels, r.cfg.TrimMetricSuffixes, ) @@ -197,39 +221,197 @@ func (r *pReceiver) initPrometheusComponents(ctx context.Context, logger *slog.L } }() - apiServerCfg := r.cfg.APIServer.Get() - if apiServerCfg != nil { - err = r.apiServerManager.Start(ctx, host, r.scrapeManager) - if err != nil { - r.settings.Logger.Error("Failed to start APIServer", zap.Error(err)) - } - } - return nil } func (r *pReceiver) initScrapeOptions() *scrape.Options { opts := &scrape.Options{ PassMetadataInContext: true, - ExtraMetrics: r.cfg.ReportExtraScrapeMetrics, + ExtraMetrics: enableReportExtraScrapeMetricsGate.IsEnabled() || r.cfg.ReportExtraScrapeMetrics, HTTPClientOptions: []commonconfig.HTTPClientOption{ commonconfig.WithUserAgent(r.settings.BuildInfo.Command + "/" + r.settings.BuildInfo.Version), }, EnableCreatedTimestampZeroIngestion: enableCreatedTimestampZeroIngestionGate.IsEnabled(), - EnableNativeHistogramsIngestion: enableNativeHistogramsGate.IsEnabled(), + EnableNativeHistogramsIngestion: r.cfg.enableNativeHistograms, } return opts } +func (r *pReceiver) initAPIServer(ctx context.Context, host component.Host) error { + r.settings.Logger.Info("Starting Prometheus API server") + + // If allowed CORS origins are provided in the receiver config, combine them into a single regex since the Prometheus API server requires this format. + var corsOriginRegexp *grafanaRegexp.Regexp + if r.cfg.APIServer.ServerConfig.CORS.HasValue() && len(r.cfg.APIServer.ServerConfig.CORS.Get().AllowedOrigins) > 0 { + var combinedOriginsBuilder strings.Builder + combinedOriginsBuilder.WriteString(r.cfg.APIServer.ServerConfig.CORS.Get().AllowedOrigins[0]) + for _, origin := range r.cfg.APIServer.ServerConfig.CORS.Get().AllowedOrigins[1:] { + combinedOriginsBuilder.WriteString("|") + combinedOriginsBuilder.WriteString(origin) + } + combinedRegexp, err := grafanaRegexp.Compile(combinedOriginsBuilder.String()) + if err != nil { + return fmt.Errorf("failed to compile combined CORS allowed origins into regex: %s", err.Error()) + } + corsOriginRegexp = combinedRegexp + } + + // If read timeout is not set in the receiver config, use the default Prometheus value. + readTimeout := r.cfg.APIServer.ServerConfig.ReadTimeout + if readTimeout == 0 { + readTimeout = time.Duration(readTimeoutMinutes) * time.Minute + } + + o := &web.Options{ + ScrapeManager: r.scrapeManager, + Context: ctx, + ListenAddresses: []string{r.cfg.APIServer.ServerConfig.Endpoint}, + ExternalURL: &url.URL{ + Scheme: "http", + Host: r.cfg.APIServer.ServerConfig.Endpoint, + Path: "", + }, + RoutePrefix: "/", + ReadTimeout: readTimeout, + PageTitle: "Prometheus Receiver", + Flags: make(map[string]string), + MaxConnections: maxConnections, + IsAgent: true, + Registerer: r.registerer, + Gatherer: r.registry, + CORSOrigin: corsOriginRegexp, + } + + // Creates the API object in the same way as the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L314-L354 + // Anything not defined by the options above will be nil, such as o.QueryEngine, o.Storage, etc. IsAgent=true, so these being nil is expected by Prometheus. + factorySPr := func(_ context.Context) api_v1.ScrapePoolsRetriever { return o.ScrapeManager } + factoryTr := func(_ context.Context) api_v1.TargetRetriever { return o.ScrapeManager } + factoryAr := func(_ context.Context) api_v1.AlertmanagerRetriever { return nil } + factoryRr := func(_ context.Context) api_v1.RulesRetriever { return nil } + var app storage.Appendable + logger := promslog.NewNopLogger() + + apiV1 := api_v1.NewAPI(o.QueryEngine, o.Storage, app, o.ExemplarStorage, factorySPr, factoryTr, factoryAr, + + // This ensures that any changes to the config made, even by the target allocator, are reflected in the API. + func() promconfig.Config { + return *(*promconfig.Config)(r.cfg.PrometheusConfig) + }, + o.Flags, // nil + api_v1.GlobalURLOptions{ + ListenAddress: o.ListenAddresses[0], + Host: o.ExternalURL.Host, + Scheme: o.ExternalURL.Scheme, + }, + func(f http.HandlerFunc) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + f(w, r) + } + }, + o.LocalStorage, // nil + o.TSDBDir, // nil + o.EnableAdminAPI, // nil + logger, + factoryRr, + o.RemoteReadSampleLimit, // nil + o.RemoteReadConcurrencyLimit, // nil + o.RemoteReadBytesInFrame, // nil + o.IsAgent, + o.CORSOrigin, + func() (api_v1.RuntimeInfo, error) { + status := api_v1.RuntimeInfo{ + GoroutineCount: runtime.NumGoroutine(), + GOMAXPROCS: runtime.GOMAXPROCS(0), + GOMEMLIMIT: debug.SetMemoryLimit(-1), + GOGC: os.Getenv("GOGC"), + GODEBUG: os.Getenv("GODEBUG"), + } + + return status, nil + }, + &web.PrometheusVersion{ + Version: version.Version, + Revision: version.Revision, + Branch: version.Branch, + BuildUser: version.BuildUser, + BuildDate: version.BuildDate, + GoVersion: version.GoVersion, + }, + o.NotificationsGetter, + o.NotificationsSub, + o.Gatherer, + o.Registerer, + nil, + o.EnableRemoteWriteReceiver, + o.AcceptRemoteWriteProtoMsgs, + o.EnableOTLPWriteReceiver, + o.ConvertOTLPDelta, + o.NativeOTLPDeltaIngestion, + o.CTZeroIngestionEnabled, + 5*time.Minute, // LookbackDelta - Using the default value of 5 minutes + o.EnableTypeAndUnitLabels, + nil, // OverrideErrorCode + ) + + // Create listener and monitor with conntrack in the same way as the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L564-L579 + listener, err := r.cfg.APIServer.ServerConfig.ToListener(ctx) + if err != nil { + return fmt.Errorf("failed to create listener: %s", err.Error()) + } + listener = netutil.LimitListener(listener, o.MaxConnections) + listener = conntrack.NewListener(listener, + conntrack.TrackWithName("http"), + conntrack.TrackWithTracing()) + + // Run the API server in the same way as the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L582-L630 + mux := http.NewServeMux() + promHandler := promhttp.HandlerFor(o.Gatherer, promhttp.HandlerOpts{Registry: o.Registerer}) + mux.Handle("/metrics", promHandler) + + // This is the path the web package uses, but the router above with no prefix can also be Registered by apiV1 instead. + apiPath := "/api" + if o.RoutePrefix != "/" { + apiPath = o.RoutePrefix + apiPath + logger.Info("Router prefix", "prefix", o.RoutePrefix) + } + av1 := route.New(). + WithInstrumentation(setPathWithPrefix(apiPath + "/v1")) + apiV1.Register(av1) + mux.Handle(apiPath+"/v1/", http.StripPrefix(apiPath+"/v1", av1)) + + spanNameFormatter := otelhttp.WithSpanNameFormatter(func(_ string, r *http.Request) string { + return fmt.Sprintf("%s %s", r.Method, r.URL.Path) + }) + r.apiServer, err = r.cfg.APIServer.ServerConfig.ToServer(ctx, host.GetExtensions(), r.settings.TelemetrySettings, otelhttp.NewHandler(mux, "", spanNameFormatter)) + if err != nil { + return err + } + webconfig := "" + + go func() { + if err := toolkit_web.Serve(listener, r.apiServer, &toolkit_web.FlagConfig{WebConfigFile: &webconfig}, logger); err != nil { + r.settings.Logger.Error("API server failed", zap.Error(err)) + } + }() + + return nil +} + +// Helper function from the Prometheus web package: https://github.com/prometheus/prometheus/blob/6150e1ca0ede508e56414363cc9062ef522db518/web/web.go#L582-L630 +func setPathWithPrefix(prefix string) func(handlerName string, handler http.HandlerFunc) http.HandlerFunc { + return func(_ string, handler http.HandlerFunc) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + handler(w, r.WithContext(httputil.ContextWithPath(r.Context(), prefix+r.URL.Path))) + } + } +} + // gcInterval returns the longest scrape interval used by a scrape config, // plus a delta to prevent race conditions. // This ensures jobs are not garbage collected between scrapes. func gcInterval(cfg *PromConfig) time.Duration { - gcInterval := defaultGCInterval - if time.Duration(cfg.GlobalConfig.ScrapeInterval)+gcIntervalDelta > gcInterval { - gcInterval = time.Duration(cfg.GlobalConfig.ScrapeInterval) + gcIntervalDelta - } + gcInterval := max(time.Duration(cfg.GlobalConfig.ScrapeInterval)+gcIntervalDelta, defaultGCInterval) for _, scrapeConfig := range cfg.ScrapeConfigs { if time.Duration(scrapeConfig.ScrapeInterval)+gcIntervalDelta > gcInterval { gcInterval = time.Duration(scrapeConfig.ScrapeInterval) + gcIntervalDelta @@ -252,8 +434,8 @@ func (r *pReceiver) Shutdown(ctx context.Context) error { if r.unregisterMetrics != nil { r.unregisterMetrics() } - if r.apiServerManager != nil { - err := r.apiServerManager.Shutdown(ctx) + if r.apiServer != nil { + err := r.apiServer.Shutdown(ctx) if err != nil { return err } diff --git a/otelcollector/prometheusreceiver/metrics_receiver_created_timestamp_zero_ingestion_test.go b/otelcollector/prometheusreceiver/metrics_receiver_created_timestamp_zero_ingestion_test.go index 8190164cf..c16626298 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_created_timestamp_zero_ingestion_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_created_timestamp_zero_ingestion_test.go @@ -141,7 +141,7 @@ func verifyOpenMetricsCreatedTimestampZeroIngestionDisabled(t *testing.T, td *te []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(1.0), }, diff --git a/otelcollector/prometheusreceiver/metrics_receiver_helper_test.go b/otelcollector/prometheusreceiver/metrics_receiver_helper_test.go index 3e34b0fc1..836040001 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_helper_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_helper_test.go @@ -141,7 +141,7 @@ func setupMockPrometheus(tds ...*testData) (*mockPrometheus, *PromConfig, error) } mp := newMockPrometheus(endpoints) u, _ := url.Parse(mp.srv.URL) - for i := 0; i < len(tds); i++ { + for i := range tds { job := make(map[string]any) job["job_name"] = tds[i].name job["metrics_path"] = metricPaths[i] @@ -244,7 +244,7 @@ func getValidScrapes(t *testing.T, rms []pmetric.ResourceMetrics, target *testDa // for metrics retrieved with 'honor_labels: true', there will be a resource metric containing the scrape metrics, based on the scrape job config, // and resources containing only the retrieved metrics, without additional scrape metrics, based on the job/instance label pairs that are detected // during a scrape - for i := 0; i < len(rms); i++ { + for i := range rms { allMetrics := getMetrics(rms[i]) if expectedScrapeMetricCount <= len(allMetrics) && countScrapeMetrics(allMetrics, target.normalizedName) == expectedScrapeMetricCount || expectedExtraScrapeMetricCount <= len(allMetrics) && countScrapeMetrics(allMetrics, target.normalizedName) == expectedExtraScrapeMetricCount { diff --git a/otelcollector/prometheusreceiver/metrics_receiver_honor_timestamp_test.go b/otelcollector/prometheusreceiver/metrics_receiver_honor_timestamp_test.go index 5a0416ad8..c857fe9ba 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_honor_timestamp_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_honor_timestamp_test.go @@ -226,7 +226,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts2))), + compareStartTimestamp(tsZero), compareTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts2))), compareDoubleValue(100), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -234,7 +234,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts3))), + compareStartTimestamp(tsZero), compareTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts3))), compareDoubleValue(5), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -250,7 +250,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts4))), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts4))), compareHistogram(2500, 5000, []float64{0.05, 0.5, 1}, []uint64{1000, 500, 500, 500}), }, @@ -265,7 +265,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts5))), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts5))), compareSummary(1000, 5000, [][]float64{{0.01, 1}, {0.9, 5}, {0.99, 8}}), }, @@ -302,7 +302,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts7))), + compareStartTimestamp(tsZero), compareTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts7))), compareDoubleValue(99), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -310,7 +310,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts8))), + compareStartTimestamp(tsZero), compareTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts8))), compareDoubleValue(3), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -326,7 +326,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts9))), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts9))), compareHistogram(2400, 4950, []float64{0.05, 0.5, 1}, []uint64{900, 500, 500, 500}), }, @@ -341,7 +341,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts10))), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts10))), compareSummary(900, 4980, [][]float64{{0.01, 1}, {0.9, 6}, {0.99, 8}}), }, @@ -378,7 +378,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts7))), + compareStartTimestamp(tsZero), compareTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts12))), compareDoubleValue(100), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -386,7 +386,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts8))), + compareStartTimestamp(tsZero), compareTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts13))), compareDoubleValue(5), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -402,7 +402,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts9))), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts14))), compareHistogram(2500, 5000, []float64{0.05, 0.5, 1}, []uint64{1000, 500, 500, 500}), }, @@ -417,7 +417,7 @@ func verifyHonorTimeStampsTrue(t *testing.T, td *testData, resourceMetrics []pme []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts10))), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(pcommon.NewTimestampFromTime(time.UnixMilli(ts15))), compareSummary(1000, 5000, [][]float64{{0.01, 1}, {0.9, 5}, {0.99, 8}}), }, @@ -462,7 +462,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(100), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -470,7 +470,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(5), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -486,7 +486,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogram(2500, 5000, []float64{0.05, 0.5, 1}, []uint64{1000, 500, 500, 500}), }, @@ -501,7 +501,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummary(1000, 5000, [][]float64{{0.01, 1}, {0.9, 5}, {0.99, 8}}), }, @@ -540,7 +540,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts2), + compareStartTimestamp(tsZero), compareTimestamp(ts2), compareDoubleValue(99), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -548,7 +548,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts2), + compareStartTimestamp(tsZero), compareTimestamp(ts2), compareDoubleValue(3), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -564,7 +564,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts2), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts2), compareHistogram(2400, 4950, []float64{0.05, 0.5, 1}, []uint64{900, 500, 500, 500}), }, @@ -579,7 +579,7 @@ func verifyHonorTimeStampsFalse(t *testing.T, td *testData, resourceMetrics []pm []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts2), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts2), compareSummary(900, 4980, [][]float64{{0.01, 1}, {0.9, 6}, {0.99, 8}}), }, diff --git a/otelcollector/prometheusreceiver/metrics_receiver_labels_test.go b/otelcollector/prometheusreceiver/metrics_receiver_labels_test.go index a04b9b8e9..87f5cb12a 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_labels_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_labels_test.go @@ -178,7 +178,7 @@ func verifyLabelConfigTarget1(t *testing.T, td *testData, rms []pmetric.Resource []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(1), compareAttributes(map[string]string{"label1": "value1", "label2": "value2"}), @@ -209,7 +209,7 @@ func verifyLabelConfigTarget1(t *testing.T, td *testData, rms []pmetric.Resource []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogram(2500, 5000, []float64{0.1, 0.5, 1}, []uint64{1000, 500, 500, 500}), compareHistogramAttributes(map[string]string{"label1": "value1", "label2": "value2"}), @@ -225,7 +225,7 @@ func verifyLabelConfigTarget1(t *testing.T, td *testData, rms []pmetric.Resource []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummary(1000, 5000, [][]float64{{0.1, 1}, {0.5, 5}, {0.99, 8}}), compareSummaryAttributes(map[string]string{"label1": "value1", "label2": "value2"}), @@ -383,7 +383,7 @@ func verifyEmptyLabelValuesTarget1(t *testing.T, td *testData, rms []pmetric.Res []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogram(2500, 5000, []float64{0.1, 0.5, 1}, []uint64{1000, 500, 500, 500}), compareHistogramAttributes(map[string]string{"id": "1"}), @@ -399,7 +399,7 @@ func verifyEmptyLabelValuesTarget1(t *testing.T, td *testData, rms []pmetric.Res []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummary(1000, 5000, [][]float64{{0.1, 1}, {0.5, 5}, {0.99, 8}}), compareSummaryAttributes(map[string]string{"id": "1"}), diff --git a/otelcollector/prometheusreceiver/metrics_receiver_non_numerical_test.go b/otelcollector/prometheusreceiver/metrics_receiver_non_numerical_test.go index 444d9389d..4296db81f 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_non_numerical_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_non_numerical_test.go @@ -10,7 +10,6 @@ import ( "github.com/prometheus/prometheus/model/value" "github.com/stretchr/testify/assert" - "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" ) @@ -47,7 +46,7 @@ var totalScrapes = 10 // TestStaleNaNs validates that staleness marker gets generated when the timeseries is no longer present func TestStaleNaNs(t *testing.T) { var mockResponses []mockPrometheusResponse - for i := 0; i < totalScrapes; i++ { + for i := range totalScrapes { if i%2 == 0 { mockResponses = append(mockResponses, mockPrometheusResponse{ code: 200, @@ -73,18 +72,16 @@ func TestStaleNaNs(t *testing.T) { func verifyStaleNaNs(t *testing.T, td *testData, resourceMetrics []pmetric.ResourceMetrics) { verifyNumTotalScrapeResults(t, td, resourceMetrics) - metrics1 := resourceMetrics[0].ScopeMetrics().At(0).Metrics() - ts := getTS(metrics1) - for i := 0; i < totalScrapes; i++ { + for i := range totalScrapes { if i%2 == 0 { - verifyStaleNaNsSuccessfulScrape(t, td, resourceMetrics[i], ts, i+1) + verifyStaleNaNsSuccessfulScrape(t, td, resourceMetrics[i], i+1) } else { - verifyStaleNaNsFailedScrape(t, td, resourceMetrics[i], ts, i+1) + verifyStaleNaNsFailedScrape(t, td, resourceMetrics[i], i+1) } } } -func verifyStaleNaNsSuccessfulScrape(t *testing.T, td *testData, resourceMetric pmetric.ResourceMetrics, startTimestamp pcommon.Timestamp, iteration int) { +func verifyStaleNaNsSuccessfulScrape(t *testing.T, td *testData, resourceMetric pmetric.ResourceMetrics, iteration int) { // m1 has 4 metrics + 5 internal scraper metrics assert.Equal(t, 9, metricsCount(resourceMetric)) wantAttributes := td.attributes // should want attribute be part of complete target or each scrape? @@ -112,7 +109,7 @@ func verifyStaleNaNsSuccessfulScrape(t *testing.T, td *testData, resourceMetric []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(startTimestamp), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(100), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -120,7 +117,7 @@ func verifyStaleNaNsSuccessfulScrape(t *testing.T, td *testData, resourceMetric }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(startTimestamp), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(5), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -136,7 +133,7 @@ func verifyStaleNaNsSuccessfulScrape(t *testing.T, td *testData, resourceMetric []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(startTimestamp), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogram(2500, 5000, []float64{0.05, 0.5, 1}, []uint64{1000, 500, 500, 500}), }, @@ -151,7 +148,7 @@ func verifyStaleNaNsSuccessfulScrape(t *testing.T, td *testData, resourceMetric []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(startTimestamp), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummary(1000, 5000, [][]float64{{0.01, 1}, {0.9, 5}, {0.99, 8}}), }, @@ -163,7 +160,7 @@ func verifyStaleNaNsSuccessfulScrape(t *testing.T, td *testData, resourceMetric doCompare(t, fmt.Sprintf("validScrape-scrape-%d", iteration), wantAttributes, resourceMetric, e1) } -func verifyStaleNaNsFailedScrape(t *testing.T, td *testData, resourceMetric pmetric.ResourceMetrics, startTimestamp pcommon.Timestamp, iteration int) { +func verifyStaleNaNsFailedScrape(t *testing.T, td *testData, resourceMetric pmetric.ResourceMetrics, iteration int) { // m1 has 4 metrics + 5 internal scraper metrics assert.Equal(t, 9, metricsCount(resourceMetric)) wantAttributes := td.attributes @@ -194,14 +191,14 @@ func verifyStaleNaNsFailedScrape(t *testing.T, td *testData, resourceMetric pmet []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(startTimestamp), + compareStartTimestamp(tsZero), compareTimestamp(ts1), assertNumberPointFlagNoRecordedValue(), }, }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(startTimestamp), + compareStartTimestamp(tsZero), compareTimestamp(ts1), assertNumberPointFlagNoRecordedValue(), }, @@ -216,7 +213,7 @@ func verifyStaleNaNsFailedScrape(t *testing.T, td *testData, resourceMetric pmet []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(startTimestamp), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), assertHistogramPointFlagNoRecordedValue(), }, @@ -231,7 +228,7 @@ func verifyStaleNaNsFailedScrape(t *testing.T, td *testData, resourceMetric pmet []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(startTimestamp), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), assertSummaryPointFlagNoRecordedValue(), }, @@ -325,7 +322,7 @@ func verifyNormalNaNs(t *testing.T, td *testData, resourceMetrics []pmetric.Reso []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummary(1000, 5000, [][]float64{ {0.01, math.Float64frombits(value.NormalNaN)}, @@ -424,7 +421,7 @@ func verifyInfValues(t *testing.T, td *testData, resourceMetrics []pmetric.Resou []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(math.Inf(1)), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -440,7 +437,7 @@ func verifyInfValues(t *testing.T, td *testData, resourceMetrics []pmetric.Resou []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummary(1000, 5000, [][]float64{{0.01, math.Inf(1)}, {0.9, math.Inf(1)}, {0.99, math.Inf(1)}}), }, diff --git a/otelcollector/prometheusreceiver/metrics_receiver_protobuf_test.go b/otelcollector/prometheusreceiver/metrics_receiver_protobuf_test.go index 5c4caf5f2..c822758d4 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_protobuf_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_protobuf_test.go @@ -4,6 +4,7 @@ package prometheusreceiver import ( + "fmt" "math" "testing" @@ -11,7 +12,6 @@ import ( "github.com/prometheus/prometheus/config" dto "github.com/prometheus/prometheus/prompb/io/prometheus/client" "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/featuregate" "go.opentelemetry.io/collector/pdata/pmetric" ) @@ -165,6 +165,9 @@ func TestScrapeViaProtobuf(t *testing.T) { }) } +// TestNativeVsClassicHistogramScrapeViaProtobuf checks the classic and native histograms +// can co-exists, regardless whether metadata is available or not. +// When there is no metadata, float series are all mapped 1:1 to Gauge metrics. func TestNativeVsClassicHistogramScrapeViaProtobuf(t *testing.T) { classicHistogram := &dto.MetricFamily{ Name: "test_classic_histogram", @@ -329,6 +332,7 @@ func TestNativeVsClassicHistogramScrapeViaProtobuf(t *testing.T) { mutCfg func(*PromConfig) enableNativeHistograms bool expected []metricExpectation + expectedIgnoreMetadata []metricExpectation }{ "feature enabled scrape classic off": { enableNativeHistograms: true, @@ -370,6 +374,53 @@ func TestNativeVsClassicHistogramScrapeViaProtobuf(t *testing.T) { nil, }, }, + expectedIgnoreMetadata: []metricExpectation{ + { + "test_classic_histogram_bucket", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_count", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_sum", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram", + pmetric.MetricTypeExponentialHistogram, + "", + []dataPointExpectation{{ + exponentialHistogramComparator: []exponentialHistogramComparator{ + compareExponentialHistogram(3, 1213, 456, 2, -1, []uint64{1, 0, 2}, -3, []uint64{1, 0, 1}), + checkMixedHistogramNativeExemplars, + }, + }}, + nil, + }, + { + "test_native_histogram", + pmetric.MetricTypeExponentialHistogram, + "", + []dataPointExpectation{{ + exponentialHistogramComparator: []exponentialHistogramComparator{ + compareExponentialHistogram(3, 1214, 3456, 5, -3, []uint64{1, 0, 2}, 2, []uint64{1, 0, 0, 1}), + checkNativeHistogramExemplars, + }, + }}, + nil, + }, + }, }, "feature disabled scrape classic off": { enableNativeHistograms: false, @@ -399,6 +450,50 @@ func TestNativeVsClassicHistogramScrapeViaProtobuf(t *testing.T) { nil, }, }, + expectedIgnoreMetadata: []metricExpectation{ + { + "test_classic_histogram_bucket", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_count", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_sum", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_bucket", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_count", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_sum", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + }, }, "feature enabled scrape classic on": { mutCfg: func(cfg *PromConfig) { @@ -458,6 +553,74 @@ func TestNativeVsClassicHistogramScrapeViaProtobuf(t *testing.T) { nil, }, }, + expectedIgnoreMetadata: []metricExpectation{ + { + "test_classic_histogram_bucket", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_count", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_sum", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_bucket", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_count", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_sum", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { // Scrape both classic and native buckets from mixed histograms. + "test_mixed_histogram", + pmetric.MetricTypeExponentialHistogram, + "", + []dataPointExpectation{{ + exponentialHistogramComparator: []exponentialHistogramComparator{ + compareExponentialHistogram(3, 1213, 456, 2, -1, []uint64{1, 0, 2}, -3, []uint64{1, 0, 1}), + checkMixedHistogramNativeExemplars, + }, + }}, + nil, + }, + { // Scrape native only histograms as is. + "test_native_histogram", + pmetric.MetricTypeExponentialHistogram, + "", + []dataPointExpectation{{ + exponentialHistogramComparator: []exponentialHistogramComparator{ + compareExponentialHistogram(3, 1214, 3456, 5, -3, []uint64{1, 0, 2}, 2, []uint64{1, 0, 0, 1}), + checkNativeHistogramExemplars, + }, + }}, + nil, + }, + }, }, "feature disabled scrape classic on": { mutCfg: func(cfg *PromConfig) { @@ -493,37 +656,86 @@ func TestNativeVsClassicHistogramScrapeViaProtobuf(t *testing.T) { nil, }, }, + expectedIgnoreMetadata: []metricExpectation{ + { + "test_classic_histogram_bucket", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_count", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_classic_histogram_sum", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_bucket", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_count", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + { + "test_mixed_histogram_sum", + pmetric.MetricTypeGauge, + "", + nil, + nil, + }, + }, }, } - defer func() { - _ = featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.EnableNativeHistograms", false) - }() + for _, ignoreMetadata := range []bool{false, true} { + t.Run(fmt.Sprintf("skip metadata=%v", ignoreMetadata), func(t *testing.T) { + for name, tc := range testCases { + t.Run(name, func(t *testing.T) { + t.Parallel() - for name, tc := range testCases { - t.Run(name, func(t *testing.T) { - err := featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.EnableNativeHistograms", tc.enableNativeHistograms) - require.NoError(t, err) - - targets := []*testData{ - { - name: "target1", - pages: []mockPrometheusResponse{ - {code: 200, useProtoBuf: true, buf: buffer.Bytes()}, - }, - validateFunc: func(t *testing.T, td *testData, result []pmetric.ResourceMetrics) { - verifyNumValidScrapeResults(t, td, result) - doCompare(t, "target1", td.attributes, result[0], tc.expected) - }, - }, - } - mutCfg := tc.mutCfg - if mutCfg == nil { - mutCfg = func(*PromConfig) {} + targets := []*testData{ + { + name: "target1", + pages: []mockPrometheusResponse{ + {code: 200, useProtoBuf: true, buf: buffer.Bytes()}, + }, + validateFunc: func(t *testing.T, td *testData, result []pmetric.ResourceMetrics) { + verifyNumValidScrapeResults(t, td, result) + if ignoreMetadata { + doCompare(t, "target1", td.attributes, result[0], tc.expectedIgnoreMetadata) + } else { + doCompare(t, "target1", td.attributes, result[0], tc.expected) + } + }, + }, + } + mutCfg := tc.mutCfg + if mutCfg == nil { + mutCfg = func(*PromConfig) {} + } + testComponent(t, targets, func(c *Config) { + c.enableNativeHistograms = tc.enableNativeHistograms + c.ignoreMetadata = ignoreMetadata + c.PrometheusConfig.GlobalConfig.ScrapeProtocols = []config.ScrapeProtocol{config.PrometheusProto} + }, mutCfg) + }) } - testComponent(t, targets, func(c *Config) { - c.PrometheusConfig.GlobalConfig.ScrapeProtocols = []config.ScrapeProtocol{config.PrometheusProto} - }, mutCfg) }) } } @@ -650,12 +862,9 @@ func TestStaleExponentialHistogram(t *testing.T) { }, }, } - err := featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.EnableNativeHistograms", true) - require.NoError(t, err) - defer func() { - _ = featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.EnableNativeHistograms", false) - }() + testComponent(t, targets, func(c *Config) { + c.enableNativeHistograms = true c.PrometheusConfig.GlobalConfig.ScrapeProtocols = []config.ScrapeProtocol{config.PrometheusProto} }) } @@ -715,12 +924,9 @@ func TestFloatCounterHistogram(t *testing.T) { }, }, } - err := featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.EnableNativeHistograms", true) - require.NoError(t, err) - defer func() { - _ = featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.EnableNativeHistograms", false) - }() + testComponent(t, targets, func(c *Config) { + c.enableNativeHistograms = true c.PrometheusConfig.GlobalConfig.ScrapeProtocols = []config.ScrapeProtocol{config.PrometheusProto} }) } diff --git a/otelcollector/prometheusreceiver/metrics_receiver_report_extra_scrape_metrics_test.go b/otelcollector/prometheusreceiver/metrics_receiver_report_extra_scrape_metrics_test.go index fa3c77944..5da14dc2f 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_report_extra_scrape_metrics_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_report_extra_scrape_metrics_test.go @@ -13,6 +13,7 @@ import ( "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/receiver/receivertest" + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/common/testutil" "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/metadata" ) @@ -48,6 +49,8 @@ func TestReportExtraScrapeMetrics(t *testing.T) { // starts prometheus receiver with custom config, retrieves metrics from MetricsSink func testScraperMetrics(t *testing.T, targets []*testData, reportExtraScrapeMetrics bool) { + defer testutil.SetFeatureGateForTest(t, enableReportExtraScrapeMetricsGate, reportExtraScrapeMetrics)() + ctx := t.Context() mp, cfg, err := setupMockPrometheus(targets...) require.NoErrorf(t, err, "Failed to create Prometheus config: %v", err) @@ -55,10 +58,9 @@ func testScraperMetrics(t *testing.T, targets []*testData, reportExtraScrapeMetr cms := new(consumertest.MetricsSink) receiver, err := newPrometheusReceiver(receivertest.NewNopSettings(metadata.Type), &Config{ - PrometheusConfig: cfg, - UseStartTimeMetric: false, - StartTimeMetricRegex: "", - ReportExtraScrapeMetrics: reportExtraScrapeMetrics, + PrometheusConfig: cfg, + UseStartTimeMetric: false, + StartTimeMetricRegex: "", }, cms) require.NoError(t, err, "Failed to create Prometheus receiver: %v", err) diff --git a/otelcollector/prometheusreceiver/metrics_receiver_target_allocator_test.go b/otelcollector/prometheusreceiver/metrics_receiver_target_allocator_test.go index 7fc917c16..dee7bcdd6 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_target_allocator_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_target_allocator_test.go @@ -31,7 +31,7 @@ import ( "go.uber.org/zap/zapcore" "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/metadata" - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/targetallocator" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/targetallocator" ) const exportedMetrics = ` diff --git a/otelcollector/prometheusreceiver/metrics_receiver_test.go b/otelcollector/prometheusreceiver/metrics_receiver_test.go index a0b892b69..d2470571c 100644 --- a/otelcollector/prometheusreceiver/metrics_receiver_test.go +++ b/otelcollector/prometheusreceiver/metrics_receiver_test.go @@ -18,6 +18,8 @@ import ( "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/component/componenttest" "go.opentelemetry.io/collector/consumer/consumertest" + "go.opentelemetry.io/collector/featuregate" + "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/receiver/receivertest" "google.golang.org/protobuf/types/known/timestamppb" @@ -25,6 +27,8 @@ import ( "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/metadata" ) +var tsZero = pcommon.Timestamp(0) + // Test data and validation functions for all four core metrics for Prometheus Receiver. // Make sure every page has a gauge, we are relying on it to figure out the start time if needed @@ -149,7 +153,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(100), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -157,7 +161,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(5), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -173,7 +177,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogram(2500, 5000, []float64{0.05, 0.5, 1}, []uint64{1000, 500, 500, 500}), }, @@ -188,7 +192,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummary(1000, 5000, [][]float64{{0.01, 1}, {0.9, 5}, {0.99, 8}}), }, @@ -227,7 +231,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts2), compareDoubleValue(199), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -235,7 +239,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts2), compareDoubleValue(12), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -252,7 +256,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc { histogramPointComparator: []histogramPointComparator{ // TODO: Prometheus Receiver Issue- start_timestamp are incorrect for Summary and Histogram metrics after a failed scrape (issue not yet posted on collector-contrib repo) - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts2), compareHistogram(2600, 5050, []float64{0.05, 0.5, 1}, []uint64{1100, 500, 500, 500}), }, @@ -268,7 +272,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc { summaryPointComparator: []summaryPointComparator{ // TODO: Prometheus Receiver Issue- start_timestamp are incorrect for Summary and Histogram metrics after a failed scrape (issue not yet posted on collector-contrib repo) - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts2), compareSummary(1001, 5002, [][]float64{{0.01, 1}, {0.9, 6}, {0.99, 8}}), }, @@ -307,7 +311,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc { numberPointComparator: []numberPointComparator{ // TODO: #6360 Prometheus Receiver Issue- start_timestamp should reset if the prior scrape had higher value - compareStartTimestamp(ts3), + compareStartTimestamp(tsZero), compareTimestamp(ts3), compareDoubleValue(99), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -316,7 +320,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc { numberPointComparator: []numberPointComparator{ // TODO: #6360 Prometheus Receiver Issue- start_timestamp should reset if the prior scrape had higher value - compareStartTimestamp(ts3), + compareStartTimestamp(tsZero), compareTimestamp(ts3), compareDoubleValue(3), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -333,7 +337,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc { histogramPointComparator: []histogramPointComparator{ // TODO: #6360 Prometheus Receiver Issue- start_timestamp should reset if the prior scrape had higher value - compareHistogramStartTimestamp(ts3), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts3), compareHistogram(2400, 4900, []float64{0.05, 0.5, 1}, []uint64{900, 500, 500, 500}), }, @@ -349,7 +353,7 @@ func verifyTarget1(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc { summaryPointComparator: []summaryPointComparator{ // TODO: #6360 Prometheus Receiver Issue- start_timestamp should reset if the prior scrape had higher value - compareSummaryStartTimestamp(ts3), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts3), compareSummary(900, 4900, [][]float64{{0.01, 1}, {0.9, 4}, {0.99, 6}}), }, @@ -583,7 +587,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogramAttributes(map[string]string{"method": "post", "code": "200"}), compareHistogram(10, 7, []float64{1}, []uint64{8, 2}), @@ -591,7 +595,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogramAttributes(map[string]string{"method": "post", "code": "400"}), compareHistogram(50, 25, []float64{1}, []uint64{30, 20}), @@ -607,7 +611,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(10), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -615,7 +619,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts1), compareDoubleValue(50), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -631,7 +635,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummaryAttributes(map[string]string{"code": "0"}), compareSummary(50, 100, [][]float64{{0.5, 47}}), @@ -639,7 +643,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummaryAttributes(map[string]string{"code": "5"}), compareSummary(400, 180, [][]float64{{0.5, 35}}), @@ -679,7 +683,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts2), compareHistogramAttributes(map[string]string{"method": "post", "code": "200"}), compareHistogram(50, 43, []float64{1}, []uint64{40, 10}), @@ -687,7 +691,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts2), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts2), compareHistogramAttributes(map[string]string{"method": "post", "code": "300"}), compareHistogram(3, 2, []float64{1}, []uint64{3, 0}), @@ -695,7 +699,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts2), compareHistogramAttributes(map[string]string{"method": "post", "code": "400"}), compareHistogram(60, 30, []float64{1}, []uint64{35, 25}), @@ -711,7 +715,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts2), compareDoubleValue(50), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -719,7 +723,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts2), + compareStartTimestamp(tsZero), compareTimestamp(ts2), compareDoubleValue(3), compareAttributes(map[string]string{"method": "post", "code": "300"}), @@ -727,7 +731,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts2), compareDoubleValue(60), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -743,7 +747,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts2), compareSummaryAttributes(map[string]string{"code": "0"}), compareSummary(60, 110, [][]float64{{0.5, 57}}), @@ -751,7 +755,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts2), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts2), compareSummaryAttributes(map[string]string{"code": "3"}), compareSummary(30, 50, [][]float64{{0.5, 42}}), @@ -759,7 +763,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts2), compareSummaryAttributes(map[string]string{"code": "5"}), compareSummary(410, 190, [][]float64{{0.5, 45}}), @@ -799,7 +803,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts3), compareHistogramAttributes(map[string]string{"method": "post", "code": "200"}), compareHistogram(50, 43, []float64{1}, []uint64{40, 10}), @@ -807,7 +811,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts2), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts3), compareHistogramAttributes(map[string]string{"method": "post", "code": "300"}), compareHistogram(5, 7, []float64{1}, []uint64{3, 2}), @@ -815,7 +819,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts3), compareHistogramAttributes(map[string]string{"method": "post", "code": "400"}), compareHistogram(60, 30, []float64{1}, []uint64{35, 25}), @@ -831,7 +835,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts3), compareDoubleValue(50), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -839,7 +843,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts2), + compareStartTimestamp(tsZero), compareTimestamp(ts3), compareDoubleValue(5), compareAttributes(map[string]string{"method": "post", "code": "300"}), @@ -847,7 +851,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts1), + compareStartTimestamp(tsZero), compareTimestamp(ts3), compareDoubleValue(60), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -863,7 +867,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts3), compareSummaryAttributes(map[string]string{"code": "0"}), compareSummary(70, 120, [][]float64{{0.5, 67}}), @@ -871,7 +875,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts2), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts3), compareSummaryAttributes(map[string]string{"code": "3"}), compareSummary(40, 60, [][]float64{{0.5, 52}}), @@ -879,7 +883,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts3), compareSummaryAttributes(map[string]string{"code": "5"}), compareSummary(420, 200, [][]float64{{0.5, 55}}), @@ -919,7 +923,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts4), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts4), compareHistogramAttributes(map[string]string{"method": "post", "code": "200"}), compareHistogram(49, 42, []float64{1}, []uint64{40, 9}), @@ -927,7 +931,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts4), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts4), compareHistogramAttributes(map[string]string{"method": "post", "code": "300"}), compareHistogram(3, 4, []float64{1}, []uint64{2, 1}), @@ -935,7 +939,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts4), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts4), compareHistogramAttributes(map[string]string{"method": "post", "code": "400"}), compareHistogram(59, 29, []float64{1}, []uint64{34, 25}), @@ -951,7 +955,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts4), + compareStartTimestamp(tsZero), compareTimestamp(ts4), compareDoubleValue(49), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -959,7 +963,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts4), + compareStartTimestamp(tsZero), compareTimestamp(ts4), compareDoubleValue(3), compareAttributes(map[string]string{"method": "post", "code": "300"}), @@ -967,7 +971,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts4), + compareStartTimestamp(tsZero), compareTimestamp(ts4), compareDoubleValue(59), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -983,7 +987,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts4), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts4), compareSummaryAttributes(map[string]string{"code": "0"}), compareSummary(69, 119, [][]float64{{0.5, 66}}), @@ -991,7 +995,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts4), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts4), compareSummaryAttributes(map[string]string{"code": "3"}), compareSummary(39, 59, [][]float64{{0.5, 51}}), @@ -999,7 +1003,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts4), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts4), compareSummaryAttributes(map[string]string{"code": "5"}), compareSummary(419, 199, [][]float64{{0.5, 54}}), @@ -1039,7 +1043,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts4), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts5), compareHistogramAttributes(map[string]string{"method": "post", "code": "200"}), compareHistogram(50, 43, []float64{1}, []uint64{41, 9}), @@ -1047,7 +1051,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts4), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts5), compareHistogramAttributes(map[string]string{"method": "post", "code": "300"}), compareHistogram(5, 4, []float64{1}, []uint64{4, 1}), @@ -1055,7 +1059,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts4), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts5), compareHistogramAttributes(map[string]string{"method": "post", "code": "400"}), compareHistogram(59, 29, []float64{1}, []uint64{34, 25}), @@ -1071,7 +1075,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts4), + compareStartTimestamp(tsZero), compareTimestamp(ts5), compareDoubleValue(50), compareAttributes(map[string]string{"method": "post", "code": "200"}), @@ -1079,7 +1083,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts4), + compareStartTimestamp(tsZero), compareTimestamp(ts5), compareDoubleValue(5), compareAttributes(map[string]string{"method": "post", "code": "300"}), @@ -1087,7 +1091,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { numberPointComparator: []numberPointComparator{ - compareStartTimestamp(ts4), + compareStartTimestamp(tsZero), compareTimestamp(ts5), compareDoubleValue(59), compareAttributes(map[string]string{"method": "post", "code": "400"}), @@ -1103,7 +1107,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts4), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts5), compareSummaryAttributes(map[string]string{"code": "0"}), compareSummary(79, 129, [][]float64{{0.5, 76}}), @@ -1111,7 +1115,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts4), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts5), compareSummaryAttributes(map[string]string{"code": "3"}), compareSummary(49, 69, [][]float64{{0.5, 61}}), @@ -1119,7 +1123,7 @@ func verifyTarget2(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts4), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts5), compareSummaryAttributes(map[string]string{"code": "5"}), compareSummary(429, 209, [][]float64{{0.5, 64}}), @@ -1245,7 +1249,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogram(13003, 50000, []float64{0.2, 0.5, 1}, []uint64{10000, 1000, 1001, 1002}), }, @@ -1260,7 +1264,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts1), compareHistogram(10, 100, nil, []uint64{10}), }, @@ -1275,7 +1279,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummaryAttributes(map[string]string{"foo": "bar"}), compareSummary(900, 8000, [][]float64{{0.01, 31}, {0.05, 35}, {0.5, 47}, {0.9, 70}, {0.99, 76}}), @@ -1283,7 +1287,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts1), compareSummaryAttributes(map[string]string{"foo": "no_quantile"}), compareSummary(50, 100, [][]float64{}), @@ -1323,7 +1327,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts2), compareHistogram(14003, 50100, []float64{0.2, 0.5, 1}, []uint64{11000, 1000, 1001, 1002}), }, @@ -1338,7 +1342,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { histogramPointComparator: []histogramPointComparator{ - compareHistogramStartTimestamp(ts1), + compareHistogramStartTimestamp(tsZero), compareHistogramTimestamp(ts2), compareHistogram(15, 101, nil, []uint64{15}), }, @@ -1353,7 +1357,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc []dataPointExpectation{ { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts2), compareSummaryAttributes(map[string]string{"foo": "bar"}), compareSummary(950, 8100, [][]float64{{0.01, 32}, {0.05, 35}, {0.5, 47}, {0.9, 70}, {0.99, 77}}), @@ -1361,7 +1365,7 @@ func verifyTarget3(t *testing.T, td *testData, resourceMetrics []pmetric.Resourc }, { summaryPointComparator: []summaryPointComparator{ - compareSummaryStartTimestamp(ts1), + compareSummaryStartTimestamp(tsZero), compareSummaryTimestamp(ts2), compareSummaryAttributes(map[string]string{"foo": "no_quantile"}), compareSummary(55, 101, [][]float64{}), @@ -1504,7 +1508,7 @@ func verifyStartTimeMetricPage(t *testing.T, td *testData, result []pmetric.Reso numTimeseries := 0 for _, rm := range result { metrics := getMetrics(rm) - for i := 0; i < len(metrics); i++ { + for i := range metrics { timestamp := startTimeMetricPageStartTimestamp switch metrics[i].Type() { case pmetric.MetricTypeGauge: @@ -1541,6 +1545,11 @@ func verifyStartTimeMetricPage(t *testing.T, td *testData, result []pmetric.Reso // TestStartTimeMetric validates that timeseries have start time set to 'process_start_time_seconds' func TestStartTimeMetric(t *testing.T) { + err := featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.RemoveStartTimeAdjustment", false) + require.NoError(t, err) + defer func() { + _ = featuregate.GlobalRegistry().Set("receiver.prometheusreceiver.RemoveStartTimeAdjustment", true) + }() targets := []*testData{ { name: "target1", diff --git a/otelcollector/prometheusreceiver/metrics_reciever_metric_rename_test.go b/otelcollector/prometheusreceiver/metrics_reciever_metric_rename_test.go index 3f9cd5ed3..a52e07d41 100644 --- a/otelcollector/prometheusreceiver/metrics_reciever_metric_rename_test.go +++ b/otelcollector/prometheusreceiver/metrics_reciever_metric_rename_test.go @@ -185,7 +185,6 @@ func verifyRenameMetricKeepAction(t *testing.T, td *testData, resourceMetrics [] { numberPointComparator: []numberPointComparator{ compareTimestamp(ts1), - compareStartTimestamp(ts1), compareDoubleValue(100), compareAttributes(map[string]string{"method": "post", "port": "6380"}), }, diff --git a/otelcollector/prometheusreceiver/metricsreceiver_api_server_test.go b/otelcollector/prometheusreceiver/metricsreceiver_api_server_test.go new file mode 100644 index 000000000..414d8d138 --- /dev/null +++ b/otelcollector/prometheusreceiver/metricsreceiver_api_server_test.go @@ -0,0 +1,229 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package prometheusreceiver + +import ( + "encoding/json" + "fmt" + "io" + "net/http" + "testing" + + v1 "github.com/prometheus/client_golang/api/prometheus/v1" + "github.com/prometheus/prometheus/config" + api_v1 "github.com/prometheus/prometheus/web/api/v1" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/component/componenttest" + "go.opentelemetry.io/collector/config/confighttp" + "go.opentelemetry.io/collector/consumer/consumertest" + "go.opentelemetry.io/collector/pdata/pmetric" + "go.opentelemetry.io/collector/receiver/receivertest" + + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal/metadata" +) + +type apiResponse struct { + Status string `json:"status"` + Data json.RawMessage `json:"data"` + ErrorType v1.ErrorType `json:"errorType"` + Error string `json:"error"` + Warnings []string `json:"warnings,omitempty"` +} + +type scrapePoolsData struct { + ScrapePools []string `json:"scrapePools"` +} + +func TestPrometheusAPIServer(t *testing.T) { + targets := []*testData{ + { + name: "target1", + pages: []mockPrometheusResponse{ + {code: 200, data: metricSet, useOpenMetrics: false}, + }, + normalizedName: false, + validateFunc: func(t *testing.T, td *testData, result []pmetric.ResourceMetrics) { + verifyMetrics(t, td, result, false) + }, + }, + } + + endpointsToReceivers := map[string]*pReceiver{ + "localhost:9090": nil, + "localhost:9091": nil, + } + for endpoint := range endpointsToReceivers { + ctx := t.Context() + mp, cfg, err := setupMockPrometheus(targets...) + require.NoErrorf(t, err, "Failed to create Prometheus config: %v", err) + defer mp.Close() + + require.NoError(t, err) + receiver, err := newPrometheusReceiver(receivertest.NewNopSettings(metadata.Type), &Config{ + PrometheusConfig: cfg, + APIServer: APIServer{ + Enabled: true, + ServerConfig: confighttp.ServerConfig{ + Endpoint: endpoint, + }, + }, + }, new(consumertest.MetricsSink)) + require.NoError(t, err, "Failed to create Prometheus receiver: %v", err) + endpointsToReceivers[endpoint] = receiver + + require.NoError(t, receiver.Start(ctx, componenttest.NewNopHost())) + t.Cleanup(func() { + require.NoError(t, receiver.Shutdown(ctx)) + response, err := callAPI(endpoint, "/scrape_pools") + require.Error(t, err) + require.Nil(t, response) + }) + + mp.wg.Wait() + } + + for endpoint, receiver := range endpointsToReceivers { + testScrapePools(t, endpoint) + testTargets(t, endpoint) + testTargetsMetadata(t, endpoint) + testPrometheusConfig(t, endpoint, receiver) + testMetricsEndpoint(t, endpoint) + testRuntimeInfo(t, endpoint) + testBuildInfo(t, endpoint) + testFlags(t, endpoint) + } +} + +func callAPI(endpoint, path string) (*apiResponse, error) { + resp, err := http.Get(fmt.Sprintf("http://%s/api/v1%s", endpoint, path)) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + var response apiResponse + err = json.NewDecoder(resp.Body).Decode(&response) + if err != nil { + return nil, err + } + + if response.Status != "success" { + return nil, fmt.Errorf("API call failed: %s", response.Error) + } + + return &response, nil +} + +func testScrapePools(t *testing.T, endpoint string) { + scrapePoolsResponse, err := callAPI(endpoint, "/scrape_pools") + assert.NoError(t, err) + var scrapePools scrapePoolsData + err = json.Unmarshal([]byte(scrapePoolsResponse.Data), &scrapePools) + assert.NoError(t, err) + assert.NotNil(t, scrapePools) + assert.NotEmpty(t, scrapePools.ScrapePools) + assert.Contains(t, scrapePools.ScrapePools, "target1") +} + +func testTargets(t *testing.T, endpoint string) { + targetsResponse, err := callAPI(endpoint, "/targets") + assert.NoError(t, err) + var targets v1.TargetsResult + err = json.Unmarshal([]byte(targetsResponse.Data), &targets) + assert.NoError(t, err) + assert.NotNil(t, targets) + assert.NotNil(t, targets.Active) + for i := range targets.Active { + target := targets.Active[i] + assert.NotNil(t, target) + assert.NotEmpty(t, target.DiscoveredLabels) + assert.NotEmpty(t, target.Labels) + } +} + +func testTargetsMetadata(t *testing.T, endpoint string) { + targetsMetadataResponse, err := callAPI(endpoint, "/targets/metadata?match_target={job=\"target1\"}") + assert.NoError(t, err) + assert.NotNil(t, targetsMetadataResponse) + + var metricMetadataResult []v1.MetricMetadata + err = json.Unmarshal([]byte(targetsMetadataResponse.Data), &metricMetadataResult) + assert.NoError(t, err) + assert.NotNil(t, metricMetadataResult) + for _, metricMetadata := range metricMetadataResult { + assert.NotNil(t, metricMetadata) + assert.NotNil(t, metricMetadata.Target) + assert.NotEmpty(t, metricMetadata.Metric) + assert.NotEmpty(t, metricMetadata.Type) + } +} + +func testPrometheusConfig(t *testing.T, endpoint string, receiver *pReceiver) { + prometheusConfigResponse, err := callAPI(endpoint, "/status/config") + assert.NoError(t, err) + var prometheusConfigResult v1.ConfigResult + err = json.Unmarshal([]byte(prometheusConfigResponse.Data), &prometheusConfigResult) + assert.NoError(t, err) + assert.NotNil(t, prometheusConfigResult) + assert.NotNil(t, prometheusConfigResult.YAML) + prometheusConfig, err := config.Load(prometheusConfigResult.YAML, nil) + assert.NoError(t, err) + assert.NotNil(t, prometheusConfig) + + // Verify that the configuration contains expected elements + assert.NotNil(t, prometheusConfig.GlobalConfig) + assert.NotEmpty(t, prometheusConfig.ScrapeConfigs) + + // Verify that the returned config matches the receiver's current config + assert.Equal(t, receiver.cfg.PrometheusConfig.GlobalConfig.ScrapeInterval, prometheusConfig.GlobalConfig.ScrapeInterval) + assert.Len(t, prometheusConfig.ScrapeConfigs, len(receiver.cfg.PrometheusConfig.ScrapeConfigs)) + + // Verify that the first scrape config has the expected job name + if len(prometheusConfig.ScrapeConfigs) > 0 { + assert.Equal(t, "target1", prometheusConfig.ScrapeConfigs[0].JobName) + } +} + +func testRuntimeInfo(t *testing.T, endpoint string) { + prometheusConfigResponse, err := callAPI(endpoint, "/status/runtimeinfo") + assert.NoError(t, err) + var runtimeInfo api_v1.RuntimeInfo + err = json.Unmarshal([]byte(prometheusConfigResponse.Data), &runtimeInfo) + assert.NoError(t, err) + assert.NotNil(t, runtimeInfo) + assert.NotEmpty(t, runtimeInfo.GoroutineCount) + assert.NotEmpty(t, runtimeInfo.GOMAXPROCS) + assert.NotEmpty(t, runtimeInfo.GOMEMLIMIT) +} + +func testBuildInfo(t *testing.T, endpoint string) { + prometheusConfigResponse, err := callAPI(endpoint, "/status/buildinfo") + assert.NoError(t, err) + + var prometheusVersion api_v1.PrometheusVersion + err = json.Unmarshal([]byte(prometheusConfigResponse.Data), &prometheusVersion) + assert.NoError(t, err) + assert.NotNil(t, prometheusVersion) + assert.NotEmpty(t, prometheusVersion.GoVersion) +} + +func testFlags(t *testing.T, endpoint string) { + prometheusConfigResponse, err := callAPI(endpoint, "/status/flags") + assert.NoError(t, err) + var flagsMap map[string]string + err = json.Unmarshal([]byte(prometheusConfigResponse.Data), &flagsMap) + assert.NoError(t, err) + assert.NotNil(t, flagsMap) +} + +func testMetricsEndpoint(t *testing.T, endpoint string) { + resp, err := http.Get(fmt.Sprintf("http://%s/metrics", endpoint)) + assert.NoError(t, err) + assert.NotNil(t, resp) + defer resp.Body.Close() + content, err := io.ReadAll(resp.Body) + assert.NoError(t, err) + assert.Contains(t, string(content), "prometheus_target_scrape_pools_total") +} diff --git a/otelcollector/prometheusreceiver/targetallocator/config_test.go b/otelcollector/prometheusreceiver/targetallocator/config_test.go deleted file mode 100644 index 0b441fa2a..000000000 --- a/otelcollector/prometheusreceiver/targetallocator/config_test.go +++ /dev/null @@ -1,69 +0,0 @@ -// Copyright The OpenTelemetry Authors -// SPDX-License-Identifier: Apache-2.0 - -package targetallocator // import "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/targetallocator" - -import ( - "path/filepath" - "testing" - "time" - - promConfig "github.com/prometheus/common/config" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "go.opentelemetry.io/collector/component/componenttest" - "go.opentelemetry.io/collector/confmap/confmaptest" - "go.opentelemetry.io/collector/confmap/xconfmap" -) - -func TestComponentConfigStruct(t *testing.T) { - require.NoError(t, componenttest.CheckConfigStruct(Config{})) -} - -func TestLoadTargetAllocatorConfig(t *testing.T) { - cm, err := confmaptest.LoadConf(filepath.Join("testdata", "config.yaml")) - require.NoError(t, err) - cfg := &Config{} - - sub, err := cm.Sub("target_allocator") - require.NoError(t, err) - require.NoError(t, sub.Unmarshal(cfg)) - require.NoError(t, xconfmap.Validate(cfg)) - - assert.Equal(t, "http://localhost:8080", cfg.Endpoint) - assert.Equal(t, 5*time.Second, cfg.Timeout) - assert.Equal(t, "client.crt", cfg.TLS.CertFile) - assert.Equal(t, 30*time.Second, cfg.Interval) - assert.Equal(t, "collector-1", cfg.CollectorID) -} - -func TestPromHTTPClientConfigValidateAuthorization(t *testing.T) { - cfg := PromHTTPClientConfig{} - require.NoError(t, xconfmap.Validate(cfg)) - cfg.Authorization = &promConfig.Authorization{} - require.NoError(t, xconfmap.Validate(cfg)) - cfg.Authorization.CredentialsFile = "none" - require.Error(t, xconfmap.Validate(cfg)) - cfg.Authorization.CredentialsFile = filepath.Join("testdata", "dummy-tls-cert-file") - require.NoError(t, xconfmap.Validate(cfg)) -} - -func TestPromHTTPClientConfigValidateTLSConfig(t *testing.T) { - cfg := PromHTTPClientConfig{} - require.NoError(t, xconfmap.Validate(cfg)) - cfg.TLSConfig.CertFile = "none" - require.Error(t, xconfmap.Validate(cfg)) - cfg.TLSConfig.CertFile = filepath.Join("testdata", "dummy-tls-cert-file") - cfg.TLSConfig.KeyFile = "none" - require.Error(t, xconfmap.Validate(cfg)) - cfg.TLSConfig.KeyFile = filepath.Join("testdata", "dummy-tls-key-file") - require.NoError(t, xconfmap.Validate(cfg)) -} - -func TestPromHTTPClientConfigValidateMain(t *testing.T) { - cfg := PromHTTPClientConfig{} - require.NoError(t, xconfmap.Validate(cfg)) - cfg.BearerToken = "foo" - cfg.BearerTokenFile = filepath.Join("testdata", "dummy-tls-key-file") - require.Error(t, xconfmap.Validate(cfg)) -} diff --git a/otelcollector/test/ginkgo-e2e/configprocessing/go.mod b/otelcollector/test/ginkgo-e2e/configprocessing/go.mod index 6a1e4524d..3c98271b5 100644 --- a/otelcollector/test/ginkgo-e2e/configprocessing/go.mod +++ b/otelcollector/test/ginkgo-e2e/configprocessing/go.mod @@ -1,8 +1,8 @@ module prometheus-collector/otelcollector/test/configprocessing -go 1.23.0 +go 1.24.0 -toolchain go1.23.2 +toolchain go1.24.11 replace prometheus-collector/otelcollector/test/utils => ../utils @@ -10,61 +10,61 @@ require ( github.com/onsi/ginkgo/v2 v2.21.0 github.com/onsi/gomega v1.35.1 github.com/prometheus/client_golang v1.23.2 - github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 - k8s.io/client-go v0.32.3 + github.com/prometheus/prometheus v0.307.3 + k8s.io/client-go v0.34.1 prometheus-collector/otelcollector/test/utils v0.0.0-00010101000000-000000000000 ) require ( - cloud.google.com/go/auth v0.16.2 // indirect + cloud.google.com/go/auth v0.16.5 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect - cloud.google.com/go/compute/metadata v0.7.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect + cloud.google.com/go/compute/metadata v0.8.4 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect github.com/armon/go-metrics v0.4.1 // indirect - github.com/aws/aws-sdk-go-v2 v1.37.0 // indirect - github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.39.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.12 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect - github.com/aws/smithy-go v1.22.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 // indirect + github.com/aws/smithy-go v1.23.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect + github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/digitalocean/godo v1.157.0 // indirect + github.com/digitalocean/godo v1.165.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v28.3.3+incompatible // indirect + github.com/docker/docker v28.4.0+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // 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 + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect @@ -73,22 +73,20 @@ require ( github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/go-zookeeper/zk v1.0.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a // indirect + github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect - github.com/googleapis/gax-go/v2 v2.14.2 // indirect - github.com/gophercloud/gophercloud/v2 v2.7.0 // indirect - github.com/gorilla/websocket v1.5.0 // indirect - github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect + github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect + github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect + github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect github.com/hashicorp/consul/api v1.32.0 // indirect - github.com/hashicorp/cronexpr v1.1.2 // indirect + github.com/hashicorp/cronexpr v1.1.3 // 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 @@ -97,27 +95,27 @@ require ( github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect - github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec // indirect + github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af // indirect github.com/hashicorp/serf v0.10.1 // indirect - github.com/hetznercloud/hcloud-go/v2 v2.21.1 // indirect + github.com/hetznercloud/hcloud-go/v2 v2.25.1 // indirect github.com/ionos-cloud/sdk-go/v6 v6.3.4 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/linode/linodego v1.52.2 // indirect + github.com/linode/linodego v1.59.0 // indirect 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.66 // indirect + github.com/miekg/dns v1.1.68 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/spdystream v0.5.0 // indirect github.com/moby/sys/sequential v0.6.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect @@ -127,49 +125,52 @@ require ( 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 + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect - github.com/prometheus/otlptranslator v0.0.2 // indirect + github.com/prometheus/common v0.67.1 // indirect + github.com/prometheus/otlptranslator v1.0.0 // indirect github.com/prometheus/procfs v0.16.1 // indirect - github.com/prometheus/sigv4 v0.2.0 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.17.2 // indirect + github.com/prometheus/sigv4 v0.2.1 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 // indirect + github.com/spf13/pflag v1.0.6 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.17.3 // indirect github.com/vultr/govultr/v2 v2.17.2 // indirect github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect - go.opentelemetry.io/otel v1.36.0 // indirect - go.opentelemetry.io/otel/metric v1.36.0 // indirect - go.opentelemetry.io/otel/trace v1.36.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect - golang.org/x/crypto v0.41.0 // indirect - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/net v0.43.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/sys v0.35.0 // indirect - golang.org/x/term v0.34.0 // indirect - golang.org/x/text v0.28.0 // indirect - golang.org/x/time v0.12.0 // indirect - golang.org/x/tools v0.35.0 // indirect - google.golang.org/api v0.239.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect - google.golang.org/grpc v1.73.0 // indirect - google.golang.org/protobuf v1.36.8 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect + go.opentelemetry.io/otel v1.38.0 // indirect + go.opentelemetry.io/otel/metric v1.38.0 // indirect + go.opentelemetry.io/otel/trace v1.38.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/crypto v0.42.0 // indirect + golang.org/x/exp v0.0.0-20250808145144-a408d31f581a // indirect + golang.org/x/mod v0.27.0 // indirect + golang.org/x/net v0.44.0 // indirect + golang.org/x/oauth2 v0.31.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.36.0 // indirect + golang.org/x/term v0.35.0 // indirect + golang.org/x/text v0.29.0 // indirect + golang.org/x/time v0.13.0 // indirect + golang.org/x/tools v0.36.0 // indirect + google.golang.org/api v0.250.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 // indirect + google.golang.org/grpc v1.75.1 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // 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 - k8s.io/api v0.32.3 // indirect - k8s.io/apimachinery v0.32.3 // indirect + k8s.io/api v0.34.1 // indirect + k8s.io/apimachinery v0.34.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect + k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/otelcollector/test/ginkgo-e2e/configprocessing/go.sum b/otelcollector/test/ginkgo-e2e/configprocessing/go.sum index 9e8eb1479..da8a15668 100644 --- a/otelcollector/test/ginkgo-e2e/configprocessing/go.sum +++ b/otelcollector/test/ginkgo-e2e/configprocessing/go.sum @@ -1,17 +1,17 @@ -cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4= -cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA= +cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI= +cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= -cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= -cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= +cloud.google.com/go/compute/metadata v0.8.4 h1:oXMa1VMQBVCyewMIOm3WQsnVd9FbKBtm8reqWRaXnHQ= +cloud.google.com/go/compute/metadata v0.8.4/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 h1:wL5IEG5zb7BVv1Kv0Xm92orq+5hB5Nipn3B5tn4Rqfk= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0/go.mod h1:J7MUC/wtRpfGVbQ5sIItY5/FuVWmvzlY21WAOfQnq/I= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= @@ -24,8 +24,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= 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/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -45,50 +45,50 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go-v2 v1.37.0 h1:YtCOESR/pN4j5oA7cVHSfOwIcuh/KwHC4DOSXFbv5F0= -github.com/aws/aws-sdk-go-v2 v1.37.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= -github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= -github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 h1:H2iZoqW/v2Jnrh1FnU725Bq6KJ0k2uP63yH+DcY+HUI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0/go.mod h1:L0FqLbwMXHvNC/7crWV1iIxUlOKYZUE8KuTIA+TozAI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 h1:EDped/rNzAhFPhVY0sDGbtD16OKqksfA8OjF/kLEgw8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0/go.mod h1:uUI335jvzpZRPpjYx6ODc/wg1qH+NnoSTK/FwVeK0C0= +github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= +github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8= +github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 h1:Mv4Bc0mWmv6oDuSWTKnk+wgeqPL5DRFu5bQL9BGPQ8Y= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9/go.mod h1:IKlKfRppK2a1y0gy1yH6zD+yX5uplJ6UuPlgd48dJiQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 h1:XHE2G+yaDQql32FZt19QmQt4WuisqQJIkMUSCxeCUl8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0/go.mod h1:t11/j/nH9i6bbsPH9xc04BJOsV2nVPUqrB67/TLDsyM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 h1:eRhU3Sh8dGbaniI6B+I48XJMrTPRkK4DKo+vqIxziOU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0/go.mod h1:paNLV18DZ6FnWE/bd06RIKPDIFpjuvCkGKWTG/GDBeM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 h1:QiiCqpKy0prxq+92uWfESzcb7/8Y9JAamcMOzVYLEoM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0/go.mod h1:ESppxYqXQCpCY+KWl3BdkQjmsQX6zxKP39SnDtRDoU0= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= -github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= -github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 h1:7p9bJCZ/b3EJXXARW7JMEs2IhsnI4YFHpfXQfgMh0eg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1/go.mod h1:M8WWWIfXmxA4RgTXcI/5cSByxRqjgne32Sh0VIbrn0A= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 h1:J1A0VJlt5HgUX6s11Obe9zrBDECeE2uhQc7Dwhdei9o= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1/go.mod h1:WEOSRNyfIfvgrD9MuSIGrogKyuFahaVMziVq1pHI0NQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 h1:A1oRkiSQOWstGh61y4Wc/yQ04sqrQZr1Si/oAXj20/s= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 h1:5fm5RTONng73/QA73LhCNR7UT9RpFH3hR6HWL6bIgVY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1/go.mod h1:xBEjWD13h+6nq+z4AkqSfSvqRKFgDIQeaMguAJndOWo= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 h1:p3jIvqYwUZgu/XYeI48bJxOhvm47hZb5HUQ0tn6Q9kA= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6/go.mod h1:WtKK+ppze5yKPkZ0XwqIVWD4beCwv056ZbPQNoeHqM8= +github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= +github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= 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/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= -github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= 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/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k= -github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -99,24 +99,22 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs 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-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/digitalocean/godo v1.157.0 h1:ReELaS6FxXNf8gryUiVH0wmyUmZN8/NCmBX4gXd3F0o= -github.com/digitalocean/godo v1.157.0/go.mod h1:tYeiWY5ZXVpU48YaFv0M5irUFHXGorZpDNm7zzdWMzM= +github.com/digitalocean/godo v1.165.1 h1:H37+W7TaGFOVH+HpMW4ZeW/hrq3AGNxg+B/K8/dZ9mQ= +github.com/digitalocean/godo v1.165.1/go.mod h1:xQsWpVCCbkDrWisHA72hPzPlnC+4W5w/McZY5ij9uvU= 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/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v28.3.3+incompatible h1:Dypm25kh4rmk49v1eiVbsAtpAsYURjYkaKubwuBdxEI= -github.com/docker/docker v28.3.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.4.0+incompatible h1:KVC7bz5zJY/4AZe/78BIvCnPsLaC9T/zh72xnlrTTOk= +github.com/docker/docker v28.4.0+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/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/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/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= -github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo= +github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -126,10 +124,10 @@ 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/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/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -137,8 +135,8 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 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/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/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.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= @@ -157,53 +155,50 @@ github.com/go-zookeeper/zk v1.0.4/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= 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.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/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/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +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.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= 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.2/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.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= 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-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18= -github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8 h1:ZI8gCoCjGzPsum4L21jHdQs8shFBIQih1TM9Rd/c+EQ= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= 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.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= -github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= -github.com/gophercloud/gophercloud/v2 v2.7.0 h1:o0m4kgVcPgHlcXiWAjoVxGd8QCmvM5VU+YM71pFbn0E= -github.com/gophercloud/gophercloud/v2 v2.7.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= -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/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= +github.com/gophercloud/gophercloud/v2 v2.8.0 h1:of2+8tT6+FbEYHfYC8GBu8TXJNsXYSNm9KuvpX7Neqo= +github.com/gophercloud/gophercloud/v2 v2.8.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 h1:cLN4IBkmkYZNnk7EAJ0BHIethd+J6LqxFNw5mSiI2bM= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/hashicorp/consul/api v1.32.0 h1:5wp5u780Gri7c4OedGEPzmlUEzi0g2KyiPphSr6zjVg= github.com/hashicorp/consul/api v1.32.0/go.mod h1:Z8YgY0eVPukT/17ejW+l+C7zJmKwgPHtjU1q16v/Y40= 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= -github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/cronexpr v1.1.3 h1:rl5IkxXN2m681EfivTlccqIryzYJSXRGRNa0xeG7NA4= +github.com/hashicorp/cronexpr v1.1.3/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= 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= @@ -244,16 +239,16 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= 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-20241218080744-e3ac00f30eec h1:+YBzb977VrmffaCX/OBm17dEVJUcWn5dW+eqs3aIJ/A= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af h1:ScAYf8O+9xTqTJPZH8MIlUfO+ak8cb31rW1aYJgS+jE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af/go.mod h1:sldFTIgs+FsUeKU3LwVjviAIuksxD8TzDOn02MYwslE= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hetznercloud/hcloud-go/v2 v2.21.1 h1:IH3liW8/cCRjfJ4cyqYvw3s1ek+KWP8dl1roa0lD8JM= -github.com/hetznercloud/hcloud-go/v2 v2.21.1/go.mod h1:XOaYycZJ3XKMVWzmqQ24/+1V7ormJHmPdck/kxrNnQA= +github.com/hetznercloud/hcloud-go/v2 v2.25.1 h1:ib86acotlvgUSnKfFG5FJl0VFeYKe/Ht8nmikdUp+po= +github.com/hetznercloud/hcloud-go/v2 v2.25.1/go.mod h1:uQdAWaW3d9TimiyOjQWY8HKShs0Nd6S4wNYqo0HjvIY= github.com/ionos-cloud/sdk-go/v6 v6.3.4 h1:jTvGl4LOF8v8OYoEIBNVwbFoqSGAFqn6vGE7sp7/BqQ= github.com/ionos-cloud/sdk-go/v6 v6.3.4/go.mod h1:wCVwNJ/21W29FWFUv+fNawOTMlFoP1dS3L+ZuztFW48= -github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= -github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= +github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= +github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -282,8 +277,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/linode/linodego v1.52.2 h1:N9ozU27To1LMSrDd8WvJZ5STSz1eGYdyLnxhAR/dIZg= -github.com/linode/linodego v1.52.2/go.mod h1:bI949fZaVchjWyKIA08hNyvAcV6BAS+PM2op3p7PAWA= +github.com/linode/linodego v1.59.0 h1:kYz6sQH9g0u21gbI1UUFjZmFLirtc39JPybygrW76Q0= +github.com/linode/linodego v1.59.0/go.mod h1:1+Bt0oTz5rBnDOJbGhccxn7LYVytXTIIfAy7QYmijDs= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -306,13 +301,11 @@ 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.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE= -github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE= +github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA= +github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= 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 v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/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= @@ -331,8 +324,9 @@ 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 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 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= @@ -380,38 +374,36 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= 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.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= -github.com/prometheus/otlptranslator v0.0.2 h1:+1CdeLVrRQ6Psmhnobldo0kTp96Rj80DRXRd5OSnMEQ= -github.com/prometheus/otlptranslator v0.0.2/go.mod h1:P8AwMgdD7XEr6QRUJ2QWLpiAZTgTE2UYgjlu3svompI= +github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI= +github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q= +github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= +github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= 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.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 h1:EtTzzd5UW9TXf9C8BUHv66RgdjG51efqGKWmlxMqjgs= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261/go.mod h1:KMw//femth6oNhcWeCrh4Er45VNPkNac87cTK6er/dA= -github.com/prometheus/sigv4 v0.2.0 h1:qDFKnHYFswJxdzGeRP63c4HlH3Vbn1Yf/Ao2zabtVXk= -github.com/prometheus/sigv4 v0.2.0/go.mod h1:D04rqmAaPPEUkjRQxGqjoxdyJuyCh6E0M18fZr0zBiE= -github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= -github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= +github.com/prometheus/prometheus v0.307.3 h1:zGIN3EpiKacbMatcUL2i6wC26eRWXdoXfNPjoBc2l34= +github.com/prometheus/prometheus v0.307.3/go.mod h1:sPbNW+KTS7WmzFIafC3Inzb6oZVaGLnSvwqTdz2jxRQ= +github.com/prometheus/sigv4 v0.2.1 h1:hl8D3+QEzU9rRmbKIRwMKRwaFGyLkbPdH5ZerglRHY0= +github.com/prometheus/sigv4 v0.2.1/go.mod h1:ySk6TahIlsR2sxADuHy4IBFhwEjRGGsfbbLGhFYFj6Q= 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/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 h1:KhF0WejiUTDbL5X55nXowP7zNopwpowa6qaMAWyIE+0= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33/go.mod h1:792k1RTU+5JeMXm35/e2Wgp71qPH/DmDoZrRc+EFZDk= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 h1:8xfn1RzeI9yoCUuEwDy08F+No6PcKZGEDOQ6hrRyLts= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35/go.mod h1:47B1d/YXmSAxlJxUJxClzHR6b3T4M1WyCvwENPQNBWc= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -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/shoenig/test v1.12.2 h1:ZVT8NeIUwGWpZcKaepPmFMoNQ3sVpxvqUh/MAqwFiJI= +github.com/shoenig/test v1.12.2/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.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -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/stackitcloud/stackit-sdk-go/core v0.17.2 h1:jPyn+i8rkp2hM80+hOg0B/1EVRbMt778Tr5RWyK1m2E= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2/go.mod h1:8KIw3czdNJ9sdil9QQimxjR6vHjeINFrRv0iZ67wfn0= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg= 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= @@ -437,43 +429,45 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= -go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= -go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 h1:dNzwXjZKpMpE2JhmO+9HsPl42NIXFIFSUSSs0fiqra0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0/go.mod h1:90PoxvaEB5n6AOdZvi+yWJQoE95U8Dhhw2bSyRqnTD0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 h1:nRVXXvf78e00EwY6Wp0YII8ww2JVWshZ20HfTlE11AM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0/go.mod h1:r49hO7CgrxY9Voaj3Xe8pANWtr0Oq916d0XAmOoCZAQ= -go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= -go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= -go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= -go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= -go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= -go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= -go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= -go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= -go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= -go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= +go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= +go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= +go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= +go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= +go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= +go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= +go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= +go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= +go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= +go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= +go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= +go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= 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= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= 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-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= 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.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= -golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= +golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a h1:Y+7uR/b1Mw2iSXZ3G//1haIiSElDQZ8KWh0h+sZPG90= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= 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.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -483,18 +477,18 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL 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-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= +golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo= +golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= 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.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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= @@ -520,42 +514,44 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/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.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= -golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= +golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= +golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= 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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/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.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= 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/api v0.239.0 h1:2hZKUnFZEy81eugPs4e2XzIJ5SOwQg0G82bpXD65Puo= -google.golang.org/api v0.239.0/go.mod h1:cOVEm2TpdAGHL2z+UwyS+kmlGr3bVWQQ6sYEqkKje50= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 h1:1tXaIXCracvtsRxSBsYDiSBN0cuJvM7QYW+MrpIRY78= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:49MsLSx0oWMOZqcpB3uL8ZOkAh1+TndpJ8ONoCBWiZk= -google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 h1:oWVWY3NzT7KJppx2UKhKmzPq4SRe0LdCijVRwvGeikY= -google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822/go.mod h1:h3c4v36UTKzUiuaOKQ6gr3S+0hovBtUrXzTG/i3+XEc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= -google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/api v0.250.0 h1:qvkwrf/raASj82UegU2RSDGWi/89WkLckn4LuO4lVXM= +google.golang.org/api v0.250.0/go.mod h1:Y9Uup8bDLJJtMzJyQnu+rLRJLA0wn+wTtc6vTlOvfXo= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s= +google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4 h1:8XJ4pajGwOlasW+L13MnEGA8W4115jJySQtVfS2/IBU= +google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4/go.mod h1:NnuHhy+bxcg30o7FnVAZbXsPHUDQ9qKWAQKCD7VxFtk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 h1:V1jCN2HBa8sySkR5vLcCSqJSTMv093Rw9EJefhQGP7M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ= +google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= +google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= 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-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -578,21 +574,23 @@ 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.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= -k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= -k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= -k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= -k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= +k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= +k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= +k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= +k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= +k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= 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-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/otelcollector/test/ginkgo-e2e/prometheusui/go.mod b/otelcollector/test/ginkgo-e2e/prometheusui/go.mod index a40500c22..448730161 100644 --- a/otelcollector/test/ginkgo-e2e/prometheusui/go.mod +++ b/otelcollector/test/ginkgo-e2e/prometheusui/go.mod @@ -1,8 +1,8 @@ module prometheus-collector/otelcollector/test/prometheusui -go 1.23.0 +go 1.24.0 -toolchain go1.23.2 +toolchain go1.24.11 replace prometheus-collector/otelcollector/test/utils => ../utils @@ -10,61 +10,61 @@ require ( github.com/onsi/ginkgo/v2 v2.21.0 github.com/onsi/gomega v1.35.1 github.com/prometheus/client_golang v1.23.2 - github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 - k8s.io/client-go v0.32.3 + github.com/prometheus/prometheus v0.307.3 + k8s.io/client-go v0.34.1 prometheus-collector/otelcollector/test/utils v0.0.0-00010101000000-000000000000 ) require ( - cloud.google.com/go/auth v0.16.2 // indirect + cloud.google.com/go/auth v0.16.5 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect - cloud.google.com/go/compute/metadata v0.7.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect + cloud.google.com/go/compute/metadata v0.8.4 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/network/armnetwork/v4 v4.3.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b // indirect github.com/armon/go-metrics v0.4.1 // indirect - github.com/aws/aws-sdk-go-v2 v1.37.0 // indirect - github.com/aws/aws-sdk-go-v2/config v1.29.14 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.67 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 // indirect + github.com/aws/aws-sdk-go-v2 v1.39.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.31.12 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.18.16 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 // indirect - github.com/aws/smithy-go v1.22.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 // indirect + github.com/aws/smithy-go v1.23.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect + github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/digitalocean/godo v1.157.0 // indirect + github.com/digitalocean/godo v1.165.1 // indirect github.com/distribution/reference v0.5.0 // indirect - github.com/docker/docker v28.3.0+incompatible // indirect + github.com/docker/docker v28.4.0+incompatible // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/emicklei/go-restful/v3 v3.11.0 // indirect - github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect + github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.2.1 // 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 + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect @@ -73,22 +73,20 @@ require ( github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/go-zookeeper/zk v1.0.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.8 // indirect + github.com/golang-jwt/jwt/v5 v5.3.0 // indirect + github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a // indirect + github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/google/uuid v1.6.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect - github.com/googleapis/gax-go/v2 v2.14.2 // indirect - github.com/gophercloud/gophercloud/v2 v2.7.0 // indirect - github.com/gorilla/websocket v1.5.0 // indirect - github.com/grafana/regexp v0.0.0-20240518133315-a468a5bfb3bc // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect + github.com/gophercloud/gophercloud/v2 v2.8.0 // indirect + github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect + github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect github.com/hashicorp/consul/api v1.32.0 // indirect - github.com/hashicorp/cronexpr v1.1.2 // indirect + github.com/hashicorp/cronexpr v1.1.3 // 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 @@ -97,27 +95,27 @@ require ( github.com/hashicorp/go-retryablehttp v0.7.7 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/golang-lru v0.6.0 // indirect - github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec // indirect + github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af // indirect github.com/hashicorp/serf v0.10.1 // indirect - github.com/hetznercloud/hcloud-go/v2 v2.21.1 // indirect + github.com/hetznercloud/hcloud-go/v2 v2.25.1 // indirect github.com/ionos-cloud/sdk-go/v6 v6.3.4 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/jpillora/backoff v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect - github.com/linode/linodego v1.52.2 // indirect + github.com/linode/linodego v1.59.0 // indirect 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.66 // indirect + github.com/miekg/dns v1.1.68 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect github.com/moby/spdystream v0.5.0 // indirect github.com/moby/sys/sequential v0.6.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect @@ -127,49 +125,52 @@ require ( 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 + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect - github.com/prometheus/otlptranslator v0.0.2 // indirect + github.com/prometheus/common v0.67.1 // indirect + github.com/prometheus/otlptranslator v1.0.0 // indirect github.com/prometheus/procfs v0.16.1 // indirect - github.com/prometheus/sigv4 v0.2.0 // indirect - github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.17.2 // indirect + github.com/prometheus/sigv4 v0.2.1 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 // indirect + github.com/spf13/pflag v1.0.6 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.17.3 // indirect github.com/vultr/govultr/v2 v2.17.2 // indirect github.com/x448/float16 v0.8.4 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect - go.opentelemetry.io/otel v1.36.0 // indirect - go.opentelemetry.io/otel/metric v1.36.0 // indirect - go.opentelemetry.io/otel/trace v1.36.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect - golang.org/x/crypto v0.41.0 // indirect - golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect - golang.org/x/mod v0.26.0 // indirect - golang.org/x/net v0.43.0 // indirect - golang.org/x/oauth2 v0.30.0 // indirect - golang.org/x/sync v0.16.0 // indirect - golang.org/x/sys v0.35.0 // indirect - golang.org/x/term v0.34.0 // indirect - golang.org/x/text v0.28.0 // indirect - golang.org/x/time v0.12.0 // indirect - golang.org/x/tools v0.35.0 // indirect - google.golang.org/api v0.239.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect - google.golang.org/grpc v1.73.0 // indirect - google.golang.org/protobuf v1.36.8 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect + go.opentelemetry.io/otel v1.38.0 // indirect + go.opentelemetry.io/otel/metric v1.38.0 // indirect + go.opentelemetry.io/otel/trace v1.38.0 // indirect + go.yaml.in/yaml/v2 v2.4.3 // indirect + go.yaml.in/yaml/v3 v3.0.4 // indirect + golang.org/x/crypto v0.42.0 // indirect + golang.org/x/exp v0.0.0-20250808145144-a408d31f581a // indirect + golang.org/x/mod v0.27.0 // indirect + golang.org/x/net v0.44.0 // indirect + golang.org/x/oauth2 v0.31.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.36.0 // indirect + golang.org/x/term v0.35.0 // indirect + golang.org/x/text v0.29.0 // indirect + golang.org/x/time v0.13.0 // indirect + golang.org/x/tools v0.36.0 // indirect + google.golang.org/api v0.250.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 // indirect + google.golang.org/grpc v1.75.1 // indirect + google.golang.org/protobuf v1.36.10 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // 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 - k8s.io/api v0.32.3 // indirect - k8s.io/apimachinery v0.32.3 // indirect + k8s.io/api v0.34.1 // indirect + k8s.io/apimachinery v0.34.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect - k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect - sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect + k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect + k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/randfill v1.0.0 // indirect + sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect + sigs.k8s.io/yaml v1.6.0 // indirect ) diff --git a/otelcollector/test/ginkgo-e2e/prometheusui/go.sum b/otelcollector/test/ginkgo-e2e/prometheusui/go.sum index 93c684a45..da8a15668 100644 --- a/otelcollector/test/ginkgo-e2e/prometheusui/go.sum +++ b/otelcollector/test/ginkgo-e2e/prometheusui/go.sum @@ -1,17 +1,17 @@ -cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4= -cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA= +cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI= +cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= -cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= -cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1/go.mod h1:JdM5psgjfBf5fo2uWOZhflPWyDBZ/O/CNAH9CtsuZE4= +cloud.google.com/go/compute/metadata v0.8.4 h1:oXMa1VMQBVCyewMIOm3WQsnVd9FbKBtm8reqWRaXnHQ= +cloud.google.com/go/compute/metadata v0.8.4/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1 h1:5YTBM8QDVIBN3sxBil89WfdAAqDZbyJTgh688DSxX5w= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.19.1/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0 h1:wL5IEG5zb7BVv1Kv0Xm92orq+5hB5Nipn3B5tn4Rqfk= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.12.0/go.mod h1:J7MUC/wtRpfGVbQ5sIItY5/FuVWmvzlY21WAOfQnq/I= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2/go.mod h1:Pa9ZNPuoNu/GztvBSKk9J1cDJW6vk/n0zLtV4mgd8N8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 h1:FPKJS1T+clwv+OLGt13a8UjqeRuh0O4SJ3lUriThc+4= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1/go.mod h1:j2chePtV91HrC22tGoRX3sGY42uF13WzmmV80/OdVAA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 h1:9iefClla7iYpfYWdzPCRDozdmndjTm8DXdpCzPajMgA= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2/go.mod h1:XtLgD3ZD34DAaVIIAyG3objl5DynM3CQ/vMcbBNJZGI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do= @@ -24,8 +24,8 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJTmL004Abzc5wDB5VtZG2PJk5ndYDgVacGqfirKxjM= github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1/go.mod h1:tCcJZ0uHAmvjsVYzEFivsRTN00oz5BEsRgQHu5JZ9WE= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= -github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0 h1:XkkQbfMyuH2jTSjQjSoihryI8GINRcs4xp8lNawg0FI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.5.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= 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/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= @@ -45,50 +45,50 @@ github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go-v2 v1.37.0 h1:YtCOESR/pN4j5oA7cVHSfOwIcuh/KwHC4DOSXFbv5F0= -github.com/aws/aws-sdk-go-v2 v1.37.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg= -github.com/aws/aws-sdk-go-v2/config v1.29.14 h1:f+eEi/2cKCg9pqKBoAIwRGzVb70MRKqWX4dg1BDcSJM= -github.com/aws/aws-sdk-go-v2/config v1.29.14/go.mod h1:wVPHWcIFv3WO89w0rE10gzf17ZYy+UVS1Geq8Iei34g= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67 h1:9KxtdcIA/5xPNQyZRgUSpYOE6j9Bc4+D7nZua0KGYOM= -github.com/aws/aws-sdk-go-v2/credentials v1.17.67/go.mod h1:p3C44m+cfnbv763s52gCqrjaqyPikj9Sg47kUVaNZQQ= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0 h1:H2iZoqW/v2Jnrh1FnU725Bq6KJ0k2uP63yH+DcY+HUI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.0/go.mod h1:L0FqLbwMXHvNC/7crWV1iIxUlOKYZUE8KuTIA+TozAI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0 h1:EDped/rNzAhFPhVY0sDGbtD16OKqksfA8OjF/kLEgw8= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.0/go.mod h1:uUI335jvzpZRPpjYx6ODc/wg1qH+NnoSTK/FwVeK0C0= +github.com/aws/aws-sdk-go-v2 v1.39.2 h1:EJLg8IdbzgeD7xgvZ+I8M1e0fL0ptn/M47lianzth0I= +github.com/aws/aws-sdk-go-v2 v1.39.2/go.mod h1:sDioUELIUO9Znk23YVmIk86/9DOpkbyyVb1i/gUNFXY= +github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8= +github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16 h1:4JHirI4zp958zC026Sm+V4pSDwW4pwLefKrc0bF2lwI= +github.com/aws/aws-sdk-go-v2/credentials v1.18.16/go.mod h1:qQMtGx9OSw7ty1yLclzLxXCRbrkjWAM7JnObZjmCB7I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9 h1:Mv4Bc0mWmv6oDuSWTKnk+wgeqPL5DRFu5bQL9BGPQ8Y= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.9/go.mod h1:IKlKfRppK2a1y0gy1yH6zD+yX5uplJ6UuPlgd48dJiQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9 h1:se2vOWGD3dWQUtfn4wEjRQJb1HK1XsNIt825gskZ970= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.9/go.mod h1:hijCGH2VfbZQxqCDN7bwz/4dzxV+hkyhjawAtdPWKZA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9 h1:6RBnKZLkJM4hQ+kN6E7yWFveOTg8NLPHAkqrs4ZPlTU= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.9/go.mod h1:V9rQKRmK7AWuEsOMnHzKj8WyrIir1yUJbZxDuZLFvXI= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0 h1:XHE2G+yaDQql32FZt19QmQt4WuisqQJIkMUSCxeCUl8= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.237.0/go.mod h1:t11/j/nH9i6bbsPH9xc04BJOsV2nVPUqrB67/TLDsyM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0 h1:eRhU3Sh8dGbaniI6B+I48XJMrTPRkK4DKo+vqIxziOU= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.0/go.mod h1:paNLV18DZ6FnWE/bd06RIKPDIFpjuvCkGKWTG/GDBeM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0 h1:QiiCqpKy0prxq+92uWfESzcb7/8Y9JAamcMOzVYLEoM= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.44.0/go.mod h1:ESppxYqXQCpCY+KWl3BdkQjmsQX6zxKP39SnDtRDoU0= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3 h1:1Gw+9ajCV1jogloEv1RRnvfRFia2cL6c9cuKV2Ps+G8= -github.com/aws/aws-sdk-go-v2/service/sso v1.25.3/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1 h1:hXmVKytPfTy5axZ+fYbR5d0cFmC3JvwLm5kM83luako= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19 h1:1XuUZ8mYJw9B6lzAkXhqHlJd/XvaX32evhproijJEZY= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.19/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4= -github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw= -github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 h1:7p9bJCZ/b3EJXXARW7JMEs2IhsnI4YFHpfXQfgMh0eg= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1/go.mod h1:M8WWWIfXmxA4RgTXcI/5cSByxRqjgne32Sh0VIbrn0A= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1 h1:oegbebPEMA/1Jny7kvwejowCaHz1FWZAQ94WXFNCyTM= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.1/go.mod h1:kemo5Myr9ac0U9JfSjMo9yHLtw+pECEHsFtJ9tqCEI8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9 h1:5r34CgVOD4WZudeEKZ9/iKpiT6cM1JyEROpXjOcdWv8= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.9/go.mod h1:dB12CEbNWPbzO2uC6QSWHteqOg4JfBVJOojbAoAUb5I= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1 h1:J1A0VJlt5HgUX6s11Obe9zrBDECeE2uhQc7Dwhdei9o= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.49.1/go.mod h1:WEOSRNyfIfvgrD9MuSIGrogKyuFahaVMziVq1pHI0NQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6 h1:A1oRkiSQOWstGh61y4Wc/yQ04sqrQZr1Si/oAXj20/s= +github.com/aws/aws-sdk-go-v2/service/sso v1.29.6/go.mod h1:5PfYspyCU5Vw1wNPsxi15LZovOnULudOQuVxphSflQA= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1 h1:5fm5RTONng73/QA73LhCNR7UT9RpFH3hR6HWL6bIgVY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.1/go.mod h1:xBEjWD13h+6nq+z4AkqSfSvqRKFgDIQeaMguAJndOWo= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6 h1:p3jIvqYwUZgu/XYeI48bJxOhvm47hZb5HUQ0tn6Q9kA= +github.com/aws/aws-sdk-go-v2/service/sts v1.38.6/go.mod h1:WtKK+ppze5yKPkZ0XwqIVWD4beCwv056ZbPQNoeHqM8= +github.com/aws/smithy-go v1.23.0 h1:8n6I3gXzWJB2DxBDnfxgBaSX6oe0d/t10qGz7OKqMCE= +github.com/aws/smithy-go v1.23.0/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI= 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/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8= -github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= +github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= +github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= 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/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= -github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f h1:C5bqEmzEPLsHm9Mv73lSE9e9bKV23aB1vxOsmZrkl3k= -github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -99,24 +99,22 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs 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-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/digitalocean/godo v1.157.0 h1:ReELaS6FxXNf8gryUiVH0wmyUmZN8/NCmBX4gXd3F0o= -github.com/digitalocean/godo v1.157.0/go.mod h1:tYeiWY5ZXVpU48YaFv0M5irUFHXGorZpDNm7zzdWMzM= +github.com/digitalocean/godo v1.165.1 h1:H37+W7TaGFOVH+HpMW4ZeW/hrq3AGNxg+B/K8/dZ9mQ= +github.com/digitalocean/godo v1.165.1/go.mod h1:xQsWpVCCbkDrWisHA72hPzPlnC+4W5w/McZY5ij9uvU= 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/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= -github.com/docker/docker v28.3.0+incompatible h1:ffS62aKWupCWdvcee7nBU9fhnmknOqDPaJAMtfK0ImQ= -github.com/docker/docker v28.3.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v28.4.0+incompatible h1:KVC7bz5zJY/4AZe/78BIvCnPsLaC9T/zh72xnlrTTOk= +github.com/docker/docker v28.4.0+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/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/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/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= -github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +github.com/emicklei/go-restful/v3 v3.12.2 h1:DhwDP0vY3k8ZzE0RunuJy8GhNpPL6zqLkDf9B/a0/xU= +github.com/emicklei/go-restful/v3 v3.12.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo= +github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs= github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= @@ -126,10 +124,10 @@ 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/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/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -137,8 +135,8 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 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/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/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.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= @@ -157,53 +155,50 @@ github.com/go-zookeeper/zk v1.0.4/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo= +github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE= 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.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/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/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= -github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +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.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= 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.2/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.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= 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-20250607225305-033d6d78b36a h1://KbezygeMJZCSHH+HgUZiTeSoiuFspbMg1ge+eFj18= -github.com/google/pprof v0.0.0-20250607225305-033d6d78b36a/go.mod h1:5hDyRhoBCxViHszMt12TnOpEI4VVi+U8Gm9iphldiMA= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8 h1:ZI8gCoCjGzPsum4L21jHdQs8shFBIQih1TM9Rd/c+EQ= +github.com/google/pprof v0.0.0-20250923004556-9e5a51aed1e8/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= 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.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= -github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= -github.com/gophercloud/gophercloud/v2 v2.7.0 h1:o0m4kgVcPgHlcXiWAjoVxGd8QCmvM5VU+YM71pFbn0E= -github.com/gophercloud/gophercloud/v2 v2.7.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= -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/grpc-ecosystem/grpc-gateway/v2 v2.26.3 h1:5ZPtiqj0JL5oKWmcsq4VMaAW5ukBEgSGXEN89zeH1Jo= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3/go.mod h1:ndYquD05frm2vACXE1nsccT4oJzjhw2arTS2cpUD1PI= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= +github.com/gophercloud/gophercloud/v2 v2.8.0 h1:of2+8tT6+FbEYHfYC8GBu8TXJNsXYSNm9KuvpX7Neqo= +github.com/gophercloud/gophercloud/v2 v2.8.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5THxAzdVpqr6/geYxZytqFMBCOtn/ujyeo= +github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 h1:cLN4IBkmkYZNnk7EAJ0BHIethd+J6LqxFNw5mSiI2bM= +github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853/go.mod h1:+JKpmjMGhpgPL+rXZ5nsZieVzvarn86asRlBg4uNGnk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs= github.com/hashicorp/consul/api v1.32.0 h1:5wp5u780Gri7c4OedGEPzmlUEzi0g2KyiPphSr6zjVg= github.com/hashicorp/consul/api v1.32.0/go.mod h1:Z8YgY0eVPukT/17ejW+l+C7zJmKwgPHtjU1q16v/Y40= 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= -github.com/hashicorp/cronexpr v1.1.2/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= +github.com/hashicorp/cronexpr v1.1.3 h1:rl5IkxXN2m681EfivTlccqIryzYJSXRGRNa0xeG7NA4= +github.com/hashicorp/cronexpr v1.1.3/go.mod h1:P4wA0KBl9C5q2hABiMO7cp6jcIg96CDh1Efb3g1PWA4= 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= @@ -244,16 +239,16 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= 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-20241218080744-e3ac00f30eec h1:+YBzb977VrmffaCX/OBm17dEVJUcWn5dW+eqs3aIJ/A= -github.com/hashicorp/nomad/api v0.0.0-20241218080744-e3ac00f30eec/go.mod h1:svtxn6QnrQ69P23VvIWMR34tg3vmwLz4UdUzm1dSCgE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af h1:ScAYf8O+9xTqTJPZH8MIlUfO+ak8cb31rW1aYJgS+jE= +github.com/hashicorp/nomad/api v0.0.0-20250930071859-eaa0fe0e27af/go.mod h1:sldFTIgs+FsUeKU3LwVjviAIuksxD8TzDOn02MYwslE= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hetznercloud/hcloud-go/v2 v2.21.1 h1:IH3liW8/cCRjfJ4cyqYvw3s1ek+KWP8dl1roa0lD8JM= -github.com/hetznercloud/hcloud-go/v2 v2.21.1/go.mod h1:XOaYycZJ3XKMVWzmqQ24/+1V7ormJHmPdck/kxrNnQA= +github.com/hetznercloud/hcloud-go/v2 v2.25.1 h1:ib86acotlvgUSnKfFG5FJl0VFeYKe/Ht8nmikdUp+po= +github.com/hetznercloud/hcloud-go/v2 v2.25.1/go.mod h1:uQdAWaW3d9TimiyOjQWY8HKShs0Nd6S4wNYqo0HjvIY= github.com/ionos-cloud/sdk-go/v6 v6.3.4 h1:jTvGl4LOF8v8OYoEIBNVwbFoqSGAFqn6vGE7sp7/BqQ= github.com/ionos-cloud/sdk-go/v6 v6.3.4/go.mod h1:wCVwNJ/21W29FWFUv+fNawOTMlFoP1dS3L+ZuztFW48= -github.com/jarcoal/httpmock v1.4.0 h1:BvhqnH0JAYbNudL2GMJKgOHe2CtKlzJ/5rWKyp+hc2k= -github.com/jarcoal/httpmock v1.4.0/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= +github.com/jarcoal/httpmock v1.4.1 h1:0Ju+VCFuARfFlhVXFc2HxlcQkfB+Xq12/EotHko+x2A= +github.com/jarcoal/httpmock v1.4.1/go.mod h1:ftW1xULwo+j0R0JJkJIIi7UKigZUXCLLanykgjwBXL0= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= @@ -282,8 +277,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/linode/linodego v1.52.2 h1:N9ozU27To1LMSrDd8WvJZ5STSz1eGYdyLnxhAR/dIZg= -github.com/linode/linodego v1.52.2/go.mod h1:bI949fZaVchjWyKIA08hNyvAcV6BAS+PM2op3p7PAWA= +github.com/linode/linodego v1.59.0 h1:kYz6sQH9g0u21gbI1UUFjZmFLirtc39JPybygrW76Q0= +github.com/linode/linodego v1.59.0/go.mod h1:1+Bt0oTz5rBnDOJbGhccxn7LYVytXTIIfAy7QYmijDs= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= @@ -306,13 +301,11 @@ 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.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE= -github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE= +github.com/miekg/dns v1.1.68 h1:jsSRkNozw7G/mnmXULynzMNIsgY2dHC8LO6U6Ij2JEA= +github.com/miekg/dns v1.1.68/go.mod h1:fujopn7TB3Pu3JM69XaawiU0wqjpL9/8xGop5UrTPps= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= 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 v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= -github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/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= @@ -331,8 +324,9 @@ 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 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 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee h1:W5t00kpgFdJifH4BDsTlE89Zl93FEloxaWZfGcifgq8= +github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= @@ -380,38 +374,36 @@ github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNw github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= 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.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= -github.com/prometheus/otlptranslator v0.0.2 h1:+1CdeLVrRQ6Psmhnobldo0kTp96Rj80DRXRd5OSnMEQ= -github.com/prometheus/otlptranslator v0.0.2/go.mod h1:P8AwMgdD7XEr6QRUJ2QWLpiAZTgTE2UYgjlu3svompI= +github.com/prometheus/common v0.67.1 h1:OTSON1P4DNxzTg4hmKCc37o4ZAZDv0cfXLkOt0oEowI= +github.com/prometheus/common v0.67.1/go.mod h1:RpmT9v35q2Y+lsieQsdOh5sXZ6ajUGC8NjZAmr8vb0Q= +github.com/prometheus/otlptranslator v1.0.0 h1:s0LJW/iN9dkIH+EnhiD3BlkkP5QVIUVEoIwkU+A6qos= +github.com/prometheus/otlptranslator v1.0.0/go.mod h1:vRYWnXvI6aWGpsdY/mOT/cbeVRBlPWtBNDb7kGR3uKM= 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.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261 h1:EtTzzd5UW9TXf9C8BUHv66RgdjG51efqGKWmlxMqjgs= -github.com/prometheus/prometheus v0.305.1-0.20250808193045-294f36e80261/go.mod h1:KMw//femth6oNhcWeCrh4Er45VNPkNac87cTK6er/dA= -github.com/prometheus/sigv4 v0.2.0 h1:qDFKnHYFswJxdzGeRP63c4HlH3Vbn1Yf/Ao2zabtVXk= -github.com/prometheus/sigv4 v0.2.0/go.mod h1:D04rqmAaPPEUkjRQxGqjoxdyJuyCh6E0M18fZr0zBiE= -github.com/redis/go-redis/v9 v9.8.0 h1:q3nRvjrlge/6UD7eTu/DSg2uYiU2mCL0G/uzBWqhicI= -github.com/redis/go-redis/v9 v9.8.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw= +github.com/prometheus/prometheus v0.307.3 h1:zGIN3EpiKacbMatcUL2i6wC26eRWXdoXfNPjoBc2l34= +github.com/prometheus/prometheus v0.307.3/go.mod h1:sPbNW+KTS7WmzFIafC3Inzb6oZVaGLnSvwqTdz2jxRQ= +github.com/prometheus/sigv4 v0.2.1 h1:hl8D3+QEzU9rRmbKIRwMKRwaFGyLkbPdH5ZerglRHY0= +github.com/prometheus/sigv4 v0.2.1/go.mod h1:ySk6TahIlsR2sxADuHy4IBFhwEjRGGsfbbLGhFYFj6Q= 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/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33 h1:KhF0WejiUTDbL5X55nXowP7zNopwpowa6qaMAWyIE+0= -github.com/scaleway/scaleway-sdk-go v1.0.0-beta.33/go.mod h1:792k1RTU+5JeMXm35/e2Wgp71qPH/DmDoZrRc+EFZDk= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35 h1:8xfn1RzeI9yoCUuEwDy08F+No6PcKZGEDOQ6hrRyLts= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.35/go.mod h1:47B1d/YXmSAxlJxUJxClzHR6b3T4M1WyCvwENPQNBWc= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -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/shoenig/test v1.12.2 h1:ZVT8NeIUwGWpZcKaepPmFMoNQ3sVpxvqUh/MAqwFiJI= +github.com/shoenig/test v1.12.2/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.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -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/stackitcloud/stackit-sdk-go/core v0.17.2 h1:jPyn+i8rkp2hM80+hOg0B/1EVRbMt778Tr5RWyK1m2E= -github.com/stackitcloud/stackit-sdk-go/core v0.17.2/go.mod h1:8KIw3czdNJ9sdil9QQimxjR6vHjeINFrRv0iZ67wfn0= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3 h1:GsZGmRRc/3GJLmCUnsZswirr5wfLRrwavbnL/renOqg= +github.com/stackitcloud/stackit-sdk-go/core v0.17.3/go.mod h1:HBCXJGPgdRulplDzhrmwC+Dak9B/x0nzNtmOpu+1Ahg= 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= @@ -437,43 +429,45 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= -go.opentelemetry.io/otel v1.36.0 h1:UumtzIklRBY6cI/lllNZlALOF5nNIzJVb16APdvgTXg= -go.opentelemetry.io/otel v1.36.0/go.mod h1:/TcFMXYjyRNh8khOAO9ybYkqaDBb/70aVwkNML4pP8E= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0 h1:dNzwXjZKpMpE2JhmO+9HsPl42NIXFIFSUSSs0fiqra0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.36.0/go.mod h1:90PoxvaEB5n6AOdZvi+yWJQoE95U8Dhhw2bSyRqnTD0= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 h1:nRVXXvf78e00EwY6Wp0YII8ww2JVWshZ20HfTlE11AM= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0/go.mod h1:r49hO7CgrxY9Voaj3Xe8pANWtr0Oq916d0XAmOoCZAQ= -go.opentelemetry.io/otel/metric v1.36.0 h1:MoWPKVhQvJ+eeXWHFBOPoBOi20jh6Iq2CcCREuTYufE= -go.opentelemetry.io/otel/metric v1.36.0/go.mod h1:zC7Ks+yeyJt4xig9DEw9kuUFe5C3zLbVjV2PzT6qzbs= -go.opentelemetry.io/otel/sdk v1.36.0 h1:b6SYIuLRs88ztox4EyrvRti80uXIFy+Sqzoh9kFULbs= -go.opentelemetry.io/otel/sdk v1.36.0/go.mod h1:+lC+mTgD+MUWfjJubi2vvXWcVxyr9rmlshZni72pXeY= -go.opentelemetry.io/otel/sdk/metric v1.36.0 h1:r0ntwwGosWGaa0CrSt8cuNuTcccMXERFwHX4dThiPis= -go.opentelemetry.io/otel/sdk/metric v1.36.0/go.mod h1:qTNOhFDfKRwX0yXOqJYegL5WRaW376QbB7P4Pb0qva4= -go.opentelemetry.io/otel/trace v1.36.0 h1:ahxWNuqZjpdiFAyrIoQ4GIiAIhxAunQR6MUoKrsNd4w= -go.opentelemetry.io/otel/trace v1.36.0/go.mod h1:gQ+OnDZzrybY4k4seLzPAWNwVBBVlF2szhehOBB/tGA= -go.opentelemetry.io/proto/otlp v1.6.0 h1:jQjP+AQyTf+Fe7OKj/MfkDrmK4MNVtw2NpXsf9fefDI= -go.opentelemetry.io/proto/otlp v1.6.0/go.mod h1:cicgGehlFuNdgZkcALOCh3VE6K/u2tAjzlRhDwmVpZc= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= +go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8= +go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4= +go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA= +go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI= +go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E= +go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg= +go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM= +go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA= +go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE= +go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs= +go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4= +go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE= 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= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0= +go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= +go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= +go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= 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-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= 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.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4= -golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= -golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= +golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a h1:Y+7uR/b1Mw2iSXZ3G//1haIiSElDQZ8KWh0h+sZPG90= +golang.org/x/exp v0.0.0-20250808145144-a408d31f581a/go.mod h1:rT6SFzZ7oxADUDx58pcaKFTcZ+inxAa9fTrYx/uVYwg= 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.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg= -golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -483,18 +477,18 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL 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-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= -golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= -golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= -golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= +golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= +golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo= +golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= 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.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= -golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/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= @@ -520,42 +514,44 @@ golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/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.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.34.0 h1:O/2T7POpk0ZZ7MAzMeWFSg6S5IpWd/RXDlM9hgM3DR4= -golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= +golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= +golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= 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.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng= -golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= -golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= -golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= +golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI= +golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/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.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0= -golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= 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/api v0.239.0 h1:2hZKUnFZEy81eugPs4e2XzIJ5SOwQg0G82bpXD65Puo= -google.golang.org/api v0.239.0/go.mod h1:cOVEm2TpdAGHL2z+UwyS+kmlGr3bVWQQ6sYEqkKje50= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 h1:1tXaIXCracvtsRxSBsYDiSBN0cuJvM7QYW+MrpIRY78= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:49MsLSx0oWMOZqcpB3uL8ZOkAh1+TndpJ8ONoCBWiZk= -google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 h1:oWVWY3NzT7KJppx2UKhKmzPq4SRe0LdCijVRwvGeikY= -google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822/go.mod h1:h3c4v36UTKzUiuaOKQ6gr3S+0hovBtUrXzTG/i3+XEc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= -google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/api v0.250.0 h1:qvkwrf/raASj82UegU2RSDGWi/89WkLckn4LuO4lVXM= +google.golang.org/api v0.250.0/go.mod h1:Y9Uup8bDLJJtMzJyQnu+rLRJLA0wn+wTtc6vTlOvfXo= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s= +google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4 h1:8XJ4pajGwOlasW+L13MnEGA8W4115jJySQtVfS2/IBU= +google.golang.org/genproto/googleapis/api v0.0.0-20250929231259-57b25ae835d4/go.mod h1:NnuHhy+bxcg30o7FnVAZbXsPHUDQ9qKWAQKCD7VxFtk= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 h1:V1jCN2HBa8sySkR5vLcCSqJSTMv093Rw9EJefhQGP7M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ= +google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI= +google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= 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-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -578,21 +574,23 @@ 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.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= -k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls= -k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k= -k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U= -k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= -k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU= -k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY= +k8s.io/api v0.34.1 h1:jC+153630BMdlFukegoEL8E/yT7aLyQkIVuwhmwDgJM= +k8s.io/api v0.34.1/go.mod h1:SB80FxFtXn5/gwzCoN6QCtPD7Vbu5w2n1S0J5gFfTYk= +k8s.io/apimachinery v0.34.1 h1:dTlxFls/eikpJxmAC7MVE8oOeP1zryV7iRyIjB0gky4= +k8s.io/apimachinery v0.34.1/go.mod h1:/GwIlEcWuTX9zKIg2mbw0LRFIsXwrfoVxn+ef0X13lw= +k8s.io/client-go v0.34.1 h1:ZUPJKgXsnKwVwmKKdPfw4tB58+7/Ik3CrjOEhsiZ7mY= +k8s.io/client-go v0.34.1/go.mod h1:kA8v0FP+tk6sZA0yKLRG67LWjqufAoSHA2xVGKw9Of8= 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-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y= -k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro= -k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8= -sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA= -sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b h1:MloQ9/bdJyIu9lb1PzujOPolHyvO06MXG5TUIj2mNAA= +k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b/go.mod h1:UZ2yyWbFTpuhSbFhv24aGNOdoRdJZgsIObGBUaYVsts= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 h1:hwvWFiBzdWw1FhfY1FooPn3kzWuJ8tmbZBHi4zVsl1Y= +k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0 h1:jTijUJbW353oVOd9oTlifJqOGEkUw2jB/fXCbTiQEco= +sigs.k8s.io/structured-merge-diff/v6 v6.3.0/go.mod h1:M3W8sfWvn2HhQDIbGWj3S099YozAsymCo/wrT5ohRUE= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4= diff --git a/otelcollector/test/ginkgo-e2e/regionTests/go.mod b/otelcollector/test/ginkgo-e2e/regionTests/go.mod index 14764a75c..2daabdbe3 100644 --- a/otelcollector/test/ginkgo-e2e/regionTests/go.mod +++ b/otelcollector/test/ginkgo-e2e/regionTests/go.mod @@ -8,7 +8,6 @@ replace prometheus-collector/otelcollector/test/utils => ../utils require ( github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.1 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 github.com/Azure/azure-sdk-for-go/sdk/monitor/azquery v1.1.0 github.com/onsi/ginkgo/v2 v2.21.0 github.com/onsi/gomega v1.35.1 @@ -19,6 +18,7 @@ require ( ) require ( + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect diff --git a/otelcollector/test/ginkgo-e2e/utils/go.mod b/otelcollector/test/ginkgo-e2e/utils/go.mod index b8b7911c0..07c285a66 100644 --- a/otelcollector/test/ginkgo-e2e/utils/go.mod +++ b/otelcollector/test/ginkgo-e2e/utils/go.mod @@ -26,7 +26,7 @@ require ( github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.23.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v5 v5.2.2 // indirect + github.com/golang-jwt/jwt/v5 v5.2.1 // indirect github.com/golang/protobuf v1.5.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.7.0 // indirect diff --git a/otelcollector/test/ginkgo-e2e/utils/go.sum b/otelcollector/test/ginkgo-e2e/utils/go.sum index 42be56ebe..dc820f985 100644 --- a/otelcollector/test/ginkgo-e2e/utils/go.sum +++ b/otelcollector/test/ginkgo-e2e/utils/go.sum @@ -43,8 +43,8 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= -github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=