diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index b3564fbb4..b427615dd 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -495,6 +495,9 @@ jobs: # the cacheless retry, so any future non-cache flag is applied to both. # CACHE holds only the cache-specific flags. COMMON=() + if [ "${{ matrix.subtree.id }}" = "byoo-otel-collector" ]; then + COMMON+=(--jobs=1) + fi CACHE=(--remote_cache=) if [ "${CACHE_READY:-0}" = "1" ]; then CACHE=(--remote_cache="$CACHE_ENDPOINT" @@ -589,6 +592,9 @@ jobs: # They still compile in the build step; only their execution is # deferred to that lane (see the bazel-integration job). COMMON=(--flaky_test_attempts=3 --test_tag_filters=-requires-docker) + if [ "${{ matrix.subtree.id }}" = "byoo-otel-collector" ]; then + COMMON+=(--jobs=1) + fi CACHE=(--remote_cache=) if [ "${CACHE_READY:-0}" = "1" ]; then CACHE=(--remote_cache="$CACHE_ENDPOINT" diff --git a/.github/workflows/byoo-otel-collector.yml b/.github/workflows/byoo-otel-collector.yml new file mode 100644 index 000000000..1dbd76ed2 --- /dev/null +++ b/.github/workflows/byoo-otel-collector.yml @@ -0,0 +1,152 @@ +# SPDX-FileCopyrightText: Copyright (c) NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +name: byoo-otel-collector + +on: + push: + branches: [main] + pull_request: + branches: [main] + merge_group: + types: [checks_requested] + workflow_dispatch: + +permissions: + contents: read + +defaults: + run: + shell: bash + +concurrency: + group: byoo-otel-collector-${{ github.ref }} + cancel-in-progress: true + +jobs: + detect: + name: detect BYOO OTel collector changes + runs-on: ubuntu-latest + outputs: + changed: ${{ steps.detect.outputs.changed }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Detect changes + id: detect + env: + EVENT: ${{ github.event_name }} + REF: ${{ github.ref }} + BEFORE_SHA: ${{ github.event.before }} + HEAD_SHA: ${{ github.sha }} + BASE_REF: ${{ github.base_ref }} + BASE_SHA: ${{ github.event.pull_request.base.sha }} + MERGE_GROUP_BASE_SHA: ${{ github.event.merge_group.base_sha }} + run: | + set -euo pipefail + + run_all=false + changed="" + + case "$EVENT" in + workflow_dispatch) + run_all=true + ;; + pull_request) + if ! changed=$(git diff --name-only "${BASE_SHA}...HEAD" 2>/dev/null); then + echo "diff against pull request base failed; running BYOO OTel collector checks" + run_all=true + fi + ;; + push) + if [ -z "${BEFORE_SHA}" ] || [ "${BEFORE_SHA}" = "0000000000000000000000000000000000000000" ]; then + run_all=true + elif ! changed=$(git diff --name-only "${BEFORE_SHA}..${HEAD_SHA}" 2>/dev/null); then + echo "diff ${BEFORE_SHA}..${HEAD_SHA} failed; running BYOO OTel collector checks" + run_all=true + fi + ;; + merge_group) + if [ -n "${MERGE_GROUP_BASE_SHA}" ]; then + if ! changed=$(git diff --name-only "${MERGE_GROUP_BASE_SHA}...HEAD" 2>/dev/null); then + echo "diff against merge group base failed; running BYOO OTel collector checks" + run_all=true + fi + else + run_all=true + fi + ;; + *) + run_all=true + ;; + esac + + if [ "$REF" = "refs/heads/main" ]; then + run_all=true + fi + + if [ "$run_all" = "true" ]; then + echo "changed=true" >> "$GITHUB_OUTPUT" + exit 0 + fi + + if printf "%s\n" "$changed" | grep -qE '^(src/compute-plane-services/byoo-otel-collector/|tools/ci/check-byoo-otel-collector-version|tools/ci/test-check-byoo-otel-collector-version|\.github/workflows/byoo-otel-collector\.yml$)'; then + echo "changed=true" >> "$GITHUB_OUTPUT" + else + echo "changed=false" >> "$GITHUB_OUTPUT" + fi + + version: + name: check VERSION update + needs: detect + if: needs.detect.outputs.changed == 'true' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Run version gate tests + run: ./tools/ci/test-check-byoo-otel-collector-version + + - name: Check BYOO OTel collector VERSION changed + env: + EVENT: ${{ github.event_name }} + BEFORE_SHA: ${{ github.event.before }} + HEAD_SHA: ${{ github.sha }} + BASE_REF: ${{ github.base_ref }} + BASE_SHA: ${{ github.event.pull_request.base.sha }} + MERGE_GROUP_BASE_SHA: ${{ github.event.merge_group.base_sha }} + run: ./tools/ci/check-byoo-otel-collector-version + + validate: + name: validate configs (${{ matrix.mode }}) + needs: detect + if: needs.detect.outputs.changed == 'true' + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + mode: + - vm-container + - vm-helm + - k8s-container + - k8s-helm + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + # The generated otelcol module says `go 1.25.0`, but Linux + # builds of OTel v0.157.0 need the patched toolchain line used + # by this subtree's Bazel module. + go-version-file: src/compute-plane-services/byoo-otel-collector/go.work + + - name: Validate generated collector configs + working-directory: src/compute-plane-services/byoo-otel-collector + env: + GOCACHE: ${{ runner.temp }}/go-cache + GO_BUILD_P: "1" + run: ./scripts/validate-otelconfig.sh "${{ matrix.mode }}" diff --git a/docs/ngc-managed/cluster-management/configuration.md b/docs/ngc-managed/cluster-management/configuration.md index 8726b4ed5..3cfbde8b2 100644 --- a/docs/ngc-managed/cluster-management/configuration.md +++ b/docs/ngc-managed/cluster-management/configuration.md @@ -733,6 +733,28 @@ pod and merged with the generated config at runtime. logLevel: debug ``` +BYOO collector debug and log chunking example: + +```yaml + agentConfig: + mergeConfig: | + agent: + byooLogChunking: + enabled: true + maxPayloadBytes: 262144 + byooDebugMode: + enabled: true + byooOtelCollector: + exporterHelper: + timeout: 30s + sendingQueue: + batch: + flushTimeout: 200ms + sizer: bytes + minSize: 1000000 + maxSize: 1000000 +``` + BYOO metric subset example: ```yaml diff --git a/docs/user/cluster-management/configuration.md b/docs/user/cluster-management/configuration.md index 84e439a79..357d4a08f 100644 --- a/docs/user/cluster-management/configuration.md +++ b/docs/user/cluster-management/configuration.md @@ -854,6 +854,28 @@ isolated test clusters that run the LLM request router tunnel without TLS. For the full LLM addon setup, see [LLM Function Enablement](../llm-function-enablement.md). +BYOO collector debug and log chunking example: + +```yaml +agentConfig: + mergeConfig: | + agent: + byooLogChunking: + enabled: true + maxPayloadBytes: 262144 + byooDebugMode: + enabled: true + byooOtelCollector: + exporterHelper: + timeout: 30s + sendingQueue: + batch: + flushTimeout: 200ms + sizer: bytes + minSize: 1000000 + maxSize: 1000000 +``` + BYOO metric subset example: ```yaml diff --git a/src/compute-plane-services/byoo-otel-collector/AGENTS.md b/src/compute-plane-services/byoo-otel-collector/AGENTS.md index 79f761913..94cbc433c 100644 --- a/src/compute-plane-services/byoo-otel-collector/AGENTS.md +++ b/src/compute-plane-services/byoo-otel-collector/AGENTS.md @@ -34,9 +34,9 @@ otelconfig validation. Do not add a subtree `.gitlab-ci.yml`. Use the script instead of editing version strings by hand: ```bash -./scripts/update-collector-version.sh v0.153.0 v1.59.0 +./scripts/update-collector-version.sh v0.157.0 v1.63.0 # If service release tags are already ahead of the collector patch: -./scripts/update-collector-version.sh v0.153.0 v1.59.0 0.153.2 +./scripts/update-collector-version.sh v0.157.0 v1.63.0 0.153.2 ``` The script updates version references in `otel-collector-build.yaml`, @@ -44,7 +44,7 @@ The script updates version references in `otel-collector-build.yaml`, `Dockerfile.nvcf-otel-collector`, `scripts/regenerate-otelcol.sh`, and `VERSION`. It also updates `.gitlab-ci.yml` when that file exists. Run it from the BYOO collector root. You can pass versions with or without the `v` prefix -(for example, `v0.153.0` or `0.153.0`). Pass the optional `v1.x.y` provider +(for example, `v0.157.0` or `0.157.0`). Pass the optional `v1.x.y` provider version when the stable collector modules need a matching release, and pass the optional app release override when existing service tags require the next BYOO patch version. The app release major/minor must match the collector diff --git a/src/compute-plane-services/byoo-otel-collector/Dockerfile.nvcf-otel-collector b/src/compute-plane-services/byoo-otel-collector/Dockerfile.nvcf-otel-collector index 99ceaa465..06fdcc45e 100644 --- a/src/compute-plane-services/byoo-otel-collector/Dockerfile.nvcf-otel-collector +++ b/src/compute-plane-services/byoo-otel-collector/Dockerfile.nvcf-otel-collector @@ -40,7 +40,7 @@ RUN cd otelcol && \ FROM nvcr.io/nvidia/distroless/go:v4.0.4 AS nvcf-otel-collector LABEL description="NVCF OpenTelemetry Collector - Custom build with curated components for NVCF services" -LABEL version="0.153.0" +LABEL version="0.157.0" COPY --from=builder-otelcol /app/output/otelcol-contrib /otelcol-contrib diff --git a/src/compute-plane-services/byoo-otel-collector/MODULE.bazel b/src/compute-plane-services/byoo-otel-collector/MODULE.bazel index db99fc77d..ea4ce78c5 100644 --- a/src/compute-plane-services/byoo-otel-collector/MODULE.bazel +++ b/src/compute-plane-services/byoo-otel-collector/MODULE.bazel @@ -83,6 +83,7 @@ use_repo( "com_github_kelseyhightower_envconfig", "com_github_open_telemetry_opentelemetry_collector_contrib_exporter_azuremonitorexporter", "com_github_open_telemetry_opentelemetry_collector_contrib_exporter_datadogexporter", + "com_github_open_telemetry_opentelemetry_collector_contrib_exporter_prometheusexporter", "com_github_open_telemetry_opentelemetry_collector_contrib_exporter_prometheusremotewriteexporter", "com_github_open_telemetry_opentelemetry_collector_contrib_exporter_splunkhecexporter", "com_github_open_telemetry_opentelemetry_collector_contrib_extension_basicauthextension", diff --git a/src/compute-plane-services/byoo-otel-collector/MODULE.bazel.lock b/src/compute-plane-services/byoo-otel-collector/MODULE.bazel.lock index 8202d4057..a9d0506ab 100644 --- a/src/compute-plane-services/byoo-otel-collector/MODULE.bazel.lock +++ b/src/compute-plane-services/byoo-otel-collector/MODULE.bazel.lock @@ -260,7 +260,7 @@ "@@rules_oci+//oci:extensions.bzl%oci": { "general": { "bzlTransitiveDigest": "YCU8mhtDKo60hur+x5htbIQXAEDkvywpRHJyp5T9hwg=", - "usagesDigest": "zVlHgiCx54WX98s+HQwuqun/9mV6oDRt5v0Vzc4qmrs=", + "usagesDigest": "aIFs4gM2Y2o8ZzE/UgnkLch5KWIodAP3J21iWkdlvr0=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -268,13 +268,11 @@ "distroless_go_linux_amd64": { "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", "attributes": { - "www_authenticate_challenges": { - "urm.nvidia.com": "Bearer realm=\"https://urm.nvidia.com/artifactory/api/docker/null/v2/token\",service=\"urm.nvidia.com\",scope=\"repository:{repository}:pull\"" - }, + "www_authenticate_challenges": {}, "scheme": "https", - "registry": "urm.nvidia.com", - "repository": "sw-gpu-ucs-hardened-docker/distroless/go", - "identifier": "sha256:6be4473eca4e8a5fdf8d7103a4d35708f5538bb5f7a58f0d12a257bdf362334f", + "registry": "nvcr.io", + "repository": "nvidia/distroless/go", + "identifier": "sha256:2ae1c3f90de1735fefb2a951977b7e78aa1c691f345d58c87b0d6bb7eff4f4d5", "platform": "linux/amd64", "target_name": "distroless_go_linux_amd64", "bazel_tags": [] @@ -283,13 +281,11 @@ "distroless_go_linux_arm64_v8": { "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", "attributes": { - "www_authenticate_challenges": { - "urm.nvidia.com": "Bearer realm=\"https://urm.nvidia.com/artifactory/api/docker/null/v2/token\",service=\"urm.nvidia.com\",scope=\"repository:{repository}:pull\"" - }, + "www_authenticate_challenges": {}, "scheme": "https", - "registry": "urm.nvidia.com", - "repository": "sw-gpu-ucs-hardened-docker/distroless/go", - "identifier": "sha256:6be4473eca4e8a5fdf8d7103a4d35708f5538bb5f7a58f0d12a257bdf362334f", + "registry": "nvcr.io", + "repository": "nvidia/distroless/go", + "identifier": "sha256:2ae1c3f90de1735fefb2a951977b7e78aa1c691f345d58c87b0d6bb7eff4f4d5", "platform": "linux/arm64/v8", "target_name": "distroless_go_linux_arm64_v8", "bazel_tags": [] @@ -299,13 +295,11 @@ "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_alias", "attributes": { "target_name": "distroless_go", - "www_authenticate_challenges": { - "urm.nvidia.com": "Bearer realm=\"https://urm.nvidia.com/artifactory/api/docker/null/v2/token\",service=\"urm.nvidia.com\",scope=\"repository:{repository}:pull\"" - }, + "www_authenticate_challenges": {}, "scheme": "https", - "registry": "urm.nvidia.com", - "repository": "sw-gpu-ucs-hardened-docker/distroless/go", - "identifier": "sha256:6be4473eca4e8a5fdf8d7103a4d35708f5538bb5f7a58f0d12a257bdf362334f", + "registry": "nvcr.io", + "repository": "nvidia/distroless/go", + "identifier": "sha256:2ae1c3f90de1735fefb2a951977b7e78aa1c691f345d58c87b0d6bb7eff4f4d5", "platforms": { "@@platforms//cpu:x86_64": "@distroless_go_linux_amd64", "@@platforms//cpu:arm64": "@distroless_go_linux_arm64_v8" diff --git a/src/compute-plane-services/byoo-otel-collector/Makefile b/src/compute-plane-services/byoo-otel-collector/Makefile index b5ba78841..3b6faaaf2 100644 --- a/src/compute-plane-services/byoo-otel-collector/Makefile +++ b/src/compute-plane-services/byoo-otel-collector/Makefile @@ -1,7 +1,7 @@ .PHONY: test docker-build docker-run update-examples update-config-template validate-config DOCKER_TAG := $(shell whoami)-dev -OTEL_BUILDER_VERSION ?= v0.153.0 +OTEL_BUILDER_VERSION ?= v0.157.0 test: find . -name go.mod -execdir go test -v ./... \; diff --git a/src/compute-plane-services/byoo-otel-collector/README.md b/src/compute-plane-services/byoo-otel-collector/README.md index aaa0760df..248fb6cfa 100644 --- a/src/compute-plane-services/byoo-otel-collector/README.md +++ b/src/compute-plane-services/byoo-otel-collector/README.md @@ -122,13 +122,16 @@ The configuration produced by otelconfig-generator guarantees that only `otlp` t ### 🧩 Oversized Log Chunking -Some telemetry backends reject a single log entry when its body is larger than the backend's per-entry size limit. The BYOO collector can insert a custom `logchunk/byoo` processor into the logs pipeline to split oversized UTF-8 string log bodies into correlated chunks before export. +Some telemetry backends reject a single log entry when its body and attributes are larger than the backend's per-entry size limit. The BYOO collector can insert a custom `logchunk/byoo` processor into the logs pipeline to split oversized log bodies and attributes into correlated chunks before export. Maps and slices are traversed recursively, their string and byte leaves can be split, and each emitted fragment keeps the original partial map or slice type. Scalar values remain atomic. Chunking is disabled by default. Configure it with: -- `BYOO_LOG_CHUNK_MAX_BODY_BYTES`: maximum log body size in bytes before chunking. `0` disables the processor. Enabled values must be at least `4` bytes so chunks can preserve UTF-8 rune boundaries. Use `983040` bytes for normal BYOO deployments to leave room for log attributes and exporter envelope overhead under a `1000000` byte backend entry limit. +- `BYOO_LOG_CHUNKING_ENABLED`: enables the `logchunk/byoo` processor. When enabled without overrides, the collector uses `262144` bytes for `max_payload_bytes` and `false` for dry-run. +- `BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES`: maximum combined log body and attribute payload size in bytes before chunking. `0` uses the enabled-mode default when `BYOO_LOG_CHUNKING_ENABLED=true`. Explicit enabled values must be at least `4` bytes so chunks can preserve UTF-8 rune boundaries. +- `BYOO_LOG_CHUNK_MAX_BODY_BYTES`: deprecated alias for `BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES`. When both are set, `BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES` wins. - `BYOO_LOG_CHUNK_DRY_RUN`: records oversized-log metrics and warnings without mutating log payloads. Dry-run metric datapoints use `mode=dry_run`. -- `BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES`: serialized log export request batch size used for exporterhelper byte splitting. `0` or unset uses the default `1000000` bytes. +- `BYOO_DEBUG_MODE`: enables collector debug logging and adds the `debug` exporter to every generated pipeline. +- `BYOO_OTEL_COLLECTOR_CONFIG_B64`: optional base64-encoded JSON for advanced collector rendering overrides, such as exporterhelper timeout, retry, sending queue, sending queue batch, memory limiter, batch, and log batch settings. - `BYOO_METRIC_SUBSET_ENABLED`: enables an additional OTLP-only metrics pipeline that exposes filtered user metrics through a Prometheus exporter on port `19091`. Disabled by default. - `BYOO_METRIC_SUBSET_FILTER_CONFIG`: optional YAML filter processor config for the metric subset pipeline. If unset, the default drops every metric except `BpsInstrument`, `FpsInstrument`, `RtdInstrument`, and `StageOpenDuration`, and drops datapoints/resources explicitly labeled `metric_subset_enabled=false`. - `BYOO_WORKLOAD_METRICS_DROP_LABELS`: comma-separated resource attribute names removed from the generated workload `metrics` pipeline. If unset, defaults to `metric_subset_enabled` only when the metric subset pipeline is enabled. @@ -141,10 +144,13 @@ When chunking is enabled, each emitted chunk preserves the original log metadata - `log.chunk.offset_bytes` - `log.chunk.original_size_bytes` - `log.chunk.final` +- `log.chunk.structured_paths` when a chunk contains map or slice fragments + +`log.chunk.structured_paths` contains escaped JSON Pointer paths such as `/attributes/payload/messages/0/content`. Consumers can merge partial maps and slices by path in chunk-index order, concatenating repeated string or byte leaves. The processor emits `otelcol_processor_logchunk_*` metrics for oversized records, original bytes, emitted chunks, output bytes, and errors. The metric `mode` attribute distinguishes active chunking (`mode=chunk`) from dry run (`mode=dry_run`). -The generated exporter configuration also uses exporterhelper byte batching with `sending_queue.batch.sizer=bytes` and configurable `min_size=max_size` where applicable. That exporter-side split limits serialized request size, but it cannot split a single oversized log record; the log chunk processor handles the per-record body limit. +Advanced collector config can enable exporterhelper byte batching with `sending_queue.batch.sizer=bytes` and configurable `min_size=max_size` where applicable. That exporter-side split limits serialized request size, but it cannot split a single oversized log record; the log chunk processor handles the per-record body limit. ### 🔐 Secrets Management @@ -211,7 +217,7 @@ Use `make validate-otelconfig` to validate generated configurations against the go build -o bin/byoo-otel-collector ./cmd/byoo-otel-collector # Build Docker image -docker build --build-arg OTEL_BUILDER_VERSION=v0.153.0 \ +docker build --build-arg OTEL_BUILDER_VERSION=v0.157.0 \ -f ./Dockerfile -t byoo-otel-collector:latest . # Run the collector @@ -254,7 +260,7 @@ Otel Collector core is built from source to enable healthcheck v2 extension supp ```bash # Install otel collector builder -go install go.opentelemetry.io/collector/cmd/builder@v0.153.0 +go install go.opentelemetry.io/collector/cmd/builder@v0.157.0 # Build collector builder --config=./otel-collector-build.yaml @@ -269,7 +275,7 @@ The output binary will be generated under the `./output` folder. The BYOO otel collector container can be built directly without a GitLab access token. ```bash -docker build --build-arg OTEL_BUILDER_VERSION=v0.153.0 \ +docker build --build-arg OTEL_BUILDER_VERSION=v0.157.0 \ -t YOUR_REGISTRY/byoo-otel-collector:latest . ``` diff --git a/src/compute-plane-services/byoo-otel-collector/VERSION b/src/compute-plane-services/byoo-otel-collector/VERSION index 790cad13e..a95410b17 100644 --- a/src/compute-plane-services/byoo-otel-collector/VERSION +++ b/src/compute-plane-services/byoo-otel-collector/VERSION @@ -1 +1 @@ -0.153.6 +0.157.0 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_azure_monitor.yaml index e0ac26412..2d792ea6e 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_azure_monitor.yaml @@ -109,11 +109,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input1.yaml index 210c0ee83..eeb64b71f 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input1.yaml @@ -117,11 +117,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input2.yaml index b78b99389..7f3b6d806 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input2.yaml @@ -111,11 +111,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input3.yaml index cf4e96723..2d24c3f3a 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_input3.yaml @@ -115,11 +115,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_logs_stg.yaml index 0eae48596..6c9fe3fb8 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_logs_stg.yaml @@ -112,11 +112,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_prd.yaml index fd599173e..5b279e6e6 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_prd.yaml @@ -106,7 +106,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -249,7 +249,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_stg.yaml index 9bbb30b4f..92d1537e6 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_kratos_thanos_stg.yaml @@ -106,7 +106,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -250,7 +250,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_metric_subset.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_metric_subset.yaml index 42e9c7b90..eebaa15ad 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_metric_subset.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_metric_subset.yaml @@ -113,7 +113,7 @@ exporters: resource_to_telemetry_conversion: enabled: true send_timestamps: true - prometheusremotewrite/PROMETHEUS-workload-metrics-metrics: + prometheus_remote_write/PROMETHEUS-workload-metrics-metrics: endpoint: https://workload-metrics.example.invalid/api/v1/write tls: cert_file: /etc/byoo-otel-collector/secrets/workload-metrics-clientCert @@ -270,7 +270,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/PROMETHEUS-workload-metrics-metrics + - prometheus_remote_write/PROMETHEUS-workload-metrics-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml index 9bbb30b4f..92d1537e6 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml @@ -106,7 +106,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -250,7 +250,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_azure_monitor.yaml index 432ef05d8..1da031a8a 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_azure_monitor.yaml @@ -156,11 +156,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input1.yaml index e67c27dc5..6884f24da 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input1.yaml @@ -164,11 +164,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input2.yaml index 57e07340e..d26e06934 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input2.yaml @@ -158,11 +158,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input3.yaml index e6a4eac6c..f43f649f8 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_input3.yaml @@ -162,11 +162,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_logs_stg.yaml index e9a90b4f9..61d7bd4f6 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_logs_stg.yaml @@ -159,11 +159,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_prd.yaml index fc3ef8c96..1639862b6 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_prd.yaml @@ -153,7 +153,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -296,7 +296,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_stg.yaml index 015d7346a..d183fdb4b 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_kratos_thanos_stg.yaml @@ -153,7 +153,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -297,7 +297,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml index 015d7346a..d183fdb4b 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml @@ -153,7 +153,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -297,7 +297,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_azure_monitor.yaml index 3fdd56d14..a87bc857a 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_azure_monitor.yaml @@ -109,11 +109,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input1.yaml index 5966cda24..23a71d0ea 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input1.yaml @@ -117,11 +117,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input2.yaml index a67da1b99..ac19d8e4b 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input2.yaml @@ -111,11 +111,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input3.yaml index a6403c961..7c6efce55 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_input3.yaml @@ -115,11 +115,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_logs_stg.yaml index 81a356529..666e0af1e 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_logs_stg.yaml @@ -112,11 +112,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_prd.yaml index 87c748136..979b6d592 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_prd.yaml @@ -106,7 +106,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -241,7 +241,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_stg.yaml index 55e975cfc..8696b5836 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_kratos_thanos_stg.yaml @@ -106,7 +106,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -242,7 +242,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml index 55e975cfc..8696b5836 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml @@ -106,7 +106,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -242,7 +242,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_azure_monitor.yaml index 4f4a9c946..2f8bd019d 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_azure_monitor.yaml @@ -156,11 +156,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input1.yaml index 68ea1620e..5c6992214 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input1.yaml @@ -164,11 +164,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input2.yaml index c087b454c..e6d7f0efd 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input2.yaml @@ -158,11 +158,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input3.yaml index 1d03f0dd7..8537c5dab 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_input3.yaml @@ -162,11 +162,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_logs_stg.yaml index 734674124..df894e1f0 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_logs_stg.yaml @@ -159,11 +159,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_prd.yaml index 8783fee81..8a9236c01 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_prd.yaml @@ -153,7 +153,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -288,7 +288,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_stg.yaml index b75bdfc88..a9fe10398 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_kratos_thanos_stg.yaml @@ -153,7 +153,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -289,7 +289,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml index b75bdfc88..a9fe10398 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/k8s/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml @@ -153,7 +153,7 @@ receivers: - targets: - ${env:OTEL_POD_IP:-0.0.0.0}:18888 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -289,7 +289,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_azure_monitor.yaml index b28b67b68..5c67364b3 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_azure_monitor.yaml @@ -139,11 +139,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input1.yaml index 5ace09ead..533675ba2 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input1.yaml @@ -147,11 +147,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input2.yaml index f94eec210..7b322d6d2 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input2.yaml @@ -141,11 +141,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input3.yaml index c3efc75e9..34477a5de 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_input3.yaml @@ -145,11 +145,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_logs_stg.yaml index e19c23e02..371b1ad59 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_logs_stg.yaml @@ -142,11 +142,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_prd.yaml index 90257c7d6..ca8099170 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_prd.yaml @@ -136,7 +136,7 @@ receivers: - targets: - worker-0.default.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -279,7 +279,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_stg.yaml index fb79a2499..9c0285104 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_kratos_thanos_stg.yaml @@ -136,7 +136,7 @@ receivers: - targets: - worker-0.default.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -280,7 +280,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml index fb79a2499..9c0285104 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_container_telemetry_endpoint_kratos_thanos_stg.yaml @@ -136,7 +136,7 @@ receivers: - targets: - worker-0.default.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -280,7 +280,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_azure_monitor.yaml index 4d8ccdc2f..02b2051ac 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_azure_monitor.yaml @@ -151,11 +151,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input1.yaml index e1fc95b3c..a686930b3 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input1.yaml @@ -159,11 +159,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input2.yaml index 8046a73a9..46a130e15 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input2.yaml @@ -153,11 +153,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input3.yaml index 08364935b..4ca623654 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_input3.yaml @@ -157,11 +157,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_logs_stg.yaml index e05e7e631..5cff301af 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_logs_stg.yaml @@ -154,11 +154,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_prd.yaml index cce7649e3..0d0510795 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_prd.yaml @@ -148,7 +148,7 @@ receivers: - targets: - worker-0.mini-service.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -291,7 +291,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_stg.yaml index ab9f0e7c9..dcba1fd11 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_kratos_thanos_stg.yaml @@ -148,7 +148,7 @@ receivers: - targets: - worker-0.mini-service.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -292,7 +292,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml index ab9f0e7c9..dcba1fd11 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_function_helm_telemetry_endpoint_kratos_thanos_stg.yaml @@ -148,7 +148,7 @@ receivers: - targets: - worker-0.mini-service.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -292,7 +292,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_azure_monitor.yaml index 138215417..4f7ba2e64 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_azure_monitor.yaml @@ -139,11 +139,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input1.yaml index a5be45fe0..246a55e7f 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input1.yaml @@ -147,11 +147,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input2.yaml index df5d43cec..bce8f9d69 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input2.yaml @@ -141,11 +141,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input3.yaml index b1b671d2c..ae4a47168 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_input3.yaml @@ -145,11 +145,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_logs_stg.yaml index 3b957c5c3..2986c8050 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_logs_stg.yaml @@ -142,11 +142,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_prd.yaml index 3f1c4f44e..b8a92e357 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_prd.yaml @@ -136,7 +136,7 @@ receivers: - targets: - workload-0.default.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -271,7 +271,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_stg.yaml index 019860a57..5be9f221e 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_kratos_thanos_stg.yaml @@ -136,7 +136,7 @@ receivers: - targets: - workload-0.default.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -272,7 +272,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml index 019860a57..5be9f221e 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_container_telemetry_endpoint_kratos_thanos_stg.yaml @@ -136,7 +136,7 @@ receivers: - targets: - workload-0.default.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -272,7 +272,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_azure_monitor.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_azure_monitor.yaml index a847e0435..4d39ea3a3 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_azure_monitor.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_azure_monitor.yaml @@ -151,11 +151,6 @@ exporters: azuremonitor/AZURE_MONITOR-azure-monitor-prd-logs: connection_string: InstrumentationKey=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-instrumentationKey};IngestionEndpoint=endpoint;LiveEndpoint=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-liveEndpoint};ApplicationId=${file:/etc/byoo-otel-collector/secrets/azure-monitor-prd-applicationId} sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input1.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input1.yaml index 943f77cfc..177d4a455 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input1.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input1.yaml @@ -159,11 +159,6 @@ exporters: splunk_hec/SPLUNK-splunk-prd-logs: endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input2.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input2.yaml index 61fc3bb5b..89e07e4f5 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input2.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input2.yaml @@ -153,11 +153,6 @@ exporters: authenticator: basicauth/GRAFANA_CLOUD-Grafana_prd-logs endpoint: endpoint sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input3.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input3.yaml index ee54dd50e..e3805253f 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input3.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_input3.yaml @@ -157,11 +157,6 @@ exporters: enabled: true hostname_source: first_resource sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_logs_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_logs_stg.yaml index 46e358dc0..f875ab2bb 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_logs_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_logs_stg.yaml @@ -154,11 +154,6 @@ exporters: collector-id: ${file:/etc/byoo-otel-collector/secrets/kratos-logs-stage-collectorId} logs_endpoint: https://kratos-logs-ingest.example.invalid:8443/v1/mtls/logs sending_queue: - batch: - flush_timeout: 200ms - max_size: 1000000 - min_size: 1000000 - sizer: bytes enabled: true num_consumers: 10 queue_size: 1000 diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_prd.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_prd.yaml index 4e47a3620..e23177136 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_prd.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_prd.yaml @@ -148,7 +148,7 @@ receivers: - targets: - workload-0.mini-service.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics: endpoint: https://receivers.thanos.example.com/api/v1/receive tls: cert_file: /etc/byoo-otel-collector/secrets/kratos-thanos-nvcf-clientCert @@ -283,7 +283,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-nvcf-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-nvcf-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_stg.yaml index 27475bbab..89a5418b6 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_kratos_thanos_stg.yaml @@ -148,7 +148,7 @@ receivers: - targets: - workload-0.mini-service.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -284,7 +284,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml index 27475bbab..89a5418b6 100644 --- a/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml +++ b/src/compute-plane-services/byoo-otel-collector/examples/otelconfigs/vm/config_task_helm_telemetry_endpoint_kratos_thanos_stg.yaml @@ -148,7 +148,7 @@ receivers: - targets: - workload-0.mini-service.svc.cluster.local:8010 exporters: - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics: + prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics: endpoint: https://sandbox-receivers.thanos.example.com/api/v1/receive tls: ca_file: /etc/byoo-otel-collector/secrets/kratos-thanos-sandbox-caFile @@ -284,7 +284,7 @@ service: - otlp - prometheus exporters: - - prometheusremotewrite/KRATOS_THANOS-kratos-thanos-sandbox-metrics + - prometheus_remote_write/KRATOS_THANOS-kratos-thanos-sandbox-metrics processors: - memory_limiter - filter/metrics diff --git a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/BUILD.bazel b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/BUILD.bazel index 64c3d2a20..495ca3608 100644 --- a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/BUILD.bazel +++ b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/BUILD.bazel @@ -3,6 +3,7 @@ load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "otelconfig", srcs = [ + "collector_config.go", "embed_config.go", "otelconfig.go", "render.go", diff --git a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/collector_config.go b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/collector_config.go new file mode 100644 index 000000000..df2e54880 --- /dev/null +++ b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/collector_config.go @@ -0,0 +1,374 @@ +/* +SPDX-FileCopyrightText: Copyright (c) NVIDIA CORPORATION & AFFILIATES. All rights reserved. +SPDX-License-Identifier: Apache-2.0 + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package otelconfig + +import ( + "encoding/base64" + "encoding/json" + "fmt" + + "github.com/NVIDIA/nvcf/src/compute-plane-services/byoo-otel-collector/internal/logger" +) + +// OTelCollectorConfig configures BYOO OTel collector rendering behavior. +type OTelCollectorConfig struct { + ExporterHelper ExporterHelperConfig `json:"exporterHelper,omitempty"` + MemoryLimiter MemoryLimiterConfig `json:"memoryLimiter,omitempty"` + Batch BatchConfig `json:"batch,omitempty"` + LogBatch BatchConfig `json:"logBatch,omitempty"` +} + +// IsZero returns true when no collector rendering overrides are configured. +func (c *OTelCollectorConfig) IsZero() bool { + if c == nil { + return true + } + return c.ExporterHelper.IsZero() && + c.MemoryLimiter.IsZero() && + c.Batch.IsZero() && + c.LogBatch.IsZero() +} + +// ExporterHelperConfig configures common exporterhelper settings for BYOO exporters. +type ExporterHelperConfig struct { + Timeout string `json:"timeout,omitempty"` + RetryOnFailure RetryOnFailureConfig `json:"retryOnFailure,omitempty"` + SendingQueue SendingQueueConfig `json:"sendingQueue,omitempty"` +} + +// IsZero returns true when no exporterhelper overrides are configured. +func (c *ExporterHelperConfig) IsZero() bool { + if c == nil { + return true + } + return c.Timeout == "" && c.RetryOnFailure.IsZero() && c.SendingQueue.IsZero() +} + +// RetryOnFailureConfig configures exporterhelper retry_on_failure settings. +type RetryOnFailureConfig struct { + Enabled *bool `json:"enabled,omitempty"` + InitialInterval string `json:"initialInterval,omitempty"` + MaxInterval string `json:"maxInterval,omitempty"` + MaxElapsedTime string `json:"maxElapsedTime,omitempty"` +} + +// IsZero returns true when no retry_on_failure overrides are configured. +func (c *RetryOnFailureConfig) IsZero() bool { + if c == nil { + return true + } + return c.Enabled == nil && c.InitialInterval == "" && c.MaxInterval == "" && c.MaxElapsedTime == "" +} + +// SendingQueueConfig configures exporterhelper sending_queue settings. +type SendingQueueConfig struct { + Enabled *bool `json:"enabled,omitempty"` + NumConsumers *int64 `json:"numConsumers,omitempty"` + QueueSize *int64 `json:"queueSize,omitempty"` + Sizer string `json:"sizer,omitempty"` + Storage string `json:"storage,omitempty"` + BlockOnOverflow *bool `json:"blockOnOverflow,omitempty"` + WaitForResult *bool `json:"waitForResult,omitempty"` + Batch SendingQueueBatchConfig `json:"batch,omitempty"` +} + +// IsZero returns true when no sending_queue overrides are configured. +func (c *SendingQueueConfig) IsZero() bool { + if c == nil { + return true + } + return c.Enabled == nil && + c.NumConsumers == nil && + c.QueueSize == nil && + c.Sizer == "" && + c.Storage == "" && + c.BlockOnOverflow == nil && + c.WaitForResult == nil && + c.Batch.IsZero() +} + +// SendingQueueBatchConfig configures exporterhelper sending_queue.batch settings. +type SendingQueueBatchConfig struct { + FlushTimeout string `json:"flushTimeout,omitempty"` + Sizer string `json:"sizer,omitempty"` + MinSize *int64 `json:"minSize,omitempty"` + MaxSize *int64 `json:"maxSize,omitempty"` +} + +// IsZero returns true when no sending_queue.batch overrides are configured. +func (c *SendingQueueBatchConfig) IsZero() bool { + if c == nil { + return true + } + return c.FlushTimeout == "" && c.Sizer == "" && c.MinSize == nil && c.MaxSize == nil +} + +// MemoryLimiterConfig configures the BYOO collector memory_limiter processor. +type MemoryLimiterConfig struct { + CheckInterval string `json:"checkInterval,omitempty"` + LimitMiB *int64 `json:"limitMiB,omitempty"` + SpikeLimitMiB *int64 `json:"spikeLimitMiB,omitempty"` + LimitPercentage *int64 `json:"limitPercentage,omitempty"` + SpikeLimitPercentage *int64 `json:"spikeLimitPercentage,omitempty"` +} + +// IsZero returns true when no memory_limiter overrides are configured. +func (c *MemoryLimiterConfig) IsZero() bool { + if c == nil { + return true + } + return c.CheckInterval == "" && + c.LimitMiB == nil && + c.SpikeLimitMiB == nil && + c.LimitPercentage == nil && + c.SpikeLimitPercentage == nil +} + +// BatchConfig configures the BYOO collector batch processor. +type BatchConfig struct { + Timeout string `json:"timeout,omitempty"` + SendBatchSize *int64 `json:"sendBatchSize,omitempty"` + SendBatchMaxSize *int64 `json:"sendBatchMaxSize,omitempty"` + MetadataKeys []string `json:"metadataKeys,omitempty"` + MetadataCardinalityLimit *int64 `json:"metadataCardinalityLimit,omitempty"` +} + +// IsZero returns true when no batch processor overrides are configured. +func (c *BatchConfig) IsZero() bool { + if c == nil { + return true + } + return c.Timeout == "" && + c.SendBatchSize == nil && + c.SendBatchMaxSize == nil && + len(c.MetadataKeys) == 0 && + c.MetadataCardinalityLimit == nil +} + +func decodeOTelCollectorConfig(encoded string) (OTelCollectorConfig, error) { + if encoded == "" { + return OTelCollectorConfig{}, nil + } + data, err := base64.StdEncoding.DecodeString(encoded) + if err != nil { + return OTelCollectorConfig{}, fmt.Errorf("decode base64: %w", err) + } + var cfg OTelCollectorConfig + if err := json.Unmarshal(data, &cfg); err != nil { + return OTelCollectorConfig{}, fmt.Errorf("decode json: %w", err) + } + return cfg, nil +} + +func applyOTelCollectorConfig(otelConfig *OpenTelemetryConfig, cfg OTelCollectorConfig) { + if cfg.IsZero() { + return + } + applyExporterHelperConfig(otelConfig, cfg.ExporterHelper) + applyMemoryLimiterConfig(otelConfig, cfg.MemoryLimiter) + applyBatchConfig(otelConfig, "batch", cfg.Batch) + applyLogBatchConfig(otelConfig, cfg.LogBatch) +} + +func applyExporterHelperConfig(otelConfig *OpenTelemetryConfig, cfg ExporterHelperConfig) { + if cfg.IsZero() { + return + } + for exporterID, exporter := range otelConfig.Exporters { + if exporterID == "debug" { + continue + } + if cfg.Timeout != "" { + exporter["timeout"] = cfg.Timeout + } + if !cfg.RetryOnFailure.IsZero() { + retry := mapFromInterface(exporter["retry_on_failure"]) + cfg.RetryOnFailure.applyTo(retry) + exporter["retry_on_failure"] = retry + } + if !cfg.SendingQueue.IsZero() { + queue := mapFromInterface(exporter["sending_queue"]) + cfg.SendingQueue.applyTo(queue) + exporter["sending_queue"] = queue + } + } +} + +func (c RetryOnFailureConfig) applyTo(out map[string]interface{}) { + if c.Enabled != nil { + out["enabled"] = *c.Enabled + } + if c.InitialInterval != "" { + out["initial_interval"] = c.InitialInterval + } + if c.MaxInterval != "" { + out["max_interval"] = c.MaxInterval + } + if c.MaxElapsedTime != "" { + out["max_elapsed_time"] = c.MaxElapsedTime + } +} + +func (c SendingQueueConfig) applyTo(out map[string]interface{}) { + if c.Enabled != nil { + out["enabled"] = *c.Enabled + } else if len(out) == 0 { + out["enabled"] = true + } + if c.NumConsumers != nil { + out["num_consumers"] = *c.NumConsumers + } + if c.QueueSize != nil { + out["queue_size"] = *c.QueueSize + } + if c.Sizer != "" { + out["sizer"] = c.Sizer + } + if c.Storage != "" { + out["storage"] = c.Storage + } + if c.BlockOnOverflow != nil { + out["block_on_overflow"] = *c.BlockOnOverflow + } + if c.WaitForResult != nil { + out["wait_for_result"] = *c.WaitForResult + } + if !c.Batch.IsZero() { + batch := mapFromInterface(out["batch"]) + c.Batch.applyTo(batch) + out["batch"] = batch + } +} + +func (c SendingQueueBatchConfig) applyTo(out map[string]interface{}) { + if c.FlushTimeout != "" { + out["flush_timeout"] = c.FlushTimeout + } + if c.Sizer != "" { + out["sizer"] = c.Sizer + } + if c.MinSize != nil { + out["min_size"] = *c.MinSize + } + if c.MaxSize != nil { + out["max_size"] = *c.MaxSize + } +} + +func applyMemoryLimiterConfig(otelConfig *OpenTelemetryConfig, cfg MemoryLimiterConfig) { + if cfg.IsZero() { + return + } + if cfg.LimitMiB != nil && cfg.LimitPercentage != nil { + warnMemoryLimiterConflict("limit_mib", "limit_percentage") + } + if cfg.SpikeLimitMiB != nil && cfg.SpikeLimitPercentage != nil { + warnMemoryLimiterConflict("spike_limit_mib", "spike_limit_percentage") + } + processor := mapFromInterface(otelConfig.Processors["memory_limiter"]) + if cfg.CheckInterval != "" { + processor["check_interval"] = cfg.CheckInterval + } + if cfg.LimitMiB != nil { + processor["limit_mib"] = *cfg.LimitMiB + delete(processor, "limit_percentage") + } + if cfg.SpikeLimitMiB != nil { + processor["spike_limit_mib"] = *cfg.SpikeLimitMiB + delete(processor, "spike_limit_percentage") + } + if cfg.LimitPercentage != nil { + processor["limit_percentage"] = *cfg.LimitPercentage + delete(processor, "limit_mib") + } + if cfg.SpikeLimitPercentage != nil { + processor["spike_limit_percentage"] = *cfg.SpikeLimitPercentage + delete(processor, "spike_limit_mib") + } + otelConfig.Processors["memory_limiter"] = processor +} + +func warnMemoryLimiterConflict(mibField, percentageField string) { + if logger.Logger == nil { + return + } + logger.Logger.Warnf( + "BYOO OTel collector memory_limiter config sets both %s and %s; using %s and dropping %s", + mibField, + percentageField, + percentageField, + mibField, + ) +} + +func applyBatchConfig(otelConfig *OpenTelemetryConfig, processorID string, cfg BatchConfig) { + if cfg.IsZero() { + return + } + processor := mapFromInterface(otelConfig.Processors[processorID]) + cfg.applyTo(processor) + otelConfig.Processors[processorID] = processor +} + +func (c BatchConfig) applyTo(processor map[string]interface{}) { + if c.Timeout != "" { + processor["timeout"] = c.Timeout + } + if c.SendBatchSize != nil { + processor["send_batch_size"] = *c.SendBatchSize + } + if c.SendBatchMaxSize != nil { + processor["send_batch_max_size"] = *c.SendBatchMaxSize + } + if len(c.MetadataKeys) > 0 { + processor["metadata_keys"] = c.MetadataKeys + } + if c.MetadataCardinalityLimit != nil { + processor["metadata_cardinality_limit"] = *c.MetadataCardinalityLimit + } +} + +func applyLogBatchConfig(otelConfig *OpenTelemetryConfig, cfg BatchConfig) { + if cfg.IsZero() { + return + } + processor := mapFromInterface(otelConfig.Processors["batch/logs"]) + if len(processor) == 0 { + if batchProcessor, ok := otelConfig.Processors["batch"]; ok { + processor = cloneConfigMap(batchProcessor) + } + } + cfg.applyTo(processor) + otelConfig.Processors["batch/logs"] = processor + + logsPipeline, ok := otelConfig.Service.Pipelines["logs"] + if !ok { + return + } + replaced := false + for i, processorID := range logsPipeline.Processors { + if processorID == "batch" || processorID == "batch/logs" { + logsPipeline.Processors[i] = "batch/logs" + replaced = true + } + } + if !replaced { + logsPipeline.Processors = append(logsPipeline.Processors, "batch/logs") + } + otelConfig.Service.Pipelines["logs"] = logsPipeline +} diff --git a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/embed_config.go b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/embed_config.go index 90eb415b2..9a335fcb2 100644 --- a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/embed_config.go +++ b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/embed_config.go @@ -49,12 +49,14 @@ type TemplateConfig struct { LogChunking LogChunkingConfig MetricSubset MetricSubsetConfig WorkloadMetrics WorkloadMetricsConfig - // LogExporterBatchMaxSizeBytes configures exporterhelper byte batching for logs. - // Zero uses the default selected for BYOO. - LogExporterBatchMaxSizeBytes int + OTelCollector OTelCollectorConfig + DebugMode bool } type LogChunkingConfig struct { + Enabled bool + MaxPayloadBytes int + // Deprecated: use MaxPayloadBytes. MaxBodyBytes int DryRun bool } diff --git a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig.go b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig.go index f89fffb48..09d2ef830 100644 --- a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig.go +++ b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig.go @@ -31,20 +31,24 @@ import ( ) type envConfig struct { - NvcfBackendType string `split_words:"true" required:"true"` - NvcfInstanceID string `split_words:"true" required:"true"` - NvcfNamespace string `split_words:"true" required:"true"` - NvcfWorkloadType string `split_words:"true" required:"true"` - NvcfFunctionID string `split_words:"true"` - NvcfFunctionVersionID string `split_words:"true"` - NvctTaskID string `split_words:"true"` - NvcfZoneName string `split_words:"true"` - ByooLogChunkMaxBodyBytes int `split_words:"true"` - ByooLogChunkDryRun bool `split_words:"true"` - ByooLogExporterBatchMaxSizeBytes int `split_words:"true"` - ByooMetricSubsetEnabled bool `split_words:"true"` - ByooMetricSubsetFilterConfig string `split_words:"true"` - ByooWorkloadMetricsDropLabels string `split_words:"true"` + NvcfBackendType string `split_words:"true" required:"true"` + NvcfInstanceID string `split_words:"true" required:"true"` + NvcfNamespace string `split_words:"true" required:"true"` + NvcfWorkloadType string `split_words:"true" required:"true"` + NvcfFunctionID string `split_words:"true"` + NvcfFunctionVersionID string `split_words:"true"` + NvctTaskID string `split_words:"true"` + NvcfZoneName string `split_words:"true"` + ByooLogChunkingEnabled bool `split_words:"true"` + ByooLogChunkMaxPayloadBytes int `split_words:"true"` + // Deprecated: use ByooLogChunkMaxPayloadBytes. + ByooLogChunkMaxBodyBytes int `split_words:"true"` + ByooLogChunkDryRun bool `split_words:"true"` + ByooDebugMode bool `split_words:"true"` + ByooMetricSubsetEnabled bool `split_words:"true"` + ByooMetricSubsetFilterConfig string `split_words:"true"` + ByooWorkloadMetricsDropLabels string `split_words:"true"` + ByooOtelCollectorConfigB64 string `split_words:"true"` } func processEnvConfig(env *envConfig) error { @@ -72,13 +76,21 @@ func getTemplateConfig() (TemplateConfig, error) { tcgf.WorkloadType = WorkloadType(env.NvcfWorkloadType) tcgf.Namespace = env.NvcfNamespace tcgf.InstanceID = env.NvcfInstanceID + tcgf.LogChunking.Enabled = env.ByooLogChunkingEnabled + tcgf.LogChunking.MaxPayloadBytes = env.ByooLogChunkMaxPayloadBytes tcgf.LogChunking.MaxBodyBytes = env.ByooLogChunkMaxBodyBytes tcgf.LogChunking.DryRun = env.ByooLogChunkDryRun - logExporterBatchMaxSizeBytes, err := resolvedLogExporterBatchMaxSizeBytes(env.ByooLogExporterBatchMaxSizeBytes) + logChunking, err := resolvedLogChunkingConfig(tcgf.LogChunking) if err != nil { - return TemplateConfig{}, fmt.Errorf("BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES: %w", err) + return TemplateConfig{}, fmt.Errorf("BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES: %w", err) } - tcgf.LogExporterBatchMaxSizeBytes = logExporterBatchMaxSizeBytes + tcgf.LogChunking = logChunking + otelCollectorConfig, err := decodeOTelCollectorConfig(env.ByooOtelCollectorConfigB64) + if err != nil { + return TemplateConfig{}, fmt.Errorf("BYOO_OTEL_COLLECTOR_CONFIG_B64: %w", err) + } + tcgf.OTelCollector = otelCollectorConfig + tcgf.DebugMode = env.ByooDebugMode metricSubsetFilterConfig, err := resolvedMetricSubsetFilterConfig(env.ByooMetricSubsetFilterConfig) if err != nil { return TemplateConfig{}, fmt.Errorf("BYOO_METRIC_SUBSET_FILTER_CONFIG: %w", err) diff --git a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig_test.go b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig_test.go index 847a04764..b04bc8999 100644 --- a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig_test.go +++ b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/otelconfig_test.go @@ -82,9 +82,6 @@ func TestGetTemplateConfig(t *testing.T) { "NVCF_ZONE_NAME": "zone-1", }, expectErr: false, - expect: func(t *testing.T, cfg TemplateConfig) { - assert.Equal(t, defaultLogExporterBatchMaxSizeBytes, cfg.LogExporterBatchMaxSizeBytes) - }, }, { name: "valid FunctionID", @@ -101,19 +98,88 @@ func TestGetTemplateConfig(t *testing.T) { expectErr: false, }, { - name: "custom log exporter batch max size", + name: "BYOO log chunking enabled uses collector defaults", + env: map[string]string{ + "NVCF_BACKEND_TYPE": "gfn", + "NVCF_INSTANCE_ID": "test-instance", + "NVCF_NAMESPACE": "test-ns", + "NVCF_WORKLOAD_TYPE": "function", + "NVCT_TASK_ID": "task-123", + "NVCF_ZONE_NAME": "zone-1", + "BYOO_LOG_CHUNKING_ENABLED": "true", + }, + expectErr: false, + expect: func(t *testing.T, cfg TemplateConfig) { + assert.True(t, cfg.LogChunking.Enabled) + assert.Equal(t, defaultLogChunkMaxPayloadBytes, cfg.LogChunking.MaxPayloadBytes) + assert.False(t, cfg.LogChunking.DryRun) + }, + }, + { + name: "BYOO log chunk max payload bytes overrides deprecated max body bytes", + env: map[string]string{ + "NVCF_BACKEND_TYPE": "gfn", + "NVCF_INSTANCE_ID": "test-instance", + "NVCF_NAMESPACE": "test-ns", + "NVCF_WORKLOAD_TYPE": "function", + "NVCT_TASK_ID": "task-123", + "NVCF_ZONE_NAME": "zone-1", + "BYOO_LOG_CHUNK_MAX_BODY_BYTES": "131072", + "BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES": "262144", + }, + expectErr: false, + expect: func(t *testing.T, cfg TemplateConfig) { + assert.True(t, cfg.LogChunking.Enabled) + assert.Equal(t, 262144, cfg.LogChunking.MaxPayloadBytes) + }, + }, + { + name: "BYOO deprecated log chunk max body bytes is accepted", env: map[string]string{ - "NVCF_BACKEND_TYPE": "gfn", - "NVCF_INSTANCE_ID": "test-instance", - "NVCF_NAMESPACE": "test-ns", - "NVCF_WORKLOAD_TYPE": "function", - "NVCT_TASK_ID": "task-123", - "NVCF_ZONE_NAME": "zone-1", - "BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES": "2000000", + "NVCF_BACKEND_TYPE": "gfn", + "NVCF_INSTANCE_ID": "test-instance", + "NVCF_NAMESPACE": "test-ns", + "NVCF_WORKLOAD_TYPE": "function", + "NVCT_TASK_ID": "task-123", + "NVCF_ZONE_NAME": "zone-1", + "BYOO_LOG_CHUNK_MAX_BODY_BYTES": "131072", }, expectErr: false, expect: func(t *testing.T, cfg TemplateConfig) { - assert.Equal(t, 2_000_000, cfg.LogExporterBatchMaxSizeBytes) + assert.True(t, cfg.LogChunking.Enabled) + assert.Equal(t, 131072, cfg.LogChunking.MaxPayloadBytes) + }, + }, + { + name: "BYOO OTel collector config", + env: map[string]string{ + "NVCF_BACKEND_TYPE": "gfn", + "NVCF_INSTANCE_ID": "test-instance", + "NVCF_NAMESPACE": "test-ns", + "NVCF_WORKLOAD_TYPE": "function", + "NVCT_TASK_ID": "task-123", + "NVCF_ZONE_NAME": "zone-1", + "BYOO_OTEL_COLLECTOR_CONFIG_B64": base64.StdEncoding.EncodeToString([]byte(`{"exporterHelper":{"timeout":"30s"}}`)), + }, + expectErr: false, + expect: func(t *testing.T, cfg TemplateConfig) { + assert.Equal(t, "30s", cfg.OTelCollector.ExporterHelper.Timeout) + }, + }, + { + name: "BYOO debug mode", + env: map[string]string{ + "NVCF_BACKEND_TYPE": "gfn", + "NVCF_INSTANCE_ID": "test-instance", + "NVCF_NAMESPACE": "test-ns", + "NVCF_WORKLOAD_TYPE": "function", + "NVCT_TASK_ID": "task-123", + "NVCF_ZONE_NAME": "zone-1", + "BYOO_DEBUG_MODE": "true", + }, + expectErr: false, + expect: func(t *testing.T, cfg TemplateConfig) { + assert.True(t, cfg.DebugMode) }, }, { @@ -154,19 +220,6 @@ func TestGetTemplateConfig(t *testing.T) { }, expectErr: true, }, - { - name: "negative log exporter batch max size", - env: map[string]string{ - "NVCF_BACKEND_TYPE": "gfn", - "NVCF_INSTANCE_ID": "test-instance", - "NVCF_NAMESPACE": "test-ns", - "NVCF_WORKLOAD_TYPE": "function", - "NVCT_TASK_ID": "task-123", - "NVCF_ZONE_NAME": "zone-1", - "BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES": "-1", - }, - expectErr: true, - }, { name: "missing NVCF_FUNCTION_ID", env: map[string]string{ @@ -237,12 +290,15 @@ func TestGetTemplateConfig(t *testing.T) { "NVCT_TASK_ID", "NVCF_ZONE_NAME", "NVCF_CLUSTER_REGION", + "BYOO_LOG_CHUNKING_ENABLED", + "BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES", "BYOO_LOG_CHUNK_MAX_BODY_BYTES", "BYOO_LOG_CHUNK_DRY_RUN", - "BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES", + "BYOO_DEBUG_MODE", "BYOO_METRIC_SUBSET_ENABLED", "BYOO_METRIC_SUBSET_FILTER_CONFIG", "BYOO_WORKLOAD_METRICS_DROP_LABELS", + "BYOO_OTEL_COLLECTOR_CONFIG_B64", } backup := map[string]*string{} for _, k := range envKeys { diff --git a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render.go b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render.go index de563ed38..ef50aed04 100644 --- a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render.go +++ b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render.go @@ -24,6 +24,7 @@ import ( "fmt" "os" "path/filepath" + "slices" "strings" "gopkg.in/yaml.v3" @@ -64,7 +65,10 @@ type OpenTelemetryConfig struct { } `yaml:"service"` } -const defaultLogExporterBatchMaxSizeBytes = 1000000 +const ( + defaultLogChunkMaxPayloadBytes = 262144 + minConfiguredLogChunkMaxPayloadBytes = 4 +) const ( metricSubsetExporterID = "prometheus/user-metrics" @@ -150,14 +154,23 @@ func getCredentialsPath() string { return "/etc/byoo-otel-collector/secrets" } -func resolvedLogExporterBatchMaxSizeBytes(configured int) (int, error) { - if configured < 0 { - return 0, fmt.Errorf("log exporter batch max size bytes must be greater than or equal to 0") +func resolvedLogChunkingConfig(config LogChunkingConfig) (LogChunkingConfig, error) { + if config.MaxPayloadBytes == 0 && config.MaxBodyBytes != 0 { + config.MaxPayloadBytes = config.MaxBodyBytes + } + if config.MaxPayloadBytes < 0 { + return LogChunkingConfig{}, fmt.Errorf("log chunk max payload bytes must be greater than or equal to 0") + } + if config.MaxPayloadBytes > 0 { + if config.MaxPayloadBytes < minConfiguredLogChunkMaxPayloadBytes { + return LogChunkingConfig{}, fmt.Errorf("log chunk max payload bytes must be 0 or at least %d", minConfiguredLogChunkMaxPayloadBytes) + } + config.Enabled = true } - if configured == 0 { - return defaultLogExporterBatchMaxSizeBytes, nil + if config.Enabled && config.MaxPayloadBytes == 0 { + config.MaxPayloadBytes = defaultLogChunkMaxPayloadBytes } - return configured, nil + return config, nil } func defaultMetricSubsetFilterConfig() map[string]interface{} { @@ -246,21 +259,15 @@ func resolvedWorkloadMetricsDropLabels(configured string, metricSubsetEnabled bo return labels } -func logExporterSendingQueue(batchMaxSizeBytes int) map[string]interface{} { +func logExporterSendingQueue() map[string]interface{} { return map[string]interface{}{ "enabled": true, "num_consumers": 10, "queue_size": 1000, - "batch": map[string]interface{}{ - "flush_timeout": "200ms", - "sizer": "bytes", - "min_size": batchMaxSizeBytes, - "max_size": batchMaxSizeBytes, - }, } } -func exporterLogs(config TelemetryConfig, otelConfig *OpenTelemetryConfig, batchMaxSizeBytes int) (exporterId string, err error) { +func exporterLogs(config TelemetryConfig, otelConfig *OpenTelemetryConfig) (exporterId string, err error) { var exporterType, exporterName string var exporterCredential interface{} @@ -372,7 +379,7 @@ func exporterLogs(config TelemetryConfig, otelConfig *OpenTelemetryConfig, batch default: return "", fmt.Errorf("invalid logs provider: %s", config.Telemetries.Logs.Provider) } - otelConfig.Exporters[exporterId]["sending_queue"] = logExporterSendingQueue(batchMaxSizeBytes) + otelConfig.Exporters[exporterId]["sending_queue"] = logExporterSendingQueue() return exporterId, nil } @@ -412,7 +419,7 @@ func exporterMetrics(config TelemetryConfig, otelConfig *OpenTelemetryConfig) (e otelConfig.Service.Extensions = append(otelConfig.Service.Extensions, extensionId) case ProviderThanos, ProviderPrometheus: - exporterType = "prometheusremotewrite" + exporterType = "prometheus_remote_write" exporterName = fmt.Sprintf("%s-%s-metrics", config.Telemetries.Metrics.Provider, config.Telemetries.Metrics.Name) exporterId = fmt.Sprintf("%s/%s", exporterType, exporterName) @@ -591,6 +598,57 @@ func addMetricSubsetPipeline(otelConfig *OpenTelemetryConfig, config MetricSubse otelConfig.Service.Pipelines["metrics/metric_subset"] = metricSubsetPipeline } +func applyDebugMode(otelConfig *OpenTelemetryConfig) { + if otelConfig.Service.Telemetry == nil { + otelConfig.Service.Telemetry = map[string]map[string]interface{}{} + } + logs := mapFromInterface(otelConfig.Service.Telemetry["logs"]) + logs["level"] = "debug" + logs["development"] = true + otelConfig.Service.Telemetry["logs"] = logs + + ensureDebugExporter(otelConfig) +} + +func ensureDebugExporter(otelConfig *OpenTelemetryConfig) { + if otelConfig.Exporters == nil { + otelConfig.Exporters = map[string]map[string]interface{}{} + } + if _, ok := otelConfig.Exporters["debug"]; !ok { + otelConfig.Exporters["debug"] = map[string]interface{}{} + } + for name, pipeline := range otelConfig.Service.Pipelines { + if slices.Contains(pipeline.Exporters, "debug") { + continue + } + pipeline.Exporters = append(pipeline.Exporters, "debug") + otelConfig.Service.Pipelines[name] = pipeline + } +} + +func mapFromInterface(v interface{}) map[string]interface{} { + switch typed := v.(type) { + case nil: + return map[string]interface{}{} + case map[string]interface{}: + if typed == nil { + return map[string]interface{}{} + } + return typed + case map[string]string: + if typed == nil { + return map[string]interface{}{} + } + out := make(map[string]interface{}, len(typed)) + for key, value := range typed { + out[key] = value + } + return out + default: + return map[string]interface{}{} + } +} + func exporterTraces(config TelemetryConfig, otelConfig *OpenTelemetryConfig) (exporterId string, err error) { var exporterType, exporterName string var exporterCredential interface{} @@ -779,11 +837,11 @@ func generateExportersAndService(config TelemetryConfig, otelConfig *OpenTelemet // Process Logs (if present) if config.Telemetries.Logs != nil { - logExporterBatchMaxSizeBytes, err := resolvedLogExporterBatchMaxSizeBytes(tmplConfig.LogExporterBatchMaxSizeBytes) + logChunking, err := resolvedLogChunkingConfig(tmplConfig.LogChunking) if err != nil { return err } - exporterId, err := exporterLogs(config, otelConfig, logExporterBatchMaxSizeBytes) + exporterId, err := exporterLogs(config, otelConfig) if err != nil { return fmt.Errorf("failed to generate exporter for logs: %v", err) } @@ -793,10 +851,10 @@ func generateExportersAndService(config TelemetryConfig, otelConfig *OpenTelemet logPipeline.Receivers = []string{"otlp"} logPipeline.Exporters = []string{exporterId} logPipeline.Processors = []string{"memory_limiter", "attributes/add-metadata"} - if tmplConfig.LogChunking.MaxBodyBytes > 0 { + if logChunking.Enabled { otelConfig.Processors["logchunk/byoo"] = map[string]interface{}{ - "max_body_bytes": tmplConfig.LogChunking.MaxBodyBytes, - "dry_run": tmplConfig.LogChunking.DryRun, + "max_payload_bytes": logChunking.MaxPayloadBytes, + "dry_run": logChunking.DryRun, } logPipeline.Processors = append(logPipeline.Processors, "logchunk/byoo") } @@ -840,5 +898,10 @@ func generateExportersAndService(config TelemetryConfig, otelConfig *OpenTelemet otelConfig.Service.Pipelines["traces"] = tracePipeline } + if tmplConfig.DebugMode { + applyDebugMode(otelConfig) + } + applyOTelCollectorConfig(otelConfig, tmplConfig.OTelCollector) + return nil } diff --git a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render_test.go b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render_test.go index 67864c31e..557e27c5f 100644 --- a/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render_test.go +++ b/src/compute-plane-services/byoo-otel-collector/internal/otelconfig/render_test.go @@ -137,6 +137,31 @@ func TestRenderOtelConfigWithMetricSubsetPipeline(t *testing.T) { }, otelConfig.Service.Pipelines["metrics/metric_subset"].Processors) } +func TestRenderOtelConfigWithDebugMode(t *testing.T) { + gotCfg, err := RenderOtelConfigFromBytes( + []byte(`{"telemetries": {"logsTelemetry": {"protocol": "HTTP", "provider": "SPLUNK", "endpoint": "https://logs.example.invalid", "name": "example-logs"}, "metricsTelemetry": {"protocol": "HTTP", "provider": "PROMETHEUS", "endpoint": "https://metrics.example.invalid/api/v1/write", "name": "example-metrics"}}}`), + TemplateConfig{ + BackendType: K8s, + WorkloadType: Container, + Namespace: "sr-fake-namespace", + FunctionID: "fake-function-id", + FunctionVersionID: "fake-function-version-id", + DebugMode: true, + }, + ) + + assert.NoError(t, err) + + otelConfig := &OpenTelemetryConfig{} + err = yaml.Unmarshal(gotCfg, otelConfig) + assert.NoError(t, err) + assert.Contains(t, otelConfig.Exporters, "debug") + assert.Equal(t, "debug", otelConfig.Service.Telemetry["logs"]["level"]) + assert.Equal(t, true, otelConfig.Service.Telemetry["logs"]["development"]) + assert.Contains(t, otelConfig.Service.Pipelines["logs"].Exporters, "debug") + assert.Contains(t, otelConfig.Service.Pipelines["metrics"].Exporters, "debug") +} + func TestRenderOtelConfigWithMetricSubsetPipelineMatchesExample(t *testing.T) { t.Setenv("ESS_SECRETS_PATH", "") @@ -426,8 +451,8 @@ func TestGenerateExportersAndServiceAddsLogChunkProcessor(t *testing.T) { err := generateExportersAndService(cfg, otelConfig, TemplateConfig{ Namespace: "test-namespace", LogChunking: LogChunkingConfig{ - MaxBodyBytes: 983040, - DryRun: true, + MaxPayloadBytes: 983040, + DryRun: true, }, }) @@ -439,8 +464,8 @@ func TestGenerateExportersAndServiceAddsLogChunkProcessor(t *testing.T) { "batch", }, otelConfig.Service.Pipelines["logs"].Processors) assert.Equal(t, map[string]interface{}{ - "max_body_bytes": 983040, - "dry_run": true, + "max_payload_bytes": 983040, + "dry_run": true, }, otelConfig.Processors["logchunk/byoo"]) exporter := otelConfig.Exporters["splunk_hec/SPLUNK-example-logs-logs"] @@ -448,16 +473,10 @@ func TestGenerateExportersAndServiceAddsLogChunkProcessor(t *testing.T) { "enabled": true, "num_consumers": 10, "queue_size": 1000, - "batch": map[string]interface{}{ - "flush_timeout": "200ms", - "sizer": "bytes", - "min_size": defaultLogExporterBatchMaxSizeBytes, - "max_size": defaultLogExporterBatchMaxSizeBytes, - }, }, exporter["sending_queue"]) } -func TestGenerateExportersAndServiceUsesCustomLogExporterBatchMaxSize(t *testing.T) { +func TestGenerateExportersAndServiceAddsLogChunkDefaultsWhenEnabled(t *testing.T) { cfg := TelemetryConfig{ Telemetries: Telemetries{ Logs: &Telemetry{ @@ -472,8 +491,51 @@ func TestGenerateExportersAndServiceUsesCustomLogExporterBatchMaxSize(t *testing initializeConfigMaps(otelConfig) err := generateExportersAndService(cfg, otelConfig, TemplateConfig{ - Namespace: "test-namespace", - LogExporterBatchMaxSizeBytes: 2_000_000, + Namespace: "test-namespace", + LogChunking: LogChunkingConfig{ + Enabled: true, + }, + }) + + assert.NoError(t, err) + assert.Equal(t, map[string]interface{}{ + "max_payload_bytes": defaultLogChunkMaxPayloadBytes, + "dry_run": false, + }, otelConfig.Processors["logchunk/byoo"]) + exporter := otelConfig.Exporters["splunk_hec/SPLUNK-example-logs-logs"] + assert.NotContains(t, exporter["sending_queue"].(map[string]interface{}), "batch") +} + +func TestGenerateExportersAndServiceUsesExporterHelperQueueBatchConfig(t *testing.T) { + cfg := TelemetryConfig{ + Telemetries: Telemetries{ + Logs: &Telemetry{ + Name: "example-logs", + Protocol: ProtocolHTTP, + Provider: ProviderSplunk, + Endpoint: "https://splunk.example.invalid", + }, + }, + } + otelConfig := &OpenTelemetryConfig{} + initializeConfigMaps(otelConfig) + + minSize := int64(2_000_000) + maxSize := int64(2_000_000) + err := generateExportersAndService(cfg, otelConfig, TemplateConfig{ + Namespace: "test-namespace", + OTelCollector: OTelCollectorConfig{ + ExporterHelper: ExporterHelperConfig{ + SendingQueue: SendingQueueConfig{ + Batch: SendingQueueBatchConfig{ + FlushTimeout: "200ms", + Sizer: "bytes", + MinSize: &minSize, + MaxSize: &maxSize, + }, + }, + }, + }, }) assert.NoError(t, err) @@ -485,12 +547,138 @@ func TestGenerateExportersAndServiceUsesCustomLogExporterBatchMaxSize(t *testing "batch": map[string]interface{}{ "flush_timeout": "200ms", "sizer": "bytes", - "min_size": 2_000_000, - "max_size": 2_000_000, + "min_size": int64(2_000_000), + "max_size": int64(2_000_000), }, }, exporter["sending_queue"]) } +func TestGenerateExportersAndServiceAppliesCollectorOverrides(t *testing.T) { + cfg := TelemetryConfig{ + Telemetries: Telemetries{ + Logs: &Telemetry{ + Name: "example-logs", + Protocol: ProtocolHTTP, + Provider: ProviderSplunk, + Endpoint: "https://splunk.example.invalid", + }, + Metrics: &Telemetry{ + Name: "example-metrics", + Protocol: ProtocolHTTP, + Provider: ProviderDatadog, + Endpoint: "datadoghq.com", + }, + Traces: &Telemetry{ + Name: "example-traces", + Protocol: ProtocolHTTP, + Provider: ProviderServiceNow, + Endpoint: "otel.example.invalid:4317", + }, + }, + } + otelConfig := &OpenTelemetryConfig{} + initializeConfigMaps(otelConfig) + + retryEnabled := true + queueConsumers := int64(3) + queueSize := int64(2048) + queueBatchMinSize := int64(123) + queueBatchMaxSize := int64(456) + memoryLimitMiB := int64(512) + memorySpikeLimitMiB := int64(128) + batchSendSize := int64(100) + batchSendMaxSize := int64(200) + logBatchSendSize := int64(340) + logBatchSendMaxSize := int64(340) + + err := generateExportersAndService(cfg, otelConfig, TemplateConfig{ + Namespace: "test-namespace", + OTelCollector: OTelCollectorConfig{ + ExporterHelper: ExporterHelperConfig{ + Timeout: "30s", + RetryOnFailure: RetryOnFailureConfig{ + Enabled: &retryEnabled, + InitialInterval: "1s", + MaxInterval: "10s", + MaxElapsedTime: "2m", + }, + SendingQueue: SendingQueueConfig{ + NumConsumers: &queueConsumers, + QueueSize: &queueSize, + Batch: SendingQueueBatchConfig{ + FlushTimeout: "500ms", + Sizer: "bytes", + MinSize: &queueBatchMinSize, + MaxSize: &queueBatchMaxSize, + }, + }, + }, + MemoryLimiter: MemoryLimiterConfig{ + CheckInterval: "2s", + LimitMiB: &memoryLimitMiB, + SpikeLimitMiB: &memorySpikeLimitMiB, + }, + Batch: BatchConfig{ + Timeout: "1s", + SendBatchSize: &batchSendSize, + SendBatchMaxSize: &batchSendMaxSize, + }, + LogBatch: BatchConfig{ + Timeout: "400ms", + SendBatchSize: &logBatchSendSize, + SendBatchMaxSize: &logBatchSendMaxSize, + }, + }, + }) + + assert.NoError(t, err) + + for _, exporterID := range []string{ + "splunk_hec/SPLUNK-example-logs-logs", + "datadog/DATADOG-example-metrics-metrics", + "otlp/SERVICENOW-example-traces-traces", + } { + exporter := otelConfig.Exporters[exporterID] + assert.Equal(t, "30s", exporter["timeout"], exporterID) + assert.Equal(t, map[string]interface{}{ + "enabled": true, + "initial_interval": "1s", + "max_interval": "10s", + "max_elapsed_time": "2m", + }, exporter["retry_on_failure"], exporterID) + assert.Equal(t, map[string]interface{}{ + "enabled": true, + "num_consumers": int64(3), + "queue_size": int64(2048), + "batch": map[string]interface{}{ + "flush_timeout": "500ms", + "sizer": "bytes", + "min_size": int64(123), + "max_size": int64(456), + }, + }, exporter["sending_queue"], exporterID) + } + + assert.Equal(t, map[string]interface{}{ + "check_interval": "2s", + "limit_mib": int64(512), + "spike_limit_mib": int64(128), + }, otelConfig.Processors["memory_limiter"]) + assert.Equal(t, map[string]interface{}{ + "send_batch_size": int64(100), + "timeout": "1s", + "send_batch_max_size": int64(200), + }, otelConfig.Processors["batch"]) + assert.Equal(t, map[string]interface{}{ + "send_batch_size": int64(340), + "timeout": "400ms", + "send_batch_max_size": int64(340), + }, otelConfig.Processors["batch/logs"]) + assert.Equal(t, []string{"memory_limiter", "attributes/add-metadata", "batch/logs"}, otelConfig.Service.Pipelines["logs"].Processors) + assert.Equal(t, []string{"memory_limiter", "filter/metrics", "resource", "metrics_transform", "batch"}, otelConfig.Service.Pipelines["metrics"].Processors) + assert.Equal(t, []string{"memory_limiter", "attributes/add-metadata", "batch"}, otelConfig.Service.Pipelines["traces"].Processors) +} + func TestGenerateExportersAndServiceAddsMetricSubsetPipeline(t *testing.T) { cfg := TelemetryConfig{ Telemetries: Telemetries{ @@ -542,7 +730,7 @@ func TestGenerateExportersAndServiceAddsMetricSubsetPipeline(t *testing.T) { workloadMetricsPipeline := otelConfig.Service.Pipelines["metrics"] assert.Equal(t, []string{"otlp", "prometheus"}, workloadMetricsPipeline.Receivers) - assert.Equal(t, []string{"prometheusremotewrite/PROMETHEUS-example-metrics-metrics"}, workloadMetricsPipeline.Exporters) + assert.Equal(t, []string{"prometheus_remote_write/PROMETHEUS-example-metrics-metrics"}, workloadMetricsPipeline.Exporters) assert.Equal(t, []string{ "memory_limiter", "filter/metrics", diff --git a/src/compute-plane-services/byoo-otel-collector/otel-collector-build.yaml b/src/compute-plane-services/byoo-otel-collector/otel-collector-build.yaml index b09998913..9ed8328f7 100644 --- a/src/compute-plane-services/byoo-otel-collector/otel-collector-build.yaml +++ b/src/compute-plane-services/byoo-otel-collector/otel-collector-build.yaml @@ -13,45 +13,45 @@ dist: output_path: ./output # the output path which contains otelcol-contrib binary exporters: - - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.153.0 - - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.153.0 - - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.153.0 + - gomod: go.opentelemetry.io/collector/exporter/otlpexporter v0.157.0 + - gomod: go.opentelemetry.io/collector/exporter/debugexporter v0.157.0 + - gomod: go.opentelemetry.io/collector/exporter/otlphttpexporter v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.157.0 receivers: - - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.153.0 + - gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.157.0 processors: - - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.153.0 - - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.153.0 + - gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.157.0 + - gomod: go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.157.0 extensions: - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.153.0 - - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.153.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.157.0 + - gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.157.0 providers: - - gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.59.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.59.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.59.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.59.0 - - gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.59.0 + - gomod: go.opentelemetry.io/collector/confmap/provider/envprovider v1.63.0 + - gomod: go.opentelemetry.io/collector/confmap/provider/fileprovider v1.63.0 + - gomod: go.opentelemetry.io/collector/confmap/provider/httpprovider v1.63.0 + - gomod: go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.63.0 + - gomod: go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.63.0 # datadogexporter pulls Datadog modules whose own go.mod files use local # replacements for these submodules. OCB does not inherit those local replaces, diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/BUILD.bazel b/src/compute-plane-services/byoo-otel-collector/otelcol/BUILD.bazel index 8bbe222b9..8b73fb6b5 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/BUILD.bazel +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/BUILD.bazel @@ -82,12 +82,11 @@ GOPATH="$${GOPATH:-/tmp/byoo-otelcol-gopath}" GOCACHE="$${GOCACHE:-/tmp/byoo-otelcol-gocache}" HOME="$${HOME:-$$(mktemp -d -t byoo-otelcol-home.XXXXXX)}" # Cap parallelism. Each linker pass of the otelcol module -# holds ~6 GB RSS, so even with tags=["exclusive"] limiting -# Bazel-side concurrency, the Go toolchain's internal worker -# pool can still OOM a standard CI runner. Two workers is a -# reasonable floor for build throughput on modern Go. +# holds high RSS, so the Go toolchain's internal worker pool +# can OOM a standard CI runner even when Bazel is serialized. GOMAXPROCS="$${GOMAXPROCS:-2}" -export GOMODCACHE GOPATH GOCACHE HOME GOMAXPROCS +GO_BUILD_P="$${GO_BUILD_P:-1}" +export GOMODCACHE GOPATH GOCACHE HOME GOMAXPROCS GO_BUILD_P mkdir -p "$$GOMODCACHE" "$$GOPATH" "$$GOCACHE" WORK_DIR=$$(dirname $$(realpath $(location go.mod))) ABS_OUT="$$(pwd)/$@" @@ -99,12 +98,12 @@ cd "$$WORK_DIR" # exit status 128". The collector binary does not need embedded VCS info. _CMD_GO_BUILD_AMD64 = """\ GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \\ - "$$GO_BIN" build -trimpath -buildvcs=false -o "$$ABS_OUT" . + "$$GO_BIN" build -p "$$GO_BUILD_P" -trimpath -buildvcs=false -o "$$ABS_OUT" . """ _CMD_GO_BUILD_ARM64 = """\ GOOS=linux GOARCH=arm64 CGO_ENABLED=0 \\ - "$$GO_BIN" build -trimpath -buildvcs=false -o "$$ABS_OUT" . + "$$GO_BIN" build -p "$$GO_BUILD_P" -trimpath -buildvcs=false -o "$$ABS_OUT" . """ genrule( diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/components.go b/src/compute-plane-services/byoo-otel-collector/otelcol/components.go index ecd7874e9..3ba8b2a24 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/components.go +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/components.go @@ -72,12 +72,12 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ExtensionModules = makeModulesMap(factories.Extensions, map[component.Type]string{ - basicauthextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.153.0", - bearertokenauthextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.153.0", - oauth2clientauthextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.153.0", - healthcheckextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.153.0", - healthcheckv2extension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.153.0", - cgroupruntimeextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.153.0", + basicauthextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.157.0", + bearertokenauthextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.157.0", + oauth2clientauthextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.157.0", + healthcheckextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.157.0", + healthcheckv2extension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.157.0", + cgroupruntimeextension.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.157.0", }) factories.Receivers, err = otelcol.MakeFactoryMap[receiver.Factory]( @@ -89,9 +89,9 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ReceiverModules = makeModulesMap(factories.Receivers, map[component.Type]string{ - otlpreceiver.NewFactory().Type(): "go.opentelemetry.io/collector/receiver/otlpreceiver v0.153.0", - prometheusreceiver.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.153.0", - k8seventsreceiver.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.153.0", + otlpreceiver.NewFactory().Type(): "go.opentelemetry.io/collector/receiver/otlpreceiver v0.157.0", + prometheusreceiver.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.157.0", + k8seventsreceiver.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.157.0", }) factories.Exporters, err = otelcol.MakeFactoryMap[exporter.Factory]( @@ -108,14 +108,14 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ExporterModules = makeModulesMap(factories.Exporters, map[component.Type]string{ - otlpexporter.NewFactory().Type(): "go.opentelemetry.io/collector/exporter/otlpexporter v0.153.0", - debugexporter.NewFactory().Type(): "go.opentelemetry.io/collector/exporter/debugexporter v0.153.0", - otlphttpexporter.NewFactory().Type(): "go.opentelemetry.io/collector/exporter/otlphttpexporter v0.153.0", - prometheusexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.153.0", - prometheusremotewriteexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.153.0", - datadogexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.153.0", - splunkhecexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.153.0", - azuremonitorexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.153.0", + otlpexporter.NewFactory().Type(): "go.opentelemetry.io/collector/exporter/otlpexporter v0.157.0", + debugexporter.NewFactory().Type(): "go.opentelemetry.io/collector/exporter/debugexporter v0.157.0", + otlphttpexporter.NewFactory().Type(): "go.opentelemetry.io/collector/exporter/otlphttpexporter v0.157.0", + prometheusexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.157.0", + prometheusremotewriteexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.157.0", + datadogexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.157.0", + splunkhecexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.157.0", + azuremonitorexporter.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.157.0", }) factories.Processors, err = otelcol.MakeFactoryMap[processor.Factory]( @@ -134,15 +134,15 @@ func components() (otelcol.Factories, error) { return otelcol.Factories{}, err } factories.ProcessorModules = makeModulesMap(factories.Processors, map[component.Type]string{ - batchprocessor.NewFactory().Type(): "go.opentelemetry.io/collector/processor/batchprocessor v0.153.0", - memorylimiterprocessor.NewFactory().Type(): "go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.153.0", - attributesprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.153.0", - k8sattributesprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.153.0", - resourceprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.153.0", - resourcedetectionprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.153.0", - filterprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.153.0", - metricstransformprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.153.0", - transformprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.153.0", + batchprocessor.NewFactory().Type(): "go.opentelemetry.io/collector/processor/batchprocessor v0.157.0", + memorylimiterprocessor.NewFactory().Type(): "go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.157.0", + attributesprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.157.0", + k8sattributesprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.157.0", + resourceprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.157.0", + resourcedetectionprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.157.0", + filterprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.157.0", + metricstransformprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.157.0", + transformprocessor.NewFactory().Type(): "github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.157.0", logchunkprocessor.NewFactory().Type(): "github.com/NVIDIA/nvcf/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor v0.0.0", }) diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/go.mod b/src/compute-plane-services/byoo-otel-collector/otelcol/go.mod index e513cfa99..f30ff559a 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/go.mod +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/go.mod @@ -5,174 +5,171 @@ module github.com/NVIDIA/nvcf/src/compute-plane-services/byoo-otel-collector/ote go 1.25.0 require ( - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.153.0 - github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.153.0 - go.opentelemetry.io/collector/component v1.59.0 - go.opentelemetry.io/collector/confmap v1.59.0 - go.opentelemetry.io/collector/confmap/provider/envprovider v1.59.0 - go.opentelemetry.io/collector/confmap/provider/fileprovider v1.59.0 - go.opentelemetry.io/collector/confmap/provider/httpprovider v1.59.0 - go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.59.0 - go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.59.0 - go.opentelemetry.io/collector/connector v0.153.0 - go.opentelemetry.io/collector/exporter v1.59.0 - go.opentelemetry.io/collector/exporter/debugexporter v0.153.0 - go.opentelemetry.io/collector/exporter/otlpexporter v0.153.0 - go.opentelemetry.io/collector/exporter/otlphttpexporter v0.153.0 - go.opentelemetry.io/collector/extension v1.59.0 - go.opentelemetry.io/collector/otelcol v0.153.0 - go.opentelemetry.io/collector/processor v1.59.0 - go.opentelemetry.io/collector/processor/batchprocessor v0.153.0 - go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.153.0 - go.opentelemetry.io/collector/receiver v1.59.0 - go.opentelemetry.io/collector/receiver/otlpreceiver v0.153.0 - go.opentelemetry.io/collector/service v0.153.0 - golang.org/x/sys v0.45.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.157.0 + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.157.0 + go.opentelemetry.io/collector/component v1.63.0 + go.opentelemetry.io/collector/confmap v1.63.0 + go.opentelemetry.io/collector/confmap/provider/envprovider v1.63.0 + go.opentelemetry.io/collector/confmap/provider/fileprovider v1.63.0 + go.opentelemetry.io/collector/confmap/provider/httpprovider v1.63.0 + go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.63.0 + go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.63.0 + go.opentelemetry.io/collector/connector v0.157.0 + go.opentelemetry.io/collector/exporter v1.63.0 + go.opentelemetry.io/collector/exporter/debugexporter v0.157.0 + go.opentelemetry.io/collector/exporter/otlpexporter v0.157.0 + go.opentelemetry.io/collector/exporter/otlphttpexporter v0.157.0 + go.opentelemetry.io/collector/extension v1.63.0 + go.opentelemetry.io/collector/otelcol v0.157.0 + go.opentelemetry.io/collector/processor v1.63.0 + go.opentelemetry.io/collector/processor/batchprocessor v0.157.0 + go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.157.0 + go.opentelemetry.io/collector/receiver v1.63.0 + go.opentelemetry.io/collector/receiver/otlpreceiver v0.157.0 + go.opentelemetry.io/collector/service v0.157.0 + golang.org/x/sys v0.47.0 ) require ( - cloud.google.com/go/auth v0.18.2 // indirect + cloud.google.com/go/auth v0.20.0 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute v1.60.0 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0 // 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.6.0 // indirect github.com/Code-Hex/go-generics-cache v1.5.1 // indirect - github.com/DataDog/agent-payload/v5 v5.0.197 // indirect - github.com/DataDog/datadog-agent/comp/core/config v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/flare/types v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/log/def v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/secrets/def v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/status v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/def v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/types v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/core/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/def v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/logs/agent/config v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.79.0-devel.0.20260402163801-bfa4eff6c991 // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/def v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/api v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/create v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/env v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/helper v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/mock v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/model v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/setup v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/structure v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/utils v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/fips v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/client v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/message v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/metrics v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/processor v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/sender v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/sources v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/logs/types v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/metrics v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/obfuscate v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.81.0-devel.0.20260515214905-7c02565fb890 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.81.0-devel.0.20260515214905-7c02565fb890 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.81.0-devel.0.20260515214905-7c02565fb890 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.81.0-devel.0.20260515214905-7c02565fb890 // indirect - github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.81.0-devel.0.20260515214905-7c02565fb890 // indirect - github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/process/util/api v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/proto v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/serializer v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/status/health v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/tagger/types v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/tagset v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/template v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/trace v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/trace/otel v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/trace/stats v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/backoff v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/buf v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/cgroups v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/common v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/compression v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/executable v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/filesystem v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/fxutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/http v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/json v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/log v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/option v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/otel v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/pointer v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/quantile v0.79.0-devel.0.20260402163801-bfa4eff6c991 // indirect - github.com/DataDog/datadog-agent/pkg/util/scrubber v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/sort v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/startstop v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/statstracker v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/system v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/util/winutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-agent/pkg/version v0.77.0-devel.0.20260213154712-e02b9359151a // indirect - github.com/DataDog/datadog-api-client-go/v2 v2.60.0 // indirect - github.com/DataDog/datadog-go/v5 v5.8.3 // indirect - github.com/DataDog/go-sqllexer v0.1.12 // indirect + github.com/DataDog/agent-payload/v5 v5.0.205 // indirect + github.com/DataDog/datadog-agent/comp/api/api/def v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/config v0.82.0-devel.0.20260624113434-509b872045c2 // indirect + github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/builder v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/flare/types v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/log/def v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets/def v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/status v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/def v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/types v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/core/telemetry v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/def v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.82.0-devel.0.20260708210941-b0d9b5a19458 // indirect + github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/logs-library v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/logs/agent/config v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.83.0-devel.0.20260714134811-fee4bbf7ff73 // indirect + github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/trace/compression/def v0.80.2 // indirect + github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/api v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/basic v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/buildschema v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/create v0.82.0-devel.0.20260624113434-509b872045c2 // indirect + github.com/DataDog/datadog-agent/pkg/config/env v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/helper v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/mock v0.82.0-devel.0.20260624113434-509b872045c2 // indirect + github.com/DataDog/datadog-agent/pkg/config/model v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/setup v0.82.0-devel.0.20260624113434-509b872045c2 // indirect + github.com/DataDog/datadog-agent/pkg/config/structure v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/config/utils v0.82.0-devel.0.20260708210941-b0d9b5a19458 // indirect + github.com/DataDog/datadog-agent/pkg/fips v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/logs/client v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/logs/message v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/logs/sources v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/logs/types v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/metrics v0.82.0-devel.0.20260708210941-b0d9b5a19458 // indirect + github.com/DataDog/datadog-agent/pkg/obfuscate v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.83.0-devel.0.20260714134811-fee4bbf7ff73 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.83.0-devel.0.20260714134811-fee4bbf7ff73 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.83.0-devel.0.20260714134811-fee4bbf7ff73 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.83.0-devel.0.20260714134811-fee4bbf7ff73 // indirect + github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.83.0-devel.0.20260714134811-fee4bbf7ff73 // indirect + github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/process/util/api v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/proto v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/serializer v0.82.0-devel.0.20260708210941-b0d9b5a19458 // indirect + github.com/DataDog/datadog-agent/pkg/status/health v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/tagger/types v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/tagset v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/template v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/trace v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/trace/log v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/trace/stats v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/backoff v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/buf v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/cgroups v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/compression v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.81.0-devel.0.20260624113434-509b872045c2 // indirect + github.com/DataDog/datadog-agent/pkg/util/executable v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/filesystem v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/fxutil v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/hostport v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/http v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/json v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/option v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/otel v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/pointer v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/quantile v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/scrubber v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/sort v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/startstop v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/statstracker v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/system v0.80.2 // indirect + github.com/DataDog/datadog-agent/pkg/util/winutil v0.82.0-devel.0.20260624113434-509b872045c2 // indirect + github.com/DataDog/datadog-agent/pkg/version v0.80.2 // indirect + github.com/DataDog/datadog-api-client-go/v2 v2.62.0 // indirect + github.com/DataDog/datadog-go/v5 v5.9.0 // indirect + github.com/DataDog/go-acl v1.0.1 // indirect + github.com/DataDog/go-sqllexer v0.2.2 // indirect github.com/DataDog/go-tuf v1.1.1-0.5.2 // indirect github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee // indirect github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect github.com/DataDog/sketches-go v1.4.8 // indirect - github.com/DataDog/viper v1.15.1 // indirect - github.com/DataDog/zstd v1.5.7 // indirect + github.com/DataDog/zstd v1.5.8-0.20260421145859-31a7e515a571 // indirect github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect github.com/GehirnInc/crypt v0.0.0-20230320061759-8cc1b52080c5 // indirect - github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.32.0 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.34.0 // indirect github.com/KimMachineGun/automemlimit v0.7.5 // indirect github.com/Masterminds/semver/v3 v3.5.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect @@ -183,33 +180,33 @@ require ( github.com/antchfx/xpath v1.3.6 // indirect github.com/armon/go-metrics v0.4.1 // indirect github.com/aws/aws-sdk-go v1.55.8 // indirect - github.com/aws/aws-sdk-go-v2 v1.41.7 // indirect - github.com/aws/aws-sdk-go-v2/config v1.32.17 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.19.16 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 // indirect - github.com/aws/aws-sdk-go-v2/service/ec2 v1.303.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.74.0 // indirect - github.com/aws/aws-sdk-go-v2/service/elasticache v1.51.12 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 // indirect - github.com/aws/aws-sdk-go-v2/service/kafka v1.49.1 // indirect - github.com/aws/aws-sdk-go-v2/service/lightsail v1.51.0 // indirect - github.com/aws/aws-sdk-go-v2/service/rds v1.117.0 // indirect - github.com/aws/aws-sdk-go-v2/service/signin v1.0.11 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.30.17 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.21 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.42.1 // indirect - github.com/aws/smithy-go v1.25.1 // indirect + github.com/aws/aws-sdk-go-v2 v1.42.1 // indirect + github.com/aws/aws-sdk-go-v2/config v1.32.29 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.19.28 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.30 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.30 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.30 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.31 // indirect + github.com/aws/aws-sdk-go-v2/service/ec2 v1.316.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ecs v1.81.0 // indirect + github.com/aws/aws-sdk-go-v2/service/elasticache v1.52.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.13 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.30 // indirect + github.com/aws/aws-sdk-go-v2/service/kafka v1.52.0 // indirect + github.com/aws/aws-sdk-go-v2/service/lightsail v1.54.0 // indirect + github.com/aws/aws-sdk-go-v2/service/rds v1.118.2 // indirect + github.com/aws/aws-sdk-go-v2/service/signin v1.4.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.32.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.37.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.44.0 // indirect + github.com/aws/smithy-go v1.27.3 // indirect github.com/bahlo/generic-list-go v0.2.0 // indirect github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 // indirect github.com/benbjohnson/clock v1.3.5 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/buger/jsonparser v1.1.2 // indirect - github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cenkalti/backoff/v5 v5.0.3 // indirect + github.com/cenkalti/backoff/v7 v7.0.0 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect @@ -219,7 +216,7 @@ require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dennwc/varint v1.0.0 // indirect github.com/digitalocean/go-metadata v0.0.0-20250129100319-e3650a3df44b // indirect - github.com/digitalocean/godo v1.178.0 // indirect + github.com/digitalocean/godo v1.193.0 // indirect github.com/distribution/reference v0.6.0 // indirect github.com/docker/go-connections v0.7.0 // indirect github.com/docker/go-units v0.5.0 // indirect @@ -227,13 +224,13 @@ require ( github.com/ebitengine/purego v0.10.0 // indirect github.com/edsrzf/mmap-go v1.2.1-0.20241212181136-fad1cd13edbd // indirect github.com/elastic/go-grok v0.3.1 // indirect - github.com/elastic/lunes v0.2.0 // indirect + github.com/elastic/lunes v0.2.2 // indirect github.com/emicklei/go-restful/v3 v3.13.0 // indirect github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect github.com/envoyproxy/protoc-gen-validate v1.3.3 // indirect github.com/expr-lang/expr v1.17.8 // indirect github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect - github.com/fatih/color v1.18.0 // indirect + github.com/fatih/color v1.19.0 // indirect github.com/felixge/fgprof v0.9.5 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/foxboron/go-tpm-keyfiles v0.0.0-20251226215517-609e4778396f // indirect @@ -244,18 +241,18 @@ require ( 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.3.0 // indirect - github.com/go-openapi/analysis v0.24.3 // indirect + github.com/go-openapi/analysis v0.25.0 // indirect github.com/go-openapi/errors v0.22.7 // indirect - github.com/go-openapi/jsonpointer v0.22.5 // indirect + github.com/go-openapi/jsonpointer v0.23.1 // indirect github.com/go-openapi/jsonreference v0.21.5 // indirect github.com/go-openapi/loads v0.23.3 // indirect github.com/go-openapi/spec v0.22.4 // indirect - github.com/go-openapi/strfmt v0.26.1 // indirect + github.com/go-openapi/strfmt v0.26.2 // indirect github.com/go-openapi/swag v0.25.5 // indirect github.com/go-openapi/swag/cmdutils v0.25.5 // indirect github.com/go-openapi/swag/conv v0.25.5 // indirect github.com/go-openapi/swag/fileutils v0.25.5 // indirect - github.com/go-openapi/swag/jsonname v0.25.5 // indirect + github.com/go-openapi/swag/jsonname v0.26.0 // indirect github.com/go-openapi/swag/jsonutils v0.25.5 // indirect github.com/go-openapi/swag/loading v0.25.5 // indirect github.com/go-openapi/swag/mangling v0.25.5 // indirect @@ -281,16 +278,16 @@ require ( github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-querystring v1.2.0 // indirect github.com/google/go-tpm v0.9.8 // indirect - github.com/google/pprof v0.0.0-20260302011040-a15ffb7f9dcc // indirect + github.com/google/pprof v0.0.0-20260507013755-92041b743c96 // 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.14 // indirect - github.com/googleapis/gax-go/v2 v2.21.0 // indirect - github.com/gophercloud/gophercloud/v2 v2.11.1 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.15 // indirect + github.com/googleapis/gax-go/v2 v2.22.0 // indirect + github.com/gophercloud/gophercloud/v2 v2.12.0 // indirect github.com/gorilla/mux v1.8.1 // 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.28.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect github.com/hashicorp/consul/api v1.32.1 // indirect github.com/hashicorp/cronexpr v1.1.3 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -303,34 +300,32 @@ require ( github.com/hashicorp/go-version v1.9.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-20260324203407-b27b0c2e019a // indirect + github.com/hashicorp/nomad/api v0.0.0-20260528135333-5b027732945f // indirect github.com/hashicorp/serf v0.10.1 // indirect - github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 // indirect - github.com/hetznercloud/hcloud-go/v2 v2.40.0 // indirect + github.com/hetznercloud/hcloud-go/v2 v2.44.0 // 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.6 // indirect + github.com/ionos-cloud/sdk-go/v6 v6.3.7 // indirect github.com/jmespath/go-jmespath v0.4.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.6 // indirect + github.com/klauspost/compress v1.19.0 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // 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.4 // indirect + github.com/knadh/koanf/v2 v2.3.5 // indirect github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/lightstep/go-expohisto v1.0.0 // indirect github.com/linode/go-metadata v0.2.4 // indirect - github.com/linode/linodego v1.66.0 // indirect - github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 // indirect + github.com/linode/linodego v1.69.1 // indirect + github.com/lufia/plan9stats v0.0.0-20260330125221-c963978e514e // indirect github.com/magefile/mage v1.15.0 // indirect - github.com/magiconair/properties v1.8.10 // indirect github.com/mattn/go-colorable v0.1.14 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mdlayher/socket v0.5.1 // indirect - github.com/mdlayher/vsock v1.2.1 // indirect + github.com/mattn/go-isatty v0.0.22 // indirect + github.com/mdlayher/socket v0.6.0 // indirect + github.com/mdlayher/vsock v1.3.0 // indirect github.com/microsoft/ApplicationInsights-Go v0.4.4 // indirect github.com/miekg/dns v1.1.72 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect @@ -338,89 +333,88 @@ require ( github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect - github.com/moby/moby/api v1.54.2 // indirect - github.com/moby/moby/client v0.4.1 // indirect + github.com/moby/moby/api v1.55.0 // indirect + github.com/moby/moby/client v0.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect github.com/oklog/ulid/v2 v2.1.1 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/basicauth v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/extension/k8sleaderelector v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/splunk v0.153.0 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.153.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/basicauth v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/k8sleaderelector v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/pprof v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/splunk v0.157.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.157.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/openshift/api v0.0.0-20251015095338-264e80a2b6e7 // indirect github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235 // indirect github.com/outcaste-io/ristretto v0.2.3 // indirect - github.com/outscale/osc-sdk-go/v2 v2.32.0 // indirect + github.com/outscale/osc-sdk-go/v2 v2.34.0 // indirect github.com/ovh/go-ovh v1.9.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pb33f/jsonpath v0.8.2 // indirect - github.com/pb33f/libopenapi v0.34.4 // indirect + github.com/pb33f/libopenapi v0.37.2 // indirect github.com/pb33f/ordered-map/v2 v2.3.1 // indirect github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect - github.com/pelletier/go-toml v1.9.5 // indirect github.com/philhofer/fwd v1.2.0 // indirect - github.com/pierrec/lz4/v4 v4.1.26 // indirect + github.com/pierrec/lz4/v4 v4.1.27 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect - github.com/prometheus/alertmanager v0.31.1 // indirect - github.com/prometheus/client_golang v1.23.2 // indirect - github.com/prometheus/client_golang/exp v0.0.0-20260325093428-d8591d0db856 // indirect + github.com/prometheus/alertmanager v0.32.1 // indirect + github.com/prometheus/client_golang v1.23.3-0.20251103151724-a5ae20370e5e // indirect + github.com/prometheus/client_golang/exp v0.0.0-20260518105423-c9d5bc4c50a9 // indirect github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.67.5 // indirect + github.com/prometheus/common v0.70.0 // indirect github.com/prometheus/common/assets v0.2.0 // indirect - github.com/prometheus/exporter-toolkit v0.16.0 // indirect + github.com/prometheus/exporter-toolkit v0.17.1 // indirect github.com/prometheus/otlptranslator v1.0.0 // indirect - github.com/prometheus/procfs v0.20.1 // indirect - github.com/prometheus/prometheus v0.311.4-0.20260507094802-91c184a899b8 // indirect + github.com/prometheus/procfs v0.21.1 // indirect + github.com/prometheus/prometheus v0.312.0 // indirect github.com/prometheus/sigv4 v0.4.1 // indirect github.com/puzpuzpuz/xsync/v4 v4.5.0 // indirect github.com/rdforte/gomaxecs v1.1.2 // indirect github.com/richardartoul/molecule v1.0.1-0.20240531184615-7ca0df43c0b3 // indirect github.com/rs/cors v1.11.1 // indirect github.com/scaleway/scaleway-sdk-go v1.0.0-beta.36 // indirect - github.com/secure-systems-lab/go-securesystemslib v0.9.0 // indirect + github.com/secure-systems-lab/go-securesystemslib v0.11.0 // indirect github.com/shirou/gopsutil/v3 v3.24.5 // indirect - github.com/shirou/gopsutil/v4 v4.26.4 // indirect + github.com/shirou/gopsutil/v4 v4.26.6 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect github.com/shurcooL/httpfs v0.0.0-20230704072500-f1e31cf0ba5c // indirect github.com/spf13/cast v1.10.0 // indirect github.com/spf13/cobra v1.10.2 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - github.com/stackitcloud/stackit-sdk-go/core v0.23.0 // indirect - github.com/stretchr/objx v0.5.2 // indirect + github.com/stackitcloud/stackit-sdk-go/core v0.26.0 // indirect + github.com/stretchr/objx v0.5.3 // indirect github.com/stretchr/testify v1.11.1 // indirect - github.com/tg123/go-htpasswd v1.2.4 // indirect + github.com/tg123/go-htpasswd v1.2.5 // 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 @@ -431,87 +425,91 @@ require ( github.com/tklauser/numcpus v0.11.0 // indirect github.com/twmb/murmur3 v1.1.8 // indirect github.com/ua-parser/uap-go v0.0.0-20251207011819-db9adb27a0b8 // indirect - github.com/vultr/govultr/v3 v3.28.1 // indirect + github.com/vultr/govultr/v3 v3.31.2 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect github.com/zeebo/xxh3 v1.1.0 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/collector v0.153.0 // indirect - go.opentelemetry.io/collector/client v1.59.0 // indirect - go.opentelemetry.io/collector/component/componentstatus v0.153.0 // indirect - go.opentelemetry.io/collector/component/componenttest v0.153.0 // indirect - go.opentelemetry.io/collector/config/configauth v1.59.0 // indirect - go.opentelemetry.io/collector/config/configcompression v1.59.0 // indirect - go.opentelemetry.io/collector/config/configgrpc v0.153.0 // indirect - go.opentelemetry.io/collector/config/confighttp v0.153.0 // indirect - go.opentelemetry.io/collector/config/configmiddleware v1.59.0 // indirect - go.opentelemetry.io/collector/config/confignet v1.59.0 // indirect - go.opentelemetry.io/collector/config/configopaque v1.59.0 // indirect - go.opentelemetry.io/collector/config/configoptional v1.59.0 // indirect - go.opentelemetry.io/collector/config/configretry v1.59.0 // indirect - go.opentelemetry.io/collector/config/configtelemetry v0.153.0 // indirect - go.opentelemetry.io/collector/config/configtls v1.59.0 // indirect - go.opentelemetry.io/collector/confmap/xconfmap v0.153.0 // indirect - go.opentelemetry.io/collector/connector/connectortest v0.153.0 // indirect - go.opentelemetry.io/collector/connector/xconnector v0.153.0 // indirect - go.opentelemetry.io/collector/consumer v1.59.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror v0.153.0 // indirect - go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.153.0 // indirect - go.opentelemetry.io/collector/consumer/consumertest v0.153.0 // indirect - go.opentelemetry.io/collector/consumer/xconsumer v0.153.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper v0.153.0 // indirect - go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.153.0 // indirect - go.opentelemetry.io/collector/exporter/exportertest v0.153.0 // indirect - go.opentelemetry.io/collector/exporter/xexporter v0.153.0 // indirect - go.opentelemetry.io/collector/extension/extensionauth v1.59.0 // indirect - go.opentelemetry.io/collector/extension/extensioncapabilities v0.153.0 // indirect - go.opentelemetry.io/collector/extension/extensionmiddleware v0.153.0 // indirect - go.opentelemetry.io/collector/extension/extensiontest v0.153.0 // indirect - go.opentelemetry.io/collector/extension/xextension v0.153.0 // indirect - go.opentelemetry.io/collector/featuregate v1.59.0 // indirect - go.opentelemetry.io/collector/internal/componentalias v0.153.0 // indirect - go.opentelemetry.io/collector/internal/fanoutconsumer v0.153.0 // indirect - go.opentelemetry.io/collector/internal/memorylimiter v0.153.0 // indirect - go.opentelemetry.io/collector/internal/sharedcomponent v0.153.0 // indirect - go.opentelemetry.io/collector/internal/telemetry v0.153.0 // indirect - go.opentelemetry.io/collector/pdata v1.59.0 // indirect - go.opentelemetry.io/collector/pdata/pprofile v0.153.0 // indirect - go.opentelemetry.io/collector/pdata/testdata v0.153.0 // indirect - go.opentelemetry.io/collector/pdata/xpdata v0.153.0 // indirect - go.opentelemetry.io/collector/pipeline v1.59.0 // indirect - go.opentelemetry.io/collector/pipeline/xpipeline v0.153.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper v0.153.0 // indirect - go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.153.0 // indirect - go.opentelemetry.io/collector/processor/processortest v0.153.0 // indirect - go.opentelemetry.io/collector/processor/xprocessor v0.153.0 // indirect - go.opentelemetry.io/collector/receiver/receiverhelper v0.153.0 // indirect - go.opentelemetry.io/collector/receiver/receivertest v0.153.0 // indirect - go.opentelemetry.io/collector/receiver/xreceiver v0.153.0 // indirect - go.opentelemetry.io/collector/service/hostcapabilities v0.153.0 // indirect - go.opentelemetry.io/contrib/bridges/otelzap v0.18.0 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.67.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect - go.opentelemetry.io/contrib/otelconf v0.23.0 // indirect - go.opentelemetry.io/contrib/propagators/b3 v1.43.0 // indirect - go.opentelemetry.io/otel v1.43.1-0.20260514180605-442cdbdd9466 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/prometheus v0.65.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.19.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.43.0 // indirect - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0 // indirect - go.opentelemetry.io/otel/log v0.19.0 // indirect - go.opentelemetry.io/otel/metric v1.43.1-0.20260514180605-442cdbdd9466 // indirect - go.opentelemetry.io/otel/sdk v1.43.0 // indirect - go.opentelemetry.io/otel/sdk/log v0.19.0 // indirect - go.opentelemetry.io/otel/sdk/metric v1.43.1-0.20260514180605-442cdbdd9466 // indirect - go.opentelemetry.io/otel/trace v1.43.1-0.20260514180605-442cdbdd9466 // indirect + go.opentelemetry.io/collector v0.157.0 // indirect + go.opentelemetry.io/collector/client v1.63.0 // indirect + go.opentelemetry.io/collector/component/componentstatus v0.157.0 // indirect + go.opentelemetry.io/collector/component/componenttest v0.157.0 // indirect + go.opentelemetry.io/collector/config/configauth v1.63.0 // indirect + go.opentelemetry.io/collector/config/configcompression v1.63.0 // indirect + go.opentelemetry.io/collector/config/configgrpc v0.157.0 // indirect + go.opentelemetry.io/collector/config/confighttp v0.157.0 // indirect + go.opentelemetry.io/collector/config/configmiddleware v1.63.0 // indirect + go.opentelemetry.io/collector/config/confignet v1.63.0 // indirect + go.opentelemetry.io/collector/config/configopaque v1.63.0 // indirect + go.opentelemetry.io/collector/config/configoptional v1.63.0 // indirect + go.opentelemetry.io/collector/config/configretry v1.63.0 // indirect + go.opentelemetry.io/collector/config/configtelemetry v0.157.0 // indirect + go.opentelemetry.io/collector/config/configtls v1.63.0 // indirect + go.opentelemetry.io/collector/confmap/xconfmap v0.157.0 // indirect + go.opentelemetry.io/collector/connector/connectortest v0.157.0 // indirect + go.opentelemetry.io/collector/connector/xconnector v0.157.0 // indirect + go.opentelemetry.io/collector/consumer v1.63.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror v0.157.0 // indirect + go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.157.0 // indirect + go.opentelemetry.io/collector/consumer/consumertest v0.157.0 // indirect + go.opentelemetry.io/collector/consumer/xconsumer v0.157.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper v0.157.0 // indirect + go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.157.0 // indirect + go.opentelemetry.io/collector/exporter/exportertest v0.157.0 // indirect + go.opentelemetry.io/collector/exporter/xexporter v0.157.0 // indirect + go.opentelemetry.io/collector/extension/extensionauth v1.63.0 // indirect + go.opentelemetry.io/collector/extension/extensioncapabilities v0.157.0 // indirect + go.opentelemetry.io/collector/extension/extensionmiddleware v0.157.0 // indirect + go.opentelemetry.io/collector/extension/extensiontest v0.157.0 // indirect + go.opentelemetry.io/collector/extension/xextension v0.157.0 // indirect + go.opentelemetry.io/collector/featuregate v1.63.0 // indirect + go.opentelemetry.io/collector/internal/componentalias v0.157.0 // indirect + go.opentelemetry.io/collector/internal/fanoutconsumer v0.157.0 // indirect + go.opentelemetry.io/collector/internal/memorylimiter v0.157.0 // indirect + go.opentelemetry.io/collector/internal/sharedcomponent v0.157.0 // indirect + go.opentelemetry.io/collector/internal/telemetry v0.157.0 // indirect + go.opentelemetry.io/collector/pdata v1.63.0 // indirect + go.opentelemetry.io/collector/pdata/pprofile v0.157.0 // indirect + go.opentelemetry.io/collector/pdata/testdata v0.157.0 // indirect + go.opentelemetry.io/collector/pdata/xpdata v0.157.0 // indirect + go.opentelemetry.io/collector/pipeline v1.63.0 // indirect + go.opentelemetry.io/collector/pipeline/xpipeline v0.157.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper v0.157.0 // indirect + go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.157.0 // indirect + go.opentelemetry.io/collector/processor/processortest v0.157.0 // indirect + go.opentelemetry.io/collector/processor/xprocessor v0.157.0 // indirect + go.opentelemetry.io/collector/receiver/receiverhelper v0.157.0 // indirect + go.opentelemetry.io/collector/receiver/receivertest v0.157.0 // indirect + go.opentelemetry.io/collector/receiver/xreceiver v0.157.0 // indirect + go.opentelemetry.io/collector/service/hostcapabilities v0.157.0 // indirect + go.opentelemetry.io/contrib/bridges/otelzap v0.19.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.69.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.69.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 // indirect + go.opentelemetry.io/contrib/otelconf v0.24.0 // indirect + go.opentelemetry.io/contrib/propagators/autoprop v0.69.0 // indirect + go.opentelemetry.io/contrib/propagators/aws v1.44.0 // indirect + go.opentelemetry.io/contrib/propagators/b3 v1.44.0 // indirect + go.opentelemetry.io/contrib/propagators/jaeger v1.44.0 // indirect + go.opentelemetry.io/contrib/propagators/ot v1.44.0 // indirect + go.opentelemetry.io/otel v1.44.1-0.20260622141720-fbe3d073ba93 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.20.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.20.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.44.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.44.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0 // indirect + go.opentelemetry.io/otel/exporters/prometheus v0.66.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.20.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.44.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.44.0 // indirect + go.opentelemetry.io/otel/log v0.20.0 // indirect + go.opentelemetry.io/otel/metric v1.44.1-0.20260622141720-fbe3d073ba93 // indirect + go.opentelemetry.io/otel/sdk v1.44.0 // indirect + go.opentelemetry.io/otel/sdk/log v0.20.0 // indirect + go.opentelemetry.io/otel/sdk/metric v1.44.1-0.20260622141720-fbe3d073ba93 // indirect + go.opentelemetry.io/otel/trace v1.44.1-0.20260622141720-fbe3d073ba93 // indirect go.opentelemetry.io/proto/otlp v1.10.0 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/automaxprocs v1.6.0 // indirect @@ -524,30 +522,30 @@ require ( go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect go.yaml.in/yaml/v4 v4.0.0-rc.4 // indirect - golang.org/x/crypto v0.52.0 // indirect - golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 // indirect - golang.org/x/mod v0.36.0 // indirect - golang.org/x/net v0.55.0 // indirect + golang.org/x/crypto v0.54.0 // indirect + golang.org/x/exp v0.0.0-20260527015227-08cc5374adb3 // indirect + golang.org/x/mod v0.38.0 // indirect + golang.org/x/net v0.57.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect - golang.org/x/sync v0.20.0 // indirect - golang.org/x/term v0.43.0 // indirect - golang.org/x/text v0.37.0 // indirect + golang.org/x/sync v0.22.0 // indirect + golang.org/x/term v0.45.0 // indirect + golang.org/x/text v0.40.0 // indirect golang.org/x/time v0.15.0 // indirect - golang.org/x/tools v0.45.0 // indirect + golang.org/x/tools v0.48.0 // indirect gonum.org/v1/gonum v0.17.0 // indirect - google.golang.org/api v0.274.0 // indirect + google.golang.org/api v0.278.0 // indirect google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d // indirect - google.golang.org/grpc v1.81.1 // indirect - google.golang.org/protobuf v1.36.11 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260618152121-87f3d3e198d3 // indirect + google.golang.org/grpc v1.82.1 // indirect + google.golang.org/protobuf v1.36.12-0.20260116114154-8c4c4ae446ca // indirect gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/ini.v1 v1.67.1 // indirect + gopkg.in/ini.v1 v1.67.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/api v0.35.4 // indirect - k8s.io/apimachinery v0.35.4 // indirect + k8s.io/apimachinery v0.35.6 // indirect k8s.io/client-go v0.35.4 // indirect k8s.io/klog/v2 v2.140.0 // indirect k8s.io/kube-openapi v0.0.0-20260330154417-16be699c7b31 // indirect diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/go.sum b/src/compute-plane-services/byoo-otel-collector/otelcol/go.sum index 1d75c699d..d1c36072c 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/go.sum +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/go.sum @@ -1,7 +1,7 @@ cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= -cloud.google.com/go/auth v0.18.2 h1:+Nbt5Ev0xEqxlNjd6c+yYUeosQ5TtEUaNcN/3FozlaM= -cloud.google.com/go/auth v0.18.2/go.mod h1:xD+oY7gcahcu7G2SG2DsBerfFxgPAJz17zz2joOFF3M= +cloud.google.com/go/auth v0.20.0 h1:kXTssoVb4azsVDoUiF8KvxAqrsQcQtB53DcSgta74CA= +cloud.google.com/go/auth v0.20.0/go.mod h1:942/yi/itH1SsmpyrbnTMDgGfdy2BUqIKyd0cyYLc5Q= 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 v1.60.0 h1:CqGt23ysz990ZZe1vq/9aDPKKnmwM6kcC7Y1Q05H2kI= @@ -12,14 +12,14 @@ code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c h1:5eeuG0BHx1+DHe code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= 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.21.0 h1:fou+2+WFTib47nS+nz/ozhEBnvU96bKHy6LjRsY4E28= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0/go.mod h1:t76Ruy8AHvUAC8GfMWJMa0ElSbuIcO03NLpynfbgsPA= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.1 h1:jHb/wfvRikGdxMXYV3QG/SzUOPYN9KEUUuC0Yd0/vC0= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.1/go.mod h1:pzBXCYn05zvYIrwLgtK8Ap8QcjRg+0i76tMQdWN6wOk= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpzme37xbCDdNTxU7O9eb5+LB4= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0= 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.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/internal v1.12.0 h1:fhqpLE3UEXi9lPaBRpQ6XuRW0nU7hgg4zlmZZa+a9q4= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.12.0/go.mod h1:7dCRMLwisfRH3dBupKeNCioWYUZ4SS09Z14H+7i8ZoY= 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= @@ -34,236 +34,229 @@ github.com/AzureAD/microsoft-authentication-extensions-for-go/cache v0.1.1 h1:WJ 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.6.0 h1:XRzhVemXdgvJqCH0sFfrBUTnUJSBrBf7++ypk+twtRs= github.com/AzureAD/microsoft-authentication-library-for-go v1.6.0/go.mod h1:HKpQxkWaGLJ+D/5H8QRpyQXA1eKjxkFlOMwck5+33Jk= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Code-Hex/go-generics-cache v1.5.1 h1:6vhZGc5M7Y/YD8cIUcY8kcuQLB4cHR7U+0KMqAA0KcU= github.com/Code-Hex/go-generics-cache v1.5.1/go.mod h1:qxcC9kRVrct9rHeiYpFWSoW1vxyillCVzX13KZG8dl4= -github.com/DataDog/agent-payload/v5 v5.0.197 h1:bSTMx1Bz3XMPoWKxDyEeGmVODIl19FWAyOIyyw2h3go= -github.com/DataDog/agent-payload/v5 v5.0.197/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= -github.com/DataDog/datadog-agent/comp/core/config v0.77.0-devel.0.20260213154712-e02b9359151a h1:o791VeAGFEb6fGyAHpqzDpS7BTIlr1HyvkJ9RPjXlco= -github.com/DataDog/datadog-agent/comp/core/config v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:+w8f84OvHfshCgEaxnOhjEm/SOgI/8M402kLGXIzzsA= -github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a h1:ydobiSmLw/F7wtQttwIES2dpdOafG4WIXgqySz+fddY= -github.com/DataDog/datadog-agent/comp/core/flare/builder v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:SiaKZji0EiqxZubkN5+Y6QIlxz+Yz8q+/ilsKB3UaAM= -github.com/DataDog/datadog-agent/comp/core/flare/types v0.77.0-devel.0.20260213154712-e02b9359151a h1:q9ZJQC/qJUFPGgLyiKKU94u2JNWLr9CUmjdAYavs4UQ= -github.com/DataDog/datadog-agent/comp/core/flare/types v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:w1hNkMOOU0DntLlvCW9CGZSbLU8hsU/de8VmpDv5PEM= -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.77.0-devel.0.20260213154712-e02b9359151a h1:E6LG4ZqnX/Nc0XHyy4iz+58kc92AUyfTfOcP35vkK6Q= -github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:Cwf+yUISsz7CtvKFiG9Z2F9+xIw24k7USkwo0jK1fLA= -github.com/DataDog/datadog-agent/comp/core/log/def v0.77.0-devel.0.20260213154712-e02b9359151a h1:jH8H8wihCnI5sREtX9q69OpPadnV//EELT5+/CmBrLI= -github.com/DataDog/datadog-agent/comp/core/log/def v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:g8DqgILZSRMJ/4danzNc5qDJzi0b02TwamZxHkQ1LCo= -github.com/DataDog/datadog-agent/comp/core/log/mock v0.64.0-devel h1:x1/H6+u1wW9jFaGMQ76065uo2S8rCIsK9eaEHnWwtyY= -github.com/DataDog/datadog-agent/comp/core/log/mock v0.64.0-devel/go.mod h1:LBFg7mnbvtMLLTf6nF2Ml0uaq91h2ywPkVVtLRPo5pM= -github.com/DataDog/datadog-agent/comp/core/secrets/def v0.77.0-devel.0.20260213154712-e02b9359151a h1:bLbfIwY9lLil05XNeWJA42xdHnu8Lx4C35fNLt2mHQE= -github.com/DataDog/datadog-agent/comp/core/secrets/def v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:+tWrxbmkEib8zDWIjWqQ24/n4iCYrmWEcbuOFsWQC7c= +github.com/DataDog/agent-payload/v5 v5.0.205 h1:7+ZNser6vX1ptlZWO1UnYQ1trKoYmYFMvt1/ZIw3iD0= +github.com/DataDog/agent-payload/v5 v5.0.205/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M= +github.com/DataDog/datadog-agent/comp/api/api/def v0.80.2 h1:ywo2ze8+Nj3wd+ehkuScFFasSSNHcKxPGJ8qqfeUQJg= +github.com/DataDog/datadog-agent/comp/api/api/def v0.80.2/go.mod h1:KeQc3WnL77TJZFWqE7QLvvkmCE7+FeCD4lWzN0RTvZ8= +github.com/DataDog/datadog-agent/comp/core/config v0.82.0-devel.0.20260624113434-509b872045c2 h1:ZS6H7Nz3rSb5d/5AQsEHqoA72dom38g2dfEnC/jaNLc= +github.com/DataDog/datadog-agent/comp/core/config v0.82.0-devel.0.20260624113434-509b872045c2/go.mod h1:mdP/1UP97GpAhxFILKAA2NkBCMV/t+Y3u41LO21jk+0= +github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.79.0-devel.0.20260402163801-bfa4eff6c991 h1:0QXu9n6Q4t08C6A6PMtPKgSvjmB292auzaUecoTKkOo= +github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.79.0-devel.0.20260402163801-bfa4eff6c991/go.mod h1:UZNswGzTmm1PJlk5VcxUm9wpJ+2j0fqju0sQIWXkpaE= +github.com/DataDog/datadog-agent/comp/core/flare/builder v0.80.2 h1:BheCjHrTnZBJPsIu0Tur+DJOHYsrUXBtXM6vGbtuYYo= +github.com/DataDog/datadog-agent/comp/core/flare/builder v0.80.2/go.mod h1:Jf7VTIFLng4jct6CVazHPp45NEVXImta9O1PcijSayE= +github.com/DataDog/datadog-agent/comp/core/flare/types v0.80.2 h1:SBCM/gpwpRb/AjqbshNX2jYNwRRs+1jgI57NxWH2OWk= +github.com/DataDog/datadog-agent/comp/core/flare/types v0.80.2/go.mod h1:C6j/pusBZeVIIMfoWGrfNJih0YdsoFy8nEB9VlkmBFM= +github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.80.2 h1:uvhFcanJxJHCZaVvmBFj91JRHRQMY4p+BbUOhUpuNgc= +github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.80.2/go.mod h1:JsmlZ8lB3bvwjRMBC0z3PHlMlPKRuY9x/SHZObkwpgI= +github.com/DataDog/datadog-agent/comp/core/log/def v0.80.2 h1:pGBNdo7E3daqYoAwvKf/RujRef9HsoCog6kWVKSw7uY= +github.com/DataDog/datadog-agent/comp/core/log/def v0.80.2/go.mod h1:P4A60TUTrnBm1kPjmlr0ZF0LL5C2fpby0CChPOIihmU= +github.com/DataDog/datadog-agent/comp/core/log/mock v0.80.2 h1:z4agTRrgbQEepPFcJDBn8jWq9cw6ntlYF5w7o8HThK4= +github.com/DataDog/datadog-agent/comp/core/log/mock v0.80.2/go.mod h1:Z8qS8qQwt6Xje1gfDKkk7oE0JlCN0BaGE7LYKfqqaM4= +github.com/DataDog/datadog-agent/comp/core/secrets/def v0.80.2 h1:j9REK6HaGnLfORP8oCfP9w3PPQK6Q7D4OItCeYmM31k= +github.com/DataDog/datadog-agent/comp/core/secrets/def v0.80.2/go.mod h1:u6/ndhEmR59XajIWUP7+XD3dM+UhsP1IBT9FEhCTqBc= github.com/DataDog/datadog-agent/comp/core/secrets/mock v0.72.0-rc.1 h1:hC7azX0JPYYICo86bBOUjWQmEgNjjBAM7mLJyAD8CvI= github.com/DataDog/datadog-agent/comp/core/secrets/mock v0.72.0-rc.1/go.mod h1:YofarszBMLyQspZUiJD4AnRN28B1OAbhp1yWAGdm+nI= -github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260213154712-e02b9359151a h1:RUgx7BeRcJu9NG/oyr0GS86Ct4ch4tgmaZXoyqTEU7M= -github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:tE+Q1MeKJUJAC7sYv9jnulWH9ewO3jB0ktqNui4GUvs= +github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.80.2 h1:eA1c+9zOtPFdVhCshh/C++3vZA8M71wXk2OeTixpt0g= +github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.80.2/go.mod h1:5/ieQGWyX9rSFVeOvowC5kyZzUkhgituBWspvsx+cQI= github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.70.0 h1:i7y3at4X4TSdaCpZU7JoRerIbezD+LudVsB2rDd4Leo= github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.70.0/go.mod h1:ALBDP+QHSmtWZEHhWL1CvfNa/IW7Kv47MU5QBzEX4ss= -github.com/DataDog/datadog-agent/comp/core/status v0.77.0-devel.0.20260213154712-e02b9359151a h1:il1HMwkQPHRAWMiYhKAknHZZ3+QPuzOnfbYL/Ar+8OM= -github.com/DataDog/datadog-agent/comp/core/status v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:LSHQQsSchnPhHMxDSE7yAjTgLvdkN78W8po5P1ayN6s= -github.com/DataDog/datadog-agent/comp/core/tagger/def v0.77.0-devel.0.20260213154712-e02b9359151a h1:5QBHHqYjcjqiFjVAYKRnlxAGBlmFmy+W8NP9CnQ+KWY= -github.com/DataDog/datadog-agent/comp/core/tagger/def v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:8VFn89z2mLJyYwVVvk4IbdUnS3TZYt15i9Lc9loLl5w= -github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.77.0-devel.0.20260213154712-e02b9359151a h1:CnOjFdrOPSjKmEymrkVGfkxI64P7cwLSnIauKspCoFw= -github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:wk/u8IhnLPik36UA+NUrtuZqjN1yEzpTOXaR4pK/NlM= -github.com/DataDog/datadog-agent/comp/core/tagger/types v0.77.0-devel.0.20260213154712-e02b9359151a h1:wT5L0n3woFye0+JcaHKWf0e9BO+eEbKtp6r2Qwp9kmI= -github.com/DataDog/datadog-agent/comp/core/tagger/types v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:VRb3K53NBIYKJV1PUEMn2rl1MipImokCFHcPbXbAyNA= -github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.77.0-devel.0.20260213154712-e02b9359151a h1:MxWsr8+XY19AgMJKfcF2b8xNHAlA/ZG8Zz+bM2V/Ddg= -github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:BNyU1B6KM3fNiRaVCaDNN/QiJjs7os9SKI08VE0srR8= -github.com/DataDog/datadog-agent/comp/core/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a h1:WvzJFH6Mz9H+lhWdhT0eD4+pS++sFGRlop30JjX/Y50= -github.com/DataDog/datadog-agent/comp/core/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:v9LIrICF4ixzV/J01VXY9maNAcYNC5EKKmV7aDzkWUo= -github.com/DataDog/datadog-agent/comp/def v0.77.0-devel.0.20260213154712-e02b9359151a h1:cFbCmUf+AmrxFs4hLTMLRvrscArLNpv6SctTLK1c/uM= -github.com/DataDog/datadog-agent/comp/def v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:rUIPFaax044WVlKbMMAITmmAtVvNJXpMD3dZp38u1wU= -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.77.0-devel.0.20260213154712-e02b9359151a h1:HOTXmg/5tSwjRIN60cOmqnpAfqGrhC+76MpESX6ANeQ= -github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:fNhODj1HmQVzCSdK/s8KMzmEV0CarEjbVm42hsrbVUY= -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.77.0-devel.0.20260213154712-e02b9359151a h1:VGHKY/PPl/0eNRFHFUsvqGH3cmwqLDiOQJ7HeS4+mjQ= -github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:DGrX/ZGlGUMegxBsd3YMVQx8TWg7Fv5iK5AH7hvnepg= -github.com/DataDog/datadog-agent/comp/logs/agent/config v0.77.0-devel.0.20260213154712-e02b9359151a h1:k4H/rCB9TtlY9XKI1Qurmell50ZjmdMY9+9y8Twwyg4= -github.com/DataDog/datadog-agent/comp/logs/agent/config v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:Ti/BIzpPvtzmdVQW8cohlrE59ObE+yD71cqZ6lGbtuY= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.77.0-devel.0.20260213154712-e02b9359151a h1:m8hgueuHNdNikhE1VRiXHZsvaDm686UBrsgTjIhik2A= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:QUXoLXnS1qU4E3bPdopJgOcOeAKDXOXLawXMj46kkJA= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.77.0-devel.0.20260213154712-e02b9359151a h1:zUNCy4QDqQqcl3anWo/IYZflHY0DboFsDmUX7v6kK6I= -github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:sNIGBfFzDtTrVleDqk1ZYm0i14flSrGIJsUQi/UuPro= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.79.0-devel.0.20260402163801-bfa4eff6c991 h1:2e+zXHPNkK6N33nbxPLIWgO84uz+gB0GY5X6kARnYQc= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.79.0-devel.0.20260402163801-bfa4eff6c991/go.mod h1:MixgBTwU8d3pR7T9li96U2zWLIcAczz+qT3onFqyHiA= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.77.0-devel.0.20260213154712-e02b9359151a h1:3tBu8Ps1CUSRI9zILshsrJ9aAP5TkssJJNlWioCXRrM= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:i6bCO35hoTsZQJJd2qLq4BAW64bAGpRRXAdgsUtNPcY= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.77.0-devel.0.20260213154712-e02b9359151a h1:78/nt4xN+3//2u6yHn3fuBpxOx7VcW2DFYLgy8dDkKA= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:GW6UOnOWP+HV8tv/vaV09iwja/7eFItST0pHDgcHyZM= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.77.0-devel.0.20260213154712-e02b9359151a h1:yqh4gF8eGUALqdpBmcTuqETNvbBU/d5b8KqyIJZa5Mk= -github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:8kcPtiLmOjPOBsTCxkDCHGBtv5fPkzksBWMvjuOG9xU= -github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.77.0-devel.0.20260213154712-e02b9359151a h1:HVtE6aue6x9YwxeOUMbtqTkmWy+mgwdgrDx/n4xDdL8= -github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:ivY18QWR8EJpYAfwbqYM7oy2ij9St59Xv3PVMtDAqoU= -github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.77.0-devel.0.20260213154712-e02b9359151a h1:PpfxHicSQVaPxP89X0fKzKaqfdNnN0EqZiZYXYURvpI= -github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:aJQs9GyYAYiby25sjfLb6Y4ZuBANtp8De010IojcN+w= -github.com/DataDog/datadog-agent/comp/trace/compression/def v0.77.0-devel.0.20260213154712-e02b9359151a h1:yzLL54mfkir1+tkgu/mLwc2M3eDrQCmqyS8d6FCC8Nw= -github.com/DataDog/datadog-agent/comp/trace/compression/def v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:/LB8zt0+oMT+G0y329uqAINfby2D7YRV0QP6ukmzu8c= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.77.0-devel.0.20260213154712-e02b9359151a h1:4ORx61JwknABkaGJ0v5rlEMXeUO7kxd3wDfnSAjMY+4= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:nUrZXNsbljI6eDT7V7KF43JIWG2e0txBkz/rfj8H+t4= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.56.0-rc.3 h1:Hq2tQTaFcEJy9o1QFb9Ql/gm0uRzrYQkFEZGPVKLMHI= -github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.56.0-rc.3/go.mod h1:TOlu5v8b46+aW9h3KLZdOiwz3gJkoQerT3+F3st6ZRA= -github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.77.0-devel.0.20260213154712-e02b9359151a h1:8GvYMKw1w1dVat8dU4Y6HVl/Qff9Jsaya2PA1wA38AM= -github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:pLZasd7Z5p0+/ncpI83Dr2PqsTGEOQsyEyLlAcj7NQc= -github.com/DataDog/datadog-agent/pkg/api v0.77.0-devel.0.20260213154712-e02b9359151a h1:eXVfueLQ384hcAdrpC4viin0Fgoo0e+pNvMZJndmnO0= -github.com/DataDog/datadog-agent/pkg/api v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:lOP+5WrAUf0jKtW/aEgYg3x9OydGLd5jfqkFVH56Tko= -github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.77.0-devel.0.20260213154712-e02b9359151a h1:MFV4rPHhzWg25st9q6Z/LkK43mJH3hpwrmBihhiU/XQ= -github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:+17V5GxD4ZsMgqkeXuFhd59wzCZV24bQpC5LAZB0TH4= -github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a h1:BckqLXD+GpyoQH6hwbVfEQKr69KnXS3MGy0a0My5Tjg= -github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260213154712-e02b9359151a/go.mod h1:s4edkEdxoAKTwsUAaBL3RPMBfcx8od2ACDpqxeugse0= -github.com/DataDog/datadog-agent/pkg/config/create v0.77.0-devel.0.20260213154712-e02b9359151a h1:V7xdWqjtUYEt5RRjYsVEJdCtQ6iHxEO5QhBKqs+dpBw= -github.com/DataDog/datadog-agent/pkg/config/create v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:0HGNzCzlt9o5/U+JTgDIRVTD2+xk50X3YhY4zGIpCUs= -github.com/DataDog/datadog-agent/pkg/config/env v0.77.0-devel.0.20260213154712-e02b9359151a h1:KsTqSrunOtpb0lKEPfsgkVFiSnPIgBQr9wtoV8xXbF0= -github.com/DataDog/datadog-agent/pkg/config/env v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:6Jtfo5fkBCkXYRzfBoJOoAOCAUYyHUF6HwYZ4q1h8FA= -github.com/DataDog/datadog-agent/pkg/config/helper v0.77.0-devel.0.20260213154712-e02b9359151a h1:mnkicjtoDxxSnXe/Og04dbhPG/N17sxY4kg7BqCBm2o= -github.com/DataDog/datadog-agent/pkg/config/helper v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:ouQFzi2qeowFFb4iaQa+1v4YoZzAV1H+/DZp7M9zDOM= -github.com/DataDog/datadog-agent/pkg/config/mock v0.77.0-devel.0.20260213154712-e02b9359151a h1:8vVCtvtWDg0w6V99gp9Ge9EFnHgmCaEqh8yV+MVgbVY= -github.com/DataDog/datadog-agent/pkg/config/mock v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:uaNLe6/WgmAv/cbJsQYegZempURtWUHSnsXq9VtYJfc= -github.com/DataDog/datadog-agent/pkg/config/model v0.77.0-devel.0.20260213154712-e02b9359151a h1:Hpu0QSOPbVi2jxsCUZndmTmF8d4et3dAwM2s7m06yG0= -github.com/DataDog/datadog-agent/pkg/config/model v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:OWXgt881V0ZfWqG6BWiFdO51L8c8YY4wAY7qcv1yIws= -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.77.0-devel.0.20260213154712-e02b9359151a h1:3mjJTZdhP6qOgf7YKNOnAqk09A9nxqtbPnfOWpaPX24= -github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:VGEJ1q+Cx++FJP0bC5yGXwUTpmXv+P/2e6FYKQfKdWg= -github.com/DataDog/datadog-agent/pkg/config/setup v0.77.0-devel.0.20260213154712-e02b9359151a h1:jBmbMtaZXfOlsWiIvXOLo1osZHTuiqONzLCcklVbg6I= -github.com/DataDog/datadog-agent/pkg/config/setup v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:CegY+IZVEZiVgZOpT3o6Pbq5ku5L7mJK7050nZUt7EQ= -github.com/DataDog/datadog-agent/pkg/config/structure v0.77.0-devel.0.20260213154712-e02b9359151a h1:E4JsG44V2e5DBYrukBnuJrF9Iye4D8WnJ/l4SRU8nYg= -github.com/DataDog/datadog-agent/pkg/config/structure v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:Smwa9emqtyeyzB5t7T9ogeH2/3uob/O9gqCKuxWpxpU= -github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.77.0-devel.0.20260213154712-e02b9359151a h1:OCyPFPZayM7eg1AxXJvzSS81XtRDWfkr9qw4E+mE4K0= -github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:p3GMIIZLR0vxlcR6jdF+3ayS05288g7b9mG3aZDRj8g= -github.com/DataDog/datadog-agent/pkg/config/utils v0.77.0-devel.0.20260213154712-e02b9359151a h1:BQRpkGkXN5dKijPty6rx7iyKlsSTaMvuq2pNyoRASNI= -github.com/DataDog/datadog-agent/pkg/config/utils v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:xAwdtfzT/OjbW56SjbHYXp4rtBwr0uZJH1MIccEGNNs= -github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.77.0-devel.0.20260213154712-e02b9359151a h1:DA9y9IzvShVsDwJttnsed0xVIseTss31ThBFEZiOvPU= -github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:2qN+AJQQ8Vup7DsAshQ+L/MgsvQlGhbVfs/bRtrEreM= -github.com/DataDog/datadog-agent/pkg/fips v0.77.0-devel.0.20260213154712-e02b9359151a h1:Yt2vjx6PFdcgdVJMtrAp+hhV1AXxkNUK18VBriA8P3s= -github.com/DataDog/datadog-agent/pkg/fips v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:S747tum3JbhZVkFmfeu47Q8S4xwL5CQnoIcGfYySL7g= -github.com/DataDog/datadog-agent/pkg/logs/client v0.77.0-devel.0.20260213154712-e02b9359151a h1:2t+6yP959Ur6EPPOYJrYTeVs8SzTJzFV432LVD0jUjQ= -github.com/DataDog/datadog-agent/pkg/logs/client v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:bFvUlqxCrGk1fsNf8cZ/ZsgM3TdkyxQprKq7OpUuxRw= -github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.77.0-devel.0.20260213154712-e02b9359151a h1:4Zm3XwXbsuE9XsOG1fKug29htjBT9KsWUGiJJ+M3h8I= -github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:eQiFqs/XfyjYonh66OBeJYsyQ3CH/HtKMuZFPk89A8s= -github.com/DataDog/datadog-agent/pkg/logs/message v0.77.0-devel.0.20260213154712-e02b9359151a h1:D2KEOMQG3wLmJAeIlwGWv4KbSffyERu/YpBO/jqgtlU= -github.com/DataDog/datadog-agent/pkg/logs/message v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:EFUMo62aasXX5qwQso+FCchHUH4d+91up94oFnZquKA= -github.com/DataDog/datadog-agent/pkg/logs/metrics v0.77.0-devel.0.20260213154712-e02b9359151a h1:q36TCpXQ9KHHifuUEbv43MPhfJVaDKc514o/lrfFe4w= -github.com/DataDog/datadog-agent/pkg/logs/metrics v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:2vAcXgLY31SAS5dK1DyTz9Wqj3vwhBltdXMxKe5OT8U= -github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.77.0-devel.0.20260213154712-e02b9359151a h1:EeqPW0MdU0wXD+dxc5MYSq3/ODisGQZBh5sWLCuPS4U= -github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:60LglDMtppJyosvT73VB5XRC1Jl/x9ZauM+C9FbJ+9c= -github.com/DataDog/datadog-agent/pkg/logs/processor v0.77.0-devel.0.20260213154712-e02b9359151a h1:+ChPm/QyKZR/1YojvNF0fWm3L2pUK9XJNbVYQWEpquQ= -github.com/DataDog/datadog-agent/pkg/logs/processor v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:u3CYwDu6HUKmTQzFAZJ8KQ4Dxx3xnAnhtaZVkk4O/5A= -github.com/DataDog/datadog-agent/pkg/logs/sender v0.77.0-devel.0.20260213154712-e02b9359151a h1:nPJc8ZkdCo5otyEvbXQWQZTwMr/qIoPkssbFvkbikgs= -github.com/DataDog/datadog-agent/pkg/logs/sender v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:uPQ4XDhVOOCZQ7QX53Ly1Fmx6W6/UugGRaqAWs+D1So= -github.com/DataDog/datadog-agent/pkg/logs/sources v0.77.0-devel.0.20260213154712-e02b9359151a h1:8EDqQBvzE560+ZIdGnKJZ3V5SrxUsc1CTwS6mtFhdEI= -github.com/DataDog/datadog-agent/pkg/logs/sources v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:IGRA1EtMDN3XGnlMkKlRvoHylrDA/CoJQnU5kq6izcA= -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.77.0-devel.0.20260213154712-e02b9359151a h1:/4HP+XvLdn1eOdcqn5fsabDwEUAt3M+KBQmdUwnedc0= -github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:lSZx6dxj+be25jKVJibmTt2ys0+9yV7Y6/BeBPyu3Yw= -github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.77.0-devel.0.20260213154712-e02b9359151a h1:UYA01z769f4DENpAYbWNB0HLORVNhs4X+J+jem1HarA= -github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:EwJLSYhU2S+OnZTuD1ZBrxFyheB4CeMNTrn2pe3W4lM= -github.com/DataDog/datadog-agent/pkg/logs/types v0.77.0-devel.0.20260213154712-e02b9359151a h1:7z1x/5iwoqT0w4zx0BR83PyIOqdvHN13gYMFiQ+uU40= -github.com/DataDog/datadog-agent/pkg/logs/types v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:oZ7d4dsOEE6BtzkFoHTI4rDoz5C+K6KtjNB1p1pBgP0= -github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.56.0-rc.3 h1:DIOAGjWuW2D2KPE1FP1uPWKHYU0IGyOTgqZpbdMEcKs= -github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.56.0-rc.3/go.mod h1:KWcoiX3GnnxE2vhYVa6yFOWUCV5aZYNpNEmQsv5jzBI= -github.com/DataDog/datadog-agent/pkg/metrics v0.77.0-devel.0.20260213154712-e02b9359151a h1:ZMysm2gclaBOx/BSPE66IBdjZLzWleC5n6g02LX0ph0= -github.com/DataDog/datadog-agent/pkg/metrics v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:yiZDDt53gNA3cnCmdCrUDIyY30XO0x20UaW4oG347+I= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.77.0-devel.0.20260213154712-e02b9359151a h1:/xtQjxLk5vwsBsiBAnoz8qTdntvp6DX41AteNrbns5Y= -github.com/DataDog/datadog-agent/pkg/obfuscate v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:TcvPatbygfZy2wH7n259LZuYUz3TIe3o/Dv53Su7uqM= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.81.0-devel.0.20260515214905-7c02565fb890 h1:PpXYRYBCb86MSJ08eU9SrRGfGRTjgtaADFzWUzfxOP0= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.81.0-devel.0.20260515214905-7c02565fb890/go.mod h1:lZa1fwWtgBv11Ikw9+cPwaRfyKqGQFKjECYB+M+YwrI= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.81.0-devel.0.20260515214905-7c02565fb890 h1:7I+ZSs9K46209vnqfMAVD46DL+y/dEwgaBssLK71BAI= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.81.0-devel.0.20260515214905-7c02565fb890/go.mod h1:9+WcbozBoLqb4QvvhIHb/P/kwIsiXTumtiwBbqrLufk= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.81.0-devel.0.20260515214905-7c02565fb890 h1:qjjjvTfwSGypr2uQra1k27eGynvUud9VTXnK4XEDw5c= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.81.0-devel.0.20260515214905-7c02565fb890/go.mod h1:HLbqcaC3zrIq8tRNs+PnJa3qD+rYmYwlJ4G4CR2Wo6M= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.81.0-devel.0.20260515214905-7c02565fb890 h1:dNHwbsUit4lVei2+KpfdWkBGYirVa6rmxXCZlJMRpEE= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.81.0-devel.0.20260515214905-7c02565fb890/go.mod h1:oNz6kdB62VVCja4KtBKcoMJ7l9TDDNLHsGeCKsjxyYI= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.81.0-devel.0.20260515214905-7c02565fb890 h1:cFQtuv/ce8alqrYeaNgpKvUnTvnTvbzXrwbXl8ZuR7U= -github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.81.0-devel.0.20260515214905-7c02565fb890/go.mod h1:urFqYk4jhDySh49YGyzgP/ndGOpHsF5Ig0+08yOMmPI= -github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.77.0-devel.0.20260213154712-e02b9359151a h1:hVTOaGBlOD1/e8H1rEVed5JhPRawjjOvGL8vP8AbJOs= -github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:1nd82wJMexiE5MkMwgzyZBOrAgZSq1sugJ/6Wz96TwU= -github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.77.0-devel.0.20260213154712-e02b9359151a h1:st//awh1ezBDzDUOClg5H4jgugMpA+HLsO5blV8Lng8= -github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:r01WwkmcPcH8SOP5DfP+8+6lBw40PqLROcD0euP34KI= -github.com/DataDog/datadog-agent/pkg/process/util/api v0.77.0-devel.0.20260213154712-e02b9359151a h1:EESziSt1moRjApFwOpHx/PcmMwKB2cOH6ZgkSOP4/kU= -github.com/DataDog/datadog-agent/pkg/process/util/api v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:yVIINNf4XIGT3Vm4kF5p4MkuARUlcrYdLfvyBQEfaMc= -github.com/DataDog/datadog-agent/pkg/proto v0.77.0-devel.0.20260213154712-e02b9359151a h1:Isc8GRhrmtHX2oHQRb2YqJf3PKK70wKl4Rt9Rm69L28= -github.com/DataDog/datadog-agent/pkg/proto v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:B5q10wR/SMrc61/c9MyovwxcwbDpLQQt8A0bVe8RMFg= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.77.0-devel.0.20260213154712-e02b9359151a h1:w9BZ3HEHPQJRb9QWvJtujllGSC8k/627ddHrG7I5y8k= -github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:oien63v+atMJWN9RmQITOuJH3+5fwJx7p+wCHRVhMmw= -github.com/DataDog/datadog-agent/pkg/serializer v0.77.0-devel.0.20260213154712-e02b9359151a h1:lcLlC/Vq4XW+fNFW7APo6qu7tYjBNEkUTIyp2ruvmZA= -github.com/DataDog/datadog-agent/pkg/serializer v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:eONaxHow0yxHf8j/DpuHKfs+SPsNyqzMLR1MJilPVQk= -github.com/DataDog/datadog-agent/pkg/status/health v0.77.0-devel.0.20260213154712-e02b9359151a h1:wzoFzzyq3W6/zj7DgLXJ6l88H3yypucyXMOmcyytmi4= -github.com/DataDog/datadog-agent/pkg/status/health v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:CghHlquxKlh9NWocIPgYbRfQTg/7L/CSpwGQ2/2470w= -github.com/DataDog/datadog-agent/pkg/tagger/types v0.77.0-devel.0.20260213154712-e02b9359151a h1:pus/0tIxd/paXURQbgWnHSkg2tnNvl+89JOkfuY0Ruk= -github.com/DataDog/datadog-agent/pkg/tagger/types v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:66l5SEso3iw8Ua5cmnBY5uSC/BuXYCQyBItTI7pyUNE= -github.com/DataDog/datadog-agent/pkg/tagset v0.77.0-devel.0.20260213154712-e02b9359151a h1:PUMlDNFAZ0mWMXk9Hf/vCjT6wOAN9SXLC19+2FJni18= -github.com/DataDog/datadog-agent/pkg/tagset v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:QSVvjuJ1qaWJSh7PkhU7k8lv7Y1Jq1hIM5ILmo5CFZA= -github.com/DataDog/datadog-agent/pkg/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a h1:kOvmE4EJhqJbtn3SwDxlZGprVr+k0ZwRxQA2Ph9KWAM= -github.com/DataDog/datadog-agent/pkg/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:zsNMh0nsAIdh5aampIUgqB1vObC1vvvsnbn3P3kwSI8= -github.com/DataDog/datadog-agent/pkg/template v0.77.0-devel.0.20260213154712-e02b9359151a h1:iG9O348TdvgJVpFtdllnPHEoczU4yxuayA6HI2tRGUU= -github.com/DataDog/datadog-agent/pkg/template v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:mpV3MbF/us0LdM3tvVHDztjApy3VWGeu5RuS/MpGVHQ= -github.com/DataDog/datadog-agent/pkg/trace v0.77.0-devel.0.20260213154712-e02b9359151a h1:tIpQd+sXj73HlPIYkfdW7rK0vg162YxMtqU7Kb3cKGA= -github.com/DataDog/datadog-agent/pkg/trace v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:/IKz2Y+2YjFTWoYUGgTZZCneL14v5+gruH5/qMjnaRE= -github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260213154712-e02b9359151a h1:gge75H4AiPFXorp18MPueFT7hMvQrahEadF/sYBr9mc= -github.com/DataDog/datadog-agent/pkg/trace/log v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:y17E/KIhpHTcsNS47oKxghANVOyGPNVySpI6DMOK04U= -github.com/DataDog/datadog-agent/pkg/trace/otel v0.77.0-devel.0.20260213154712-e02b9359151a h1:keMeGufssRIelHDnvOHvbvklc/jTIQCgcwoDVa6joOw= -github.com/DataDog/datadog-agent/pkg/trace/otel v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:gbDgJJl9HU7XuReSr3IBFV5V1E3A6p40TteVexx4OlE= -github.com/DataDog/datadog-agent/pkg/trace/stats v0.77.0-devel.0.20260213154712-e02b9359151a h1:kTTtl+mmSykA4Of8fCcUw4qVYzjljzBUVka6BuFQmeM= -github.com/DataDog/datadog-agent/pkg/trace/stats v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:NDZ/SjCzZO6WlAIFuD6dOcccUZqTuGrxhH/nAb3kYlI= -github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a h1:wU/HC29fLew/p3FRLT1qn+QfU2pPk2G0OJLUPCn/0GQ= -github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:2T4szxbquqFzjxpKnIkXMZ6X/eHhtvwu5XiK2T6Ofi0= -github.com/DataDog/datadog-agent/pkg/util/backoff v0.77.0-devel.0.20260213154712-e02b9359151a h1:QbJsKnVEvLdxea04N+YyHBNAbor0JnCR8/kExnGZsbE= -github.com/DataDog/datadog-agent/pkg/util/backoff v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:FlEY1FcT0pjx7TSW1rvZsQzTyp/mboX1Wk6A9Xlv8+A= -github.com/DataDog/datadog-agent/pkg/util/buf v0.77.0-devel.0.20260213154712-e02b9359151a h1:Fxz/iWy2ytto4I/ofgK7qkxfIFRMmwFiAXxr/LsBrJU= -github.com/DataDog/datadog-agent/pkg/util/buf v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:fdRdlKqA8FcF1FaaYTVD8aXFUUjo5yrcd8EKeGPpcSY= -github.com/DataDog/datadog-agent/pkg/util/cgroups v0.77.0-devel.0.20260213154712-e02b9359151a h1:qQVcHU4xXoayNTyg1z+LmiwTwN5lXYlDJLySn7+ewLk= -github.com/DataDog/datadog-agent/pkg/util/cgroups v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:wi3hk2sKM3fVy6SEpcmuXwWzuodcf4TIPQklOLFXPhA= -github.com/DataDog/datadog-agent/pkg/util/common v0.77.0-devel.0.20260213154712-e02b9359151a h1:rlqWTjplkBqX1wRp/2u7f5lbiZbkNkbjVeLue2edotM= -github.com/DataDog/datadog-agent/pkg/util/common v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:kyL9IdKFxr9Q3km1+3JnU4uOvxcqfBzVoDUdJ4xQ2Jw= -github.com/DataDog/datadog-agent/pkg/util/compression v0.77.0-devel.0.20260213154712-e02b9359151a h1:1E3wujwiiLqwU/KqWmrZnSkAC9Id7l/SaBGqnS/g7C0= -github.com/DataDog/datadog-agent/pkg/util/compression v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:AvUV9aV1NQKgeztXEBJ2VML8auV5BDf4HEaJl+2nW3g= -github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel h1:RIKbeFWoz0pNR14O2RWMmvcJ//VQeJK3L9v/y93M4HE= -github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel/go.mod h1:2o49+wHcks97lVSdK4BQllo5UZgbmASgqgK882Gg9GY= -github.com/DataDog/datadog-agent/pkg/util/executable v0.77.0-devel.0.20260213154712-e02b9359151a h1:BATbSdslZluu6dtf09jyppKuSPjzlasbK/Sg8KTLXrw= -github.com/DataDog/datadog-agent/pkg/util/executable v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:QXzVybjl04kzXQPbSR05owymjNXL2T5kkx2bUDhIiDw= -github.com/DataDog/datadog-agent/pkg/util/filesystem v0.77.0-devel.0.20260213154712-e02b9359151a h1:paG9oPCmJNyoq2yBt9MVRD3LovHHlDkyC7fM6XZViYc= -github.com/DataDog/datadog-agent/pkg/util/filesystem v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:T9Kd3sCJi/PoKWCroKoGhDRw/cJfxzvBcegcap/rPlM= -github.com/DataDog/datadog-agent/pkg/util/fxutil v0.77.0-devel.0.20260213154712-e02b9359151a h1:/wWQUJ9Hd684QtNk6fVkkywyO0FOAWteJW5TOe5g4ng= -github.com/DataDog/datadog-agent/pkg/util/fxutil v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:GibLHhSnCUm9Em8chqg3kgT0s8wb6WnURmZolx7nPfA= -github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.77.0-devel.0.20260213154712-e02b9359151a h1:QpqUlkx0bnctKcLKqeh3t/tmBKcrHyCVG3rgX02/FjU= -github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:Tk/3JdpOE9z1ohUTzz2V6d7MdH6h6yRdxrgtM1F6srw= -github.com/DataDog/datadog-agent/pkg/util/http v0.77.0-devel.0.20260213154712-e02b9359151a h1:twHdlWUTI78GBdGsjZAin6SPSzUfpp2QVgeu7bTrQTg= -github.com/DataDog/datadog-agent/pkg/util/http v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:3nQJjHVOKnj/8w8jzzcGUbvrE0TXTo4xuPBCW+h16vc= -github.com/DataDog/datadog-agent/pkg/util/json v0.77.0-devel.0.20260213154712-e02b9359151a h1:bKs15yhJzCNPWFWirUPfJMWftB9AmmYc2J9GGZbMudQ= -github.com/DataDog/datadog-agent/pkg/util/json v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:7UyOq8ZwVPWZ5JMzCBU5hYMfsAANeJkDQA8NaGfRkDc= -github.com/DataDog/datadog-agent/pkg/util/log v0.77.0-devel.0.20260213154712-e02b9359151a h1:7KORojzZ9hTCpvdxevWDDdUy9D8O9f9VACk+Eak7v/Y= -github.com/DataDog/datadog-agent/pkg/util/log v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:hfgRM+aUu/OCGSZmB2nYxTmtMQ98dB9jVg4xFmBiXRM= -github.com/DataDog/datadog-agent/pkg/util/log/setup v0.70.0 h1:yCZnNM1PVxehP0id67gKonJSatcAxzXHdgDavMWCvGU= -github.com/DataDog/datadog-agent/pkg/util/log/setup v0.70.0/go.mod h1:lIXW4POQDFgeo0SZOURzZyL8B7cbGV+CErygBLmA/KQ= -github.com/DataDog/datadog-agent/pkg/util/option v0.77.0-devel.0.20260213154712-e02b9359151a h1:8LkY4uqGSuzng6RtaLqsR2MSchq4EH+wkgOUSFNwsKA= -github.com/DataDog/datadog-agent/pkg/util/option v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:pyxyCiTZ71dsfGdLT3GFF/bEEEfe/u5G/ss3e1su+qI= -github.com/DataDog/datadog-agent/pkg/util/otel v0.77.0-devel.0.20260213154712-e02b9359151a h1:/LNA76LKhdUldgepCj493XPErdbYB3gdegUTSGmnA4I= -github.com/DataDog/datadog-agent/pkg/util/otel v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:3GMi1GqZvz83HEJD44dQAbT8nPKQJ4cnszXuXOGP9uk= -github.com/DataDog/datadog-agent/pkg/util/pointer v0.77.0-devel.0.20260213154712-e02b9359151a h1:ew92uG+viL0Ty9blGyh+nvI1Bgt7mjWW+WI3Rc/L8fg= -github.com/DataDog/datadog-agent/pkg/util/pointer v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:DalcjSZmfgi/dFSsLCDT2RnUqM/XCzMcynRv82Cwy28= -github.com/DataDog/datadog-agent/pkg/util/quantile v0.79.0-devel.0.20260402163801-bfa4eff6c991 h1:hY53J2BRptgWUIIfPqIeXwv4n7i3dy5nuhqQzxIDcHM= -github.com/DataDog/datadog-agent/pkg/util/quantile v0.79.0-devel.0.20260402163801-bfa4eff6c991/go.mod h1:PHyf0pNXxVzA9Yj2NYxlg5ppfW3ZI3mlMChbPg2T5JQ= -github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.70.0 h1:SSHZ57LTgLQ99kvnbnHlXecPcb6AmxW/UtA7FZw3NFQ= -github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.70.0/go.mod h1:lPU+UeDu2rtZb85l08/kPL6Sr/PiD5NuYOl/YQjOAvY= -github.com/DataDog/datadog-agent/pkg/util/scrubber v0.77.0-devel.0.20260213154712-e02b9359151a h1:M1ZEs/U9u7+9rxUWBkXR6xakNuFiBeo9TtM9RcFyH54= -github.com/DataDog/datadog-agent/pkg/util/scrubber v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:W7XGqxR1lmiQzaqUOkJQrBDeW7O3Kk3no467U4ySCMU= -github.com/DataDog/datadog-agent/pkg/util/sort v0.77.0-devel.0.20260213154712-e02b9359151a h1:zc3j6iir0SyYZfEwaxeph+0MVNQexfI3lBfKWkHeiT8= -github.com/DataDog/datadog-agent/pkg/util/sort v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:/tVDBPkLBzsrPKNLoLKoQnK9JLCJozqDjecSYTH1FQw= -github.com/DataDog/datadog-agent/pkg/util/startstop v0.77.0-devel.0.20260213154712-e02b9359151a h1:2FYxHtYMfRSX6TjnxdYdCvsHeU+9zkFhOn42ntXsWjU= -github.com/DataDog/datadog-agent/pkg/util/startstop v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:AIMTdnn5zxLEBUV+LjulqqrTegeq22AOKgX1Ek5I1Wk= -github.com/DataDog/datadog-agent/pkg/util/statstracker v0.77.0-devel.0.20260213154712-e02b9359151a h1:DnAygk9UV8haAGheBQIsoSCud/sxCa1JRDNQqVuZVhE= -github.com/DataDog/datadog-agent/pkg/util/statstracker v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:fig47LRih3Q/QATHgQ20xjrDTxx7R8RLYHFP7j304eE= -github.com/DataDog/datadog-agent/pkg/util/system v0.77.0-devel.0.20260213154712-e02b9359151a h1:OMCXJdRkH/0FjWxp6MFp8b4npS7/t/6ZE2o7B2WjoHU= -github.com/DataDog/datadog-agent/pkg/util/system v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:AsN2f1NQ0I3a3uEr0kJnu7OpBKwM/D3A3BUHrQS+xDs= -github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0 h1:f6EtElJXr8UN6FftNEeqIyT2jzvAtldQI+eb7qaYvrA= -github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0/go.mod h1:m/uWLdpGEi3x/5gybZFeYNEnIdKhGtWW8kFZuM+GSFA= -github.com/DataDog/datadog-agent/pkg/util/winutil v0.77.0-devel.0.20260213154712-e02b9359151a h1:5s3ALLfNc895FqJG9ABbCMJ6HtqU+6DStkQ7sbZOkK8= -github.com/DataDog/datadog-agent/pkg/util/winutil v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:X1VqFCSjFCH6sGbD2Lcz6BiYlwIR9wkSUIy/40SZAP4= -github.com/DataDog/datadog-agent/pkg/version v0.77.0-devel.0.20260213154712-e02b9359151a h1:rG0d3TWCGfgzlCTpVX0kilrLNCfOAUj2L9KpI5J7s2A= -github.com/DataDog/datadog-agent/pkg/version v0.77.0-devel.0.20260213154712-e02b9359151a/go.mod h1:rGiA9exD1TnEwTdgfBrV1kw8DVEtHZPpV5Mt5xl7UPQ= -github.com/DataDog/datadog-api-client-go/v2 v2.60.0 h1:YzEB2H42symyDlHzNo0wcjW1mfXSW1E1UCbThHx4xrc= -github.com/DataDog/datadog-api-client-go/v2 v2.60.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= +github.com/DataDog/datadog-agent/comp/core/status v0.80.2 h1:79NeWZLmWo0s6q5qVgefqC6rvxGrzoeqomAHcimEBsc= +github.com/DataDog/datadog-agent/comp/core/status v0.80.2/go.mod h1:HYIfqjDJO0DbAXkebRUwUs3y6w2OviSejHbgldzahDo= +github.com/DataDog/datadog-agent/comp/core/tagger/def v0.80.2 h1:NX5dOe4Bl1ogxeJaw2GDtZ20LcVkXS0DDiHwnItkv24= +github.com/DataDog/datadog-agent/comp/core/tagger/def v0.80.2/go.mod h1:Yvk/K9KKgV3u21LFo5XUazE8tc8sCbALyymEHuyRuUs= +github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.80.2 h1:wIUfgtkqxVjeAPAYiLy6kVKTaurI889HLk1vw5zg31c= +github.com/DataDog/datadog-agent/comp/core/tagger/origindetection v0.80.2/go.mod h1:jWIqNDi8lVJOTnvNvq8XEuM0YhLqJ/SDfu9ZQ3WXKw0= +github.com/DataDog/datadog-agent/comp/core/tagger/types v0.80.2 h1:SjviCp1z5ye0OrtmxbM2H51UZs3sxAUtXmxzwDAVGnU= +github.com/DataDog/datadog-agent/comp/core/tagger/types v0.80.2/go.mod h1:JYrLpZdU2ej8nd3/vnldrG//YsQKrozysUTHVutpGJE= +github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.80.2 h1:bMMjEtuE/V312lPSlhEy77j10/HWxxWXJiEfawnBcvQ= +github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.80.2/go.mod h1:LIda7/bxILxxokUV0+ljTYe8MnoKEd4Urv191Oiyw3U= +github.com/DataDog/datadog-agent/comp/core/telemetry v0.80.2 h1:ob+hkQFsaBh2AZYv2/TJpOOgQBVA5jOWFgneDzPO7ck= +github.com/DataDog/datadog-agent/comp/core/telemetry v0.80.2/go.mod h1:jiunyU0eFqDznBDBaqppVtyJqjfx5rVxf4dvD5j7RgM= +github.com/DataDog/datadog-agent/comp/def v0.80.2 h1:HhGKz1/IQKdYz/nNEsqh4Ik283QMKxxwH/JCrvTl404= +github.com/DataDog/datadog-agent/comp/def v0.80.2/go.mod h1:v1vMf3wCmEpBX64eLjyjyiJFsq4W+rnJXQnLdqwB0gs= +github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.82.0-devel.0.20260708210941-b0d9b5a19458 h1:9J2/tj5Hq7pX30Sh10kO37OkwmN3tbM1n7X+klPopCg= +github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.82.0-devel.0.20260708210941-b0d9b5a19458/go.mod h1:RCTJUnL/LVz20xEltjFe4eXm8nqtVXKgm53xjiQ5D88= +github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.80.2 h1:PCcnNm5nWqNaVguYp+qaitxD0REYaEm+tUuvinujT1g= +github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.80.2/go.mod h1:od3vQNYA+eKEYH9liTqyMQ0s5k3fr3l6uYFihHzDyMg= +github.com/DataDog/datadog-agent/comp/logs-library v0.80.2 h1:NwP3I7908xXG1k20h7Enum/LzPCr5PkoVMI3zeRBhXE= +github.com/DataDog/datadog-agent/comp/logs-library v0.80.2/go.mod h1:IZgLKSFQkqhJ9yErAqdoIZjRSy98bp9q1t6RX6TWYs0= +github.com/DataDog/datadog-agent/comp/logs/agent/config v0.80.2 h1:112BDL+iArEn9pCYBSqM5+7PTttfyu+4pTR6mm76iwg= +github.com/DataDog/datadog-agent/comp/logs/agent/config v0.80.2/go.mod h1:6J1uyRyWYvr/u958O1rB+D5pCTjbROWYSbUEx6nvDaE= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.80.2 h1:DIYi+n+k+TH0QNel85LmVpJEGxxFNSxCIwM2DD+PXg4= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.80.2/go.mod h1:cnAG+z8/NmbWHJq6YlTvMBiKVklDX8ebn7SOTARaOGA= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.80.2 h1:h9tk1T54UIlC5eSxN1yPGburXKO8xEgwuc3kEK0ewUc= +github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl v0.80.2/go.mod h1:MqfhnuUmKxsrGN1dBuO+q+N3YuHch2W7OF93870mCR4= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.80.2 h1:Rt+IUYIRx65QU2mflEJlG6NKnxSSOjr6HS10k+Njbc8= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.80.2/go.mod h1:EVeAXxkZP2XDrMO7Onnxivl8G690eCfrPjQNNlCv+V4= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.83.0-devel.0.20260714134811-fee4bbf7ff73 h1:3KjrP2KFKVCKwdF8Bu9+Lj30uGYSm6Z7OTRTfs7BwEU= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.83.0-devel.0.20260714134811-fee4bbf7ff73/go.mod h1:dEXMaJ8XAYof0176Xb/KglU/3txNbpX9vNfkk/hBlWo= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.80.2 h1:RIwXb/N8ZdBX/pYKIDDDP7opzkdcySLhyG/+vuirxA8= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient v0.80.2/go.mod h1:UlN+EAHEuIZQJPJ28qGgvhhEISx+AGVjMrtgxE02SJ8= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.80.2 h1:9kWLcFICEHZSw70t21l3KKfY0Uew1LE4a0J0XcFeP/E= +github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.80.2/go.mod h1:Z3sWq7YgvyUh0CA5WeveoOH4hDeNrwOpgSI2dBgqfBw= +github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.80.2 h1:jtcQwTqB/wWfEhHqOSCWz83V5GvvCMKEk5LlYrzmnm8= +github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.80.2/go.mod h1:8myYL78BZgZsQtOrgeQK3b9ZxzlnadUtcsxQdTiHuQw= +github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.80.2 h1:GFK6xNHmh5kLYiX6J+zRrcOs9Gm4n3tlDGiU7fiKgAw= +github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.80.2/go.mod h1:VxqisOK/3zwhT67GkbxBdkEKXEjmWr8OVRZxT1TdeA0= +github.com/DataDog/datadog-agent/comp/trace/compression/def v0.80.2 h1:qaev6/Ew7fK20htviCCKL4CWo06BGV5zlMWXHvK5ths= +github.com/DataDog/datadog-agent/comp/trace/compression/def v0.80.2/go.mod h1:s2sglQCK9gohWM9MtjZRmBaPGm9EirOgc+9daakBKAY= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.80.2 h1:n2547H3/2ZlAe4wJapzN8kuZ/SRje3KBepim9sWW1ZQ= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.80.2/go.mod h1:VxHfaSzgrNmhaJtGtBDdIC1atS5kn/tUcNo+v5MyudM= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.80.2 h1:iX3l5hoAhJ7k1gjSzoqUQNfc+AAV7gKxL2r7j6wrZ94= +github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd v0.80.2/go.mod h1:Aaa+ASui1yhxQJdFiSIkzx6IpBjdXcDJaoeaPJ91xjc= +github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.80.2 h1:C/A+qke1LaPvDvuSVcEqGPJGvJZwj6lLEqqPTw0Dw+w= +github.com/DataDog/datadog-agent/pkg/aggregator/ckey v0.80.2/go.mod h1:/sldsjn47gi+1KggqDUNdqk5FDoHb6IvdgNPEM7eoYo= +github.com/DataDog/datadog-agent/pkg/api v0.80.2 h1:fOs3CBRK/J0xcDgFgDWUPEgj6owSd1Zj7ikGHeKfuFE= +github.com/DataDog/datadog-agent/pkg/api v0.80.2/go.mod h1:pNNZcx3vShIwKFL7ufR9CLOhKwhllQo76owkRP7ocr0= +github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.80.2 h1:beV1GNn8uRmfbjptnR7/irGDawpDoKu0EtnMXKa/Evg= +github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.80.2/go.mod h1:g/ezgM3DubKDfQbmW3Ky4ks8/thmmhH72daQ14cSSfc= +github.com/DataDog/datadog-agent/pkg/config/basic v0.80.2 h1:E9SFDMo2uHKTU6qwEmGMaIi7BD6fQc4Ayd/4WgTDz8M= +github.com/DataDog/datadog-agent/pkg/config/basic v0.80.2/go.mod h1:Nr/EINZbH2eNSbr1lgVZhzekJJND3GD55fPBE3MDryQ= +github.com/DataDog/datadog-agent/pkg/config/buildschema v0.80.2 h1:JHaC1l6wuQv+pz0THq0qfGYWf2fcQMUa+f7pNY2ig0U= +github.com/DataDog/datadog-agent/pkg/config/buildschema v0.80.2/go.mod h1:wGY5H6Hdjq5sRII9bGyT1ZeYXSurAbLXlyr2GG+2iZ8= +github.com/DataDog/datadog-agent/pkg/config/create v0.82.0-devel.0.20260624113434-509b872045c2 h1:gTqbIudmozcA6VtHqcXUhHUHvpvxvvAlD7XRtIDCJDI= +github.com/DataDog/datadog-agent/pkg/config/create v0.82.0-devel.0.20260624113434-509b872045c2/go.mod h1:4dc3QVDPdvy3rtwFabVUvlA0/OS097ZDoFf839QoyGw= +github.com/DataDog/datadog-agent/pkg/config/env v0.80.2 h1:/XbG69bp6C4d1LJIXIyrGJuJ6kIBuyZipV0W+spMKNQ= +github.com/DataDog/datadog-agent/pkg/config/env v0.80.2/go.mod h1:Y6Y3eU7aZjrrckH3npileMpL9CxzCvigJqpOoTy3CX4= +github.com/DataDog/datadog-agent/pkg/config/helper v0.80.2 h1:CQVMv+QsKSFS8tZnJenPzHuTrpocPGgZDniKtcJSluM= +github.com/DataDog/datadog-agent/pkg/config/helper v0.80.2/go.mod h1:EZ8jB8PVelf04LKaZ7ACJ+IlZHxVqbDhqmMNw6tOZLQ= +github.com/DataDog/datadog-agent/pkg/config/mock v0.82.0-devel.0.20260624113434-509b872045c2 h1:1j66LoLzkr7vSTvwglZ1+WZEa+G1eojH1fUKHO6nBHw= +github.com/DataDog/datadog-agent/pkg/config/mock v0.82.0-devel.0.20260624113434-509b872045c2/go.mod h1:RQTybpVQi9g/vAKDo6tT8nA5JO189FAmw2EdbylJMyQ= +github.com/DataDog/datadog-agent/pkg/config/model v0.80.2 h1:9o/YNgJtspzmByOscDrlmQtuxi1MWndSqTj+cvFoyaw= +github.com/DataDog/datadog-agent/pkg/config/model v0.80.2/go.mod h1:Mve4zTdSZuXUBfeh36DdQ+zsbTIKYEQBCMLI85RzbNE= +github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.80.2 h1:bYAzZ5DVZgcB0J6vG3fAXAS5f7JrR9Q9FHt2q9fSNBY= +github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.80.2/go.mod h1:pMRUQPyRkva38Y9UluDHOiJa0vE1oShfhdA4wxMPMdI= +github.com/DataDog/datadog-agent/pkg/config/setup v0.82.0-devel.0.20260624113434-509b872045c2 h1:4cjnRntYlMy2tU194S6ZIEgXphOSU81ooTAAp4L9ygc= +github.com/DataDog/datadog-agent/pkg/config/setup v0.82.0-devel.0.20260624113434-509b872045c2/go.mod h1:ClyjaQdt62EcsNYM6b/1JqJJwt6utrZEekMdpAF8TnQ= +github.com/DataDog/datadog-agent/pkg/config/structure v0.80.2 h1:9UXniWMRE2AKjAF8uNruo6CyKODXz8O4MSD2oyVYj7Q= +github.com/DataDog/datadog-agent/pkg/config/structure v0.80.2/go.mod h1:lBaWVAVkkZKnxX4hnRW++i5hQ2ZcYpotSR1lVbcX3T4= +github.com/DataDog/datadog-agent/pkg/config/utils v0.82.0-devel.0.20260708210941-b0d9b5a19458 h1:do/1nD/4jdG7KHK38ZcVxWj2NebgMl4jgBfIICUCraw= +github.com/DataDog/datadog-agent/pkg/config/utils v0.82.0-devel.0.20260708210941-b0d9b5a19458/go.mod h1:hxvnx/vRbIscmng6FMwLQwUR+W8IpXgKlw55HzAzIG8= +github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.80.2 h1:67GWpwsMS+X1MF3BCB4Dj2P+SBD05oh5TKIOF+Rz6OY= +github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.80.2/go.mod h1:m1SxBSvjGcPqHLabhOGO3mYyKKcDlbHL56XfutA9msQ= +github.com/DataDog/datadog-agent/pkg/fips v0.80.2 h1:OcvPls5ITDjPa5IFGi2ns2mZjFIUhP5nWplv6VT08GU= +github.com/DataDog/datadog-agent/pkg/fips v0.80.2/go.mod h1:jnUVSf5i7AcaiTr67YDHb8HOZMzC/ueCxK7k/94JC7w= +github.com/DataDog/datadog-agent/pkg/logs/client v0.80.2 h1:kiy+e1vMB+bPPa0y+YhVPPw3CPCGjtJW3fzbgTMhDzA= +github.com/DataDog/datadog-agent/pkg/logs/client v0.80.2/go.mod h1:giLot2AzaT7kFXfkwEocAx8g0TRRE65iRx+LtQaZtDw= +github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.80.2 h1:XDEvU+JmqVWeJcwkCKuH4ffAS7rUV0JCITKdmvvvCuY= +github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.80.2/go.mod h1:Bb1mCTzOnv3SYNyY9BpVrWpvPXjHztCs0mQIaqLODLI= +github.com/DataDog/datadog-agent/pkg/logs/message v0.80.2 h1:EqEy41EMrbQoSw0KYDncEgK+TUWO3j9wOtiEY6TXPRA= +github.com/DataDog/datadog-agent/pkg/logs/message v0.80.2/go.mod h1:J38ZiwcjMqcXDCs094jou0HxSJOTa+oU80vLdTNoLyM= +github.com/DataDog/datadog-agent/pkg/logs/sources v0.80.2 h1:uthXx1ZYv1GRHAQxrR2VBHMvyZgcNK0B6KGgT0cLA6A= +github.com/DataDog/datadog-agent/pkg/logs/sources v0.80.2/go.mod h1:p0n+bzNCY0IjthSSgDzxwnyjLa07vt8ipgHqMdyGgyE= +github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.80.2 h1:u19X9+rFCfG74/QVR7qq/A4mbUYamtApINS0L7RiEn4= +github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.80.2/go.mod h1:l3KmwbTfHi7I4z8KKm49GCqEMcmQrzm6YlTlHPnZ3tY= +github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.80.2 h1:Vf6LHpFgsS92oKBbCtFfRM1q4ovp1ExpniSHSkwDmik= +github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.80.2/go.mod h1:FhVNNPvo5SIigWwVF/NAVIRkOdWglt9hD7kYXtES7VM= +github.com/DataDog/datadog-agent/pkg/logs/types v0.80.2 h1:YtGLq5Adi3arueFmH0p9CB0T1d14+LIIo2mOtprT43U= +github.com/DataDog/datadog-agent/pkg/logs/types v0.80.2/go.mod h1:xIcb+Ke1wVOBAx1Gzs1Ch6FTiXzw2kZ+QvBnyP8a7EQ= +github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.80.2 h1:4PJ6I3X3LkT/P/1sY8Cn76ta6zbdLQWX/mExvSWUWLQ= +github.com/DataDog/datadog-agent/pkg/logs/util/testutils v0.80.2/go.mod h1:REuZO9xfHQ+rc8eZ6IS9mycOa2fAMHz/IGx/vF3tYj8= +github.com/DataDog/datadog-agent/pkg/metrics v0.82.0-devel.0.20260708210941-b0d9b5a19458 h1:mIFopehE/6OmFTmrsY+j4RAc98rGi+PKIrocDkv+CCU= +github.com/DataDog/datadog-agent/pkg/metrics v0.82.0-devel.0.20260708210941-b0d9b5a19458/go.mod h1:0Dxk3rISTis6uyE/1V7U0lLYftG6eK/XwhKKWNED/D4= +github.com/DataDog/datadog-agent/pkg/obfuscate v0.80.2 h1:wDMDyCYc1ttLq7RmnD7TubBj4n/6li7NGUE6TWlEWw4= +github.com/DataDog/datadog-agent/pkg/obfuscate v0.80.2/go.mod h1:kV//ZZCD4UVoynNmYC/QKkWnk6P2++cuc2Axjqebpyo= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.83.0-devel.0.20260714134811-fee4bbf7ff73 h1:DcH0iCTkFUCsTHmB9ru2fKmnDLcxU8z3ifqIkaK8TS8= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.83.0-devel.0.20260714134811-fee4bbf7ff73/go.mod h1:ss7uy5zwPGDzWRdpG8EEQOgp6cf1XaotvXaQGqC+1Ss= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.83.0-devel.0.20260714134811-fee4bbf7ff73 h1:bjCzif0GUn6bIHf1WGMNhtyrTRKLqv+aNdtlHjMHpJo= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.83.0-devel.0.20260714134811-fee4bbf7ff73/go.mod h1:BTx/kraMr2voSf1gis9PrnvuX6Qvg68oKBcB+y/GaLo= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.83.0-devel.0.20260714134811-fee4bbf7ff73 h1:Q+73xDZ8mT2m0kvv1J6UcObQ40pPSksL7q6xJ+ixKlc= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs v0.83.0-devel.0.20260714134811-fee4bbf7ff73/go.mod h1:GhMY3dh0q2Cz/C5saswdMyLhqUyT6WnGaHqu//+azGU= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.83.0-devel.0.20260714134811-fee4bbf7ff73 h1:39mNeiSRqQ6nGUmgtOP11RLetA7saj/ra/sfnzf3VZc= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics v0.83.0-devel.0.20260714134811-fee4bbf7ff73/go.mod h1:XckLrQ0Fd87K2IrIF6JyAyxU96azEk7cQukXqJd+alk= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.83.0-devel.0.20260714134811-fee4bbf7ff73 h1:JQHWPG8ABPQKBo/yd/i+T37kdyIHBTy0tiOm3/Zw6K8= +github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum v0.83.0-devel.0.20260714134811-fee4bbf7ff73/go.mod h1:Dpp9CL9XPsyfobHvcPJnhWhZR8AVFpPpjtkW/kB+2Ew= +github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.80.2 h1:TchsGPEFVN9C8v5XqwpSO8+NKZU//fGpO1wXjHRMrZs= +github.com/DataDog/datadog-agent/pkg/orchestrator/model v0.80.2/go.mod h1:f2Y6vZBWg77j9FEpPxcUng6JjQ66p8/buwlTu3PIjg0= +github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.80.2 h1:qnSnufYtmNwplqFR1j2NzXzqDcZb3CQbigs9AnUd9Es= +github.com/DataDog/datadog-agent/pkg/orchestrator/util v0.80.2/go.mod h1:pvZdv3qqJAewu1fmRY6nSnUu41nQp28d6GAmK7x7tXk= +github.com/DataDog/datadog-agent/pkg/process/util/api v0.80.2 h1:q4F9lOmRkJgQP03p5+gkT1Ya8PPwb72sPqrKC1ARkIQ= +github.com/DataDog/datadog-agent/pkg/process/util/api v0.80.2/go.mod h1:lawV6yhCl/PUvGKdgED1xkJIv4mD859e+w3GEY91ma4= +github.com/DataDog/datadog-agent/pkg/proto v0.80.2 h1:Q+ZcqkH3muKjeChRUTRVhcuSPQXYnPMRwgbifjV2p8w= +github.com/DataDog/datadog-agent/pkg/proto v0.80.2/go.mod h1:/sOCbgk2WqWFDxYEd4k7dJVk/F2LGqR3l6OCAB2/IbI= +github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.80.2 h1:g7KSX8l4uLYcHBuV0DwSly2hpLHidDmc2URsYHC8bhM= +github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.80.2/go.mod h1:b+X8RabhAJgY7dxWUHaKvB9UgxK32oeK7V1tyYpHVZs= +github.com/DataDog/datadog-agent/pkg/serializer v0.82.0-devel.0.20260708210941-b0d9b5a19458 h1:rYTGJbcksDtX1X2gkiWDNxcQTZou3flNA30d2CVaWVc= +github.com/DataDog/datadog-agent/pkg/serializer v0.82.0-devel.0.20260708210941-b0d9b5a19458/go.mod h1:CGyJbYiUMN88GR8vY5JUZY2s0twkT2ycrS9j3kSIjs0= +github.com/DataDog/datadog-agent/pkg/status/health v0.80.2 h1:y2dlnf1nfvgu2UuSeXtHvwjK+W7oeHKzV8g7FX6YMa4= +github.com/DataDog/datadog-agent/pkg/status/health v0.80.2/go.mod h1:alSzpMIPKXrJrZ68TPCziImSIzEZCo0V2i2b9cmczqY= +github.com/DataDog/datadog-agent/pkg/tagger/types v0.80.2 h1:C2PKymj2mNnPjfbQP/xAeRwpqOWvAJL7wLvG958urhs= +github.com/DataDog/datadog-agent/pkg/tagger/types v0.80.2/go.mod h1:Gof7KUKIpK0Mooc1Xdi1vKdmNVUZImfT7xQfrYmydqw= +github.com/DataDog/datadog-agent/pkg/tagset v0.80.2 h1:+L5foQGcPhvhmwBmYSV3qqKXQ6dP0qzZPmZITE9sX7U= +github.com/DataDog/datadog-agent/pkg/tagset v0.80.2/go.mod h1:y59KvBTBCwDvyBMKm/yJFa9EGuZmsk7BcVD47v3i4DU= +github.com/DataDog/datadog-agent/pkg/template v0.80.2 h1:FrvmI6xloWJ0aaB9tSzk09/PfdHt8cWdtMyuR81VUqA= +github.com/DataDog/datadog-agent/pkg/template v0.80.2/go.mod h1:ZUjICHSlN0of0cmWrYk9Pof0DV0eqHSpTUK1NTnN26Y= +github.com/DataDog/datadog-agent/pkg/trace v0.80.2 h1:xYHuWy8qEAoCU6XFlxBit0RTNs6Dn2cFZvvw7SWRZy0= +github.com/DataDog/datadog-agent/pkg/trace v0.80.2/go.mod h1:uKvxsyRcPoqtp4uwq/VFBaW6eXiDPsJp6Iw/ymdRCaw= +github.com/DataDog/datadog-agent/pkg/trace/log v0.80.2 h1:UqOsp8JHfFSvgJvNGsCw3qaoQW6tfmFDKj3hla7KxeQ= +github.com/DataDog/datadog-agent/pkg/trace/log v0.80.2/go.mod h1:F/It0SiGdhqPr+AtzH+cxSIvKZmyVhPGyLst0B5hv9w= +github.com/DataDog/datadog-agent/pkg/trace/stats v0.80.2 h1:xrNMDfdmETjvbQBjckZCLjbcypiJ2NkHj9+MDp+Ac+s= +github.com/DataDog/datadog-agent/pkg/trace/stats v0.80.2/go.mod h1:LwAm1BLh4eYGQOdoyJNwgH4FKHgmShp1pTGWiq5HIy8= +github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.80.2 h1:IREUWMrnhSmY590CXAJOfemUts3zP0G/PwSy4wteeyI= +github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.80.2/go.mod h1:ab8//Ra6WoXZFSFs+cio/krBLVZcGQTA/enb9rm+/mQ= +github.com/DataDog/datadog-agent/pkg/util/backoff v0.80.2 h1:QG36pMYVLr88es9/7jwYCAYcg3ufjDcBsbsUqD+XMW8= +github.com/DataDog/datadog-agent/pkg/util/backoff v0.80.2/go.mod h1:pNO3dE+h33cg5PNj9mjNt7+9VOZfD5G0uKSMoQB4/90= +github.com/DataDog/datadog-agent/pkg/util/buf v0.80.2 h1:m+evVoangj6uvhXvy/lItclxihV5N7oeIC14GtfxZJs= +github.com/DataDog/datadog-agent/pkg/util/buf v0.80.2/go.mod h1:ry5pKGTJB2zZvZMOUp57DvrQ8PhGWANbzepvtj1lOhc= +github.com/DataDog/datadog-agent/pkg/util/cgroups v0.80.2 h1:+byctUGxpkSuLzKMx++Im6nz6N19MqA7YTp00LERs5s= +github.com/DataDog/datadog-agent/pkg/util/cgroups v0.80.2/go.mod h1:J9/5LWA1thbI/op10bl0trSjXLUQXyKmO4xQ74XAqWQ= +github.com/DataDog/datadog-agent/pkg/util/compression v0.80.2 h1:NgUFZw7GfJs0EugGmsoTM4Bj1dbXsFKH1NkdOCsdnqw= +github.com/DataDog/datadog-agent/pkg/util/compression v0.80.2/go.mod h1:EoKPlti4c3NJKfFJVOyM+ZTUJ9jkMCQU0JxhiREoZjU= +github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.81.0-devel.0.20260624113434-509b872045c2 h1:zopuCSRDl29KK+l5CS7ExPwbOL+jySgoO17jJwQ1Lc8= +github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.81.0-devel.0.20260624113434-509b872045c2/go.mod h1:+QeGqtr3pZwRNDtCi+IRgyMTcHj2sS/aRx5vFA4YfHk= +github.com/DataDog/datadog-agent/pkg/util/executable v0.80.2 h1:9wyaIrvpduLgUZcUrH/ncUQWewGJ4gEzVSYuGl/leLg= +github.com/DataDog/datadog-agent/pkg/util/executable v0.80.2/go.mod h1:JMVmy84B+6W5Ky6IqXTnH5JruDcooaN992yizgIbhds= +github.com/DataDog/datadog-agent/pkg/util/filesystem v0.80.2 h1:ors8wg3K22hMXMw2jq5mALYRm8Yeigpyvs2u6+IDAIE= +github.com/DataDog/datadog-agent/pkg/util/filesystem v0.80.2/go.mod h1:KnxYtWymh4NnLEw9X8JX3fiUN0qCf9Ez/Cb1cX+svoU= +github.com/DataDog/datadog-agent/pkg/util/fxutil v0.80.2 h1:MhqOZS4dd7oIKsFXfemL8NdIVPMXl5e7PwlOb5vV/bQ= +github.com/DataDog/datadog-agent/pkg/util/fxutil v0.80.2/go.mod h1:kA1lRSBky33IamkVjwNgINVX3MYDp4KF9yxjK8QSihk= +github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.80.2 h1:/LMzHlTcQeQPenVB/2vDoCEcFTRWFw0CQGGHYYhaPwQ= +github.com/DataDog/datadog-agent/pkg/util/hostname/validate v0.80.2/go.mod h1:xhC/BjPEznq+0xePdpDVL6Bb00cIs2RBPj7t9EOHdTQ= +github.com/DataDog/datadog-agent/pkg/util/hostport v0.80.2 h1:eIyXDA3V/XdJj9NvlPOl/tFMh4nL7zwY6tL7DMXKwxk= +github.com/DataDog/datadog-agent/pkg/util/hostport v0.80.2/go.mod h1:pjtprwGh5txnNmcP5fGLg1+2HWG78k7cxxCFESvqmR4= +github.com/DataDog/datadog-agent/pkg/util/http v0.80.2 h1:/Qf66L+M/vJON/3opGamjc6Kfntx+zgUhInBEi7vCvk= +github.com/DataDog/datadog-agent/pkg/util/http v0.80.2/go.mod h1:mQjpYB7TOvaOIalnvg6cDbfVp+//4vftWR/HN0+fPyY= +github.com/DataDog/datadog-agent/pkg/util/json v0.80.2 h1:6O2VwlXfxPRuy/BzXQEDg8s60J93o4EK5hlaMnul6xE= +github.com/DataDog/datadog-agent/pkg/util/json v0.80.2/go.mod h1:keUXy1brH3wjiv1WX6dDkAzADApryV+ZsrwkxCQvp80= +github.com/DataDog/datadog-agent/pkg/util/log v0.80.2 h1:o2EkA1LL4zSJkf0Mphb0IhQeUNm4f+lqa+eoIqbk2Oc= +github.com/DataDog/datadog-agent/pkg/util/log v0.80.2/go.mod h1:7l9LfJRSsflcGffFyD1Vh/pCI7klFsqLDBpkot30oy0= +github.com/DataDog/datadog-agent/pkg/util/option v0.80.2 h1:yuGWhtpWJ8C5mUr7UdYqRFOKs3NVCO3O3nzc7uF4t5w= +github.com/DataDog/datadog-agent/pkg/util/option v0.80.2/go.mod h1:DI7XtiYrhIel110duGsneP0G8Ii+8B1lzHS+kNUi3Qg= +github.com/DataDog/datadog-agent/pkg/util/otel v0.80.2 h1:LlczqyyAnP0aNgCXQSN+OwJ6fvutv6gY1KhlWTKdUQE= +github.com/DataDog/datadog-agent/pkg/util/otel v0.80.2/go.mod h1:B0RAY0sgCU/up0lpj3So5c3LNym9RMnwU9OQ+sxzuls= +github.com/DataDog/datadog-agent/pkg/util/pointer v0.80.2 h1:BVuPWXcJazXG2LyWBpyS6xJO2t17+/h2kqkEOp3gz10= +github.com/DataDog/datadog-agent/pkg/util/pointer v0.80.2/go.mod h1:EkBX4l9UrG43rUWG1OevFiX5RSWrtjxFth7ZPWTPjCg= +github.com/DataDog/datadog-agent/pkg/util/quantile v0.80.2 h1:tUk64LTKg3iaAu50AHrjy2EfXjs9P6av5VhDAtEiqVE= +github.com/DataDog/datadog-agent/pkg/util/quantile v0.80.2/go.mod h1:laKDr03pngFRC6G5Nqw+ndxqYnk8Swhcvw+aZU8JPuA= +github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.80.2 h1:2fOUdMZvTBydmt7VwXSyGQv3OGY56dykn0/ehbdfwII= +github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest v0.80.2/go.mod h1:GoLj/pn13HpQgSxWNlS4xv8eUpc9QdmQ1KXRiUJ80f8= +github.com/DataDog/datadog-agent/pkg/util/scrubber v0.80.2 h1:t2fKic6X03vdbRRrrTZvs4gWfUJlfRQQ54kURtCx9c4= +github.com/DataDog/datadog-agent/pkg/util/scrubber v0.80.2/go.mod h1:0NZcEGoVDHeIg87ReyRW2+/yGQ8w77GmC1sPzDCEy/g= +github.com/DataDog/datadog-agent/pkg/util/sort v0.80.2 h1:+Wn8ioKVZq45Oh8jXKjemMNINKgGVPeojuO8jK44whE= +github.com/DataDog/datadog-agent/pkg/util/sort v0.80.2/go.mod h1:w+5VNMKdtJFOTTDGwTJpgU2AA+Sg+mrDRf9mmRaoRHs= +github.com/DataDog/datadog-agent/pkg/util/startstop v0.80.2 h1:BAZm4jmdhQSvzQB/yVNyNIccGE8KigoOYUhpxQSGjVQ= +github.com/DataDog/datadog-agent/pkg/util/startstop v0.80.2/go.mod h1:Rf63iQy7U8IBR1K9ihmn5z0yr7TuvMKJdVkBn5I3w68= +github.com/DataDog/datadog-agent/pkg/util/statstracker v0.80.2 h1:jnpDkZu/sGHFnVfgszAttO9NtW4aJEpgEu5SK/vfl7Q= +github.com/DataDog/datadog-agent/pkg/util/statstracker v0.80.2/go.mod h1:yxzCvwBxjVYc3J6prjtmCdLq+p8Ed1bN1zczxkKYLq4= +github.com/DataDog/datadog-agent/pkg/util/system v0.80.2 h1:VIAep/PHmC1Dh3bFAAICXGrTwHyaUCMzm7dVP+GGlPw= +github.com/DataDog/datadog-agent/pkg/util/system v0.80.2/go.mod h1:TYwTFGBJKZ8/QZxmt+nmv9I/RzDKSrb7Eig2mpwW47w= +github.com/DataDog/datadog-agent/pkg/util/testutil v0.80.2 h1:RreiMhJ93dw9VD6TL/zP6fro3XFYkA/v6zoEQpaBj7Q= +github.com/DataDog/datadog-agent/pkg/util/testutil v0.80.2/go.mod h1:ih5PDQO1rBsBRtIZ0UFZDMaMO5NtokRNMPN3oaLZg4Q= +github.com/DataDog/datadog-agent/pkg/util/winutil v0.82.0-devel.0.20260624113434-509b872045c2 h1:Fri9BV450Ms0DPwMTNW34SNxUmkPA/js2YQevRFnyIw= +github.com/DataDog/datadog-agent/pkg/util/winutil v0.82.0-devel.0.20260624113434-509b872045c2/go.mod h1:qM9t2dUigYIf9rK2SYqnaPLIwMcDpvQcEHWVs7YVnsg= +github.com/DataDog/datadog-agent/pkg/version v0.80.2 h1:yb3ywDgoY8++4zz1/Jo53Sb4fMUV3bCsfNJ8pWaBPCE= +github.com/DataDog/datadog-agent/pkg/version v0.80.2/go.mod h1:G3gsk0zVQboZMVG7RG7IWp55S5KjDjswcJb+vprR8L0= +github.com/DataDog/datadog-api-client-go/v2 v2.62.0 h1:AIe01Tyl5Y+kHCJskB4Vkw6ANjHcD45bfbi//ICmAaU= +github.com/DataDog/datadog-api-client-go/v2 v2.62.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/datadog-go/v5 v5.8.3 h1:s58CUJ9s8lezjhTNJO/SxkPBv2qZjS3ktpRSqGF5n0s= -github.com/DataDog/datadog-go/v5 v5.8.3/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw= -github.com/DataDog/go-sqllexer v0.1.12 h1:2eI/Mbs+fcHzXp4iwGz60V6mAWQNFOD/aa98ZluJJ7c= -github.com/DataDog/go-sqllexer v0.1.12/go.mod h1:vOw7Ia7z+z6nl3zGZlLIZe0vQlPtCPR906WIPBJadxc= +github.com/DataDog/datadog-go/v5 v5.9.0 h1:0rhs5wBov9Iz+xLXLk4maaReHvOANM1ijSm2IKWtKFs= +github.com/DataDog/datadog-go/v5 v5.9.0/go.mod h1:2SBt8zJu6r7sRQHZFMQ8oCukWTKj0ymwulmNgQzJ1JM= +github.com/DataDog/go-acl v1.0.1 h1:uRbp98YmlVZYqNNyTBFNI3Y6bnziBLyCIR4nRu0bIpU= +github.com/DataDog/go-acl v1.0.1/go.mod h1:YJx333qSb3GUqCLIbqKeGaZS2pUYh2IYGI7+FsX18CU= +github.com/DataDog/go-sqllexer v0.2.2 h1:h7Wm+b4eQSld8JsnNCv6K90lhUTpBc9/LVT2sEbhm0g= +github.com/DataDog/go-sqllexer v0.2.2/go.mod h1:3xTFXBU69vUikYpESggScvC0RKYA7ZIdVrIkLwUOWdE= github.com/DataDog/go-tuf v1.1.1-0.5.2 h1:YWvghV4ZvrQsPcUw8IOUMSDpqc3W5ruOIC+KJxPknv0= github.com/DataDog/go-tuf v1.1.1-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0= github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee h1:tXibLZk3G6HncIFJKaNItsdzcrk4YqILNDZlXPTNt4k= @@ -274,14 +267,14 @@ github.com/DataDog/sketches-go v1.4.8 h1:pFk9BNn+Rzv8IMIoPUttoOpOr3bJOqU3P6EP5wK github.com/DataDog/sketches-go v1.4.8/go.mod h1:a/wjRUqzqtGS8qRHRPDCs4EAQfmvPDZGDlMIF5mxXOE= github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs= github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw= -github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE= -github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/DataDog/zstd v1.5.8-0.20260421145859-31a7e515a571 h1:zDAogP70WYpLD6MiIjQ9tHZYmkfbFcsfGb26CMf99To= +github.com/DataDog/zstd v1.5.8-0.20260421145859-31a7e515a571/go.mod h1:oyU0k4j1rV2Cxqy/hdGZzmVg3nJtHahZBImIK9ejcDA= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f h1:5Vuo4niPKFkfwW55jV4vY0ih3VQ9RaQqeqY67fvRn8A= github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f/go.mod h1:oXfOhM/Kr8OvqS6tVqJwxPBornV0yrx3bc+l0BDr7PQ= github.com/GehirnInc/crypt v0.0.0-20230320061759-8cc1b52080c5 h1:IEjq88XO4PuBDcvmjQJcQGg+w+UaafSy8G5Kcb5tBhI= github.com/GehirnInc/crypt v0.0.0-20230320061759-8cc1b52080c5/go.mod h1:exZ0C/1emQJAw5tHOaUDyY1ycttqBAPcxuzf7QbY6ec= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.32.0 h1:rIkQfkCOVKc1OiRCNcSDD8ml5RJlZbH/Xsq7lbpynwc= -github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.32.0/go.mod h1:RD2SsorTmYhF6HkTmDw7KmPYQk8OBYwTkuasChwv7R4= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.34.0 h1:yzIYdwuro811Z27D3T80Wkd3rqZzb0K43nner7Eh1yE= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.34.0/go.mod h1:pJTkW8hEUIIi3Pf65lPZOnn4Y81yCllX6IWk2jNXdkM= github.com/KimMachineGun/automemlimit v0.7.5 h1:RkbaC0MwhjL1ZuBKunGDjE/ggwAX43DwZrJqVwyveTk= github.com/KimMachineGun/automemlimit v0.7.5/go.mod h1:QZxpHaGOQoYvFhv/r4u3U0JTC2ZcOwbSr11UZF46UBM= github.com/Masterminds/semver/v3 v3.5.0 h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE= @@ -315,46 +308,46 @@ 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/aws/aws-sdk-go v1.55.8 h1:JRmEUbU52aJQZ2AjX4q4Wu7t4uZjOu71uyNmaWlUkJQ= github.com/aws/aws-sdk-go v1.55.8/go.mod h1:ZkViS9AqA6otK+JBBNH2++sx1sgxrPKcSzPPvQkUtXk= -github.com/aws/aws-sdk-go-v2 v1.41.7 h1:DWpAJt66FmnnaRIOT/8ASTucrvuDPZASqhhLey6tLY8= -github.com/aws/aws-sdk-go-v2 v1.41.7/go.mod h1:4LAfZOPHNVNQEckOACQx60Y8pSRjIkNZQz1w92xpMJc= -github.com/aws/aws-sdk-go-v2/config v1.32.17 h1:FpL4/758/diKwqbytU0prpuiu60fgXKUWCpDJtApclU= -github.com/aws/aws-sdk-go-v2/config v1.32.17/go.mod h1:OXqUMzgXytfoF9JaKkhrOYsyh72t9G+MJH8mMRaexOE= -github.com/aws/aws-sdk-go-v2/credentials v1.19.16 h1:r3RJBuU7X9ibt8RHbMjWE6y60QbKBiII6wSrXnapxSU= -github.com/aws/aws-sdk-go-v2/credentials v1.19.16/go.mod h1:6cx7zqDENJDbBIIWX6P8s0h6hqHC8Avbjh9Dseo27ug= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23 h1:UuSfcORqNSz/ey3VPRS8TcVH2Ikf0/sC+Hdj400QI6U= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.23/go.mod h1:+G/OSGiOFnSOkYloKj/9M35s74LgVAdJBSD5lsFfqKg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23 h1:GpT/TrnBYuE5gan2cZbTtvP+JlHsutdmlV2YfEyNde0= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.23/go.mod h1:xYWD6BS9ywC5bS3sz9Xh04whO/hzK2plt2Zkyrp4JuA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23 h1:bpd8vxhlQi2r1hiueOw02f/duEPTMK59Q4QMAoTTtTo= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.23/go.mod h1:15DfR2nw+CRHIk0tqNyifu3G1YdAOy68RftkhMDDwYk= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24 h1:OQqn11BtaYv1WLUowvcA30MpzIu8Ti4pcLPIIyoKZrA= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.24/go.mod h1:X5ZJyfwVrWA96GzPmUCWFQaEARPR7gCrpq2E92PJwAE= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.303.0 h1:qkTLlFVQDSk0tbOqn49pxZjIVY2jy3n0FBXh+PphNkk= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.303.0/go.mod h1:Y95W0Hm6FYLPa6o0hbnJ+sWgmdc4ifcLFjGkdobWVhY= -github.com/aws/aws-sdk-go-v2/service/ecs v1.74.0 h1:YS5TXaEvzDb+sV+wdQFUtuCAk0GeFR9Ai6HFdxpz6q8= -github.com/aws/aws-sdk-go-v2/service/ecs v1.74.0/go.mod h1:10kBgdaNJz0FO/+JWDUH+0rtSjkn5yafgavDDmmhFzs= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.51.12 h1:S066ajzfPRCSW4lsSHOYglne6SNi2CHt1u5omzW1RBg= -github.com/aws/aws-sdk-go-v2/service/elasticache v1.51.12/go.mod h1:86SE4NcXxbxr8KTG3yOyDmd4HyiFmKl8TexXnhYJ+Bw= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9 h1:FLudkZLt5ci0ozzgkVo8BJGwvqNaZbTWb3UcucAateA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.9/go.mod h1:w7wZ/s9qK7c8g4al+UyoF1Sp/Z45UwMGcqIzLWVQHWk= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23 h1:pbrxO/kuIwgEsOPLkaHu0O+m4fNgLU8B3vxQ+72jTPw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.23/go.mod h1:/CMNUqoj46HpS3MNRDEDIwcgEnrtZlKRaHNaHxIFpNA= -github.com/aws/aws-sdk-go-v2/service/kafka v1.49.1 h1:BgBatWcQIFqF1l6KGHjv66V0d/ISnWrTwxDx/Jf6EJM= -github.com/aws/aws-sdk-go-v2/service/kafka v1.49.1/go.mod h1:pMpys+PlrN//vj8j5s0oOAMJjauj81VkHzIZxPVWOro= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.51.0 h1:cg6PxzoIide2wiEyLfikOFN+XwHafwR8p5+L9U1E8dQ= -github.com/aws/aws-sdk-go-v2/service/lightsail v1.51.0/go.mod h1:YvX7hjUWecrKX8fBkbEncyddEW85xjNH+u5JHioITOw= -github.com/aws/aws-sdk-go-v2/service/rds v1.117.0 h1:T1Xe9sYxSUUQOvd1RsFeVk/IXFPdqSiN0atXu/Hy/8A= -github.com/aws/aws-sdk-go-v2/service/rds v1.117.0/go.mod h1:QbXW4coAMakHQhf1qhE0eVVCen9gwB/Kvn+HHHKhpGY= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.11 h1:TdJ+HdzOBhU8+iVAOGUTU63VXopcumCOF1paFulHWZc= -github.com/aws/aws-sdk-go-v2/service/signin v1.0.11/go.mod h1:R82ZRExE/nheo0N+T8zHPcLRTcH8MGsnR3BiVGX0TwI= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.17 h1:7byT8HUWrgoRp6sXjxtZwgOKfhss5fW6SkLBtqzgRoE= -github.com/aws/aws-sdk-go-v2/service/sso v1.30.17/go.mod h1:xNWknVi4Ezm1vg1QsB/5EWpAJURq22uqd38U8qKvOJc= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.21 h1:+1Kl1zx6bWi4X7cKi3VYh29h8BvsCoHQEQ6ST9X8w7w= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.21/go.mod h1:4vIRDq+CJB2xFAXZ+YgGUTiEft7oAQlhIs71xcSeuVg= -github.com/aws/aws-sdk-go-v2/service/sts v1.42.1 h1:F/M5Y9I3nwr2IEpshZgh1GeHpOItExNM9L1euNuh/fk= -github.com/aws/aws-sdk-go-v2/service/sts v1.42.1/go.mod h1:mTNxImtovCOEEuD65mKW7DCsL+2gjEH+RPEAexAzAio= -github.com/aws/smithy-go v1.25.1 h1:J8ERsGSU7d+aCmdQur5Txg6bVoYelvQJgtZehD12GkI= -github.com/aws/smithy-go v1.25.1/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= +github.com/aws/aws-sdk-go-v2 v1.42.1 h1:9eOTgu1z/dVtYpNZ3/8/XbbaX0x/BqE3HUzAzs6K0ek= +github.com/aws/aws-sdk-go-v2 v1.42.1/go.mod h1:5pKeft2eJj+gElQ38Jqg4ibCqh+/AK33/0X3hip7IjM= +github.com/aws/aws-sdk-go-v2/config v1.32.29 h1:BcMHHnpiWKogf+gGfpj3K1w+Sktz29XDo/cPSAPO3FU= +github.com/aws/aws-sdk-go-v2/config v1.32.29/go.mod h1:+Kbhn8Es4kPUph3F/0W7avykytc+Jh2Ld9/msv9ljV4= +github.com/aws/aws-sdk-go-v2/credentials v1.19.28 h1:zTXJSsNcoO91/mTXsZoYf0AK8dvNPiA58/VtyGXR+wM= +github.com/aws/aws-sdk-go-v2/credentials v1.19.28/go.mod h1:Kd9E0JzDBW/q1xbsHFrev/GnbAf5J0Ng8xoyc7HZ91Q= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.30 h1:/hi1JADLEW9YYryEz1w4GQu0EtP23pP553Cf9KgsDV4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.30/go.mod h1:/3AOgy4K17Dm4ucMZVC/MJkzy5kmfKUcINRHZyo0koQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.30 h1:xM/Is9cKMHa8Jj8zkvWhvrFkZsXJV9E+BB4g0HW0duQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.30/go.mod h1:WueJeNDZvK1fMYEWJIkcivBfEzUkTpBhzlrUKKY8EuA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.30 h1:jn46zC9LdsVR/ZpMIJqMqb8hHv31BlLx3ulVqNspUOk= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.30/go.mod h1:1hTMsAgbdS/AtUi4bw8+gUuh1pceo+eXRLfpSuSQj3M= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.31 h1:3GUprIsfmGcC5SACIyB0e7E0BM1O1b3Erl5CePYIAeQ= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.31/go.mod h1:7PuV1yl5e2xnUbm+RqvVg5i2iBM8EyijZNoI9wsOoOc= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.316.0 h1:LlxNun/oe5B2XMff8Mkh/3bJeHl1K7Fod+rMYtjagw4= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.316.0/go.mod h1:eoF0SIRbTgKWnTcTPYckiURPba/7ilfEkvwL4V1iHK4= +github.com/aws/aws-sdk-go-v2/service/ecs v1.81.0 h1:2Sp9EwK7giQpJnQ54k0zdUh6aykmmbpEurEEygr104c= +github.com/aws/aws-sdk-go-v2/service/ecs v1.81.0/go.mod h1:TIKZ9zIFS6W2k9FeW+r5sGVnlxp+aUt9oQ/St3Suj1o= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.52.2 h1:5wbCUfyxXcjIqesyVfJBBJs0bDMyejthtHyy48mfZCI= +github.com/aws/aws-sdk-go-v2/service/elasticache v1.52.2/go.mod h1:o4vQxDt6oteknUjkXIEskp0ccy+93NRTPKXw3HlVMFE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.13 h1:mbRIur/BiHK6SKPjoBIXSE/hJ6g6JGRLuxQy1jGjlN4= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.13/go.mod h1:ITg9em2KbJx1s0y4aqRX5OYWG6HBZ5TVR//OdpEZ2CQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.30 h1:/Z5jmNrKsSD7EmDjzAPsm/3L9IuOkzaynklJZ1qX7S4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.30/go.mod h1:lEzEZnOosE7zi8Z6royW1cFJTD9fpab4Ul1SBrllewk= +github.com/aws/aws-sdk-go-v2/service/kafka v1.52.0 h1:jalIJqKvZMvJRvs6ABLX+FhHz8E9pjU03Pyml4D9r3k= +github.com/aws/aws-sdk-go-v2/service/kafka v1.52.0/go.mod h1:pW4pYNuVeScl13yqwsjLY0F/7g2YD8E0AvR6SOQsJZE= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.54.0 h1:07DKnL5eKSel3XEM2UxlD/z9zUZZ6XMHLGDXkAdY4u8= +github.com/aws/aws-sdk-go-v2/service/lightsail v1.54.0/go.mod h1:Etcg8xorq1b0g0V2KMNgFjubYITZseJv08qtX/3szko= +github.com/aws/aws-sdk-go-v2/service/rds v1.118.2 h1:pkEeQneYFpTAnGhyqSbyp/DlCPPJTGt0GkWahlLYzMA= +github.com/aws/aws-sdk-go-v2/service/rds v1.118.2/go.mod h1:7gS+cGrKF0mH253QHFlStmx79ws+DlNk+04ZRfmw3U0= +github.com/aws/aws-sdk-go-v2/service/signin v1.4.0 h1:sLzmJGCMv+C8KqiJgEqDLB6vxaJGmobRh4rr//ZpA3w= +github.com/aws/aws-sdk-go-v2/service/signin v1.4.0/go.mod h1:mxC0nT/C8wMMS97DemZPzvUZxvIt+2Iq+eS3JdFZGgg= +github.com/aws/aws-sdk-go-v2/service/sso v1.32.0 h1:qjMmry/cBDee1E/2gyvel0uRYCi3mwRZ2hf6N+GAodo= +github.com/aws/aws-sdk-go-v2/service/sso v1.32.0/go.mod h1:u8af9Nqkmqnr96f7v9nHqzZT9XBwbXEkTiqT4ROuJSE= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.37.0 h1:fpOlDPI55HdszaxapEGk6HsGosOUaM2YPWJpjMgp8UI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.37.0/go.mod h1:DMPWJBjYs6+3+f/qhBFEFPPlQ6NlhWjai3dJNvipJ84= +github.com/aws/aws-sdk-go-v2/service/sts v1.44.0 h1:bLZ0PolJ8J+HkJHztcXORUpHXBye2U8298lCEMi6ZCU= +github.com/aws/aws-sdk-go-v2/service/sts v1.44.0/go.mod h1:9gdl4RrflIdpDb2TlXshWgR1F9TeCkvqDx77Vpr4Z/Q= +github.com/aws/smithy-go v1.27.3 h1:F3Zb497UhhskkfpJmfkXswyo+t0sh9OTBnIHjogWbVY= +github.com/aws/smithy-go v1.27.3/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= github.com/basgys/goxml2json v1.1.1-0.20231018121955-e66ee54ceaad h1:3swAvbzgfaI6nKuDDU7BiKfZRdF+h2ZwKgMHd8Ha4t8= @@ -374,6 +367,8 @@ github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK3 github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= 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/cenkalti/backoff/v7 v7.0.0 h1:ZP+QAaaOnVUHo+ufFpZ835hbT3x2fy+h2lecVEosZ6A= +github.com/cenkalti/backoff/v7 v7.0.0/go.mod h1:qcKBGwsu4hpxHtQ8tWYsQ+ifzx2+sS+Xx/3jfe30lI8= 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= @@ -418,8 +413,8 @@ github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da h1:aIftn67I1fkbMa5 github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/digitalocean/go-metadata v0.0.0-20250129100319-e3650a3df44b h1:2EkxDInMJ3ii8mk8kZs0Qq75JpsvNOOoa5etBJluzbI= github.com/digitalocean/go-metadata v0.0.0-20250129100319-e3650a3df44b/go.mod h1:lNrzMwI4fx6xfzieyLEpYIJPLWjT/Sak4G/hIzGTEL4= -github.com/digitalocean/godo v1.178.0 h1:+B4xGOaoFwwwpM7TKhoyGHdmFg5eF9zDB1YfOLvNJ2E= -github.com/digitalocean/godo v1.178.0/go.mod h1:xQsWpVCCbkDrWisHA72hPzPlnC+4W5w/McZY5ij9uvU= +github.com/digitalocean/godo v1.193.0 h1:CSbbUl5LufT75KPNvex3vDnBYjY2RfJWs7T3Ac7dHpA= +github.com/digitalocean/godo v1.193.0/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/docker/go-connections v0.7.0 h1:6SsRfJddP22WMrCkj19x9WKjEDTB+ahsdiGYf0mN39c= @@ -435,8 +430,8 @@ github.com/edsrzf/mmap-go v1.2.1-0.20241212181136-fad1cd13edbd h1:I4PrRZuNMeDP3V github.com/edsrzf/mmap-go v1.2.1-0.20241212181136-fad1cd13edbd/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.2.0 h1:WI3bsdOTuaYXVe2DS1KbqA7u7FOHN4o8qJw80ZyZoQs= -github.com/elastic/lunes v0.2.0/go.mod h1:u3W/BdONWTrh0JjNZ21C907dDc+cUZttZrGa625nf2k= +github.com/elastic/lunes v0.2.2 h1:dZFEaebNg9l+mzvOQN6Nd/c9y6y8rUe3tBWsTgvM08U= +github.com/elastic/lunes v0.2.2/go.mod h1:u3W/BdONWTrh0JjNZ21C907dDc+cUZttZrGa625nf2k= github.com/emicklei/go-restful/v3 v3.13.0 h1:C4Bl2xDndpU6nJ4bc1jXd+uTmYPVUwkD6bFY/oTyCes= github.com/emicklei/go-restful/v3 v3.13.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane/envoy v1.37.0 h1:u3riX6BoYRfF4Dr7dwSOroNfdSbEPe9Yyl09/B6wBrQ= @@ -450,8 +445,8 @@ github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb/go.mod h1:bH6Xx7IW github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= -github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= -github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w= +github.com/fatih/color v1.19.0/go.mod h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE= github.com/felixge/fgprof v0.9.5 h1:8+vR6yu2vvSKn08urWyEuxx75NWPEvybbkBirEpsbVY= github.com/felixge/fgprof v0.9.5/go.mod h1:yKl+ERSa++RYOs32d8K6WEXCB4uXdLls4ZaZPpayhMM= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= @@ -481,20 +476,20 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/go-openapi/analysis v0.24.3 h1:a1hrvMr8X0Xt69KP5uVTu5jH62DscmDifrLzNglAayk= -github.com/go-openapi/analysis v0.24.3/go.mod h1:Nc+dWJ/FxZbhSow5Yh3ozg5CLJioB+XXT6MdLvJUsUw= +github.com/go-openapi/analysis v0.25.0 h1:EnjAq1yO8wEO9HbPmY8vLPEIkdZuuFhCAKBPvCB7bCs= +github.com/go-openapi/analysis v0.25.0/go.mod h1:5WFTRE43WLkPG9r9OtlMfqkkvUTYLVVCIxLlEpyF8kE= github.com/go-openapi/errors v0.22.7 h1:JLFBGC0Apwdzw3484MmBqspjPbwa2SHvpDm0u5aGhUA= github.com/go-openapi/errors v0.22.7/go.mod h1://QW6SD9OsWtH6gHllUCddOXDL0tk0ZGNYHwsw4sW3w= -github.com/go-openapi/jsonpointer v0.22.5 h1:8on/0Yp4uTb9f4XvTrM2+1CPrV05QPZXu+rvu2o9jcA= -github.com/go-openapi/jsonpointer v0.22.5/go.mod h1:gyUR3sCvGSWchA2sUBJGluYMbe1zazrYWIkWPjjMUY0= +github.com/go-openapi/jsonpointer v0.23.1 h1:1HBACs7XIwR2RcmItfdSFlALhGbe6S92p0ry4d1GWg4= +github.com/go-openapi/jsonpointer v0.23.1/go.mod h1:iWRmZTrGn7XwYhtPt/fvdSFj1OfNBngqRT2UG3BxSqY= github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE= github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZLcfifd1Q+iKKOUxExw= github.com/go-openapi/loads v0.23.3 h1:g5Xap1JfwKkUnZdn+S0L3SzBDpcTIYzZ5Qaag0YDkKQ= github.com/go-openapi/loads v0.23.3/go.mod h1:NOH07zLajXo8y55hom0omlHWDVVvCwBM/S+csCK8LqA= github.com/go-openapi/spec v0.22.4 h1:4pxGjipMKu0FzFiu/DPwN3CTBRlVM2yLf/YTWorYfDQ= github.com/go-openapi/spec v0.22.4/go.mod h1:WQ6Ai0VPWMZgMT4XySjlRIE6GP1bGQOtEThn3gcWLtQ= -github.com/go-openapi/strfmt v0.26.1 h1:7zGCHji7zSYDC2tCXIusoxYQz/48jAf2q+sF6wXTG+c= -github.com/go-openapi/strfmt v0.26.1/go.mod h1:Zslk5VZPOISLwmWTMBIS7oiVFem1o1EI6zULY8Uer7Y= +github.com/go-openapi/strfmt v0.26.2 h1:ysjheCh4i1rmFEo2LanhELDNucNzfWTZhUDKgWWPaFM= +github.com/go-openapi/strfmt v0.26.2/go.mod h1:fXh1e449cyUn2NYuz+wb3wARBUdMl7qPEZwX00nqivY= github.com/go-openapi/swag v0.25.5 h1:pNkwbUEeGwMtcgxDr+2GBPAk4kT+kJ+AaB+TMKAg+TU= github.com/go-openapi/swag v0.25.5/go.mod h1:B3RT6l8q7X803JRxa2e59tHOiZlX1t8viplOcs9CwTA= github.com/go-openapi/swag/cmdutils v0.25.5 h1:yh5hHrpgsw4NwM9KAEtaDTXILYzdXh/I8Whhx9hKj7c= @@ -503,8 +498,8 @@ github.com/go-openapi/swag/conv v0.25.5 h1:wAXBYEXJjoKwE5+vc9YHhpQOFj2JYBMF2DUi+ github.com/go-openapi/swag/conv v0.25.5/go.mod h1:CuJ1eWvh1c4ORKx7unQnFGyvBbNlRKbnRyAvDvzWA4k= github.com/go-openapi/swag/fileutils v0.25.5 h1:B6JTdOcs2c0dBIs9HnkyTW+5gC+8NIhVBUwERkFhMWk= github.com/go-openapi/swag/fileutils v0.25.5/go.mod h1:V3cT9UdMQIaH4WiTrUc9EPtVA4txS0TOmRURmhGF4kc= -github.com/go-openapi/swag/jsonname v0.25.5 h1:8p150i44rv/Drip4vWI3kGi9+4W9TdI3US3uUYSFhSo= -github.com/go-openapi/swag/jsonname v0.25.5/go.mod h1:jNqqikyiAK56uS7n8sLkdaNY/uq6+D2m2LANat09pKU= +github.com/go-openapi/swag/jsonname v0.26.0 h1:gV1NFX9M8avo0YSpmWogqfQISigCmpaiNci8cGECU5w= +github.com/go-openapi/swag/jsonname v0.26.0/go.mod h1:urBBR8bZNoDYGr653ynhIx+gTeIz0ARZxHkAPktJK2M= github.com/go-openapi/swag/jsonutils v0.25.5 h1:XUZF8awQr75MXeC+/iaw5usY/iM7nXPDwdG3Jbl9vYo= github.com/go-openapi/swag/jsonutils v0.25.5/go.mod h1:48FXUaz8YsDAA9s5AnaUvAmry1UcLcNVWUjY42XkrN4= github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.5 h1:SX6sE4FrGb4sEnnxbFL/25yZBb5Hcg1inLeErd86Y1U= @@ -523,14 +518,13 @@ github.com/go-openapi/swag/yamlutils v0.25.5 h1:kASCIS+oIeoc55j28T4o8KwlV2S4ZLPT github.com/go-openapi/swag/yamlutils v0.25.5/go.mod h1:Gek1/SjjfbYvM+Iq4QGwa/2lEXde9n2j4a3wI3pNuOQ= github.com/go-openapi/testify/enable/yaml/v2 v2.4.1 h1:NZOrZmIb6PTv5LTFxr5/mKV/FjbUzGE7E6gLz7vFoOQ= github.com/go-openapi/testify/enable/yaml/v2 v2.4.1/go.mod h1:r7dwsujEHawapMsxA69i+XMGZrQ5tRauhLAjV/sxg3Q= -github.com/go-openapi/testify/v2 v2.4.1 h1:zB34HDKj4tHwyUQHrUkpV0Q0iXQ6dUCOQtIqn8hE6Iw= -github.com/go-openapi/testify/v2 v2.4.1/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54= +github.com/go-openapi/testify/v2 v2.4.2 h1:tiByHpvE9uHrrKjOszax7ZvKB7QOgizBWGBLuq0ePx4= +github.com/go-openapi/testify/v2 v2.4.2/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= github.com/go-openapi/validate v0.25.2 h1:12NsfLAwGegqbGWr2CnvT65X/Q2USJipmJ9b7xDJZz0= github.com/go-openapi/validate v0.25.2/go.mod h1:Pgl1LpPPGFnZ+ys4/hTlDiRYQdI1ocKypgE+8Q8BLfY= github.com/go-resty/resty/v2 v2.17.2 h1:FQW5oHYcIlkCNrMD2lloGScxcHJ0gkjshV3qcQAyHQk= github.com/go-resty/resty/v2 v2.17.2/go.mod h1:kCKZ3wWmwJaNc7S29BRtUhJwy7iqmn+2mLtQrOyQlVA= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/go-zookeeper/zk v1.0.4 h1:DPzxraQx7OrPyXq2phlGlNSIyWEsAox0RJmjTseMV6I= @@ -594,26 +588,26 @@ github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/pprof v0.0.0-20240227163752-401108e1b7e7/go.mod h1:czg5+yv1E0ZGTi6S6vVK1mke0fV+FaUhNGcd6VRS9Ik= -github.com/google/pprof v0.0.0-20260302011040-a15ffb7f9dcc h1:VBbFa1lDYWEeV5FZKUiYKYT0VxCp9twUmmaq9eb8sXw= -github.com/google/pprof v0.0.0-20260302011040-a15ffb7f9dcc/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= +github.com/google/pprof v0.0.0-20260507013755-92041b743c96 h1:YDDnaZ9afWajDboPMt9Vikqca/yWAX7KAxVzb4lJU1M= +github.com/google/pprof v0.0.0-20260507013755-92041b743c96/go.mod h1:MxpfABSjhmINe3F1It9d+8exIHFvUqtLIRCdOGNXqiI= 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.14 h1:yh8ncqsbUY4shRD5dA6RlzjJaT4hi3kII+zYw8wmLb8= -github.com/googleapis/enterprise-certificate-proxy v0.3.14/go.mod h1:vqVt9yG9480NtzREnTlmGSBmFrA+bzb0yl0TxoBQXOg= -github.com/googleapis/gax-go/v2 v2.21.0 h1:h45NjjzEO3faG9Lg/cFrBh2PgegVVgzqKzuZl/wMbiI= -github.com/googleapis/gax-go/v2 v2.21.0/go.mod h1:But/NJU6TnZsrLai/xBAQLLz+Hc7fHZJt/hsCz3Fih4= -github.com/gophercloud/gophercloud/v2 v2.11.1 h1:jCs4vLH8sJgRqrPzqVfWgl7uI6JnIIlsgeIRM0uHjxY= -github.com/gophercloud/gophercloud/v2 v2.11.1/go.mod h1:Rm0YvKQ4QYX2rY9XaDKnjRzSGwlG5ge4h6ABYnmkKQM= +github.com/googleapis/enterprise-certificate-proxy v0.3.15 h1:xolVQTEXusUcAA5UgtyRLjelpFFHWlPQ4XfWGc7MBas= +github.com/googleapis/enterprise-certificate-proxy v0.3.15/go.mod h1:vqVt9yG9480NtzREnTlmGSBmFrA+bzb0yl0TxoBQXOg= +github.com/googleapis/gax-go/v2 v2.22.0 h1:PjIWBpgGIVKGoCXuiCoP64altEJCj3/Ei+kSU5vlZD4= +github.com/googleapis/gax-go/v2 v2.22.0/go.mod h1:irWBbALSr0Sk3qlqb9SyJ1h68WjgeFuiOzI4Rqw5+aY= +github.com/gophercloud/gophercloud/v2 v2.12.0 h1:Gxmc/Bog1UDKkxTcQW7MSPTDviJXpLeEgVeN5KrxoCo= +github.com/gophercloud/gophercloud/v2 v2.12.0/go.mod h1:H7TTOxbLy8RIaHSNhI2GCrWIzw4Xpw8Xn2mBhCUT5kA= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/websocket v1.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.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 h1:5VipnvEpbqr2gA2VbM+nYVbkIF28c5ZQfqCBQ5g2xfk= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0/go.mod h1:Hyl3n6Twe1hvtd9XUXDec4pTvgMSEixRuQKPTMH2bNs= github.com/hashicorp/consul/api v1.32.1 h1:0+osr/3t/aZNAdJX558crU3PEjVrG4x6715aZHRgceE= github.com/hashicorp/consul/api v1.32.1/go.mod h1:mXUWLnxftwTmDv4W3lzxYCPD199iNLLUyLfLGFJbtl4= github.com/hashicorp/consul/sdk v0.16.1 h1:V8TxTnImoPD5cj0U9Spl0TUxcytjcbbJeADFF07KdHg= @@ -667,14 +661,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.4 h1:40YY+3qq2tAUhZIMEK8kqusKZBBjdwJ3NUjvYkcxh74= github.com/hashicorp/memberlist v0.5.4/go.mod h1:OgN6xiIo6RlHUWk+ALjP9e32xWCoQrsOCmHrWCm2MWA= -github.com/hashicorp/nomad/api v0.0.0-20260324203407-b27b0c2e019a h1:HGwfgBNl90YBiHdbzZ/+8aMxO1UL9B/yNTAXa8iB8z8= -github.com/hashicorp/nomad/api v0.0.0-20260324203407-b27b0c2e019a/go.mod h1:KkLNLU0Nyfh5jWsFoF/PsmMbKpRIAoIV4lmQoJWgKCk= +github.com/hashicorp/nomad/api v0.0.0-20260528135333-5b027732945f h1:sdf4a6FF3tC1/c0buuizLAwZa/xLu4gWD87qWrzQLvo= +github.com/hashicorp/nomad/api v0.0.0-20260528135333-5b027732945f/go.mod h1:Kr8imJwigbQ/50BqVae2+JL+AyX+FnzbnuCoIFb6iYg= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= -github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE= -github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE= -github.com/hetznercloud/hcloud-go/v2 v2.40.0 h1:fuP7khfiDQAIXdKyQq7f3LnnOjyZg0PXTafXjUKkqIA= -github.com/hetznercloud/hcloud-go/v2 v2.40.0/go.mod h1:ANz38eerXjPv00dm9dckKhttOGtYeeGmjjvwL5e6c5E= +github.com/hetznercloud/hcloud-go/v2 v2.44.0 h1:1p9qwaZ/H55nLP9c7WfuwUA0LfsexS2YHOhD8+iBga8= +github.com/hetznercloud/hcloud-go/v2 v2.44.0/go.mod h1:d0s2WLe7jSoStamv3eHoWgBSOxc/K17tYSXsqUkbse0= 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/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= @@ -683,8 +675,8 @@ github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47 github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= 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.6 h1:l/TtKgdQ1wUH3DDe2SfFD78AW+TJWdEbDpQhHkWd6CM= -github.com/ionos-cloud/sdk-go/v6 v6.3.6/go.mod h1:nUGHP4kZHAZngCVr4v6C8nuargFrtvt7GrzH/hqn7c4= +github.com/ionos-cloud/sdk-go/v6 v6.3.7 h1:t773JkC/asnyVqeQ+OvN9WCRZuosSoPtJfyM82EFCWY= +github.com/ionos-cloud/sdk-go/v6 v6.3.7/go.mod h1:nUGHP4kZHAZngCVr4v6C8nuargFrtvt7GrzH/hqn7c4= 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/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= @@ -705,16 +697,16 @@ 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.6 h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao= -github.com/klauspost/compress v1.18.6/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= +github.com/klauspost/compress v1.19.0 h1:sXLILfc9jV2QYWkzFOPWStmcUVH2RHEB1JCdY2oVvCQ= +github.com/klauspost/compress v1.19.0/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= 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= github.com/knadh/koanf/providers/confmap v1.0.0/go.mod h1:txHYHiI2hAtF0/0sCmcuol4IDcuQbKTybiB1nOcUo1A= -github.com/knadh/koanf/v2 v2.3.4 h1:fnynNSDlujWE+v83hAp8wKr/cdoxHLO0629SN+U8Urc= -github.com/knadh/koanf/v2 v2.3.4/go.mod h1:gRb40VRAbd4iJMYYD5IxZ6hfuopFcXBpc9bbQpZwo28= +github.com/knadh/koanf/v2 v2.3.5 h1:2dXJUYaKGm4SGYeoAtBviq9+02JZo/pxQ2ssOd60rJg= +github.com/knadh/koanf/v2 v2.3.5/go.mod h1:gRb40VRAbd4iJMYYD5IxZ6hfuopFcXBpc9bbQpZwo28= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b h1:udzkj9S/zlT5X367kqJis0QP7YMxobob6zhzq6Yre00= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -733,14 +725,13 @@ github.com/lightstep/go-expohisto v1.0.0 h1:UPtTS1rGdtehbbAF7o/dhkWLTDI73UifG8Lb github.com/lightstep/go-expohisto v1.0.0/go.mod h1:xDXD0++Mu2FOaItXtdDfksfgxfV0z1TMPa+e/EUd0cs= github.com/linode/go-metadata v0.2.4 h1:iif+14PN5T0u/wRnu6i/UlLQrlaFlWvDJzm0Wl9Rn0I= github.com/linode/go-metadata v0.2.4/go.mod h1:h6yHiRupdKvyPkydU9g8kUA3QKdAgj3WX2wrF+mUv1c= -github.com/linode/linodego v1.66.0 h1:rK8QJFaV53LWOEJvb/evhTg/dP5ElvtuZmx4iv4RJds= -github.com/linode/linodego v1.66.0/go.mod h1:12ykGs9qsvxE+OU3SXuW2w+DTruWF35FPlXC7gGk2tU= +github.com/linode/linodego v1.69.1 h1:f45N2MHR/oece2/ktTTCYmrlfse4//k3NgwcF5zbGZ0= +github.com/linode/linodego v1.69.1/go.mod h1:Fha0NYsQSx5VZK1HQNJY/z/dIxxkFp+vb5veawbmAUw= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= -github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIiZhtifTV5OUqqiP82UAl0h87xj/l9k= -github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= +github.com/lufia/plan9stats v0.0.0-20260330125221-c963978e514e h1:Q6MvJtQK/iRcRtzAscm/zF23XxJlbECiGPyRicsX+Ak= +github.com/lufia/plan9stats v0.0.0-20260330125221-c963978e514e/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= github.com/magefile/mage v1.15.0 h1:BvGheCMAsG3bWUDbZ8AyXXpCNwU9u5CB6sM+HNb9HYg= github.com/magefile/mage v1.15.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE= github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= @@ -756,15 +747,15 @@ github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hd github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.22 h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4= +github.com/mattn/go-isatty v0.0.22/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxatome/go-testdeep v1.12.0 h1:Ql7Go8Tg0C1D/uMMX59LAoYK7LffeJQ6X2T04nTH68g= github.com/maxatome/go-testdeep v1.12.0/go.mod h1:lPZc/HAcJMP92l7yI6TRz1aZN5URwUBUAfUNvrclaNM= -github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= -github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= -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/mdlayher/socket v0.6.0 h1:ScZPaAGyO1icQnbFrhPM8mnXyMu9qukC1K4ZoM2IQKU= +github.com/mdlayher/socket v0.6.0/go.mod h1:q7vozUAnxSqnjHc12Fik5yUKIzfZ8ITCfMkhOtE9z18= +github.com/mdlayher/vsock v1.3.0 h1:bqQfZ1OznI03y6YiXp2sze05RVdzLn/zsfjnjd4+ivI= +github.com/mdlayher/vsock v1.3.0/go.mod h1:WsuksavOvwCnV5UqGHUkvAvCy+Dqy81y4goKQTzxxNY= github.com/microsoft/ApplicationInsights-Go v0.4.4 h1:G4+H9WNs6ygSCe6sUyxRc2U81TI5Es90b2t/MwX5KqY= github.com/microsoft/ApplicationInsights-Go v0.4.4/go.mod h1:fKRUseBqkw6bDiXTs3ESTiU/4YTIHsQS4W3fP2ieF4U= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= @@ -785,10 +776,10 @@ github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3N github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/moby/go-archive v0.2.0 h1:zg5QDUM2mi0JIM9fdQZWC7U8+2ZfixfTYoHL7rWUcP8= github.com/moby/go-archive v0.2.0/go.mod h1:mNeivT14o8xU+5q1YnNrkQVpK+dnNe/K6fHqnTg4qPU= -github.com/moby/moby/api v1.54.2 h1:wiat9QAhnDQjA7wk1kh/TqHz2I1uUA7M7t9SAl/JNXg= -github.com/moby/moby/api v1.54.2/go.mod h1:+RQ6wluLwtYaTd1WnPLykIDPekkuyD/ROWQClE83pzs= -github.com/moby/moby/client v0.4.1 h1:DMQgisVoMkmMs7fp3ROSdiBnoAu8+vo3GggFl06M/wY= -github.com/moby/moby/client v0.4.1/go.mod h1:z52C9O2POPOsnxZAy//WtKcQ32P+jT/NGeXu/7nfjGQ= +github.com/moby/moby/api v1.55.0 h1:2/sexvQyqIWS8pRSCFddBfpW2qE7vR7FCL+vN8pxwMc= +github.com/moby/moby/api v1.55.0/go.mod h1:+RQ6wluLwtYaTd1WnPLykIDPekkuyD/ROWQClE83pzs= +github.com/moby/moby/client v0.5.0 h1:5XhyPk2fuOWf6RlSFa3MkIIgDZkF25xToXW8Q/BH7cc= +github.com/moby/moby/client v0.5.0/go.mod h1:rcVpF8ncl9vo5gaIBdol6CnbEtSj1uxMvEV/UrykF/s= github.com/moby/patternmatcher v0.6.1 h1:qlhtafmr6kgMIJjKJMDmMWq7WLkKIo23hsrpR3x084U= github.com/moby/patternmatcher v0.6.1/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= @@ -819,112 +810,116 @@ github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNs github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.153.0 h1:HTwBWhSB4RYWtpA/Pxy/W+TxKYrqZparMwd1ZniJbJs= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.153.0/go.mod h1:B3DD+QqpXAv7/KelRpJvQS4ZF9lxyPHI4hv/Q42tm0Y= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.153.0 h1:BBmppD58DikPVc4Qbe7LLQGcJ16Garp7eDj2hXciiNY= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.153.0/go.mod h1:qAcTyFamjbP9DB8orjBnn4/1sqNf482+fRi3/aGVlxA= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.153.0 h1:f5SoWPkFx0w0ypTWMVhlOZCYQn4LX9/MuiH0nBuFxq0= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.153.0/go.mod h1:1tueNSD8qlts25XBria7K+I/boqV0LFGFMGp+JOQubk= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.153.0 h1:5SPL5A2wZmNpjgbJLYJs7RwstUjPeF6zLu563XeTYUE= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.153.0/go.mod h1:HeB2i3y+yUSJgaxI8xGV2OTykzRM07rXHOCQgZi/+NA= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.153.0 h1:fcRUge6lGz8NSFPtmgFPeddaIjxzQaQG1fzCyum9hZg= -github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.153.0/go.mod h1:SQN7YDhlenUyGfU8wWATN5qeeAZGAze8tVSCNESPJwo= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.153.0 h1:iCPc/IXpLHO2+tFeCRrxiaVx9q6kk8mnDmiftUe9uOg= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.153.0/go.mod h1:RkYuyf5ykG4Kat42prKWHNCj//ls3cki61hBV4nBaE0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.153.0 h1:CPLiiLnNZPb3krr8hXRBO3KsJndfmoqYqgy/HJw9/Ag= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.153.0/go.mod h1:WMLmyccBzVqfC/ElXKM2q8vsV05mLPuaZQaed+NHjVQ= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.153.0 h1:bpLMjTivwUnY6gWU79H7f0cAQw/SuRLoTCEGjFV2Idc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.153.0/go.mod h1:tuGHZEKHXzJQJnu8USQvzSYX0eeR0HXXlkYBs098+S4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.153.0 h1:bqrJ/LZFqH8hkj2FdjpyrHjnwUq43lDZkNA1zbfEp5c= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.153.0/go.mod h1:vD+SsW0fiQrOLSkrxRF5q0WnfYaq9Ubo81guyqGn1O4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.153.0 h1:5Cg7mJjlAqX1jhkIV1iIRmvc7Qw2XMFRt/62QMkDg4Y= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.153.0/go.mod h1:SCd6g96DskPvxoBPX8u8T6Bo+HpFiEEJQGrKuS8jEAQ= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/basicauth v0.153.0 h1:0eZ9IO2QvsRbwD5MH3zxE0ck9xi/gA56ge7oXcyWrZE= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/basicauth v0.153.0/go.mod h1:jrnDOJIYUQs/M9Gfi57liYTCXrZO+BwbE0rzfWRBaTM= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile v0.153.0 h1:G036E4UkiED/4O+AQGCDvd5ceIpaplxJVs7P+V6wIjc= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile v0.153.0/go.mod h1:DmgMHE51n8CcKWw81i+f7+JpQODs9524mcrujeyUQes= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/k8sleaderelector v0.153.0 h1:gaIAXbAB163qIw2taChSCkB0nKPfhbpkqECh6347My8= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/k8sleaderelector v0.153.0/go.mod h1:lQk3aYB1JFjf4RjYzIuANmkk+0agmgJRgBBG9AgsEi0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.153.0 h1:bjoW+wPQBQzLnb4FlsfECPIAvRpW8l/hTCo08AhF/z4= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.153.0/go.mod h1:gUSi0KWIJEHfQzViOZGQjon/Z3QIW9lGVdv+TrZ1rn0= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.153.0 h1:bC8Sks2es2BZN7cCGeO6qgduEFLa3HFkD+NaOhqTmAU= -github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.153.0/go.mod h1:4C7LakEKBPB8h7eqXRmfbIzAWFRoA2sr9zlIFbxfJ7E= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.153.0 h1:Ey0s5Hkaq3c2e3WDK4eeN74Go6W8yE2NANMMZ6CT3qc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.153.0/go.mod h1:2E07YJ27OAYZbJZWpMaNXRBGHUlKGXyXKSuDRYphGtE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.153.0 h1:LpeHliW4jSVFe8LHbJaGGoj+zoWSUVZLukvund+NLk8= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.153.0/go.mod h1:AxCm8Eu/1dp7tAbUUghGL9Hor5zaf2LUJrVdtZfOaVM= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.153.0 h1:6GppaMEy2WsHRXDkptU3P6w9jy6hboPm+6KQPDvIeDk= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.153.0/go.mod h1:LaREyq9MLuwwS22V0yhCJrz9adzGYS6vVdvvUScrXyA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.153.0 h1:0fMDt9YE5DdtEKpvh9GAfUgTCrDtdf4WPN/b4/DfGr4= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.153.0/go.mod h1:/4RXSXY8YZ9jOVu+JudovOLouQEUCHzV1Q2LZLA89D0= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.153.0 h1:hrLQLVZ4YXs35G9QvPO+xcu6qMnUpCt3WOpBDM7dR+E= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.153.0/go.mod h1:+qlIXDaBLIX+egj/okymUG88KSdAD8nIEHY8+tXt8+M= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.153.0 h1:owQ5vQWzfy3NxE5JEfWN7xBhjRfEXoskon34vctvK7Q= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.153.0/go.mod h1:flQxScMT6QVuK95M0/LD0zJX5tuCSaTfA1W+pIS5KlE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.153.0 h1:cQFHoPpIkF7BADxkCZM8PpGkma0VtYZnLLqjFafUgDQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.153.0/go.mod h1:a2ExcheY78j9/xq/z2OefOYYXBJmN4MWNe6t66sTeTI= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.153.0 h1:J8OmPgFmu/73n0iy0SrIC7HOg1fctocZymhqzK8IJ+s= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.153.0/go.mod h1:vGQeo8jeJ14emGCW2RBdVo8lhcHZOcwvne/v8+unsIs= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory v0.153.0 h1:TIGzGiMa8HTyXVDLAcILy1UxuqJmvTP1c2Pt84BRFqE= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory v0.153.0/go.mod h1:AH/FnfV4xarSzsht54z+PBsqirS418zEwy5Kzg1xX84= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sleaderelectortest v0.153.0 h1:ZTq4AdsZL+Pke9/ZIpUFnNbTdxxsdtKlHV1ej+HZp2M= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sleaderelectortest v0.153.0/go.mod h1:Y86Guswry5oGoAEvRLg8wVrrpdUEB9H5vbfEwAGqQSc= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.153.0 h1:+ZxEYJfK0Rc555FSDB4VxQ0tcWeSVAdVY+0TdPfwCSg= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.153.0/go.mod h1:FFpvqXu0hBT//boL+SBezwK+mSBoKEJbpEKBCFvPT3o= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.153.0 h1:pLc7CueD0Mmpg40RLJoeityYj44Azg/k9TU3UU7Tbds= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.153.0/go.mod h1:sMZRz2/988l8/O5v3xjirDmHTftCIA1iTCIaKnw6nWw= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.153.0 h1:1+CrvdWLr1OxJaKR07ldcZLRt+5a8TFyouzr68xwDXY= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.153.0/go.mod h1:xgcSKATE+OQ53Wv4037pe9tgIYVGl7AJdW3x2sB1zkA= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.153.0 h1:RR/Ug08ZTuZTCCwjP8KKsdwzjmM2oc8c7CvOskZENjQ= -github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.153.0/go.mod h1:VZhKvjt5mCuRPMg78taeOVoHB42JK8UNRxRhEbQax5o= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.153.0 h1:memHPIcMDwOtaWxXlFmO31wecOel+/z0qI5IhAZ5Bgg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.153.0/go.mod h1:u6Rbs3XBpI5z1cSZCSM85LhSX05YhezMr7NW9/WIV4o= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.153.0 h1:AGr2hFyZajMUz95LEjleyLNez3UMAuuMSmAoOQ/HVz8= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.153.0/go.mod h1:WPk+TO5edgL7AfWrHZP9gHn00YhB6VCunCmdeb87eNU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.153.0 h1:oNVsd/YwRjtl6tJO8/dY7wx2TGJGbEVwz7wcF2FGF8M= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.153.0/go.mod h1:2QNxJizbn7WpLRdVK/2/ADQfXlt8he4c5KJVH61EgEE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.153.0 h1:zQWFUP2LcyTUQz85ToaRDl/mvqlBtuHX22iWdyItPWk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.153.0/go.mod h1:KplhnI0LTeecjA+jRo/ur3KrIttPEwJdQHhHEJvs9x0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.153.0 h1:VwVUNLFbACvJ2CHpHIZEy67DhpI5UZbOJQzBK8OH08o= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.153.0/go.mod h1:MAaa6qsWyaX9v9g/vS/vOYcujdlhZ9dJ2Y7BiVkJVe4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.153.0 h1:kPPv0sQQH2R2CitTPYXDfq1z1ekStnmk39C8RkOrsbI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.153.0/go.mod h1:wFACQmv2KfJyvyiRtMrI/DmcOWKEk6SxY0nLduWFMC4= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.153.0 h1:pXJ+ybdR3HfgD8omH70A5hS/9MYanVmfvgy4PNiALcg= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.153.0/go.mod h1:BANKLedD7lSn+1jz2gsarpIm4USAOSbKqTK7NNqG9+0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.145.0 h1:7rdLY2Ewa1WVnjMfJTEKwQ5uPDHYeA1tqNPNROi957U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.145.0/go.mod h1:jYlQAaJO4ZyJAW2jcKAbjN+nt5BRCyu49mlZv4Rui7U= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.153.0 h1:38k/+OL0eQalTm3Q7weyE4/Ayy1OIPeWyPS+oOWAMZM= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.153.0/go.mod h1:HilJUEz8H0qR3GODGWemUCf7E49kpFVxgDV1ITCIgQw= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.153.0 h1:i7LGGDczVjOd5v1qw+OHrSF6qyjlH7ItkJtsDjeqj3Y= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.153.0/go.mod h1:jLFqF0BJK6slTdAYvcXaOzAZGqbfA/f7jOhd5Hkx+qU= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.153.0 h1:dRaI/ayPoTpGzBVeibRb3jKITIef+zEG/SEKfBNukBA= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.153.0/go.mod h1:v13/hfECGsij2wFFtV20x+0V4he0GYfPDO+4f3M1uZE= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/splunk v0.153.0 h1:NT3iF/5fkU3DB1g520KOfX8/Ksk0sSA/YbOhfkij4rI= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/splunk v0.153.0/go.mod h1:Ijw7Pb/wrALbPhrHPsY3q/vJaYDcdjTC15iPyVLqsJk= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest v0.153.0 h1:DE02qR0uUGpW5r1uOHpVP0MokeZG8WR2QxxtjV68ze0= -github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest v0.153.0/go.mod h1:tqO9LJvjUmzQAiRz9BQih4wzZUAE3HdcbfbJTyWFnjc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.153.0 h1:lDtmw2yYXSAc2Xgg0wLmTGdH++8sGpfukRL/i5NhxKI= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.153.0/go.mod h1:1xFggPzFDNHcGjZlJDrQHQw460tPtp7ZxxO2QHjPi+o= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.153.0 h1:3MR2JvG1KB4GUiMi5asE6K0Ln5cjWPEfVAIpUwf55Sk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.153.0/go.mod h1:0lEaZGCEjzb4R5J6F0NR1jF1KKc18IkvPRwLpQuyyjY= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.153.0 h1:BJgrgLXGJDR/yEmmUwwSVp4XfDj4+yqjRnRZubfBP2s= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.153.0/go.mod h1:gBxrMc3s9mPSKGFqPqMDwS+q3FUm3o47+kBPbp2Vuo4= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.153.0 h1:8BaT2WPt0BapHSdTaNhl8VKLdeVUQU7nSt9NjDrdkIk= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.153.0/go.mod h1:A9cHU1TFtimcsl+aYwdepmwWgCxOxY5tM5jqxnvP6zc= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.153.0 h1:wBIDgZfNArgZexVI3O8Moh0VxiKDPl7ohW/qc8dXGv8= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.153.0/go.mod h1:QOMkHo2IlhKAF9ap1lOupwuh3t27JGnwkvBA7CVO/0Q= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.145.0 h1:12mxn+8YLeAjMZ1kLGulBcvHrdhRNUmxLVIDnaLkJbQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.145.0/go.mod h1:V87HYJpfmvCeQ6Cjy3Q4xylxfCn2wVSS80wvv5ECc0s= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.153.0 h1:3vZ1Y+iWJIprylJn9OiWCt11CDKcofherbFjwmKxtDw= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.153.0/go.mod h1:hE74x7l04EEohgU6RJbwMZ5rXDAN98T9umkZ3UYZDac= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.153.0 h1:NWQL56jAzSmwazkMy5CygDVP/mSdqGv1moHMaapdZOQ= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.153.0/go.mod h1:yuGXxx8ZleGd/HZ8XdoZ0uo2BZm6xtdxHcrSb8Hi6Go= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.153.0 h1:ID8lnfZpwz6JSjeKjUBajYSpbLwuZR3GAMjQjvNI+E0= -github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.153.0/go.mod h1:fyI0bNMD/Enw6lXaWVXf4v9xJh2NtgCsMYYn9kffdp8= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.153.0 h1:plLiOGLwxwLTOdtg4dubSYELAV6ACYd95fL2xDC4010= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.153.0/go.mod h1:CiFrD6XkCtg8hqpFaYkoOUDeugiayAWAXmxY5bxSeIQ= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.153.0 h1:xOSkH/2w5/pkf6oAaS4EmmxiFSwoWGOaRVimmLfPd+4= -github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.153.0/go.mod h1:BVC4+uUe07DTVYfirhR900RMyv96h9Im4w+Ve1H2Vc0= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.157.0 h1:WFOSeOWAf0E4SUXnBYiEDBsC5qy7dYkIxyyekMcYaXo= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.157.0/go.mod h1:XkIaVU0CfKLHSX0RIBMW2fZd4p46YwIxSSaV3c1TVFI= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.157.0 h1:XiQHStYXqFAopsh60ipk3R0oqUT841AISkJ8kkWKE3s= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.157.0/go.mod h1:z2tbfZDhwHPnXG3nam6sEEA/8HqXikly89k1HyJonHM= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.157.0 h1:unvjWokVktVvV7NIoHdyUUEBzk4Tl71mtGVgJcmLNis= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.157.0/go.mod h1:a2hjLZnmfDeGxgN6EckF8VVqH1PfQYbzUlr2dKOFslk= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.157.0 h1:fvLnr8PBd6iM4T2mlFTEzohsVRQA0zxFeRHJC8MmJgs= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.157.0/go.mod h1:sQHfqRsNaoiuKXKwLwTeTDT7mhbtuvxMRoHmj4V2848= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.157.0 h1:65Y/2RuI7ov7PbwL4EE4Jf0J/2GIKGRN+lmmRU7sj7k= +github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.157.0/go.mod h1:EEHR9WkKjnZA30xrn7tz6jiczE49RVJnQOgLqS4nJDE= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.157.0 h1:aJVx3Kwxukc1+263yqZKyTT1Em4KgoWnWDkStoBDIDA= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.157.0/go.mod h1:smWlT3HyvNKjNGQFZYHlXJdChO3a9C7D1AzH/ivHKtw= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.157.0 h1:VGuZ86lGJbFQdX9IW4zkvIejpjE5G/R0k5pVO0rD6UE= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.157.0/go.mod h1:VMLGMleAD/2YQ8uZTEzMYVLrO0ipfbvesjp4XnEbRcc= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.157.0 h1:rw87RigtlBazselKQwjyQY2vqD1j5TN16jvB1kIW9iE= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/cgroupruntimeextension v0.157.0/go.mod h1:jgD+4uWC1B2WgLnwoNZnzHRB3LnQucWs1DG/R4lIPf4= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.157.0 h1:3vET6Fho5I6Pf1YbSDsD81VVd5bn+TKUFBO45xfOmiU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.157.0/go.mod h1:byDJjmmf+rHhKumyOyKKXYY/3PgFP2P/W/OaqLvrJwE= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.157.0 h1:PhY+aEfkxNcP6Q2L6dGZsoHWrw+JxInEYlsV48mfATE= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckv2extension v0.157.0/go.mod h1:ts3zjH/GMBGTn6CVDX81oUDgxChCpzWBnH+p2J8r02w= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/basicauth v0.157.0 h1:oBKH56sCwsxSKZbfeVeXvK5IomWmIQPoolqaTfYBdig= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/basicauth v0.157.0/go.mod h1:fHRwMiY4lFWwxvf9kC3q8u/f3+RFjuI4yT2HbUuM+JI= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile v0.157.0 h1:AlhgyKGeg72E+uugpjG2lIKfgN84lESk2YFOVQ7h3oo= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/internal/credentialsfile v0.157.0/go.mod h1:DmgMHE51n8CcKWw81i+f7+JpQODs9524mcrujeyUQes= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/k8sleaderelector v0.157.0 h1:m3I+evlb09zoNKA8UJlHqK0rod9gbDM64OGMdaA4cSU= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/k8sleaderelector v0.157.0/go.mod h1:j2oP3qNrkDGmoiyG1QLz2qTWNP6sMvo7B3iOw9+Y+Ws= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.157.0 h1:O88SR2BTHN/NAFLNgSY7Ku3+HsPjy/DMPCYGRdwrp1s= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.157.0/go.mod h1:f8MCS4tVZy5IwjRFJWIwAmVmEDNf086uSovAfwntxxo= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.157.0 h1:ZUHfd8qumKAMctr0CnRdsMjfke/RBU8702O3auyWMtM= +github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.157.0/go.mod h1:x6bJlY9KOnHTbRqKhdmR5jbutjunFsDC5r+OP60+RRU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.157.0 h1:3odXMFkc4m31HmcXm+bgEtlFBnz/2g9pC8SRPHdxteE= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.157.0/go.mod h1:DPq49+t94uk/cHwP/+CgZknX9gOqPl8GKUlC8ilWFc8= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.157.0 h1:aQVvm4iiT1DUx2CzeDLEWETDKgbBvWAPJgancj6SQXY= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.157.0/go.mod h1:O8CaK9NpZseY5l4LSxsOkH3QQVpIK+qwoAAXUPWrZdg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.157.0 h1:VSSYnwXzCdpNOfWkBj0JWOy/iEj+BwS97MEgDquQP6k= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.157.0/go.mod h1:CJVh4lwbI8NZ7lrYvM5AUNSyMkeiM/iRJqOWzDGjd8s= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.157.0 h1:gMxpZ6U+bddnQI6E+Sx10Ocf2DfSii5PTTuI90zbyu4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/datadog v0.157.0/go.mod h1:P3CXixkyJYhJ3bwrjh5cQD3cJstrG1PCtor5Ww9HUs0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.157.0 h1:WzyLbYQ5GswNa/3Jma/bYYbn2ziLoQct2VEoN5u1j74= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.157.0/go.mod h1:TmipmukIEZQwvWXuFMaSnDBlaNzgsyiHcv54luc76pk= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.157.0 h1:MVFunSPPiBH5XflOVbxRjlbXnlDKcA9IUgHIijfEsC4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/filter v0.157.0/go.mod h1:osR7cxslShL5ViU8zp79ZAmZDXSInzLfWMWKmqNN3p4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.157.0 h1:rwyZi7AoWnl3bF+PXlXLtmX6NAdXlXYeebknc/19qIQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/healthcheck v0.157.0/go.mod h1:P6C9Aw2nbC8WvpHL3FyH6KOmd8tPJnSyDjfCGh/ZUTw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.157.0 h1:GNyP6EVn1kgYNpq+Sg+xOFETp4SVsoKMfmlSvPikOJw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.157.0/go.mod h1:vGQeo8jeJ14emGCW2RBdVo8lhcHZOcwvne/v8+unsIs= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory v0.157.0 h1:yuhlqc0gUAqXAFFndpV0cOXPrd937iBWI4DVCheCYuw= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sinventory v0.157.0/go.mod h1:5un0MLRUywl+WCp1q2t0WiFgskkRzpzvYtNY21dFsoU= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sleaderelectortest v0.157.0 h1:kfXnsFvc9OLWk+8TM0uyg4xLH6VoSIk6NwVkubpN7Vo= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sleaderelectortest v0.157.0/go.mod h1:L+3lT4TGjEEH6eZGF0OXn0cjWJ45pxJWMCVCZeDAl58= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.157.0 h1:PW5jhzJxl2WtbRHHNL6yOqQAZC6LBbPo5gxs1z8azbM= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/metadataproviders v0.157.0/go.mod h1:Qt1tOT5kbDTTnofn5mInXfv99EYAcfjmZNsYRuf9fs4= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.157.0 h1:rmzXxTWbomtx3NayUNcLATK4LuPveQT6Cz7Xpre+GKo= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/pdatautil v0.157.0/go.mod h1:0B3Ky+b90JOlF4r1bLK/ZCUPuxSQsvkuinPQFjfY1wQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.157.0 h1:m3IPZlicM+UnFlPyAszWee/8Iy7sGfXPu0wmCeIpsOQ= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.157.0/go.mod h1:JnBeVLrrYYBR4rIzcFLNK03OcWoxkGn+DXO1k17LZFg= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.157.0 h1:OWbiwK7Uz8h1CHjpLSU0GRxVHh/RdjtbzVFU/0DG6Z0= +github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.157.0/go.mod h1:YFpi+9Ouk7mRvAcXry+qMetG3N1hxYovGoYCY/sISII= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.157.0 h1:bR+johTWfDnGCYcl6pgz5RO8h5/akatNJKPCItXIU5o= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.157.0/go.mod h1:QizuzD7e2qjZve5jCf3Qjh235cuxfQi4XiYkHxHFTIE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.157.0 h1:FkQ53nCjkwZYsB/qsvRSdP+9iJPIlykDWp1QzwohrHE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.157.0/go.mod h1:fVI7Dr90srzhJKmJEl9QQQEfyJWtLkf7iRtJCZ9thqo= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.157.0 h1:IeELXc6t6ckP+/rNK6Ni0DIB0qY9Hn2RjqdtvtLkgWY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/golden v0.157.0/go.mod h1:9wwPZDYZ+mVPTnI3jomH3mQildfH6SBNoqFwlLdWLiw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.157.0 h1:rwIE1PI+MjoH1Fso0GBuuehkXUqNFzeAxYz19nvf1UU= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl v0.157.0/go.mod h1:pUfJpMZVdvNOWDv2AYnYG35ToSD6rEffTv6W74XTD5U= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.157.0 h1:yM+TsAD0OEr1RdxZ/NB8C0kArZCkgzOjzOp9TbmdX0w= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.157.0/go.mod h1:rugNqTrH2rSgtTV4Sko7rI4WgETpYXwx+Cpi9FfpPuY= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.157.0 h1:oQWc2BKFkPqo14Zh+qDEWZItxJacKSubLjtFirojFnk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.157.0/go.mod h1:fMeXcxEg6tHlCPRjf2jQ6KavnvDrwoGvJ8q8ihDk3BE= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.157.0 h1:TYVd0gt21uI45No4pBFTvfiQc4nPTSF6d4bixWEe4s8= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.157.0/go.mod h1:7sLvJFRBbo3IYpt2RjqWSkIE6UvAIuD/DGPCFXEq1CI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.152.0 h1:BwhW8UIDFuhPMK9CvkFKANDwpZj8PUWrMbJCVk5uLPg= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/sampling v0.152.0/go.mod h1:BkZ/+Z2dxFPSB0d/uyGmtlMFmkn/q1HURhfSg/HAiAk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.157.0 h1:Hvb9H2RXwCjJMT6btIzDpUbSPN/jqYDByxTRhzo8u7A= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/status v0.157.0/go.mod h1:ib1+KCvPhgXKImjziaSmV5rO633StGIVMLyS1TqH+fM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/pprof v0.157.0 h1:JrYk+H65J18Gn6JXf5zjNQkCv4HoU7LRHm6nSz6qOVs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/pprof v0.157.0/go.mod h1:Xb2YX/ehDKQHwhpwSkTCe0t6IBDv406KTA3eMpPY8Lw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.157.0 h1:utTkQG8QQb9REB0jhOq02c/NV536BZPgClOKX/+nJCs= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.157.0/go.mod h1:pH9Ms+fPtLFcfarHFb8sNElK29HjMNpolQc6Cic0IUQ= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.157.0 h1:RB2c9DHQRjMPUZ32meb2nenNNbDAI//xT69FejI0DHM= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.157.0/go.mod h1:BM4bjjmvAR6yAimFUJuz8Ve8S4K2lcoZzUSkzTTDLVw= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/splunk v0.157.0 h1:XyPUqYfHHp4bCZ/v3btPskHva3ZAWcQWc6LV0hGHlPk= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/splunk v0.157.0/go.mod h1:u/jArGoFB0a3ITN5MIWrBFvjvacDIUSx37Rc00iW4tI= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest v0.157.0 h1:HCbBIsV+kAy+V868eNH05iOFLO64p2dBTHZpayCJtrc= +github.com/open-telemetry/opentelemetry-collector-contrib/pkg/xk8stest v0.157.0/go.mod h1:ly8wO+94yzw+7LZif9Q9o6NStXQgf0RRX8wZf5YOvIM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.157.0 h1:ReTJlXnywXrT0JPI3BPGUzgwJLakR28htl8D93sUe70= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.157.0/go.mod h1:Yq3X3wf/zow69Nb21G14s7GN+L9W43y97iwhmI37GzM= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.157.0 h1:y/Uf4K+H3WOWIFEbqymmBcw6s5QQe/hxTy23UERke7w= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.157.0/go.mod h1:2J1/XjEfj6pQkRGOjE81TjDFUxH+v0JnMtELt0VhOtA= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.157.0 h1:iX5AkpEevd/a7RlhbF5AKG8zjLm43PKza67ddQUAg5c= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.157.0/go.mod h1:D9fSUGLxVKVsmuvEygEqe5Z6bWJsiUfedKYoxkiyTSw= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.157.0 h1:+5z2temPRAZhiYV8VuNcG+Yz5KFzBp14Emo7kjIN3Jw= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.157.0/go.mod h1:YTb+niAbEMx+CMZEK5ePhXqeu8jwR86Uyi/iRz/jgJE= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.157.0 h1:lEu3nFvbQ5ps2fjIVvBaQ/5NpQbJQ40QESK6iQ54kN8= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.157.0/go.mod h1:FQO9sV/3A9Rhyi489MKFyMYtbvGQz4Fg17lyt0DgQXQ= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.152.0 h1:vt7mupvepVIO4XlZrJ+8yFECWxIqHMTAuEYFmsCbXao= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.152.0/go.mod h1:xRRQmHi6lbHw3rxl94RpKM5nttEV5D2uTOO9fj9YUk4= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.157.0 h1:lwLGkkTdW82yQdmjmRw/Jls64Qj9UlutgtB9n0jZRLw= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.157.0/go.mod h1:E0U/oSJqiUmVl2D4QClGAXHA8OV3cb/j9YpkRUFHxhg= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.157.0 h1:8guMy8iDD3CbmVM4llSjZeSVu0HTUHGmeSItwxHvoyw= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.157.0/go.mod h1:cPxgDMlPPudhjnyVTg7xU6DwA7464hcLN2duzhriHFU= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.157.0 h1:t+LSRJWumgjzw0eq93ASQgZqCYW22QjxFSR6xBlnr30= +github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.157.0/go.mod h1:RkKB14MfCoVJI7aGLePPWq/eiYX2c2rJh5XdoGgDbjg= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.157.0 h1:bMmhJfrzoDcUQ1pQCiEfaHk5JUeSqmNYtho4WDOPZf4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.157.0/go.mod h1:3LPymAgL0oJkyEomH+9fJmsFTKZIOnQxCO51ogEgZx4= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.157.0 h1:0D3oQNQYt4o9+AtoJgLXXcdyRyMfD1jGvuwe27/j2LE= +github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.157.0/go.mod h1:JH8lZk9CBqrH0WsrcxBiHAkeRlzkOmQgwQ+LhH3LaRY= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260605055552-091960d5da90 h1:Pvu/hHr3XjXFlWQlNk/+dG69b0R1ScGWk8Bgm29lP2g= +github.com/open-telemetry/sig-profiling/profcheck v0.0.0-20260605055552-091960d5da90/go.mod h1:WPdgk1BinVdvYdkbt1KIkgDw6qUiK8CnGq+ftaJ41Ns= 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= @@ -938,8 +933,8 @@ github.com/openshift/client-go v0.0.0-20251015124057-db0dee36e235/go.mod h1:L49W github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= github.com/outcaste-io/ristretto v0.2.3 h1:AK4zt/fJ76kjlYObOeNwh4T3asEuaCmp26pOvUOL9w0= github.com/outcaste-io/ristretto v0.2.3/go.mod h1:W8HywhmtlopSB1jeMg3JtdIhf+DYkLAr0VN/s4+MHac= -github.com/outscale/osc-sdk-go/v2 v2.32.0 h1:twcX7/YF32aowN0khwK3fPKXGujRi7oOCLLzWcLTX+M= -github.com/outscale/osc-sdk-go/v2 v2.32.0/go.mod h1:fl+1NvnHptNVE0N57dkDa+H4fyBhlrFaRA+lYiUT44s= +github.com/outscale/osc-sdk-go/v2 v2.34.0 h1:hHH5W9Fmgt6b8nGUmDyu4vVP+zqJ+W0zflzjgsGEGUQ= +github.com/outscale/osc-sdk-go/v2 v2.34.0/go.mod h1:6J8WRznaSIEXXVHhhTXisGJQgvE5fYzbf8hAw7YIGfQ= github.com/ovh/go-ovh v1.9.0 h1:6K8VoL3BYjVV3In9tPJUdT7qMx9h0GExN9EXx1r2kKE= github.com/ovh/go-ovh v1.9.0/go.mod h1:cTVDnl94z4tl8pP1uZ/8jlVxntjSIf09bNcQ5TJSC7c= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -949,22 +944,21 @@ github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaR github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pb33f/jsonpath v0.8.2 h1:Ou4C7zjYClBm97dfZjDCjdZGusJoynv/vrtiEKNfj2Y= github.com/pb33f/jsonpath v0.8.2/go.mod h1:zBV5LJW4OQOPatmQE2QdKpGQJvhDTlE5IEj6ASaRNTo= -github.com/pb33f/libopenapi v0.34.4 h1:BWWXA3U4SlsHEvfczk+DJHu2O38ktgKw+zBEYaDZ2uI= -github.com/pb33f/libopenapi v0.34.4/go.mod h1:MsDdUlQ1CdrIDO5v26JfgBxQs7kcaOUEpMP3EqU6bI4= -github.com/pb33f/libopenapi-validator v0.13.3 h1:5KW4Y/mMoQvt6d89rLiNmW1zSfln7Oua2A0BqPXpjro= -github.com/pb33f/libopenapi-validator v0.13.3/go.mod h1:X58CRsmj/7l0iXethEMfq3OJIzQ5hces7EbJ071z6WI= +github.com/pb33f/libopenapi v0.37.2 h1:4Kb4w/h2BVKb099oYIZqeDxEBhUioWA+z6WJhBOk2r8= +github.com/pb33f/libopenapi v0.37.2/go.mod h1:MsDdUlQ1CdrIDO5v26JfgBxQs7kcaOUEpMP3EqU6bI4= +github.com/pb33f/libopenapi-validator v0.13.8 h1:3t/5hUq8EYIWe6Uwj5RA7xFSWkleDbqsueA78/tIAo8= +github.com/pb33f/libopenapi-validator v0.13.8/go.mod h1:mWwedExRS1L8gjK6BGE1oDA5wXLuxgU7EheNz703MCg= github.com/pb33f/ordered-map/v2 v2.3.1 h1:5319HDO0aw4DA4gzi+zv4FXU9UlSs3xGZ40wcP1nBjY= github.com/pb33f/ordered-map/v2 v2.3.1/go.mod h1:qxFQgd0PkVUtOMCkTapqotNgzRhMPL7VvaHKbd1HnmQ= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM= github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= -github.com/pierrec/lz4/v4 v4.1.26 h1:GrpZw1gZttORinvzBdXPUXATeqlJjqUG/D87TKMnhjY= -github.com/pierrec/lz4/v4 v4.1.26/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4= +github.com/pierrec/lz4/v4 v4.1.27 h1:+PhzhWDrjRj89TH2sw43nE3+4+W8lSxIuQadEHZyjUk= +github.com/pierrec/lz4/v4 v4.1.27/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -983,15 +977,15 @@ github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= -github.com/prometheus/alertmanager v0.31.1 h1:eAmIC42lzbWslHkMt693T36qdxfyZULswiHr681YS3Q= -github.com/prometheus/alertmanager v0.31.1/go.mod h1:zWPQwhbLt2ybee8rL921UONeQ59Oncash+m/hGP17tU= +github.com/prometheus/alertmanager v0.32.1 h1:BQ3jHXNq2A7VSD9Kh0Qx+kXbifNbHSDuKVbMmdRHHJ0= +github.com/prometheus/alertmanager v0.32.1/go.mod h1:0Dy9faTtMgpVYxJVxV0o65elTxHnSRCF/7gy5BKGZiE= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= -github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= -github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= -github.com/prometheus/client_golang/exp v0.0.0-20260325093428-d8591d0db856 h1:1Y6bmpZb8peQCy1IpctnAhIFuyhrdtMaDnETChhSNns= -github.com/prometheus/client_golang/exp v0.0.0-20260325093428-d8591d0db856/go.mod h1:Vf0QcmVhGqpjLxZOaWrFSep86vchQtJmbztFaMM4f6Q= +github.com/prometheus/client_golang v1.23.3-0.20251103151724-a5ae20370e5e h1:VdOG0GiDJykWb5QSEdJzrwd1XVQy6kuBkNhcPmwwQsQ= +github.com/prometheus/client_golang v1.23.3-0.20251103151724-a5ae20370e5e/go.mod h1:Cd8aF6pZc1Z65dR58mjfsi9nymQTAgZFCiJYzDNsYDo= +github.com/prometheus/client_golang/exp v0.0.0-20260518105423-c9d5bc4c50a9 h1:e33IfrrwrJkylWwAGcQ2jMvbWVv13lv0suTXjGNeiqY= +github.com/prometheus/client_golang/exp v0.0.0-20260518105423-c9d5bc4c50a9/go.mod h1:vW/EVguzbNw6xMRmozJQWbY60/+Zsg0TgVJOSXGx2iI= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -999,21 +993,21 @@ 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.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4= -github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw= +github.com/prometheus/common v0.70.0 h1:bcpru3tWPVnxGnETLgOV5jbp/JRXgYEyv65CuBLAMMI= +github.com/prometheus/common v0.70.0/go.mod h1:S/SFasQmgGiYH6C81LKCtYa8QACgthGg5zxL2udV7SY= 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.16.0 h1:xT/j7L2XKF+VJd6B4fpUw6xWabHrSmsUf6mYmFqyu0s= -github.com/prometheus/exporter-toolkit v0.16.0/go.mod h1:d1EL8Z9674xQe/iWhwP2wDyCEoBPbXVeqDbqAUsgJWY= +github.com/prometheus/exporter-toolkit v0.17.1 h1:psKN4wM7shBL/BxZkDHgm6YZJ3fAVG36+r86An/+7q0= +github.com/prometheus/exporter-toolkit v0.17.1/go.mod h1:dabwPJvxsC5+tsp2iolQrqBWZh+QlISKlYRpj9Hh5xk= 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.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc= -github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo= -github.com/prometheus/prometheus v0.311.4-0.20260507094802-91c184a899b8 h1:9LKjpeM4g6iZP+w3Kd+68LxEhPXR1l7ZDw42cZicpZQ= -github.com/prometheus/prometheus v0.311.4-0.20260507094802-91c184a899b8/go.mod h1:h4Ogksuo6VUZmnm6q/ruKTUzrg9Vvu6u/6O/rQ5xPMg= +github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= +github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= +github.com/prometheus/prometheus v0.312.0 h1:f9jdv2fQhQ1fks9a9YwlGZrKr4hih0rRP/rh0mu3Q18= +github.com/prometheus/prometheus v0.312.0/go.mod h1:8oAYd2XPgHXLP4fFKam594R/ZLlPicrrBkVdaWt74Sw= github.com/prometheus/sigv4 v0.4.1 h1:EIc3j+8NBea9u1iV6O5ZAN8uvPq2xOIUPcqCTivHuXs= github.com/prometheus/sigv4 v0.4.1/go.mod h1:eu+ZbRvsc5TPiHwqh77OWuCnWK73IdkETYY46P4dXOU= github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9 h1:arwj11zP0yJIxIRiDn22E0H8PxfF7TsTrc2wIPFIsf4= @@ -1036,17 +1030,17 @@ github.com/scaleway/scaleway-sdk-go v1.0.0-beta.36 h1:ObX9hZmK+VmijreZO/8x9pQ8/P github.com/scaleway/scaleway-sdk-go v1.0.0-beta.36/go.mod h1:LEsDu4BubxK7/cWhtlQWfuxwL4rf/2UEpxXz1o1EMtM= 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/secure-systems-lab/go-securesystemslib v0.9.0 h1:rf1HIbL64nUpEIZnjLZ3mcNEL9NBPB0iuVjyxvq3LZc= -github.com/secure-systems-lab/go-securesystemslib v0.9.0/go.mod h1:DVHKMcZ+V4/woA/peqr+L0joiRXbPpQ042GgJckkFgw= +github.com/secure-systems-lab/go-securesystemslib v0.11.0 h1:iuCR9kcMFD4QurdKrGvPLoKZLv9YvwPYVr0473BdtFs= +github.com/secure-systems-lab/go-securesystemslib v0.11.0/go.mod h1:+PMOTjUGwHj2vcZ+TFKlb1tXRbrdWE1LYDT5i9JC80Q= github.com/shirou/gopsutil/v3 v3.22.12/go.mod h1:Xd7P1kwZcp5VW52+9XsirIKd/BROzbb2wdX3Kqlz9uI= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shirou/gopsutil/v4 v4.26.4 h1:B4SXVbcwTyrocPHEmWBC4uCYr4Xcu3MK1TXqbprAOWY= -github.com/shirou/gopsutil/v4 v4.26.4/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ= +github.com/shirou/gopsutil/v4 v4.26.6 h1:Mzr/npDtQC/xpeEuQKHZt8Zo9CmPvhTj8nkR8w5TLDs= +github.com/shirou/gopsutil/v4 v4.26.6/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v1.12.2 h1:ZVT8NeIUwGWpZcKaepPmFMoNQ3sVpxvqUh/MAqwFiJI= -github.com/shoenig/test v1.12.2/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/shoenig/test v1.13.2 h1:SaGxHxg7xkRuKuNtuFmHf0LgNGaAgcBT7HN4WHCKfqU= +github.com/shoenig/test v1.13.2/go.mod h1:MKmiRyEeuFl8y9PCoThaRDgYQZeWBhRQlH99poXz5LI= 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= @@ -1054,26 +1048,24 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY= github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo= github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU= github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk= github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stackitcloud/stackit-sdk-go/core v0.23.0 h1:zPrOhf3Xe47rKRs1fg/AqKYUiJJRYjdcv+3qsS50mEs= -github.com/stackitcloud/stackit-sdk-go/core v0.23.0/go.mod h1:osMglDby4csGZ5sIfhNyYq1bS1TxIdPY88+skE/kkmI= +github.com/stackitcloud/stackit-sdk-go/core v0.26.0 h1:jQEb9gkehfp6VCP6TcYk7BI10cz4l0KM2L6hqYBH2QA= +github.com/stackitcloud/stackit-sdk-go/core v0.26.0/go.mod h1:WU1hhxnjXw2EV7CYa1nlEvNpMiRY6CvmIOaHuL3pOaA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= @@ -1089,10 +1081,10 @@ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8 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/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955uh98WQvzOm0dgAeLnf2O0Rz0LPoC5ze+0= -github.com/testcontainers/testcontainers-go v0.42.0 h1:He3IhTzTZOygSXLJPMX7n44XtK+qhjat1nI9cneBbUY= -github.com/testcontainers/testcontainers-go v0.42.0/go.mod h1:vZjdY1YmUA1qEForxOIOazfsrdyORJAbhi0bp8plN30= -github.com/tg123/go-htpasswd v1.2.4 h1:HgH8KKCjdmo7jjXWN9k1nefPBd7Be3tFCTjc2jPraPU= -github.com/tg123/go-htpasswd v1.2.4/go.mod h1:EKThQok9xHkun6NBMynNv6Jmu24A33XdZzzl4Q7H1+0= +github.com/testcontainers/testcontainers-go v0.43.0 h1:oEQx5MW2DGd9z3AeEQfB2lPM0eLs7ztyaGRu75bFo5A= +github.com/testcontainers/testcontainers-go v0.43.0/go.mod h1:+VxkT2NQnKOZPKi6praMuMKYHYyOGXr0XSBSlSMCzFo= +github.com/tg123/go-htpasswd v1.2.5 h1:h+QdWCAp/FebK6fqjsqg9RGYcgEMcaiKNDV+Mg6uk3E= +github.com/tg123/go-htpasswd v1.2.5/go.mod h1:grOqB+sLpkA5ousKWPDRS2colmiBSGxlpuXrm8HxtXs= 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= @@ -1120,8 +1112,8 @@ github.com/vmihailenco/msgpack/v4 v4.3.13 h1:A2wsiTbvp63ilDaWmsk2wjx6xZdxQOvpiNl github.com/vmihailenco/msgpack/v4 v4.3.13/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= -github.com/vultr/govultr/v3 v3.28.1 h1:KR3LhppYARlBujY7+dcrE7YKL0Yo9qXL+msxykKQrLI= -github.com/vultr/govultr/v3 v3.28.1/go.mod h1:2zyUw9yADQaGwKnwDesmIOlBNLrm7edsCfWHFJpWKf8= +github.com/vultr/govultr/v3 v3.31.2 h1:2l3/KDvfemG+4azw4LLquJoh9mFOAVEdBXtPPzix3ac= +github.com/vultr/govultr/v3 v3.31.2/go.mod h1:2zyUw9yADQaGwKnwDesmIOlBNLrm7edsCfWHFJpWKf8= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1138,218 +1130,228 @@ github.com/zeebo/xxh3 v1.1.0 h1:s7DLGDK45Dyfg7++yxI0khrfwq9661w9EN78eP/UZVs= github.com/zeebo/xxh3 v1.1.0/go.mod h1:IisAie1LELR4xhVinxWS5+zf1lA4p0MW4T+w+W07F5s= 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.153.0 h1:hXKZdQtwHdUfNwMHfzhg4dANlfv+kgg3RIUYMoXReiA= -go.opentelemetry.io/collector v0.153.0/go.mod h1:OooJNOc1KV5TbAqXoOs5yld2qQQrvcHGHiX4ORjhzFY= -go.opentelemetry.io/collector/client v1.59.0 h1:OzT7FdIiFVWKGU/UPgVDuCQtaI/GwTjLqWVz14IPGTI= -go.opentelemetry.io/collector/client v1.59.0/go.mod h1:1V5wVLhMZIMxeVoRK5AVHXnK2Ozyn6WNtmzMAjIMwY0= -go.opentelemetry.io/collector/component v1.59.0 h1:WtulkwzsdAOM/LE0cH/IiudUgiyb2ueVDDeEh5HsXzo= -go.opentelemetry.io/collector/component v1.59.0/go.mod h1:5eQCM0tS6qbG2XJ6Bt67kgCxuhCbg4csVv6SywyHZ6w= -go.opentelemetry.io/collector/component/componentstatus v0.153.0 h1:bZu1Qs1eHw5ZY2UEKq0f5IcctDgc6zjUYwCE1T22Tmw= -go.opentelemetry.io/collector/component/componentstatus v0.153.0/go.mod h1:SfYWwh6pA9jJUcjuX+zIJ9kyn+2Z9SSLMM3xYOBsVW4= -go.opentelemetry.io/collector/component/componenttest v0.153.0 h1:u6O1l+9PUNnI22k8q4sF9wgLAUyt+y2Ov7xi1yZ+wE4= -go.opentelemetry.io/collector/component/componenttest v0.153.0/go.mod h1:Ym/d5UxnoHmrCI5LsVANBicikNiqtwjk8uWBM+Z4jDM= -go.opentelemetry.io/collector/config/configauth v1.59.0 h1:JxmyiCv9xxyVEmBJQFcVTB0ymtSzOV90g+bChC1sSek= -go.opentelemetry.io/collector/config/configauth v1.59.0/go.mod h1:FMcL9Mr7KoPyGC4rbMm1qLn/8MiEy/sTQHigFQpge84= -go.opentelemetry.io/collector/config/configcompression v1.59.0 h1:uXDvWhm8zKZIFI6bS0wtMb8HwuNLywnO1MLpPPQBcGI= -go.opentelemetry.io/collector/config/configcompression v1.59.0/go.mod h1:SEcE2uFLHHPc/Vi8WCkW5MhOMUwaT321HBdZ3P8x8D0= -go.opentelemetry.io/collector/config/configgrpc v0.153.0 h1:VCwlpFbe1BZqo1xzkJetQvGL1hMeZIFRKRBaN1TtJ/M= -go.opentelemetry.io/collector/config/configgrpc v0.153.0/go.mod h1:ZYx9+38ytDJzIOXxt90Zv4wJNIzY1sTrIy2jjXqG6B0= -go.opentelemetry.io/collector/config/confighttp v0.153.0 h1:hsQIbRghdzTFKU1VoasU4sjL8rxCZiKbxGOcsDCgkmI= -go.opentelemetry.io/collector/config/confighttp v0.153.0/go.mod h1:Cr9qcfOOjUgxDd+U3SfW6kc1ifPeIFo4Bq4SPeaT+pM= -go.opentelemetry.io/collector/config/configmiddleware v1.59.0 h1:v1RKvzh8KZfSCwU1e5ESARg/Yj3TXDAN/viLxE4UVg4= -go.opentelemetry.io/collector/config/configmiddleware v1.59.0/go.mod h1:5Ic7T0GPx03YoCGy/Dn6uYK8QGQL9pJXW+OXrjVXDg8= -go.opentelemetry.io/collector/config/confignet v1.59.0 h1:vcV5YJj6L+vnF7GiGjBynt5xcxteV6RyIeycLEHkNi8= -go.opentelemetry.io/collector/config/confignet v1.59.0/go.mod h1:Op+r1B/DtzXgIuKEL7/JkTqtJdL9veu2uEXvSxH3lks= -go.opentelemetry.io/collector/config/configopaque v1.59.0 h1:32PvJXf3V4P1iUcAmN5E/mIa3+EqLx8/4mOzFU/9CjQ= -go.opentelemetry.io/collector/config/configopaque v1.59.0/go.mod h1:75nru6ahPcZsCOnVqsSomiBKk8n+iCZgUZXlwSdT8Ik= -go.opentelemetry.io/collector/config/configoptional v1.59.0 h1:kP751PU6KMxpw64DTPLD6vNDPjxqNJqFo7fPemu65Lc= -go.opentelemetry.io/collector/config/configoptional v1.59.0/go.mod h1:+TnLr1EMcsR4jJGoBHOCbifgunBjV3rHWNlDWPgBJcE= -go.opentelemetry.io/collector/config/configretry v1.59.0 h1:Y/V2GjMtfU4daUM1ZcjxI1woorK8nop8VBVagJ5HmLc= -go.opentelemetry.io/collector/config/configretry v1.59.0/go.mod h1:1BoQ5SvJT751bqP/5g0VTPLkNgMtvifAr2QqMCVOv2o= -go.opentelemetry.io/collector/config/configtelemetry v0.153.0 h1:y1zKKkY9Y3wXG+xv7kxRuF4DjM0aRXUVIPTpiAv27z4= -go.opentelemetry.io/collector/config/configtelemetry v0.153.0/go.mod h1:vLUthxDJbDk0ZE9MXPvmSslNESDdGblIXWoDMov3UOE= -go.opentelemetry.io/collector/config/configtls v1.59.0 h1:ob9OpwDkXgQIKqZ0ITk17D+oLusBK5wXRsOR+/ghmyw= -go.opentelemetry.io/collector/config/configtls v1.59.0/go.mod h1:oAZwCfp651SpN/5aZkHnTcj+ratuvUOHUS4DjmRSxBE= -go.opentelemetry.io/collector/confmap v1.59.0 h1:asxEEiWwNuGfmTVSctYArOTF8jcxYpS4NmPtvvFhNNI= -go.opentelemetry.io/collector/confmap v1.59.0/go.mod h1:X5SjFINrF0cb0hcM8PwnW2z+0L/pHA1H1yPPtm2j0tY= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.59.0 h1:4a51TfHNYODZlOUwXVwSBA4OfdcYJPg1AGrC1anvWpc= -go.opentelemetry.io/collector/confmap/provider/envprovider v1.59.0/go.mod h1:iLL39JghdCSSfJvy0hggdv68Dmdqjbb9IOLCzWsAdJ8= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.59.0 h1:PpHozFpMPeBVAy8pTXF7EdE1WIXC31L/yRNZHMpZLVw= -go.opentelemetry.io/collector/confmap/provider/fileprovider v1.59.0/go.mod h1:bJY7BL+fL4jEGVS6JBLViueb3BczlVi86PA47lKeu84= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.59.0 h1:O1nzxeSy6CTcUoFn+v50KwgFG3E0MyLyY93U0VVxBmY= -go.opentelemetry.io/collector/confmap/provider/httpprovider v1.59.0/go.mod h1:+28HwzRD0dbSOPCFzesaM9C5I3ROMhmSUX61zZWfkYo= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.59.0 h1:AhuPzNVPD78w1tgMvfV1P+l/tjydP4H6931HD1iSzSo= -go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.59.0/go.mod h1:mlahDnPT0Az5UP9TmVK470Pw+p6Gr84JmPdoTDky+ac= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.59.0 h1:HDwlnq8uyKuKgu3UGKVneZ0u5r6JSdBxyENDLdD9n7Y= -go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.59.0/go.mod h1:cjQftyEuarbzOX5CQq6kJiW9QqUgbZVpW16kbvuOpTw= -go.opentelemetry.io/collector/confmap/xconfmap v0.153.0 h1:RSn7C87eBp1iuWip3hX8v9AR8adMze1usJxwumefkq4= -go.opentelemetry.io/collector/confmap/xconfmap v0.153.0/go.mod h1:4SuPyutUiirRqQoPeY+13lLYkOQ2opMQgKvKACnXh1k= -go.opentelemetry.io/collector/connector v0.153.0 h1:a89D74vseo/XAWj+QqtXCuFagoXVhz+sA1AcTTntz0A= -go.opentelemetry.io/collector/connector v0.153.0/go.mod h1:V99TR3kFWZw4QqZACKD2xzGa65o2c//DyE/Cnd8K7xI= -go.opentelemetry.io/collector/connector/connectortest v0.153.0 h1:iBc8/5kxBDYkCwLgZ97XcKlGaOmDRzK/41rJ41+gJyg= -go.opentelemetry.io/collector/connector/connectortest v0.153.0/go.mod h1:RqbwV1VkhYTCTdYsymYm+HWul/HXgbwJbtX4qWepTVM= -go.opentelemetry.io/collector/connector/xconnector v0.153.0 h1:a8rb4fSgjaJ3m6Wo0TXzUosVxZPver83jaNY4lBsISU= -go.opentelemetry.io/collector/connector/xconnector v0.153.0/go.mod h1:/KgC6Dqsl8DXahVE3sv6TGCu9XBo/rofx4zObMrgux4= -go.opentelemetry.io/collector/consumer v1.59.0 h1:EFDQ8ZTWwHEratWusKgW26W20LeAWdXj235iD9MxpuA= -go.opentelemetry.io/collector/consumer v1.59.0/go.mod h1:wrOSfXkKjzEeHYxhKGukuB9+NFV/CboWwEH1oEXhMtw= -go.opentelemetry.io/collector/consumer/consumererror v0.153.0 h1:x64J2xnSOoOp3yZRWioZ03vNAF19aBioUsRlZ4eC6x8= -go.opentelemetry.io/collector/consumer/consumererror v0.153.0/go.mod h1:5zJ8TYQisuMjWJNaW6S86cHY1rf3DzXOVvsN8pA3Cc8= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.153.0 h1:9guwnHRTvk/t2xNrS5wlh777iG0gG0sBvID+fE/vTu0= -go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.153.0/go.mod h1:geJCjZQLet+YYvUTCTEhTiin9soFnYGuBoCzmkwqjnw= -go.opentelemetry.io/collector/consumer/consumertest v0.153.0 h1:fCqkOWNVK/qipg4SX60zICs3jhKDjcrtF1oxJR6msCk= -go.opentelemetry.io/collector/consumer/consumertest v0.153.0/go.mod h1:YfVqyCrvEfvsbbrpfiH97fITh4vmIBzZT112tUluqx0= -go.opentelemetry.io/collector/consumer/xconsumer v0.153.0 h1:Jt1Aiiq9zDILzppRTEdZXaA830KBjjP1i2kWL+h5br0= -go.opentelemetry.io/collector/consumer/xconsumer v0.153.0/go.mod h1:IzJ/dTOtEUMjY0DYu6kO946u5jbiDDUG8+sLaLhJ+HY= -go.opentelemetry.io/collector/exporter v1.59.0 h1:euVTD79AVw8eSKi/OhX3iLBV/EnY9KFY10z7yCTN7xQ= -go.opentelemetry.io/collector/exporter v1.59.0/go.mod h1:VVpK5byUW0r/ncXT9RltZGlzMp41sZj0i3F8pq9ESCQ= -go.opentelemetry.io/collector/exporter/debugexporter v0.153.0 h1:Ge3h8sjJyEFPG4BrxOPwZHHN/Dsz9unNzRKY03pgygk= -go.opentelemetry.io/collector/exporter/debugexporter v0.153.0/go.mod h1:yo8ByU7W7AYZfPoakdik2oxRFBqftyda/R9EBYuiK4g= -go.opentelemetry.io/collector/exporter/exporterhelper v0.153.0 h1:PdRWHJIJguacgkMd3EDMDYGeNYAJS9dsTQflj7cCi1Q= -go.opentelemetry.io/collector/exporter/exporterhelper v0.153.0/go.mod h1:T+Pd0Zzlih2g/b2Yl70tA8XRENKv3ssJc/3hNvNuPoo= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.153.0 h1:/ZCeVxNOZLEt+MGej35gePADgwpuEJmuFaN3qhbknbg= -go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.153.0/go.mod h1:+R7sKq9GA5baLSUx1+JaWcI/FMGHMBMT1coDEvy7baM= -go.opentelemetry.io/collector/exporter/exportertest v0.153.0 h1:kXrli6XWylPE7TjkgEhnv3ZnyW5tX8YzPxlsCH3alF0= -go.opentelemetry.io/collector/exporter/exportertest v0.153.0/go.mod h1:nMQIX7zf0eUA3o66WEdFaRouIcVKPJye6NG5FeNBbKs= -go.opentelemetry.io/collector/exporter/otlpexporter v0.153.0 h1:LPlwvexD1bQxO9HqAlh2Nie3NMk7Q+O5o9aK1lzJAgs= -go.opentelemetry.io/collector/exporter/otlpexporter v0.153.0/go.mod h1:Kv5K6g1F3WiAc+CdF4WXarIN251n/XTL+KhS2IpEKTk= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.153.0 h1:vMuebNgcDb/3rVn/gMAAjs3n05k804A8MSdxrr4491E= -go.opentelemetry.io/collector/exporter/otlphttpexporter v0.153.0/go.mod h1:Kd67hnmR5X7C4Zt31RJSpSfJ6gY6AfoatyGW+JnZemo= -go.opentelemetry.io/collector/exporter/xexporter v0.153.0 h1:u2HeNDQdILoC1mtd76d4pbBTU6WjU2d8g3SKR+iWN4A= -go.opentelemetry.io/collector/exporter/xexporter v0.153.0/go.mod h1:3k51y+RlA8nMm0Y2NXkWtmYBs48ZhYbxHqiecobVUU4= -go.opentelemetry.io/collector/extension v1.59.0 h1:fewl/jU67OT2LePe3xNbYdMog4KruN4TZbvr0haoNFE= -go.opentelemetry.io/collector/extension v1.59.0/go.mod h1:OPhsUCwdQ6Z8k8KXnmxTt6gmsWTBxrkIvL+/SoHiX8Y= -go.opentelemetry.io/collector/extension/extensionauth v1.59.0 h1:Z4VQSf8p3zNJBZtdr3KUzJrFl6ArMQCgbHEc2qiHZXQ= -go.opentelemetry.io/collector/extension/extensionauth v1.59.0/go.mod h1:pn6TIMsbQDDI73ysgqQor6pZLPW3GgKlueJFWIloENI= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.153.0 h1:OA/ox3Cnv06imwywfQDZP9vERSrWogtFQniJNsKfJts= -go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.153.0/go.mod h1:bGwGZ2Kh9c3CJK2QbUzAMIH0AzIbI3M1MA5FNuYcbX8= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.153.0 h1:emaqnTL2j+4wXP7OlEVOW9Vgp9OEde569PvJ1+O8cEQ= -go.opentelemetry.io/collector/extension/extensioncapabilities v0.153.0/go.mod h1:8URk4daGSZ2o4UU91z5kNAFZUCsHpGr0e8nzXDACToQ= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.153.0 h1:dfRy58RhuypZHy/KPhYOKqIRysdAreJLDDlkfr0TC5I= -go.opentelemetry.io/collector/extension/extensionmiddleware v0.153.0/go.mod h1:1m1+iz6cYOvXty9iHZwo8whRxUYw8F+1JsRQoqCf9r4= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.153.0 h1:5tzIbYqlPPlftEKaWettihciNTRbrzReaWzLSb523L4= -go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.153.0/go.mod h1:TtauDSMVGFxZ2su5Usw/qJqLXJdO3qUX9C0MRlE72nc= -go.opentelemetry.io/collector/extension/extensiontest v0.153.0 h1:BNE/Bm1lTkJV7ix3T8EXmdjuU5BTCbHMO+L3+fY8B6A= -go.opentelemetry.io/collector/extension/extensiontest v0.153.0/go.mod h1:dPZ2vhJg08/zVwl7BmhzLOaH0vQMkXgvc5rVGJg22IE= -go.opentelemetry.io/collector/extension/xextension v0.153.0 h1:X81P0kRlWc2gXXxb4/XHzSuDTzs0DGOwjUk4trFa8gw= -go.opentelemetry.io/collector/extension/xextension v0.153.0/go.mod h1:4V5uGnqdaUcXQV6HXjs9VF89dq+y7Icex96JCANVur0= -go.opentelemetry.io/collector/extension/zpagesextension v0.153.0 h1:35sxsy7k681LHjo397yXgHxUvydwURIWNB50I1pSe7Y= -go.opentelemetry.io/collector/extension/zpagesextension v0.153.0/go.mod h1:rIpUUTsYNM6fUdnJoP1YFuaCWDIs9ytl4ZwUhB0QpK8= -go.opentelemetry.io/collector/featuregate v1.59.0 h1:pu70/9eWRjAjzGnr3VmqwY+k6fmU3esLp15AqxfBBz0= -go.opentelemetry.io/collector/featuregate v1.59.0/go.mod h1:4ga1QBMPEejXXmpyJS8lmaRpknJ3Lb9Bvk6e420bUFU= -go.opentelemetry.io/collector/internal/componentalias v0.153.0 h1:tr5I5hsJPJBbVPGjvOVVPPK4dLR5ZLqVEckuOfnzzMs= -go.opentelemetry.io/collector/internal/componentalias v0.153.0/go.mod h1:tFSKiuWKJJgfxANyVnbKPVZkOF7N0bFXvCxCEgqMKuo= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.153.0 h1:6zW7d4PQ/elXNiU/3i4VCI2rXJ4ngaTWWacHwfdCSwg= -go.opentelemetry.io/collector/internal/fanoutconsumer v0.153.0/go.mod h1:B/nBW+tLvLCJaT2OxpGinVQExRpJ+edIFk2fru8+byE= -go.opentelemetry.io/collector/internal/memorylimiter v0.153.0 h1:ufhzcBBBEFttZSYdTc5adXGDDWa7UBOUTifBrpXNjgw= -go.opentelemetry.io/collector/internal/memorylimiter v0.153.0/go.mod h1:pN+5SnoFdmJsNLBtOdPiggdMs3Itsb5kFwTKjVt1p4I= -go.opentelemetry.io/collector/internal/sharedcomponent v0.153.0 h1:NOpsK49UZJCQ3Q84p2r7sviPCsIpGCcmdFCmqS8qVaQ= -go.opentelemetry.io/collector/internal/sharedcomponent v0.153.0/go.mod h1:h2LxJuKcoUoZUTHVfAX2DaUwbu2UomdglyxIa4WiWHQ= -go.opentelemetry.io/collector/internal/telemetry v0.153.0 h1:+AGe7gb2gMP52fvFU/L/HxEWwr4m3X/9JxBqRo4Ip2k= -go.opentelemetry.io/collector/internal/telemetry v0.153.0/go.mod h1:0J8PHWp4bnxdDzd7XmAIDJ1KmYKlYZKuNN/IMxyYDrM= -go.opentelemetry.io/collector/internal/testutil v0.153.0 h1:GJEaPLohao+7wtm08yGf73RGi1rpIHvqzxOb7Xn8sP0= -go.opentelemetry.io/collector/internal/testutil v0.153.0/go.mod h1:Jkjs6rkqs973LqgZ0Fe3zrokQRKULYXPIf4HuqStiEE= -go.opentelemetry.io/collector/otelcol v0.153.0 h1:weZEL9w6iXjLSSjJMCvt4y8lhfVz2SGQ+XxLmdt4k74= -go.opentelemetry.io/collector/otelcol v0.153.0/go.mod h1:MtevIgBJDFhLWc+A/CcFrJnAxGvqnAm47oWNv6QE2k8= -go.opentelemetry.io/collector/pdata v1.59.0 h1:lO1IcaO9+HUVdFh+RATCUG3oTP+uCZzsE7HJ0MjmzRc= -go.opentelemetry.io/collector/pdata v1.59.0/go.mod h1:AH6M14C6qhesnUpcvigkvFMiX9KtdSWQENMBNyNhe7I= -go.opentelemetry.io/collector/pdata/pprofile v0.153.0 h1:IurcS9g28cVrtIvc1oUVN8vSm5j0t79Pd8GZgd1PV28= -go.opentelemetry.io/collector/pdata/pprofile v0.153.0/go.mod h1:nX33dLKrwdoz/FQeIs6JKPeZcS1KbU2VIOwH7K0F05c= -go.opentelemetry.io/collector/pdata/testdata v0.153.0 h1:pO/+b8Rz5PG0G+TskdYdQEjhXnNG2bQoiRRMwic6X0I= -go.opentelemetry.io/collector/pdata/testdata v0.153.0/go.mod h1:JVjUfJv9YFL3JUhisxMdLe2DX7we227Ry9JiTgwlEro= -go.opentelemetry.io/collector/pdata/xpdata v0.153.0 h1:aN+kNiUUMOzmgrMSn/jwUQFSkrCKDc6wzSA3ZYv5+V0= -go.opentelemetry.io/collector/pdata/xpdata v0.153.0/go.mod h1:o3qYgdBimJtEPHefjOrB3WPIHtNenT2lHuHrYBRAPE4= -go.opentelemetry.io/collector/pipeline v1.59.0 h1:AyEcAPy5ZuUFpqis9i97WEIAcFh/mEEo90+1wr4urNU= -go.opentelemetry.io/collector/pipeline v1.59.0/go.mod h1:RD90NG3Jbk965Xaqym3JyHkuol4uZJjQVUkD9ddXJIs= -go.opentelemetry.io/collector/pipeline/xpipeline v0.153.0 h1:b2GvTGxFqcRFHARtU95/pOh9uhdY8TDTcrA5TOy3mhs= -go.opentelemetry.io/collector/pipeline/xpipeline v0.153.0/go.mod h1:EPU4bxOCNAI6Jny7ijUzRNATGNkcTMMBazY+NK2Ifng= -go.opentelemetry.io/collector/processor v1.59.0 h1:uSIMwLaKLzHNiv8625LP3BLUMCqRaBc1ay2o7uW19PQ= -go.opentelemetry.io/collector/processor v1.59.0/go.mod h1:IrCFcSdmqIWfNeTWOxncNcdQGVOf0LlKY6A3pHEpGiw= -go.opentelemetry.io/collector/processor/batchprocessor v0.153.0 h1:gYC8UlngSXJ4t5JBa0E/Anxtf2FBqN2STO2GAkgorQE= -go.opentelemetry.io/collector/processor/batchprocessor v0.153.0/go.mod h1:K+0Uk7QjBO5UGYqbYWsWm+QOs1/bm622BEL/rVfPgJI= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.153.0 h1:7TbP1Kp8X/5600Vv5y7EeQD0A0NFN+u25Ms68d00xB8= -go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.153.0/go.mod h1:ZYDCXtyZPE2Mt/JjMSJcntA0IXOEtAyzFK4Qt/CbWI0= -go.opentelemetry.io/collector/processor/processorhelper v0.153.0 h1:GTZ9czCDJPMs7YcfnymBPQFzbi9db+MAcb6TCnSnTOI= -go.opentelemetry.io/collector/processor/processorhelper v0.153.0/go.mod h1:Wm3JJZWpc5133jiHAsDDgG8iMtmfHWKWBtP7Z7eOi4c= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.153.0 h1:Tnr1C+qVh4V7KkQM0SUtiE06QWplxzb8t61Z1EYlPEk= -go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.153.0/go.mod h1:+RP3sIGU59I3a1M76dScfey7e80EviqwRu9glo+DNVc= -go.opentelemetry.io/collector/processor/processortest v0.153.0 h1:aMH8+omUXs2iCKL4Cphmzzrn4lB4jm6ZgWRvKKV+B/c= -go.opentelemetry.io/collector/processor/processortest v0.153.0/go.mod h1:LAPHps5FhQyd0MnNd1ZHmoykG/EWsIpJLs7fivFf5Mc= -go.opentelemetry.io/collector/processor/xprocessor v0.153.0 h1:mXtOAwZAXcHgAgVRzAk4NRoyj7yHV88LVFrn0CCedog= -go.opentelemetry.io/collector/processor/xprocessor v0.153.0/go.mod h1:yGFU58TvheCedrVkdqU8jW/vnCFqcyYElf+5lidn0nA= -go.opentelemetry.io/collector/receiver v1.59.0 h1:2jf2guECLyWno3OqNaefjfo+Tt3MSm6uz1WsbIXv5Ao= -go.opentelemetry.io/collector/receiver v1.59.0/go.mod h1:rklWFy0kaMMghuGlrTxqYP96V810HwDVwIgKpP6kn2o= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.153.0 h1:ayfzDrj/dkycnFxPfTxt4JGJBzBSKTbEAwXUkfIJfjk= -go.opentelemetry.io/collector/receiver/otlpreceiver v0.153.0/go.mod h1:4d8DbrbDUUPs1tYytE1qnJoCzR6kSHolpj1nhCrw6eU= -go.opentelemetry.io/collector/receiver/receiverhelper v0.153.0 h1:r7TaXD7T4PiwXXRVKocgpc87ygMQnFflOqUJaOtpfug= -go.opentelemetry.io/collector/receiver/receiverhelper v0.153.0/go.mod h1:+0HjBFgKb+dCW4sKngg/gMiS5K5rAPsFQE+UoFlwU08= -go.opentelemetry.io/collector/receiver/receivertest v0.153.0 h1:YHvywYcyV1G0I5r/J0OxgOJZPLLyrMAMA0Q7VdBYFxc= -go.opentelemetry.io/collector/receiver/receivertest v0.153.0/go.mod h1:Zkf5hQ9qk9ACx/WBMZIaSri6LIJzFgfRxmScigP05tg= -go.opentelemetry.io/collector/receiver/xreceiver v0.153.0 h1:yz6By4iJzOsvl9GxVOXTn0GoSr5ZxOuvk9+24obhqDQ= -go.opentelemetry.io/collector/receiver/xreceiver v0.153.0/go.mod h1:4cM85JHe5weHwUAc60P/vPKU1uLtrhI46lzDOsSpqz4= -go.opentelemetry.io/collector/service v0.153.0 h1:y0hQFJHBKwy+8gFrhvOjzfiEOMqX0vnd25nmxgKulF4= -go.opentelemetry.io/collector/service v0.153.0/go.mod h1:Se1rFE464pVOYzfdXL7SIytP8fRODH4mXvAi0aW2iHg= -go.opentelemetry.io/collector/service/hostcapabilities v0.153.0 h1:0Wd6KbrpyMimuuAMAcDfPiEIlkYCiuU5+N08DoUhMQ8= -go.opentelemetry.io/collector/service/hostcapabilities v0.153.0/go.mod h1:JVXJeyQExJkSKjjAa6r0kv4Fn3DvLMSfnXKOd9JMGQM= -go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.153.0 h1:Bc3OiaWI0zObbgheibjUAeWGCzQzMFmMRgzBP44swrY= -go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.153.0/go.mod h1:ax0sBGaWeIzJ6BsanRHnVO+2iL8+beSfa0Mse8FR6J4= -go.opentelemetry.io/contrib/bridges/otelzap v0.18.0 h1:EkWTww6Nqs2P29r01NeuNsG7qNJtoWWaT1fx/CKode8= -go.opentelemetry.io/contrib/bridges/otelzap v0.18.0/go.mod h1:lj3bgA/c7nJy0NhxqyvWJFC30aTgB+G0RKDdLbvJ4QM= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 h1:0Qx7VGBacMm9ZENQ7TnNObTYI4ShC+lHI16seduaxZo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0/go.mod h1:Sje3i3MjSPKTSPvVWCaL8ugBzJwik3u4smCjUeuupqg= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.67.0 h1:c9r/G1CSw4dPI1jaNNG9RnQP+q4SvZnHciDQJVIvchU= -go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.67.0/go.mod h1:gO9smoZe9KnZcJCqcB0lMmQ4Z5VEifYmjMTpnwtTSuQ= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 h1:CqXxU8VOmDefoh0+ztfGaymYbhdB/tT3zs79QaZTNGY= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0/go.mod h1:BuhAPThV8PBHBvg8ZzZ/Ok3idOdhWIodywz2xEcRbJo= -go.opentelemetry.io/contrib/otelconf v0.23.0 h1:s3C7KdMYiutf4rC8hKFA0WOIDG+gIru8ajjQKS59ir8= -go.opentelemetry.io/contrib/otelconf v0.23.0/go.mod h1:0kN2tcccZS82e7IZlo045gkcL8/8dup1k25sf9ypGxM= -go.opentelemetry.io/contrib/propagators/b3 v1.43.0 h1:CETqV3QLLPTy5yNrqyMr41VnAOOD4lsRved7n4QG00A= -go.opentelemetry.io/contrib/propagators/b3 v1.43.0/go.mod h1:Q4mCiCdziYzpNR0g+6UqVotAlCDZdzz6L8jwY4knOrw= -go.opentelemetry.io/contrib/zpages v0.68.0 h1:H5yrUwxPrbvhzdBxjQD+VXMtPjIBfp8NWNVvQT8E30M= -go.opentelemetry.io/contrib/zpages v0.68.0/go.mod h1:sZGctYYO4UOHItj9bx3F+t/s+u1Fv8CHCJ5s2eR2cjU= -go.opentelemetry.io/otel v1.43.1-0.20260514180605-442cdbdd9466 h1:Od9WxqNUIvMebAbnyHqaPjYzURIsiiKzWeqmqWcaDo4= -go.opentelemetry.io/otel v1.43.1-0.20260514180605-442cdbdd9466/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0 h1:Dn8rkudDzY6KV9dr/D/bTUuWgqDf9xe0rr4G2elrn0Y= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.19.0/go.mod h1:gMk9F0xDgyN9M/3Ed5Y1wKcx/9mlU91NXY2SNq7RQuU= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0 h1:HIBTQ3VO5aupLKjC90JgMqpezVXwFuq6Ryjn0/izoag= -go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.19.0/go.mod h1:ji9vId85hMxqfvICA0Jt8JqEdrXaAkcpkI9HPXya0ro= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.43.0 h1:8UQVDcZxOJLtX6gxtDt3vY2WTgvZqMQRzjsqiIHQdkc= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.43.0/go.mod h1:2lmweYCiHYpEjQ/lSJBYhj9jP1zvCvQW4BqL9dnT7FQ= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0 h1:w1K+pCJoPpQifuVpsKamUdn9U0zM3xUziVOqsGksUrY= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.43.0/go.mod h1:HBy4BjzgVE8139ieRI75oXm3EcDN+6GhD88JT1Kjvxg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 h1:88Y4s2C8oTui1LGM6bTWkw0ICGcOLCAI5l6zsD1j20k= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0/go.mod h1:Vl1/iaggsuRlrHf/hfPJPvVag77kKyvrLeD10kpMl+A= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 h1:RAE+JPfvEmvy+0LzyUA25/SGawPwIUbZ6u0Wug54sLc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0/go.mod h1:AGmbycVGEsRx9mXMZ75CsOyhSP6MFIcj/6dnG+vhVjk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 h1:3iZJKlCZufyRzPzlQhUIWVmfltrXuGyfjREgGP3UUjc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0/go.mod h1:/G+nUPfhq2e+qiXMGxMwumDrP5jtzU+mWN7/sjT2rak= -go.opentelemetry.io/otel/exporters/prometheus v0.65.0 h1:jOveH/b4lU9HT7y+Gfamf18BqlOuz2PWEvs8yM7Q6XE= -go.opentelemetry.io/otel/exporters/prometheus v0.65.0/go.mod h1:i1P8pcumauPtUI4YNopea1dhzEMuEqWP1xoUZDylLHo= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.19.0 h1:GJkybS+crDMdExT/BUNCEgfrmfboztcS6PhvSo88HKM= -go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.19.0/go.mod h1:NuAyxRYIG2lKX3YQkB+83StTxM7s52PUUkRRiC0wnYI= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.43.0 h1:TC+BewnDpeiAmcscXbGMfxkO+mwYUwE/VySwvw88PfA= -go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.43.0/go.mod h1:J/ZyF4vfPwsSr9xJSPyQ4LqtcTPULFR64KwTikGLe+A= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0 h1:mS47AX77OtFfKG4vtp+84kuGSFZHTyxtXIN269vChY0= -go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.43.0/go.mod h1:PJnsC41lAGncJlPUniSwM81gc80GkgWJWr3cu2nKEtU= -go.opentelemetry.io/otel/log v0.19.0 h1:KUZs/GOsw79TBBMfDWsXS+KZ4g2Ckzksd1ymzsIEbo4= -go.opentelemetry.io/otel/log v0.19.0/go.mod h1:5DQYeGmxVIr4n0/BcJvF4upsraHjg6vudJJpnkL6Ipk= -go.opentelemetry.io/otel/log/logtest v0.19.0 h1:HdSsl4ndTK15LtJGLWBfMsSlLrCgSeE3VMzwOrLYiYs= -go.opentelemetry.io/otel/log/logtest v0.19.0/go.mod h1:c1sH1nOHTwfMCWhhQTdWGqxgDjZhtkbkzAqGGyj0Ijs= -go.opentelemetry.io/otel/metric v1.43.1-0.20260514180605-442cdbdd9466 h1:5+Iul3N4g4xM8Q4wj5no1rMPtQ0njfzhfJV4ZexDqPQ= -go.opentelemetry.io/otel/metric v1.43.1-0.20260514180605-442cdbdd9466/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= -go.opentelemetry.io/otel/metric/x v0.0.0-20260514180605-442cdbdd9466 h1:pUtoUqFKIPSAf0dpAypqBduXSeqshWrjFGFA/+4/asM= -go.opentelemetry.io/otel/metric/x v0.0.0-20260514180605-442cdbdd9466/go.mod h1:HG0GCETcrdYgvFEfzSoImrRLsaiK59c4ukCkL6jID8M= -go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= -go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= -go.opentelemetry.io/otel/sdk/log v0.19.0 h1:scYVLqT22D2gqXItnWiocLUKGH9yvkkeql5dBDiXyko= -go.opentelemetry.io/otel/sdk/log v0.19.0/go.mod h1:vFBowwXGLlW9AvpuF7bMgnNI95LiW10szrOdvzBHlAg= -go.opentelemetry.io/otel/sdk/log/logtest v0.19.0 h1:BEbF7ZBB6qQloV/Ub1+3NQoOUnVtcGkU3XX4Ws3GQfk= -go.opentelemetry.io/otel/sdk/log/logtest v0.19.0/go.mod h1:Lua81/3yM0wOmoHTokLj9y9ADeA02v1naRrVrkAZuKk= -go.opentelemetry.io/otel/sdk/metric v1.43.1-0.20260514180605-442cdbdd9466 h1:YUbfxni+IRZyilmE19KgOA2b8PHG4JM+VBj1R0BmaOE= -go.opentelemetry.io/otel/sdk/metric v1.43.1-0.20260514180605-442cdbdd9466/go.mod h1:UsLWMCpm7Awwj7wrEBrAdkH2zDDPYgE2R/wRcX9fK38= -go.opentelemetry.io/otel/trace v1.43.1-0.20260514180605-442cdbdd9466 h1:nKuIKo0duG6TBoorqkOl3uel3YYyqoWBbMLEfndB5hQ= -go.opentelemetry.io/otel/trace v1.43.1-0.20260514180605-442cdbdd9466/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= +go.opentelemetry.io/collector v0.157.0 h1:+RLtpnbZQSWcPedeSEa02OtNVlHaMqS10tTdc0LW3ew= +go.opentelemetry.io/collector v0.157.0/go.mod h1:848A/k7Fii/OAXaBg0DY2eK/MJkGJOR9osN9WxGZiCk= +go.opentelemetry.io/collector/client v1.63.0 h1:QSu/+nsQUldXh8AQz6ooJ5T62wGx9U0nx32BXJrwHrQ= +go.opentelemetry.io/collector/client v1.63.0/go.mod h1:IDDEIMIX0AcOptjCsGh1lTs2inBK8+BWCnkiCaTsSHY= +go.opentelemetry.io/collector/component v1.63.0 h1:l98ZCxfCTt/O6dYB0JVKKtewaFLe/a6N2qQe61Tbf2o= +go.opentelemetry.io/collector/component v1.63.0/go.mod h1:yLGMmT7jUiqvuGvkqlfR1CBi0dRkSV67tq22I08ZMPk= +go.opentelemetry.io/collector/component/componentstatus v0.157.0 h1:6aARK84axselDP/YGM1cKVPvg6eIyN7Bg9x8x5GzJb4= +go.opentelemetry.io/collector/component/componentstatus v0.157.0/go.mod h1:R1nsiV3JluCaffVfjDmglZ0cU3jJUsiaMXgsAZfc670= +go.opentelemetry.io/collector/component/componenttest v0.157.0 h1:kTMapOVJ3YMKf5Lu2j/FdcKipn90KkIrnHkKca8uNfk= +go.opentelemetry.io/collector/component/componenttest v0.157.0/go.mod h1:AUzvlwDat8AHaNRDm+dzQ59uaEXQO1qTWccjkRjqq00= +go.opentelemetry.io/collector/config/configauth v1.63.0 h1:ttyEAMW93tOL2G4QzNLClE2JzljkNiekZZHoYEca40Y= +go.opentelemetry.io/collector/config/configauth v1.63.0/go.mod h1:TTUOFF96LH/lSW0NpIubfzPN0IUo3phIqeiOY0y67CQ= +go.opentelemetry.io/collector/config/configcompression v1.63.0 h1:9fkVQZ8Ia/qHd+4vyPxSDqGuDyMI9nIZXlxSFQgd76Q= +go.opentelemetry.io/collector/config/configcompression v1.63.0/go.mod h1:SEcE2uFLHHPc/Vi8WCkW5MhOMUwaT321HBdZ3P8x8D0= +go.opentelemetry.io/collector/config/configgrpc v0.157.0 h1:Pg+dvWgjFBXz5PAv44+t/9l+WFaFOasHfOWl2EMpZd0= +go.opentelemetry.io/collector/config/configgrpc v0.157.0/go.mod h1:uIy1Y7eevmbvgxaUD4e9wBqSy8Qx0+wU/yz7iq8XXjo= +go.opentelemetry.io/collector/config/confighttp v0.157.0 h1:XG0GdWPmPoB/iJdjVAkTlyiE1IdFSudUaetM90OfDZY= +go.opentelemetry.io/collector/config/confighttp v0.157.0/go.mod h1:f6XwATfBREqb71wqpjyGOEDT8NZNu10BknZSj+H0ydQ= +go.opentelemetry.io/collector/config/configmiddleware v1.63.0 h1:znpbS4Cno6PAjq224pH3MNbOGtdNJke8oD1esB7LixU= +go.opentelemetry.io/collector/config/configmiddleware v1.63.0/go.mod h1:m5V4/dk/jP2DfYM6xRwk4YEZBWN2fcArn507zEqGOfk= +go.opentelemetry.io/collector/config/confignet v1.63.0 h1:pQxbzx0ADfkl7lqthTXXsJju/X5ChCxh0xshh6qMABM= +go.opentelemetry.io/collector/config/confignet v1.63.0/go.mod h1:Op+r1B/DtzXgIuKEL7/JkTqtJdL9veu2uEXvSxH3lks= +go.opentelemetry.io/collector/config/configopaque v1.63.0 h1:+Xaya8m3G6Eq7E0436a3yxqHmq44kC6b341+5AwxQAI= +go.opentelemetry.io/collector/config/configopaque v1.63.0/go.mod h1:GGIOZ5UUlO6+D81QD3DlH4QrjfEUb/wffq351dPtTa4= +go.opentelemetry.io/collector/config/configoptional v1.63.0 h1:f7cITrZl5hd/zYG2RY7nLZYnLja4EOO0nhnEb6iRbhY= +go.opentelemetry.io/collector/config/configoptional v1.63.0/go.mod h1:ALCzSs7PqGeopNJB+Sp1hWEENcSsHCI8i2DRHwrl678= +go.opentelemetry.io/collector/config/configretry v1.63.0 h1:+rp8xKUuHbglqlcn7kQlgtihs+c92Qg6bBGQxmcTvNQ= +go.opentelemetry.io/collector/config/configretry v1.63.0/go.mod h1:W6bJYhzZ3FQ2Tg0K5SWprF3l7MotMqD1uQbgYm00SU8= +go.opentelemetry.io/collector/config/configtelemetry v0.157.0 h1:6t3nxtC4uBV0ialkh3TET4Bipmko9z32TvrIS3NnPXg= +go.opentelemetry.io/collector/config/configtelemetry v0.157.0/go.mod h1:vLUthxDJbDk0ZE9MXPvmSslNESDdGblIXWoDMov3UOE= +go.opentelemetry.io/collector/config/configtls v1.63.0 h1:THouqm+PdXd38NTr+nG18y1uuexZ0mrj4QPKyTtzklo= +go.opentelemetry.io/collector/config/configtls v1.63.0/go.mod h1:bdqkgRUfNnoBg17DixR5nH+6L84Sdrsop7+mzWlCCdk= +go.opentelemetry.io/collector/confmap v1.63.0 h1:1THBabHoQc8t/9r6ztMsghiO1OxDPZpYtn0cuwwsxYI= +go.opentelemetry.io/collector/confmap v1.63.0/go.mod h1:ksJNAmLTiMkBjMYwXFW1MRRfXYnRsHXA0fW+ZGwb/1U= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.63.0 h1:MSZDJOrGXQqgPdVa2OXwd9tDu4fFdvKYV5GdWSCw1cE= +go.opentelemetry.io/collector/confmap/provider/envprovider v1.63.0/go.mod h1:dOzAJ8WLh2sm3STTBWdCciqkXUAQzg56VoKZt9IVs/Y= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.63.0 h1:96T0xzThGGb4plk3Fpw3OPPCdcLHwR+0pQEi4kgctAw= +go.opentelemetry.io/collector/confmap/provider/fileprovider v1.63.0/go.mod h1:Vr2w0lMtihP4YxpYMzWE2zbHD07v2IfwAimGASTrNA8= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.63.0 h1:PTNAOKzgBtxoCvIvDj28ug9I5VywiSm6xPs2VWlFYYs= +go.opentelemetry.io/collector/confmap/provider/httpprovider v1.63.0/go.mod h1:DpEZ0bx7PrymxpzckSHUenZ/5yJvrDdoX0b33gDODlA= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.63.0 h1:RJHGZczJ04yDrAwbdnJyB/hHiqaubjDE96bkIr1dG0Y= +go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.63.0/go.mod h1:zQ5nqyTVfXAzEve8BwWO3hDGYQQaIrTIbvBoI1YrHKE= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.63.0 h1:cyRUAUCun+K721rCehqaPzy80sBYlQK4jH7iXPMF4z4= +go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.63.0/go.mod h1:qrp/5hXydsqfoWUOVFjgqdoapbE5hBYDjjIWVAY0CtM= +go.opentelemetry.io/collector/confmap/xconfmap v0.157.0 h1:jZV8p2wMQhq0ktl1/LAFGOXMCzzfMq56r80r41kKoEs= +go.opentelemetry.io/collector/confmap/xconfmap v0.157.0/go.mod h1:W1wZk6YJ3+IyvIZEmkXH/ejwkUtBV2zCThY6ewZYd6E= +go.opentelemetry.io/collector/connector v0.157.0 h1:XoCtmUUbJfd7RYVN+wEYM95+GDf+dJG/qI6+4D8u9+8= +go.opentelemetry.io/collector/connector v0.157.0/go.mod h1:ZnmF3Z4lrvCvqdXDCd2nXQmvqCiTtX4c4RAToExa7vI= +go.opentelemetry.io/collector/connector/connectortest v0.157.0 h1:/nc1miPop5MKkA3JEXTWVRz+FMw+re1DFoEsldp3Eg0= +go.opentelemetry.io/collector/connector/connectortest v0.157.0/go.mod h1:uKcNYkp3Sj71ZPqEHLHjz8jVkxXid4j18TNKn250gc8= +go.opentelemetry.io/collector/connector/xconnector v0.157.0 h1:El04WQJ5ni4a9JkDlGqe6d5Ai3bCAjGY8EBEfGsQa/g= +go.opentelemetry.io/collector/connector/xconnector v0.157.0/go.mod h1:moDOLZZjSqgE1bVRFm/jae9st+KoP6WK16AZlbe4azU= +go.opentelemetry.io/collector/consumer v1.63.0 h1:0eOZh0qmDg6HCJaiUqI9FAb4BD4fKJNNO+ygMV/WW0w= +go.opentelemetry.io/collector/consumer v1.63.0/go.mod h1:IVhjv4d+PmSf4Ttz/guJFbWJtRM3Ld3nRcZ12gxy6PA= +go.opentelemetry.io/collector/consumer/consumererror v0.157.0 h1:ljztZISi+MgMz5DVPq0BT7tH0OX9MRCKPFXXLcm7zWc= +go.opentelemetry.io/collector/consumer/consumererror v0.157.0/go.mod h1:Ggv+XTMUazTbCYkbjJaa+JgVrv6AWFHVjhZ2s6gHQjo= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.157.0 h1:28CMI/CNbsYJDhF4i8XUrQwBt7HKXg0A8ZfhCmDA3Kg= +go.opentelemetry.io/collector/consumer/consumererror/xconsumererror v0.157.0/go.mod h1:GbXNvpCvpjMUL8PLZdU/s2rTgLFV6sbwSuVxlaog6kk= +go.opentelemetry.io/collector/consumer/consumertest v0.157.0 h1:zehAVaLn67AWLhhi/LrUY0Tv06XWx5LYCvvmu7xHXHU= +go.opentelemetry.io/collector/consumer/consumertest v0.157.0/go.mod h1:HRxCIepTczx1uWnm3VPPNbt0k+N9fG/ENZDF1dGrkQc= +go.opentelemetry.io/collector/consumer/xconsumer v0.157.0 h1:DPbDCHDwbwVa0OoikTktkbXAobN7EgC4XbYaNJIyooI= +go.opentelemetry.io/collector/consumer/xconsumer v0.157.0/go.mod h1:IepWZ5ZNBUuS5OiCPQaD/Q1buqriiItxaaMYD7nqYdc= +go.opentelemetry.io/collector/exporter v1.63.0 h1:UkLIYaOSmAi1ghov2Ex7rnX9f9h+dyk2h4oAt5+33as= +go.opentelemetry.io/collector/exporter v1.63.0/go.mod h1:txQAKpijiNKFaVjAvR/WiA8vsdRUH/vuWb3a+x1A1X4= +go.opentelemetry.io/collector/exporter/debugexporter v0.157.0 h1:7UhVV6wxlf2PmNW6+DLc7KwxPrU8xqt2NZM4WMMbotU= +go.opentelemetry.io/collector/exporter/debugexporter v0.157.0/go.mod h1:spMeNSHgBO6zf5eOtbbeee7adSjOTLrsQGBHlr3eh3Y= +go.opentelemetry.io/collector/exporter/exporterhelper v0.157.0 h1:VWetLY/iJO6DMxc7/mbRiFKkvN17+QS1xk6Qw/0vFgY= +go.opentelemetry.io/collector/exporter/exporterhelper v0.157.0/go.mod h1:ID0lbCndTDkfEnM3WcRi7wxM2kff1IgvKWynj4F3xRs= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.157.0 h1:qlN4h4U3iHf635KMV8L/LASoXRwKGFxtVRjCJ6Aff/o= +go.opentelemetry.io/collector/exporter/exporterhelper/xexporterhelper v0.157.0/go.mod h1:ht3GCeExQVtqcfwjAjFRqyFW18AY5lr+DAJGKJGc7jI= +go.opentelemetry.io/collector/exporter/exportertest v0.157.0 h1:WvDEjR6Bv8H6ultrO43tthRH9eRzleDAcPZpqoW64aM= +go.opentelemetry.io/collector/exporter/exportertest v0.157.0/go.mod h1:6TGo5HXuu05R1QCEJRblXry5bIYZb535YYovHHJtNBM= +go.opentelemetry.io/collector/exporter/otlpexporter v0.157.0 h1:+GzIx+Zwlr45R8vaYewmX8Lzyb0RHRa//rPeI5bvHDs= +go.opentelemetry.io/collector/exporter/otlpexporter v0.157.0/go.mod h1:oUsUh/A81WQd/HtHJcFWeN4B4UGoAUE851nHRGNCCNA= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.157.0 h1:JJHRNXnYfPvGmcaamRvZkfnMtIMDbweO18ObGCsl9ls= +go.opentelemetry.io/collector/exporter/otlphttpexporter v0.157.0/go.mod h1:xtscC4SqWH6yl76CHFXkmGwhxiLFPZRiQDPnDKNzG4Y= +go.opentelemetry.io/collector/exporter/xexporter v0.157.0 h1:RLORXoJthjdQEnbtmzVYA0W5oFI5ClGLoAEhh+IlqkM= +go.opentelemetry.io/collector/exporter/xexporter v0.157.0/go.mod h1:/Fy0KezweWrZbSOAix3RYvTJzTQ9GrFXfXQGMRDzegk= +go.opentelemetry.io/collector/extension v1.63.0 h1:wtZXWEFo4pM5Nw/ZUTiC1JbhG0rfbX4n+4nObN1RD9Y= +go.opentelemetry.io/collector/extension v1.63.0/go.mod h1:K4UQiO/T+B3ex5D5UL0H0Jd7xB3NL12qUHisGiCitbU= +go.opentelemetry.io/collector/extension/extensionauth v1.63.0 h1:I2nUDa+r0AVO7cCDvqlKX0JI21LzdYq2SLp1hLxQ0Q8= +go.opentelemetry.io/collector/extension/extensionauth v1.63.0/go.mod h1:bJV7oxY/JWRDXrZDbjuv9DjU0NNNs6r+YQcYkWVzf7o= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.157.0 h1:/vZvMCZ1XwKiz+Z2gzbsWGV7INN0p1e04/n59EZtsCU= +go.opentelemetry.io/collector/extension/extensionauth/extensionauthtest v0.157.0/go.mod h1:O7EbSlnQyvRIe0/VU6Jvz6UPS/loBg7+SA8IVXGIaC4= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.157.0 h1:pO+NaszFKv99W9nioopyHMkjGNSx/I3Q6fI+SgeEvpk= +go.opentelemetry.io/collector/extension/extensioncapabilities v0.157.0/go.mod h1:dBSyIfFGcyEPmj0xP2fEQByzm2g6iJiZ3JpfSaexcrE= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.157.0 h1:uC8E0dzheaRCi1Y8WwmtPmElBfS2FfaCkjOQh4sq92Y= +go.opentelemetry.io/collector/extension/extensionmiddleware v0.157.0/go.mod h1:wucOUbf33iZEtOSLtUi7UsULqmlIeMsCp0kIRtlevdw= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.157.0 h1:AoMVKVqaTLAGSMahO/Hvx9ntiJkL4ncqW9qFrCRFNEQ= +go.opentelemetry.io/collector/extension/extensionmiddleware/extensionmiddlewaretest v0.157.0/go.mod h1:cSOlEz+RCjMm8r4GC9LvS6OOKJhs2FZKQJ0pO9SJaCw= +go.opentelemetry.io/collector/extension/extensiontest v0.157.0 h1:t4FCQgrBI4xWRPZDN9/8BrVu8oHs+jd4xeN5Ft4sdzE= +go.opentelemetry.io/collector/extension/extensiontest v0.157.0/go.mod h1:ZkXhFsaDT4gnB+Au+SuXvboJsl4vlU89rCAqif+7fTo= +go.opentelemetry.io/collector/extension/xextension v0.157.0 h1:tRWFvVGMUfPEfog4y0t2mbXz5dxc4rmp/K8J1rAAKiA= +go.opentelemetry.io/collector/extension/xextension v0.157.0/go.mod h1:Gegyl4sliQC5IqZNvrO4+HBtkuprxcd17GzGPcLJX5g= +go.opentelemetry.io/collector/extension/zpagesextension v0.157.0 h1:kA0tzqS6dINbhgHpA2WUrlD5JhuXXWBRh5kcmN+TrCI= +go.opentelemetry.io/collector/extension/zpagesextension v0.157.0/go.mod h1:qoBouxbqNBOuCwIFfGkHmnaJy5aljVvTISxMrTL6RMs= +go.opentelemetry.io/collector/featuregate v1.63.0 h1:6EWX1C5AtmIh8hFH97DwK6R7R8Jk3fTLxAUfZPXGutY= +go.opentelemetry.io/collector/featuregate v1.63.0/go.mod h1:4ga1QBMPEejXXmpyJS8lmaRpknJ3Lb9Bvk6e420bUFU= +go.opentelemetry.io/collector/internal/componentalias v0.157.0 h1:bvVANHVkXRhoRBc92rDsbiC0OHlu9/EbRqPROD9qrPc= +go.opentelemetry.io/collector/internal/componentalias v0.157.0/go.mod h1:PCLANRXGlMhf9NmU+JPFHtZuY4WpMOsccXlDHTDTu1w= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.157.0 h1:XZmWvCXXwYeSuhACmVf/d/AQdbciTn1eW/ApMKaL550= +go.opentelemetry.io/collector/internal/fanoutconsumer v0.157.0/go.mod h1:L9PfDggPQVIAjFspaq0WNLZ83TzmeTO9livFnwkM8a4= +go.opentelemetry.io/collector/internal/memorylimiter v0.157.0 h1:eI6eDu2mVG84SaB7F6T2sRimxlgkAnzu9DQV0xljLWA= +go.opentelemetry.io/collector/internal/memorylimiter v0.157.0/go.mod h1:5WtX8W4/RLJyrtMRbCcGjhC2pdmEA36wsY13TdcuTyE= +go.opentelemetry.io/collector/internal/sharedcomponent v0.157.0 h1:hFJmgGIQVMhtjnDFYxlvQP+awnv5/RJpBYKHOs29O9Q= +go.opentelemetry.io/collector/internal/sharedcomponent v0.157.0/go.mod h1:dLiBwF06dRSEtStL6VaJCfbrRkDOAFR//lHMP+pGbRY= +go.opentelemetry.io/collector/internal/telemetry v0.157.0 h1:gmczR2ifOmfxP4gcbiRIXvSkADb8F4QjqqXaEBlHFyo= +go.opentelemetry.io/collector/internal/telemetry v0.157.0/go.mod h1:tX0nR+uZVyzFZNi2YDuX55i68eUbFbm17dSbLF41w5I= +go.opentelemetry.io/collector/internal/testutil v0.157.0 h1:plojUQwFC5l1ex9KUDaLmCFY/mTxEmf3zrlP7M23IEw= +go.opentelemetry.io/collector/internal/testutil v0.157.0/go.mod h1:Jkjs6rkqs973LqgZ0Fe3zrokQRKULYXPIf4HuqStiEE= +go.opentelemetry.io/collector/otelcol v0.157.0 h1:nLllmfwx2S2AGMw29clu1MHyiOf2NPK35NRpFGE3rnE= +go.opentelemetry.io/collector/otelcol v0.157.0/go.mod h1:U9iQwe6UU+U6fRbz9DUFLM/DPToiRrnrL5FynZCqHOs= +go.opentelemetry.io/collector/pdata v1.63.0 h1:fY2xSG2MnyoBwA4GUhzoogGZMuNS0qHpCoODqaKwiVQ= +go.opentelemetry.io/collector/pdata v1.63.0/go.mod h1:jzozYYhQEkTQ/CCbCBNC+hYUeju9S2J8HIqIDHdxZWk= +go.opentelemetry.io/collector/pdata/pprofile v0.157.0 h1:YRTPhwWzdG0pfJmb8p/qpQm1EdX+JfV20qzwG3ypDqI= +go.opentelemetry.io/collector/pdata/pprofile v0.157.0/go.mod h1:kwy/ufNUBkw8PsFPQnAqCvD12OpGU8h9A1cz5S7xS6g= +go.opentelemetry.io/collector/pdata/testdata v0.157.0 h1:TEee4jvYe8b0nPPKQnOnLz3LaA/XRtv3ja8J56DWIZc= +go.opentelemetry.io/collector/pdata/testdata v0.157.0/go.mod h1:ht50rAkY2bonM0eL+IvGDcAKWPNKdFE+8LjdaFjcOAA= +go.opentelemetry.io/collector/pdata/xpdata v0.157.0 h1:xNZQZmQTPLEHCvGjK0QuDG9q02T8kglabWS1UJxgc/M= +go.opentelemetry.io/collector/pdata/xpdata v0.157.0/go.mod h1:BkbLhFiCx0q7WoNWol1qHec3B5FMm53bPtzGZVwVhXI= +go.opentelemetry.io/collector/pipeline v1.63.0 h1:D97Nb1Jsgp8Ks+74jXs24kBZVd4pPdhuKe9dVogjcEo= +go.opentelemetry.io/collector/pipeline v1.63.0/go.mod h1:RD90NG3Jbk965Xaqym3JyHkuol4uZJjQVUkD9ddXJIs= +go.opentelemetry.io/collector/pipeline/xpipeline v0.157.0 h1:Z+HLVDAnp/pJFcPwfR8FQencUjMHt7FrAnmcjPl2A4U= +go.opentelemetry.io/collector/pipeline/xpipeline v0.157.0/go.mod h1:3iErnr5ySVC0ijl5sqYF2n9CiLpfOSeF7KcsAhcmoto= +go.opentelemetry.io/collector/processor v1.63.0 h1:Aj1MLNiG9TJKOMywmojjbVFe1qtTLLMjRqmViEpPHeM= +go.opentelemetry.io/collector/processor v1.63.0/go.mod h1:dUyL11sxKBZn1XSqsiDyg76k+jZtYlRL7CkOuFWwVLI= +go.opentelemetry.io/collector/processor/batchprocessor v0.157.0 h1:NIia9S+n5OMipZNEVlW2g8GZf/BXf6ElPeelB3zzaf4= +go.opentelemetry.io/collector/processor/batchprocessor v0.157.0/go.mod h1:HbXTs9haWbXvdJ/XWpxjhwTRJ+ogf6DrWPPGoKK5DVQ= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.157.0 h1:PdOMNfLrr/biaSD7AQ2kq5CDjKBarjan234twPsYvDM= +go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.157.0/go.mod h1:gW+MdX5aIavqDmRTrx9un5cehfzpzKLzeTWxvdrxGjg= +go.opentelemetry.io/collector/processor/processorhelper v0.157.0 h1:lifHVCWyy0kzPxwLJQMCXIGWytK/8foDnlihyjlg0Fk= +go.opentelemetry.io/collector/processor/processorhelper v0.157.0/go.mod h1:+eXNHPH41KRXrgeqeLXJzuZ9+F0/Y3ilM/pEhb1gI4k= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.157.0 h1:OMQcvkGou27MMEw9ajbHqq59eMsRdd+3jQNyuB0uMP8= +go.opentelemetry.io/collector/processor/processorhelper/xprocessorhelper v0.157.0/go.mod h1:k/weKsoq9UcqPzna9Y5jPKNESD+W9Xkm8c43xSvm5V4= +go.opentelemetry.io/collector/processor/processortest v0.157.0 h1:dtpyoIvbB3VLqZ+cV96EAsyCCUVX3mBFg9KMPRRyhlo= +go.opentelemetry.io/collector/processor/processortest v0.157.0/go.mod h1:gkRzdmNYfKJAmGCk/x8qDsIavVbNI0wTs+uhN7rY7B0= +go.opentelemetry.io/collector/processor/xprocessor v0.157.0 h1:+WyLGrHwcPk3TK+qt7T8CH+oADEMY4r+U5fIMTBvrAc= +go.opentelemetry.io/collector/processor/xprocessor v0.157.0/go.mod h1:DPmoWlks+CihSRjTGKvPKK6a8bl9mHk8hxthrJ+lvBI= +go.opentelemetry.io/collector/receiver v1.63.0 h1:/77VTVW/T2cG2HBZ5iYTjqVQmZreIaNWkGONQgEI0aI= +go.opentelemetry.io/collector/receiver v1.63.0/go.mod h1:hwpdwXgwI3q00vSG2CJ5+qJFpVHnfi7Cz/e5wcgcJXE= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.157.0 h1:6Pz57yKzzd23O4R9w3kB5tokKPDkLKyiM4djaFtqqwE= +go.opentelemetry.io/collector/receiver/otlpreceiver v0.157.0/go.mod h1:4FKJnYh+aHpY1isebve0NHJwAss3XAJfZwC0Lm6EW4E= +go.opentelemetry.io/collector/receiver/receiverhelper v0.157.0 h1:yS4QyoItalinfNtk/F6stIMYU9SE8EQQhH+wiU78XyU= +go.opentelemetry.io/collector/receiver/receiverhelper v0.157.0/go.mod h1:sSDq1aAT8XN9Ta/mk5S4L/ceb0FfThM/QJgw7mgllUA= +go.opentelemetry.io/collector/receiver/receivertest v0.157.0 h1:/ggPcx7fVmBjH/iGbyf5aXEPIREUfDxeMVutB420c+s= +go.opentelemetry.io/collector/receiver/receivertest v0.157.0/go.mod h1:hAi8M/Rjj0TyL5Q7LutQVPGSu5D5cHJyXjWbJ/78zCc= +go.opentelemetry.io/collector/receiver/xreceiver v0.157.0 h1:mjqUE5EdVpIjG1vShhdsZ++/22fs5gpzLpbnbQfOmbY= +go.opentelemetry.io/collector/receiver/xreceiver v0.157.0/go.mod h1:zmpPp/75gM0ixRz9yTktggXMGsuiLPfD+z3Bd3tyIWY= +go.opentelemetry.io/collector/service v0.157.0 h1:QTERUF25f1C2+2g47jCGQnFZCssm7mUXTQqh4WvxIXU= +go.opentelemetry.io/collector/service v0.157.0/go.mod h1:LYctFIDCXnDfLdzKr5HMMLveXX7A1Gh+0nEgyTdJ4aY= +go.opentelemetry.io/collector/service/hostcapabilities v0.157.0 h1:1aicsKOhmMQ2bGkrbQccDSjSHNFiuOAXjZateu3rC34= +go.opentelemetry.io/collector/service/hostcapabilities v0.157.0/go.mod h1:fp3/yaekO2Il0sgERiU6K2x2OnlEoCmcp7JNMzge3h4= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.157.0 h1:9zRZiqevxdu54mz3j/Teb3JYbXTGoAl9ZtbuG2Y6TJ0= +go.opentelemetry.io/collector/service/telemetry/telemetrytest v0.157.0/go.mod h1:rE5gjjzEfOS/xWa+ug2zRa+kPZnb+CM6V4Zut1wR9P8= +go.opentelemetry.io/contrib/bridges/otelzap v0.19.0 h1:48Eq3xxFx2KlL/tF7lnl42kKJBDlhNTLRzv0h154JnM= +go.opentelemetry.io/contrib/bridges/otelzap v0.19.0/go.mod h1:cQbV77F0u6HmtZPiQD9oxp2esaOEb4uLqIta6OFIKOk= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.69.0 h1:2yEATaop1/a1I4psnSLgWVPLWwCzkqWakgJy7xTDVy0= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.69.0/go.mod h1:D7J12YRapIekYyPWgGPlA/23pRmpSEZC5xJC/TTLI9U= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.69.0 h1:MCcYL7J6Vt/X0kjqbMZkekCmwsurbQRbL69vkiye2lk= +go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.69.0/go.mod h1:3jnStNwSufK+f5ktjL4EPcwtig4rtd81NS70lqHuXl8= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0 h1:8tvICD4vSTOOsNrsI4Ljf6C+6UKvpTEH5XY3JMoyPoo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0/go.mod h1:z9+yiacE0IHRqM4qFfkbt/JYlmYXgss8GY/jXoNuPJI= +go.opentelemetry.io/contrib/otelconf v0.24.0 h1:Vtj36YS7OrMiXR7sT95NCv4/Ua0d6a3Q1uIC/+0gD64= +go.opentelemetry.io/contrib/otelconf v0.24.0/go.mod h1:GJjg913kO9Q7MZ7Tw+cTZxPU0VxepUIRE1XMLjoVvyI= +go.opentelemetry.io/contrib/propagators/autoprop v0.69.0 h1:3gzAeb5dgGzwB7hXutgJ07Xsv3v4Wc0llV8AaMc0wiQ= +go.opentelemetry.io/contrib/propagators/autoprop v0.69.0/go.mod h1:SpChkgQWjh6egTT0chEc7VfusZgQMPzLsxRWWrqJdaQ= +go.opentelemetry.io/contrib/propagators/aws v1.44.0 h1:Rtvfd6nTbAF2csjiw41m1DfuqC5TneXs+gB84ZA3gq4= +go.opentelemetry.io/contrib/propagators/aws v1.44.0/go.mod h1:auu0tIyZErQGLLUvOp9DgmhKALIoebR4Fpkt9CT0c0k= +go.opentelemetry.io/contrib/propagators/b3 v1.44.0 h1:1IFH4oFKK8KupzIelCl3u+bkxpGRps1oWRjQI2+TTWs= +go.opentelemetry.io/contrib/propagators/b3 v1.44.0/go.mod h1:JqWFXsc7VDaqIyubFhEd2cPHqsrzqP0Lvn783SUwyro= +go.opentelemetry.io/contrib/propagators/jaeger v1.44.0 h1:OyzvsAMc/zHt0DRPcfstn0wgfq8ApDkeY0ABMcueweM= +go.opentelemetry.io/contrib/propagators/jaeger v1.44.0/go.mod h1:44kghcGX+BNxy9UTiWtd6VDt8Nd4EypGBkH2+v2Dqrc= +go.opentelemetry.io/contrib/propagators/ot v1.44.0 h1:JLTPenzmPtLp5ODPntAA5JhxVu1i3pAFUvXcAORMZAk= +go.opentelemetry.io/contrib/propagators/ot v1.44.0/go.mod h1:8zr0bHgwkoQXucBK39/H4QphmLf1lSen1Z7FPDZD5Uc= +go.opentelemetry.io/contrib/zpages v0.69.0 h1:YQC1PumJq6lUGQNrLW14ID9a0dXSBcbC/aC6VRSIARU= +go.opentelemetry.io/contrib/zpages v0.69.0/go.mod h1:FGvUcMGN5atRzUIgUsqOi+MiMvlQsfbuYATBHPP4cGs= +go.opentelemetry.io/otel v1.44.1-0.20260622141720-fbe3d073ba93 h1:r3rusw/U3IyJ0+r6xWXv1VF8TTUGVIAnK8tuzf/8Re0= +go.opentelemetry.io/otel v1.44.1-0.20260622141720-fbe3d073ba93/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.20.0 h1:rydZ9sxbcFdm/oWrVyfLTjHIygMgv0bEeMd+3B/BvoM= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.20.0/go.mod h1:earQ25dooT0Hhspq59DZ8YCC50jWfOlFEeWoxy/P444= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.20.0 h1:owlhcJ3QO3X0YTDTCcDZ4V+6aVDkWbNmBoQ5NUp7Oww= +go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.20.0/go.mod h1:MP4eemTiI9zC8fgg+DYynhYDYf3ba72S376TvP+Ye0Q= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.44.0 h1:SUplec5dp06reu1zaXmOXdvqH398taqrDXqUl99jxSc= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.44.0/go.mod h1:ho2g4N+ane+swq5I/VBkKWnRDY4kUINH3FuqyZqX/Ug= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.44.0 h1:RuynHbfU8JUEw7DyONgkVYg2SVtsoF28y0LGIr69jgA= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.44.0/go.mod h1:qZF+/lBs71APw8mlnEZcqZHMzqrYrsFiJOv83lX1OGo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 h1:4YsVu3B8+3qtWYYrsUYgn0OG78pN0rnNPRGX4SbokQI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0/go.mod h1:+wnlSn0mD1ADVMe3v9Z/WIaiz6q6gL2J/ejaAmdmv80= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0 h1:qazEJlUOQzhCpzQpFETGby7EdqjI1wsd0W+6Gg1SCTU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0/go.mod h1:fOD2Yefuxixkx3ahVNf0O/PERb6r4OlbxfATVnYvzCo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0 h1:lgh3PiVrRUWMLOVSkQicxzZll5NjF1r+AtsX1XRIHw0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0/go.mod h1:5Cnhth3m/AgOeTgE3ex12pPmiu/gGtZit03kSzx9X7s= +go.opentelemetry.io/otel/exporters/prometheus v0.66.0 h1:vkrK8PAznv2NKt2r+kdu252ccGzkEqLc2aSXbQIALYQ= +go.opentelemetry.io/otel/exporters/prometheus v0.66.0/go.mod h1:V/UB6D3vMF/UBOL5igAsAYnk1nG/bzYYTzvsB16cy7o= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.20.0 h1:aZfdmtI6QU/DAPD4b7YZ5zuJgewxO1EW9miOZklqleU= +go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.20.0/go.mod h1:isNl10/Om5CBWu9jj8WOb2+tJLbCVXDgqwzCaJMnJ6w= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.44.0 h1:hqxVTu/GtBF+vJ8d1fzW7fRxZFvgoDjWcxwwCaFDYpU= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.44.0/go.mod h1:z5fVEF4X5v0ESvlJqBrrFlBVoj5EQuefZpzsu7R+x5Q= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.44.0 h1:bl2S7Ubua0Nms+D/gAmznQTd4dxxMA93aKbcpKqiTCs= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.44.0/go.mod h1:L0hRV50XdVIODHUfWEqGRCXQvj2rV82STVo12FMFBU0= +go.opentelemetry.io/otel/log v0.20.0 h1:/5i0vuHxCLWUfChWG41K9wkM0jafruPw9NU1/RCJirs= +go.opentelemetry.io/otel/log v0.20.0/go.mod h1:wOcMcjsZpG8x7Bak7IhSi/lg8wscV2C1VdrKCLPlt0E= +go.opentelemetry.io/otel/log/logtest v0.20.0 h1:+tsZVE15N+RWyN9lUzsRyw7hMZXNMepGu105Eim82/k= +go.opentelemetry.io/otel/log/logtest v0.20.0/go.mod h1:zS9Ryx9RrEAG2tgapMBSvacwhVSSOGSaSiWWgW3NPlQ= +go.opentelemetry.io/otel/metric v1.44.1-0.20260622141720-fbe3d073ba93 h1:DCOdBzLW6tMYSutG82cKWgIX9JWNFixROrcgKm7Dn+Q= +go.opentelemetry.io/otel/metric v1.44.1-0.20260622141720-fbe3d073ba93/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= +go.opentelemetry.io/otel/metric/x v0.66.0 h1:YkCrx1zLOChi9ZcZ6euupOcsgzbVlec7D/xoEU1+cTA= +go.opentelemetry.io/otel/metric/x v0.66.0/go.mod h1:d1+BDj9t96do0/1LoU1ayfCv79ZgNE41qbhBvnMOBZk= +go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= +go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= +go.opentelemetry.io/otel/sdk/log v0.20.0 h1:vM3xI7TQgKPiSghe6urZtAkyFY7SodrSpC83CffDFuY= +go.opentelemetry.io/otel/sdk/log v0.20.0/go.mod h1:Knej2nmsTUzN79T2eeXdRsjjPcoxoq2pUyUHz9TFyyU= +go.opentelemetry.io/otel/sdk/log/logtest v0.20.0 h1:OqdRZ1guyzamK3M6LlRsmGqRrjkHWw6WZOKKli5ELpg= +go.opentelemetry.io/otel/sdk/log/logtest v0.20.0/go.mod h1:PuMIlm7zAt7c3z8zfOI5ox4iT1Z87We+PF6YoINux/M= +go.opentelemetry.io/otel/sdk/metric v1.44.1-0.20260622141720-fbe3d073ba93 h1:BoVal+uHGOzlFZvHGq8bNR677inewlKioUjJPdPPCBE= +go.opentelemetry.io/otel/sdk/metric v1.44.1-0.20260622141720-fbe3d073ba93/go.mod h1:xZjeGP2g1Hxokmw5N6WDyiJb4OOKitlYGqGiwgu4CjM= +go.opentelemetry.io/otel/trace v1.44.1-0.20260622141720-fbe3d073ba93 h1:dNiK0YMSSGzwwgfNXkgBGmy33HyfUXNqKu9wBPafZhw= +go.opentelemetry.io/otel/trace v1.44.1-0.20260622141720-fbe3d073ba93/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= go.opentelemetry.io/proto/otlp v1.10.0 h1:IQRWgT5srOCYfiWnpqUYz9CVmbO8bFmKcwYxpuCSL2g= go.opentelemetry.io/proto/otlp v1.10.0/go.mod h1:/CV4QoCR/S9yaPj8utp3lvQPoqMtxXdzn7ozvvozVqk= +go.opentelemetry.io/proto/otlp/profiles/v1development v0.3.0 h1:ZQs05qo3Yh4KUHeVH6v89xErwmsvgA/cLX2/w5Ikp+k= +go.opentelemetry.io/proto/otlp/profiles/v1development v0.3.0/go.mod h1:3iiRVKaCfVo0UI1ZaSMm5WbCBbINRqVlD9SUmvyBNrY= go.opentelemetry.io/proto/slim/otlp v1.10.0 h1:iR97Vs/ZDR+y9TfuP9b1XBtdPWeC+OMslIBmhcLU7jM= go.opentelemetry.io/proto/slim/otlp v1.10.0/go.mod h1:lV9250stpjYLPNA5viFabIgP2QlUGRT1GdTgAf8SIUk= go.opentelemetry.io/proto/slim/otlp/collector/profiles/v1development v0.3.0 h1:RUF5rO0hAlgiJt1fzQVzcVs3vZVNHIcMLgOgG4rWNcQ= @@ -1373,7 +1375,6 @@ go.uber.org/zap v1.28.0 h1:IZzaP1Fv73/T/pBMLk4VutPl36uNC+OSUh3JLG3FIjo= go.uber.org/zap v1.28.0/go.mod h1:rDLpOi171uODNm/mxFcuYWxDsqWSAVkFdX4XojSKg/Q= 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.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8= go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= @@ -1390,10 +1391,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.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988= -golang.org/x/crypto v0.52.0/go.mod h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc= -golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90 h1:jiDhWWeC7jfWqR9c/uplMOqJ0sbNlNWv0UkzE0vX1MA= -golang.org/x/exp v0.0.0-20260312153236-7ab1446f8b90/go.mod h1:xE1HEv6b+1SCZ5/uscMRjUBKtIxworgEcEi+/n9NQDQ= +golang.org/x/crypto v0.54.0 h1:YLIA59K4fiNzHzjnZt2tUJQjQtUWfWbeHBqKtk3eScw= +golang.org/x/crypto v0.54.0/go.mod h1:KWL8ny2AZdGR2cWmzeHrp2azQPGogOv+HeQaVEXC2dk= +golang.org/x/exp v0.0.0-20260527015227-08cc5374adb3 h1:VHEvKbpgPXcPXn40t9cDTGK3JZwMikIEyF/CTrFfu7k= +golang.org/x/exp v0.0.0-20260527015227-08cc5374adb3/go.mod h1:d2fgXJLVs4dYDHUk5lwMIfzRzSrWCfGZb0ZqeLa/Vcw= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -1403,8 +1404,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.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= -golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= +golang.org/x/mod v0.38.0 h1:MECBjubtXD7yj4HrhIUcywNaGeNVUdfVnxmPajOk4yk= +golang.org/x/mod v0.38.0/go.mod h1:V6Xz0pq8TQ3dGqVQ1FVHuelZpAL0uNhSkk9ogYP3c40= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -1424,8 +1425,8 @@ 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.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= -golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= +golang.org/x/net v0.57.0 h1:K5+3DljvIuDG9/Jv9rvyMywYNFCQ9RSUY6OOTTkT+tE= +golang.org/x/net v0.57.0/go.mod h1:KpXc8iv+r3XplLAG/f7Jsf9RPszJzdR0f58q9vGOuEU= golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1441,8 +1442,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.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= -golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sync v0.22.0 h1:SZjpbeLmrCk4xhRSZFNZW5gFUeCeFgjekvI/+gfScek= +golang.org/x/sync v0.22.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= 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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1476,7 +1477,6 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1487,8 +1487,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.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/sys v0.47.0 h1:o7XGOvZQCADBQQ4Y7VNq2dRWQR7JmOUW8Kxx4ZsNgWs= +golang.org/x/sys v0.47.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= 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= @@ -1498,8 +1498,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.43.0 h1:S4RLU2sB31O/NCl+zFN9Aru9A/Cq2aqKpTZJ6B+DwT4= -golang.org/x/term v0.43.0/go.mod h1:lrhlHNdQJHO+1qVYiHfFKVuVioJIheAc3fBSMFYEIsk= +golang.org/x/term v0.45.0 h1:NwWyBmoJCbfTHpxrWoZ9C6/VxOf7ic219I8xZZFdrf0= +golang.org/x/term v0.45.0/go.mod h1:9aqxs0blBcrm/n0L9QW0aRVD+ktan8ssZromtqJC43w= 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= @@ -1511,8 +1511,8 @@ 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.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= +golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U= golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1526,8 +1526,8 @@ 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.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= -golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= +golang.org/x/tools v0.48.0 h1:3+hClM1aLL5mjMKm5ovokw9epgRXPuu2tILgismM6RE= +golang.org/x/tools v0.48.0/go.mod h1:08xX0orndb/F7jJxGDicx061tyd5pcMto75YMAXr6lk= 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= @@ -1536,22 +1536,22 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/api v0.274.0 h1:aYhycS5QQCwxHLwfEHRRLf9yNsfvp1JadKKWBE54RFA= -google.golang.org/api v0.274.0/go.mod h1:JbAt7mF+XVmWu6xNP8/+CTiGH30ofmCmk9nM8d8fHew= +google.golang.org/api v0.278.0 h1:W7jiRvRi53VYFfZ/HoZjQBtJk7gOFbHD8ot1RzVZU6E= +google.golang.org/api v0.278.0/go.mod h1:B9TqLBwJqVjp1mtt7WeoQwWRwvu/400y5lETOql+giQ= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7 h1:XzmzkmB14QhVhgnawEVsOn6OFsnpyxNPRY9QV01dNB0= google.golang.org/genproto v0.0.0-20260319201613-d00831a3d3e7/go.mod h1:L43LFes82YgSonw6iTXTxXUX1OlULt4AQtkik4ULL/I= -google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d h1:/aDRtSZJjyLQzm75d+a1wOJaqyKBMvIAfeQmoa3ORiI= -google.golang.org/genproto/googleapis/api v0.0.0-20260406210006-6f92a3bedf2d/go.mod h1:etfGUgejTiadZAUaEP14NP97xi1RGeawqkjDARA/UOs= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d h1:wT2n40TBqFY6wiwazVK9/iTWbsQrgk5ZfCSVFLO9LQA= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260406210006-6f92a3bedf2d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.81.1 h1:VnnIIZ88UzOOKLukQi+ImGz8O1Wdp8nAGGnvOfEIWQQ= -google.golang.org/grpc v1.81.1/go.mod h1:xGH9GfzOyMTGIOXBJmXt+BX/V0kcdQbdcuwQ/zNw42I= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa h1:Kjn0N0tCrDgiAFW+lGO4JZ3ck44CehvJQMAwj9QF0G8= +google.golang.org/genproto/googleapis/api v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:q4lMZS6kskjT5HvCPrnnypcDPVJqT/f4nfxmkE7gryY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260618152121-87f3d3e198d3 h1:phvBWCAQMGN1945mp5fjCXP6jEF0+a0+4TjokS4sxNY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260618152121-87f3d3e198d3/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= +google.golang.org/grpc v1.82.1 h1:NnAxzGRA0677vCa4BUkOAnO5+FfQqVl9iUXeD0IqcGE= +google.golang.org/grpc v1.82.1/go.mod h1:yzTZ1TB1Z3SG+LIYaI+WiE8D5+PZ3ArnrSp8zF3+/ZA= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= -google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +google.golang.org/protobuf v1.36.12-0.20260116114154-8c4c4ae446ca h1:/ro7D0tSP+jEnQPzy9e1r5L6mAcEShGlE5kFsShX5O8= +google.golang.org/protobuf v1.36.12-0.20260116114154-8c4c4ae446ca/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-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1565,8 +1565,8 @@ gopkg.in/evanphx/json-patch.v4 v4.13.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWM gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.67.1 h1:tVBILHy0R6e4wkYOn3XmiITt/hEVH4TFMYvAX2Ytz6k= -gopkg.in/ini.v1 v1.67.1/go.mod h1:x/cyOwCgZqOkJoDIJ3c1KNHMo10+nLGAhh+kn3Zizss= +gopkg.in/ini.v1 v1.67.2 h1:JtOSMb9OuaCZKr7h5D/h6iii14sK0hLbplTc6frx4Ss= +gopkg.in/ini.v1 v1.67.2/go.mod h1:x/cyOwCgZqOkJoDIJ3c1KNHMo10+nLGAhh+kn3Zizss= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1584,8 +1584,8 @@ 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.35.4 h1:P7nFYKl5vo9AGUp1Z+Pmd3p2tA7bX2wbFWCvDeRv988= k8s.io/api v0.35.4/go.mod h1:yl4lqySWOgYJJf9RERXKUwE9g2y+CkuwG+xmcOK8wXU= -k8s.io/apimachinery v0.35.4 h1:xtdom9RG7e+yDp71uoXoJDWEE2eOiHgeO4GdBzwWpds= -k8s.io/apimachinery v0.35.4/go.mod h1:NNi1taPOpep0jOj+oRha3mBJPqvi0hGdaV8TCqGQ+cc= +k8s.io/apimachinery v0.35.6 h1:ASSpfmmsOArKb2Hsu8gGlIcbIcEMVTboI3FfsfYuQ8k= +k8s.io/apimachinery v0.35.6/go.mod h1:NNi1taPOpep0jOj+oRha3mBJPqvi0hGdaV8TCqGQ+cc= k8s.io/client-go v0.35.4 h1:DN6fyaGuzK64UvnKO5fOA6ymSjvfGAnCAHAR0C66kD8= k8s.io/client-go v0.35.4/go.mod h1:2Pg9WpsS4NeOpoYTfHHfMxBG8zFMSAUi4O/qoiJC3nY= k8s.io/klog/v2 v2.140.0 h1:Tf+J3AH7xnUzZyVVXhTgGhEKnFqye14aadWv7bzXdzc= diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/config.go b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/config.go index 929119707..357de0ceb 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/config.go +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/config.go @@ -27,10 +27,14 @@ const ( defaultMetadataPrefix = "log.chunk" ) -// Config controls oversized log body handling. +// Config controls oversized log body and attribute handling. type Config struct { - // MaxBodyBytes is the maximum UTF-8 encoded log body size before the record is - // considered oversized. Zero disables the processor. + // MaxPayloadBytes is the maximum log body and attribute payload size before + // the record is considered oversized. Zero disables the processor. + MaxPayloadBytes int `mapstructure:"max_payload_bytes"` + // MaxBodyBytes is a deprecated alias for MaxPayloadBytes. + // + // Deprecated: use MaxPayloadBytes / max_payload_bytes. MaxBodyBytes int `mapstructure:"max_body_bytes"` // DryRun records oversized log metrics and warnings without mutating logs. DryRun bool `mapstructure:"dry_run"` @@ -40,18 +44,19 @@ type Config struct { func createDefaultConfig() *Config { return &Config{ - MaxBodyBytes: 0, - DryRun: false, - MetadataPrefix: defaultMetadataPrefix, + MaxPayloadBytes: 0, + DryRun: false, + MetadataPrefix: defaultMetadataPrefix, } } func (cfg *Config) Validate() error { - if cfg.MaxBodyBytes < 0 { - return fmt.Errorf("max_body_bytes must be greater than or equal to 0") + maxPayloadBytes := cfg.effectiveMaxPayloadBytes() + if maxPayloadBytes < 0 { + return fmt.Errorf("max_payload_bytes must be greater than or equal to 0") } - if cfg.MaxBodyBytes > 0 && cfg.MaxBodyBytes < utf8.UTFMax { - return fmt.Errorf("max_body_bytes must be 0 or at least %d to preserve UTF-8 chunk boundaries", utf8.UTFMax) + if maxPayloadBytes > 0 && maxPayloadBytes < utf8.UTFMax { + return fmt.Errorf("max_payload_bytes must be 0 or at least %d to preserve UTF-8 chunk boundaries", utf8.UTFMax) } if cfg.MetadataPrefix == "" { return fmt.Errorf("metadata_prefix must not be empty") @@ -61,14 +66,22 @@ func (cfg *Config) Validate() error { func (cfg *Config) normalized() Config { normalized := *cfg + normalized.MaxPayloadBytes = normalized.effectiveMaxPayloadBytes() if normalized.MetadataPrefix == "" { normalized.MetadataPrefix = defaultMetadataPrefix } return normalized } +func (cfg Config) effectiveMaxPayloadBytes() int { + if cfg.MaxPayloadBytes == 0 && cfg.MaxBodyBytes != 0 { + return cfg.MaxBodyBytes + } + return cfg.MaxPayloadBytes +} + func (cfg Config) enabled() bool { - return cfg.MaxBodyBytes > 0 + return cfg.MaxPayloadBytes > 0 } func (cfg Config) mode() string { diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/metrics.go b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/metrics.go index b6d029b65..f925ac1a6 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/metrics.go +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/metrics.go @@ -35,7 +35,7 @@ type processorMetrics struct { func newProcessorMetrics(meter metric.Meter) (processorMetrics, error) { oversizeRecords, err := meter.Int64Counter( "otelcol_processor_logchunk_oversize_records_total", - metric.WithDescription("Number of log records whose bodies exceed the configured chunking limit."), + metric.WithDescription("Number of log records whose bodies and attributes exceed the configured chunking limit."), metric.WithUnit("{records}"), ) if err != nil { @@ -53,7 +53,7 @@ func newProcessorMetrics(meter metric.Meter) (processorMetrics, error) { originalBytes, err := meter.Int64Counter( "otelcol_processor_logchunk_original_bytes_total", - metric.WithDescription("Bytes observed in oversized original log bodies."), + metric.WithDescription("Bytes observed in oversized original log body and attribute payloads."), metric.WithUnit("By"), ) if err != nil { @@ -62,7 +62,7 @@ func newProcessorMetrics(meter metric.Meter) (processorMetrics, error) { outputBytes, err := meter.Int64Counter( "otelcol_processor_logchunk_output_bytes_total", - metric.WithDescription("Bytes emitted across chunked log bodies."), + metric.WithDescription("Bytes emitted across chunked log body and attribute payloads."), metric.WithUnit("By"), ) if err != nil { diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor.go b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor.go index 21aa0d126..05ee54511 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor.go +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor.go @@ -23,6 +23,9 @@ import ( "crypto/sha256" "encoding/hex" "fmt" + "sort" + "strconv" + "strings" "unicode/utf8" "go.opentelemetry.io/collector/pdata/pcommon" @@ -34,6 +37,63 @@ import ( type chunkIDFunc func(plog.LogRecord, string) (string, error) +type chunkedAttribute struct { + key string + value pcommon.Value +} + +type chunkedField struct { + body bool + key string + keyBytes int + stringValue string + bytesValue []byte + value pcommon.Value + valueBytes int + kind chunkedFieldKind + structured bool + rootType pcommon.ValueType + path []valuePathElement + structuredID string +} + +type chunkedFieldKind int + +const ( + chunkedFieldString chunkedFieldKind = iota + chunkedFieldBytes + chunkedFieldValue +) + +type valuePathElement struct { + key string + index int + isIndex bool +} + +type logRecordChunk struct { + body string + bodyValue pcommon.Value + hasBodyValue bool + stringAttr map[string]string + bytesAttr map[string][]byte + valueAttr map[string]pcommon.Value + structuredPaths []string + offset int + bytes int + hasFields bool +} + +type logRecordChunkPlan struct { + body string + bodyBytes int + hasBody bool + attributes []chunkedAttribute + chunks []logRecordChunk + originalBytes int + attributeBytes int +} + type logChunkProcessor struct { cfg Config logger *zap.Logger @@ -107,15 +167,18 @@ func (p *logChunkProcessor) observeOversizedLogRecords(ctx context.Context, logs for j := 0; j < resourceLogs.ScopeLogs().Len(); j++ { records := resourceLogs.ScopeLogs().At(j).LogRecords() for k := 0; k < records.Len(); k++ { - _, bodyBytes, ok := p.oversizedBody(records.At(k)) + plan, ok := p.chunkPlan(records.At(k)) if !ok { continue } - p.metrics.recordOversize(ctx, p.cfg.mode(), int64(bodyBytes)) + p.metrics.recordOversize(ctx, p.cfg.mode(), int64(plan.originalBytes)) p.logger.Warn( - "oversized log record detected; dry-run mode left body unchanged", - zap.Int("body_bytes", bodyBytes), - zap.Int("max_body_bytes", p.cfg.MaxBodyBytes), + "oversized log record detected; dry-run mode left fields unchanged", + zap.Int("payload_bytes", plan.originalBytes), + zap.Int("body_bytes", plan.bodyBytes), + zap.Int("attribute_payload_bytes", plan.attributeBytes), + zap.Int("chunked_attribute_count", len(plan.attributes)), + zap.Int("max_payload_bytes", p.cfg.MaxPayloadBytes), ) } } @@ -128,7 +191,7 @@ func (p *logChunkProcessor) hasOversizedLogRecord(logs plog.Logs) bool { for j := 0; j < resourceLogs.ScopeLogs().Len(); j++ { records := resourceLogs.ScopeLogs().At(j).LogRecords() for k := 0; k < records.Len(); k++ { - if _, _, ok := p.oversizedBody(records.At(k)); ok { + if _, ok := p.chunkPlan(records.At(k)); ok { return true } } @@ -137,53 +200,232 @@ func (p *logChunkProcessor) hasOversizedLogRecord(logs plog.Logs) bool { return false } -func (p *logChunkProcessor) oversizedBody(record plog.LogRecord) (string, int, bool) { +func (p *logChunkProcessor) chunkPlan(record plog.LogRecord) (logRecordChunkPlan, bool) { + var plan logRecordChunkPlan + body := record.Body() - if body.Type() != pcommon.ValueTypeStr { - return "", 0, false + bodyBytes := valuePayloadBytes(body) + if body.Type() != pcommon.ValueTypeEmpty { + plan.hasBody = true + plan.body = body.AsString() + plan.bodyBytes = bodyBytes + plan.originalBytes += bodyBytes + } + + record.Attributes().Range(func(key string, value pcommon.Value) bool { + valueBytes := valuePayloadBytes(value) + keyBytes := len(key) + plan.attributes = append(plan.attributes, chunkedAttribute{ + key: key, + value: value, + }) + attributeBytes := keyBytes + valueBytes + plan.originalBytes += attributeBytes + plan.attributeBytes += attributeBytes + return true + }) + + var fields []chunkedField + if body.Type() == pcommon.ValueTypeStr { + if bodyBytes > 0 { + fields = append(fields, valueFields(true, "", body)...) + } + } else if body.Type() != pcommon.ValueTypeEmpty { + fields = append(fields, valueFields(true, "", body)...) + } + + sort.Slice(plan.attributes, func(i, j int) bool { + return plan.attributes[i].key < plan.attributes[j].key + }) + for _, attr := range plan.attributes { + fields = append(fields, attr.fields()...) + } + + if plan.originalBytes <= p.cfg.MaxPayloadBytes { + return logRecordChunkPlan{}, false + } + + plan.chunks = chunkFields(fields, p.cfg.MaxPayloadBytes) + return plan, len(plan.chunks) > 0 +} + +func (attr chunkedAttribute) fields() []chunkedField { + return valueFields(false, attr.key, attr.value) +} + +func valueFields(body bool, key string, value pcommon.Value) []chunkedField { + fields := make([]chunkedField, 0) + appendValueFields(&fields, body, key, value, value.Type(), nil) + return fields +} + +// appendValueFields flattens maps and slices in deterministic order. Chunks +// rebuild partial typed containers from the path retained on each leaf. +func appendValueFields( + fields *[]chunkedField, + body bool, + key string, + value pcommon.Value, + rootType pcommon.ValueType, + path []valuePathElement, +) { + switch value.Type() { + case pcommon.ValueTypeMap: + valueMap := value.Map() + if valueMap.Len() > 0 { + keys := make([]string, 0, valueMap.Len()) + valueMap.Range(func(childKey string, _ pcommon.Value) bool { + keys = append(keys, childKey) + return true + }) + sort.Strings(keys) + for _, childKey := range keys { + child, _ := valueMap.Get(childKey) + childPath := appendPathElement(path, valuePathElement{key: childKey}) + appendValueFields(fields, body, key, child, rootType, childPath) + } + return + } + case pcommon.ValueTypeSlice: + valueSlice := value.Slice() + if valueSlice.Len() > 0 { + for i := 0; i < valueSlice.Len(); i++ { + childPath := appendPathElement(path, valuePathElement{index: i, isIndex: true}) + appendValueFields(fields, body, key, valueSlice.At(i), rootType, childPath) + } + return + } } - bodyStr := body.Str() - bodyBytes := len(bodyStr) - return bodyStr, bodyBytes, bodyBytes > p.cfg.MaxBodyBytes + field := chunkedField{ + body: body, + key: key, + keyBytes: pathPayloadBytes(body, key, path), + value: value, + valueBytes: valuePayloadBytes(value), + kind: valueFieldKind(value), + structured: rootType == pcommon.ValueTypeMap || rootType == pcommon.ValueTypeSlice, + rootType: rootType, + path: append([]valuePathElement(nil), path...), + } + if field.structured { + field.structuredID = structuredPath(body, key, path) + } + switch field.kind { + case chunkedFieldString: + field.stringValue = value.Str() + case chunkedFieldBytes: + field.bytesValue = value.Bytes().AsRaw() + } + *fields = append(*fields, field) +} + +func appendPathElement(path []valuePathElement, element valuePathElement) []valuePathElement { + out := make([]valuePathElement, len(path)+1) + copy(out, path) + out[len(path)] = element + return out +} + +func pathPayloadBytes(body bool, key string, path []valuePathElement) int { + total := 0 + if !body { + total = len(key) + } + for _, element := range path { + if element.isIndex { + total += len(strconv.Itoa(element.index)) + continue + } + total += len(element.key) + } + return total +} + +func structuredPath(body bool, key string, path []valuePathElement) string { + var builder strings.Builder + if body { + builder.WriteString("/body") + } else { + builder.WriteString("/attributes/") + builder.WriteString(escapePathToken(key)) + } + for _, element := range path { + builder.WriteByte('/') + if element.isIndex { + builder.WriteString(strconv.Itoa(element.index)) + continue + } + builder.WriteString(escapePathToken(element.key)) + } + return builder.String() +} + +// escapePathToken applies JSON Pointer escaping so consumers can parse +// structured_paths without ambiguity. +func escapePathToken(token string) string { + token = strings.ReplaceAll(token, "~", "~0") + return strings.ReplaceAll(token, "/", "~1") } func (p *logChunkProcessor) processLogRecords(ctx context.Context, src plog.LogRecordSlice, dst plog.LogRecordSlice) { for i := 0; i < src.Len(); i++ { record := src.At(i) - bodyStr, bodyBytes, ok := p.oversizedBody(record) + plan, ok := p.chunkPlan(record) if !ok { record.CopyTo(dst.AppendEmpty()) continue } - p.metrics.recordOversize(ctx, p.cfg.mode(), int64(bodyBytes)) - p.chunkRecord(ctx, record, bodyStr, bodyBytes, dst) + p.metrics.recordOversize(ctx, p.cfg.mode(), int64(plan.originalBytes)) + p.chunkRecord(ctx, record, plan, dst) } } -func (p *logChunkProcessor) chunkRecord(ctx context.Context, record plog.LogRecord, body string, bodyBytes int, dst plog.LogRecordSlice) { - chunks := splitUTF8ByBytes(body, p.cfg.MaxBodyBytes) - chunkID, err := p.newChunkID(record, body) +func (p *logChunkProcessor) chunkRecord(ctx context.Context, record plog.LogRecord, plan logRecordChunkPlan, dst plog.LogRecordSlice) { + chunkID, err := p.newChunkID(record, plan.chunkIDSource()) if err != nil { p.metrics.recordError(ctx, p.cfg.mode(), "chunk_id_generation") p.logger.Warn("failed to generate random log chunk id; using deterministic fallback", zap.Error(err)) - chunkID = fallbackChunkID(record, body) + chunkID = fallbackChunkID(record, plan.chunkIDSource()) } - offset := 0 - for i, chunk := range chunks { + for i, chunk := range plan.chunks { chunkRecord := dst.AppendEmpty() record.CopyTo(chunkRecord) - chunkRecord.Body().SetStr(chunk) - p.setChunkAttributes(chunkRecord.Attributes(), chunkID, i, len(chunks), offset, bodyBytes) - offset += len(chunk) + if plan.hasBody { + if chunk.hasBodyValue { + chunk.bodyValue.CopyTo(chunkRecord.Body()) + } else { + chunkRecord.Body().SetStr(chunk.body) + } + } + + attrs := chunkRecord.Attributes() + for _, attr := range plan.attributes { + attrs.Remove(attr.key) + } + for key, value := range chunk.stringAttr { + attrs.PutStr(key, value) + } + for key, value := range chunk.bytesAttr { + attrs.PutEmptyBytes(key).FromRaw(value) + } + for key, value := range chunk.valueAttr { + value.CopyTo(attrs.PutEmpty(key)) + } + p.setChunkAttributes(attrs, chunkID, i, len(plan.chunks), chunk.offset, plan.originalBytes, chunk.structuredPaths) } - p.metrics.recordChunks(ctx, p.cfg.mode(), int64(len(chunks)), int64(offset)) + p.metrics.recordChunks(ctx, p.cfg.mode(), int64(len(plan.chunks)), int64(plan.originalBytes)) } -func (p *logChunkProcessor) setChunkAttributes(attrs pcommon.Map, chunkID string, index, count, offset, originalBytes int) { +func (p *logChunkProcessor) setChunkAttributes( + attrs pcommon.Map, + chunkID string, + index, count, offset, originalBytes int, + structuredPaths []string, +) { prefix := p.cfg.MetadataPrefix attrs.PutStr(prefix+".id", chunkID) attrs.PutInt(prefix+".index", int64(index)) @@ -191,35 +433,405 @@ func (p *logChunkProcessor) setChunkAttributes(attrs pcommon.Map, chunkID string attrs.PutInt(prefix+".offset_bytes", int64(offset)) attrs.PutInt(prefix+".original_size_bytes", int64(originalBytes)) attrs.PutBool(prefix+".final", index == count-1) + if len(structuredPaths) > 0 { + paths := attrs.PutEmptySlice(prefix + ".structured_paths") + for _, path := range structuredPaths { + paths.AppendEmpty().SetStr(path) + } + } } -func splitUTF8ByBytes(s string, limit int) []string { - if limit <= 0 || len(s) <= limit { - return []string{s} +func (plan logRecordChunkPlan) chunkIDSource() string { + if len(plan.attributes) == 0 { + return plan.body } - chunks := make([]string, 0, len(s)/limit+1) - for start := 0; start < len(s); { - end := start + limit - if end >= len(s) { - chunks = append(chunks, s[start:]) - break + var builder strings.Builder + builder.WriteString(plan.body) + for _, attr := range plan.attributes { + builder.WriteByte('\n') + builder.WriteString(attr.key) + builder.WriteByte('=') + appendValueFingerprint(&builder, attr.value) + } + return builder.String() +} + +func appendValueFingerprint(builder *strings.Builder, value pcommon.Value) { + builder.WriteString(strconv.Itoa(int(value.Type()))) + builder.WriteByte(':') + switch value.Type() { + case pcommon.ValueTypeMap: + valueMap := value.Map() + keys := make([]string, 0, valueMap.Len()) + valueMap.Range(func(key string, _ pcommon.Value) bool { + keys = append(keys, key) + return true + }) + sort.Strings(keys) + for _, key := range keys { + child, _ := valueMap.Get(key) + builder.WriteString(strconv.Itoa(len(key))) + builder.WriteByte(':') + builder.WriteString(key) + appendValueFingerprint(builder, child) } + case pcommon.ValueTypeSlice: + valueSlice := value.Slice() + for i := 0; i < valueSlice.Len(); i++ { + appendValueFingerprint(builder, valueSlice.At(i)) + } + case pcommon.ValueTypeBytes: + builder.Write(value.Bytes().AsRaw()) + default: + builder.WriteString(value.AsString()) + } +} - for end > start && !utf8.RuneStart(s[end]) { - end-- +func chunkFields(fields []chunkedField, limit int) []logRecordChunk { + if limit <= 0 { + return []logRecordChunk{newLogRecordChunk(0)} + } + + chunks := make([]logRecordChunk, 0) + current := newLogRecordChunk(0) + remaining := limit + offset := 0 + + for _, field := range fields { + if field.valueBytes == 0 { + if current.hasFields && field.fullBytes() > remaining { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + } + current.addEmpty(field) + offset += field.fullBytes() + if field.fullBytes() >= remaining { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + } else { + remaining -= field.fullBytes() + } + continue } - if end == start { - _, size := utf8.DecodeRuneInString(s[start:]) - end = start + size + + if field.kind == chunkedFieldValue { + if current.hasFields && field.fullBytes() > remaining { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + } + current.addValue(field) + offset += field.fullBytes() + if field.fullBytes() >= remaining { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + } else { + remaining -= field.fullBytes() + } + continue } - chunks = append(chunks, s[start:end]) - start = end + if field.kind == chunkedFieldBytes { + value := field.bytesValue + for len(value) > 0 { + partBudget := remaining - field.keyBytes + if field.body && !field.structured { + partBudget = remaining + } + if partBudget <= 0 && current.hasFields { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + continue + } + + part, rest := splitBytesPrefix(value, partBudget) + current.addBytes(field, part) + used := field.keyBytes + len(part) + offset += used + value = rest + if used >= remaining { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + } else { + remaining -= used + } + } + continue + } + + value := field.stringValue + for len(value) > 0 { + if remaining == 0 { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + } + + partBudget := remaining - field.keyBytes + if field.body && !field.structured { + partBudget = remaining + } + if partBudget <= 0 && current.hasFields { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + continue + } + + part, rest := splitUTF8PrefixByBytes(value, partBudget) + if field.keyBytes+len(part) > remaining && current.hasFields { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + continue + } + if part == "" { + if current.hasFields { + chunks = append(chunks, current) + } + current = newLogRecordChunk(offset) + remaining = limit + continue + } + + current.addString(field, part) + used := field.keyBytes + len(part) + offset += used + value = rest + if used >= remaining { + chunks = append(chunks, current) + current = newLogRecordChunk(offset) + remaining = limit + } else { + remaining -= used + } + } + } + + if current.hasFields { + chunks = append(chunks, current) + } + return chunks +} + +func newLogRecordChunk(offset int) logRecordChunk { + return logRecordChunk{ + stringAttr: map[string]string{}, + bytesAttr: map[string][]byte{}, + valueAttr: map[string]pcommon.Value{}, + offset: offset, + } +} + +func (chunk *logRecordChunk) addEmpty(field chunkedField) { + switch field.kind { + case chunkedFieldString: + chunk.addString(field, "") + case chunkedFieldBytes: + chunk.addBytes(field, nil) + default: + chunk.addValue(field) + } +} + +func (chunk *logRecordChunk) addString(field chunkedField, part string) { + if field.structured { + chunk.addStructuredValue(field, pcommon.NewValueStr(part)) + } else if field.body { + chunk.body += part + } else { + chunk.stringAttr[field.key] += part + } + chunk.bytes += field.keyBytes + len(part) + chunk.hasFields = true +} + +func (chunk *logRecordChunk) addBytes(field chunkedField, part []byte) { + if field.structured { + value := pcommon.NewValueBytes() + value.Bytes().FromRaw(part) + chunk.addStructuredValue(field, value) + chunk.bytes += field.keyBytes + len(part) + chunk.hasFields = true + return + } + if field.body { + chunk.bodyValue = pcommon.NewValueBytes() + chunk.bodyValue.Bytes().FromRaw(part) + chunk.hasBodyValue = true + chunk.bytes += len(part) + chunk.hasFields = true + return + } + chunk.bytesAttr[field.key] = append(chunk.bytesAttr[field.key], part...) + chunk.bytes += field.keyBytes + len(part) + chunk.hasFields = true +} + +func (chunk *logRecordChunk) addValue(field chunkedField) { + if field.structured { + chunk.addStructuredValue(field, field.value) + chunk.bytes += field.fullBytes() + chunk.hasFields = true + return + } + if field.body { + chunk.bodyValue = field.value + chunk.hasBodyValue = true + chunk.bytes += field.valueBytes + chunk.hasFields = true + return + } + chunk.valueAttr[field.key] = field.value + chunk.bytes += field.fullBytes() + chunk.hasFields = true +} + +func (chunk *logRecordChunk) addStructuredValue(field chunkedField, value pcommon.Value) { + var root pcommon.Value + if field.body { + if !chunk.hasBodyValue { + chunk.bodyValue = newStructuredRoot(field.rootType) + chunk.hasBodyValue = true + } + root = chunk.bodyValue + } else { + var ok bool + root, ok = chunk.valueAttr[field.key] + if !ok { + root = newStructuredRoot(field.rootType) + chunk.valueAttr[field.key] = root + } + } + copyValueAtPath(root, field.path, value) + for _, path := range chunk.structuredPaths { + if path == field.structuredID { + return + } + } + chunk.structuredPaths = append(chunk.structuredPaths, field.structuredID) +} + +func newStructuredRoot(rootType pcommon.ValueType) pcommon.Value { + if rootType == pcommon.ValueTypeSlice { + return pcommon.NewValueSlice() + } + return pcommon.NewValueMap() +} + +func copyValueAtPath(destination pcommon.Value, path []valuePathElement, value pcommon.Value) { + if len(path) == 0 { + value.CopyTo(destination) + return + } + + element := path[0] + var child pcommon.Value + if element.isIndex { + if destination.Type() != pcommon.ValueTypeSlice { + destination.SetEmptySlice() + } + valueSlice := destination.Slice() + for valueSlice.Len() <= element.index { + valueSlice.AppendEmpty() + } + child = valueSlice.At(element.index) + } else { + if destination.Type() != pcommon.ValueTypeMap { + destination.SetEmptyMap() + } + valueMap := destination.Map() + var ok bool + child, ok = valueMap.Get(element.key) + if !ok { + child = valueMap.PutEmpty(element.key) + } + } + copyValueAtPath(child, path[1:], value) +} + +func (field chunkedField) fullBytes() int { + return field.keyBytes + field.valueBytes +} + +func valueFieldKind(value pcommon.Value) chunkedFieldKind { + if value.Type() == pcommon.ValueTypeStr { + return chunkedFieldString + } + if value.Type() == pcommon.ValueTypeBytes { + return chunkedFieldBytes + } + return chunkedFieldValue +} + +func valuePayloadBytes(value pcommon.Value) int { + switch value.Type() { + case pcommon.ValueTypeStr: + return len(value.Str()) + case pcommon.ValueTypeBytes: + return len(value.Bytes().AsRaw()) + case pcommon.ValueTypeMap: + total := 0 + value.Map().Range(func(key string, child pcommon.Value) bool { + total += len(key) + valuePayloadBytes(child) + return true + }) + return total + case pcommon.ValueTypeSlice: + total := 0 + valueSlice := value.Slice() + for i := 0; i < valueSlice.Len(); i++ { + total += valuePayloadBytes(valueSlice.At(i)) + } + return total + default: + return len(value.AsString()) + } +} + +func splitBytesPrefix(bytes []byte, limit int) ([]byte, []byte) { + if limit <= 0 || len(bytes) <= limit { + return bytes, nil + } + return bytes[:limit], bytes[limit:] +} + +func splitUTF8ByBytes(s string, limit int) []string { + if limit <= 0 || len(s) <= limit { + return []string{s} + } + + chunks := make([]string, 0, len(s)/limit+1) + for len(s) > 0 { + var chunk string + chunk, s = splitUTF8PrefixByBytes(s, limit) + chunks = append(chunks, chunk) } return chunks } +func splitUTF8PrefixByBytes(s string, limit int) (string, string) { + if limit <= 0 || len(s) <= limit { + return s, "" + } + + end := limit + for end > 0 && !utf8.RuneStart(s[end]) { + end-- + } + if end == 0 { + _, size := utf8.DecodeRuneInString(s) + end = size + } + return s[:end], s[end:] +} + func randomChunkID(_ plog.LogRecord, _ string) (string, error) { var raw [16]byte if _, err := rand.Read(raw[:]); err != nil { diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor_test.go b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor_test.go index 09f5a6950..a3aa73ea0 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor_test.go +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor/processor_test.go @@ -19,6 +19,7 @@ package logchunkprocessor import ( "context" + "strings" "testing" "unicode/utf8" @@ -68,7 +69,6 @@ func makeLogs(body pcommon.Value) plog.Logs { record.SetTimestamp(123) record.SetObservedTimestamp(456) record.SetSeverityText("INFO") - record.Attributes().PutStr("existing", "value") body.CopyTo(record.Body()) return logs } @@ -78,7 +78,7 @@ func firstRecord(logs plog.Logs) plog.LogRecord { } func TestDisabledLeavesLogsUnchanged(t *testing.T) { - processor := newTestProcessor(t, &Config{MaxBodyBytes: 0, MetadataPrefix: defaultMetadataPrefix}) + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 0, MetadataPrefix: defaultMetadataPrefix}) input := makeLogs(pcommon.NewValueStr("abcdef")) output, err := processor.processLogs(context.Background(), input) @@ -92,15 +92,50 @@ func TestDisabledLeavesLogsUnchanged(t *testing.T) { } func TestValidateRejectsEnabledLimitBelowUTF8Max(t *testing.T) { + cfg := &Config{MaxPayloadBytes: utf8.UTFMax - 1, MetadataPrefix: defaultMetadataPrefix} + + err := cfg.Validate() + + require.ErrorContains(t, err, "max_payload_bytes must be 0 or at least 4") +} + +func TestValidateUsesDeprecatedMaxBodyBytes(t *testing.T) { cfg := &Config{MaxBodyBytes: utf8.UTFMax - 1, MetadataPrefix: defaultMetadataPrefix} err := cfg.Validate() - require.ErrorContains(t, err, "max_body_bytes must be 0 or at least 4") + require.ErrorContains(t, err, "max_payload_bytes must be 0 or at least 4") +} + +func TestDeprecatedMaxBodyBytesEnablesPayloadLimit(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxBodyBytes: 4, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("abcdef")) + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + require.Equal(t, "abcd", records.At(0).Body().Str()) + require.Equal(t, "ef", records.At(1).Body().Str()) +} + +func TestMaxPayloadBytesTakesPrecedenceOverDeprecatedMaxBodyBytes(t *testing.T) { + processor := newTestProcessor(t, &Config{ + MaxPayloadBytes: 6, + MaxBodyBytes: 4, + MetadataPrefix: defaultMetadataPrefix, + }) + input := makeLogs(pcommon.NewValueStr("abcdef")) + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + requireSharesFirstRecord(t, input, output) } func TestEnabledReturnsOriginalLogsWhenNoRecordsAreOversized(t *testing.T) { - processor := newTestProcessor(t, &Config{MaxBodyBytes: 10, MetadataPrefix: defaultMetadataPrefix}) + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 10, MetadataPrefix: defaultMetadataPrefix}) input := makeLogs(pcommon.NewValueStr("abcdef")) output, err := processor.processLogs(context.Background(), input) @@ -110,7 +145,7 @@ func TestEnabledReturnsOriginalLogsWhenNoRecordsAreOversized(t *testing.T) { } func TestDryRunLeavesOversizedLogsUnchanged(t *testing.T) { - processor := newTestProcessor(t, &Config{MaxBodyBytes: 4, DryRun: true, MetadataPrefix: defaultMetadataPrefix}) + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 4, DryRun: true, MetadataPrefix: defaultMetadataPrefix}) input := makeLogs(pcommon.NewValueStr("abcdef")) output, err := processor.processLogs(context.Background(), input) @@ -128,9 +163,9 @@ func TestDryRunMetricsUseModeAttribute(t *testing.T) { reader := sdkmetric.NewManualReader() meterProvider := sdkmetric.NewMeterProvider(sdkmetric.WithReader(reader)) processor := newTestProcessorWithMeterProvider(t, &Config{ - MaxBodyBytes: 4, - DryRun: true, - MetadataPrefix: defaultMetadataPrefix, + MaxPayloadBytes: 4, + DryRun: true, + MetadataPrefix: defaultMetadataPrefix, }, meterProvider) ctx := context.Background() input := makeLogs(pcommon.NewValueStr("abcdef")) @@ -154,8 +189,8 @@ func TestChunkMetricsUseModeAttribute(t *testing.T) { reader := sdkmetric.NewManualReader() meterProvider := sdkmetric.NewMeterProvider(sdkmetric.WithReader(reader)) processor := newTestProcessorWithMeterProvider(t, &Config{ - MaxBodyBytes: 4, - MetadataPrefix: defaultMetadataPrefix, + MaxPayloadBytes: 4, + MetadataPrefix: defaultMetadataPrefix, }, meterProvider) ctx := context.Background() input := makeLogs(pcommon.NewValueStr("abcdef")) @@ -175,7 +210,7 @@ func TestChunkMetricsUseModeAttribute(t *testing.T) { } func TestChunksOversizedStringBody(t *testing.T) { - processor := newTestProcessor(t, &Config{MaxBodyBytes: 5, MetadataPrefix: defaultMetadataPrefix}) + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 5, MetadataPrefix: defaultMetadataPrefix}) input := makeLogs(pcommon.NewValueStr("abcdefghijkl")) output, err := processor.processLogs(context.Background(), input) @@ -194,7 +229,6 @@ func TestChunksOversizedStringBody(t *testing.T) { requireAttributeInt(t, attrs, defaultMetadataPrefix+".count", 3) requireAttributeInt(t, attrs, defaultMetadataPrefix+".original_size_bytes", 12) requireAttributeBool(t, attrs, defaultMetadataPrefix+".final", i == 2) - requireAttributeStr(t, attrs, "existing", "value") requireAttributeAbsent(t, attrs, "_partial") } requireAttributeInt(t, records.At(0).Attributes(), defaultMetadataPrefix+".offset_bytes", 0) @@ -202,6 +236,306 @@ func TestChunksOversizedStringBody(t *testing.T) { requireAttributeInt(t, records.At(2).Attributes(), defaultMetadataPrefix+".offset_bytes", 10) } +func TestChunksStringBodyAndAttributesUnderSharedLimit(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 8, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("abcdefghijkl")) + firstRecord(input).Attributes().PutStr("a", "value") + firstRecord(input).Attributes().PutStr("b", "123456") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 4, records.Len()) + + expectedBodies := []string{"abcdefgh", "ijkl", "", ""} + expectedA := []string{"", "val", "ue", ""} + expectedAOK := []bool{false, true, true, false} + expectedB := []string{"", "", "1234", "56"} + expectedBOK := []bool{false, false, true, true} + for i := 0; i < records.Len(); i++ { + record := records.At(i) + require.Equal(t, expectedBodies[i], record.Body().Str()) + requireOptionalAttributeStr(t, record.Attributes(), "a", expectedA[i], expectedAOK[i]) + requireOptionalAttributeStr(t, record.Attributes(), "b", expectedB[i], expectedBOK[i]) + require.LessOrEqual(t, payloadBytes(record, defaultMetadataPrefix), 8) + requireAttributeInt(t, record.Attributes(), defaultMetadataPrefix+".index", int64(i)) + requireAttributeInt(t, record.Attributes(), defaultMetadataPrefix+".count", 4) + requireAttributeInt(t, record.Attributes(), defaultMetadataPrefix+".original_size_bytes", 25) + requireAttributeBool(t, record.Attributes(), defaultMetadataPrefix+".final", i == 3) + } + requireAttributeInt(t, records.At(0).Attributes(), defaultMetadataPrefix+".offset_bytes", 0) + requireAttributeInt(t, records.At(1).Attributes(), defaultMetadataPrefix+".offset_bytes", 8) + requireAttributeInt(t, records.At(2).Attributes(), defaultMetadataPrefix+".offset_bytes", 16) + requireAttributeInt(t, records.At(3).Attributes(), defaultMetadataPrefix+".offset_bytes", 24) + require.Equal(t, "abcdefghijkl", concatenateBodies(records)) + require.Equal(t, "value", concatenateStringAttribute(records, "a")) + require.Equal(t, "123456", concatenateStringAttribute(records, "b")) +} + +func TestChunksWhenCombinedStringBodyAndAttributesExceedLimit(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 5, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("abcd")) + firstRecord(input).Attributes().PutStr("x", "yz") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + require.Equal(t, "abcd", records.At(0).Body().Str()) + requireAttributeAbsent(t, records.At(0).Attributes(), "x") + require.LessOrEqual(t, payloadBytes(records.At(0), defaultMetadataPrefix), 5) + require.Empty(t, records.At(1).Body().Str()) + requireAttributeStr(t, records.At(1).Attributes(), "x", "yz") + require.LessOrEqual(t, payloadBytes(records.At(1), defaultMetadataPrefix), 5) + requireAttributeInt(t, records.At(0).Attributes(), defaultMetadataPrefix+".original_size_bytes", 7) + requireAttributeInt(t, records.At(1).Attributes(), defaultMetadataPrefix+".original_size_bytes", 7) +} + +func TestChunksNonStringAttributesOnce(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 5, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("abcd")) + firstRecord(input).Attributes().PutInt("n", 12) + firstRecord(input).Attributes().PutBool("ok", false) + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 3, records.Len()) + require.Equal(t, "abcd", records.At(0).Body().Str()) + requireAttributeAbsent(t, records.At(0).Attributes(), "n") + requireAttributeAbsent(t, records.At(0).Attributes(), "ok") + require.LessOrEqual(t, payloadBytes(records.At(0), defaultMetadataPrefix), 5) + + require.Empty(t, records.At(1).Body().Str()) + requireAttributeInt(t, records.At(1).Attributes(), "n", 12) + requireAttributeAbsent(t, records.At(1).Attributes(), "ok") + require.LessOrEqual(t, payloadBytes(records.At(1), defaultMetadataPrefix), 5) + + require.Empty(t, records.At(2).Body().Str()) + requireAttributeAbsent(t, records.At(2).Attributes(), "n") + requireAttributeBool(t, records.At(2).Attributes(), "ok", false) + require.Equal(t, 7, payloadBytes(records.At(2), defaultMetadataPrefix)) +} + +func TestChunksBytesAttributesWithoutChangingType(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 8, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("ab")) + firstRecord(input).Attributes().PutEmptyBytes("bin").FromRaw([]byte{1, 2, 3, 4, 5, 6}) + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + + require.Equal(t, "ab", records.At(0).Body().Str()) + requireAttributeBytes(t, records.At(0).Attributes(), "bin", []byte{1, 2, 3}) + require.LessOrEqual(t, payloadBytes(records.At(0), defaultMetadataPrefix), 8) + + require.Empty(t, records.At(1).Body().Str()) + requireAttributeBytes(t, records.At(1).Attributes(), "bin", []byte{4, 5, 6}) + require.LessOrEqual(t, payloadBytes(records.At(1), defaultMetadataPrefix), 8) + require.Equal(t, []byte{1, 2, 3, 4, 5, 6}, concatenateBytesAttribute(records, "bin")) +} + +func TestChunksStructuredAttributesRecursivelyWithoutChangingType(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 6, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("abcd")) + attrs := firstRecord(input).Attributes() + nested := attrs.PutEmptyMap("m") + nested.PutStr("x", "y") + list := attrs.PutEmptySlice("s") + list.AppendEmpty().SetStr("a") + list.AppendEmpty().SetStr("b") + originalMap, _ := attrs.Get("m") + originalSlice, _ := attrs.Get("s") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 3, records.Len()) + for i := 0; i < records.Len(); i++ { + require.LessOrEqual(t, payloadBytes(records.At(i), defaultMetadataPrefix), 6) + } + + mergedMap := mergeStructuredAttribute(t, records, "m") + require.Equal(t, pcommon.ValueTypeMap, mergedMap.Type()) + require.Equal(t, originalMap.AsRaw(), mergedMap.AsRaw()) + mergedSlice := mergeStructuredAttribute(t, records, "s") + require.Equal(t, pcommon.ValueTypeSlice, mergedSlice.Type()) + require.Equal(t, originalSlice.AsRaw(), mergedSlice.AsRaw()) + requireStructuredPath(t, records, "/attributes/m/x") + requireStructuredPath(t, records, "/attributes/s/0") + requireStructuredPath(t, records, "/attributes/s/1") +} + +func TestChunksStructuredBodyWhenAttributesForceChunking(t *testing.T) { + body := pcommon.NewValueMap() + body.Map().PutStr("x", "y") + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 5, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(body) + firstRecord(input).Attributes().PutStr("a", "12345") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + for i := 0; i < records.Len(); i++ { + require.LessOrEqual(t, payloadBytes(records.At(i), defaultMetadataPrefix), 5) + } + mergedBody := mergeStructuredBody(records) + require.Equal(t, body.AsRaw(), mergedBody.AsRaw()) + require.Equal(t, "12345", concatenateStringAttribute(records, "a")) + requireStructuredPath(t, records, "/body/x") +} + +func TestChunksGiantSinglePayloadMapRepresentativeOfOTLPLogs(t *testing.T) { + const limit = 256 * 1024 + processor := newTestProcessor(t, &Config{MaxPayloadBytes: limit, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("openai.request")) + payload := firstRecord(input).Attributes().PutEmptyMap("payload") + payload.PutStr("model", "meta/llama-3.1-405b-instruct") + payload.PutInt("max_tokens", 4096) + payload.PutBool("stream", true) + messages := payload.PutEmptySlice("messages") + systemMessage := messages.AppendEmpty().SetEmptyMap() + systemMessage.PutStr("role", "system") + systemMessage.PutStr("content", "You are a helpful assistant.") + userMessage := messages.AppendEmpty().SetEmptyMap() + userMessage.PutStr("role", "user") + userMessage.PutStr("content", strings.Repeat("representative prompt content 🙂 ", 50_000)) + originalPayload, _ := firstRecord(input).Attributes().Get("payload") + require.Greater(t, valuePayloadBytes(originalPayload), 1024*1024) + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Greater(t, records.Len(), 4) + for i := 0; i < records.Len(); i++ { + record := records.At(i) + require.LessOrEqual(t, payloadBytes(record, defaultMetadataPrefix), limit) + value, ok := record.Attributes().Get("payload") + if ok { + require.Equal(t, pcommon.ValueTypeMap, value.Type()) + requireNestedContentUTF8(t, value) + } + } + + mergedPayload := mergeStructuredAttribute(t, records, "payload") + require.Equal(t, originalPayload.AsRaw(), mergedPayload.AsRaw()) + require.Greater(t, countStructuredPath(records, "/attributes/payload/messages/1/content"), 1) +} + +func TestChunksOversizedNestedBytesAndEscapedMapKeys(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 32, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("x")) + payload := firstRecord(input).Attributes().PutEmptyMap("pay/load") + nested := payload.PutEmptyMap("a~b") + nested.PutEmptyBytes("attachment").FromRaw([]byte(strings.Repeat("0123456789", 10))) + originalPayload, _ := firstRecord(input).Attributes().Get("pay/load") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Greater(t, records.Len(), 1) + for i := 0; i < records.Len(); i++ { + require.LessOrEqual(t, payloadBytes(records.At(i), defaultMetadataPrefix), 32) + } + mergedPayload := mergeStructuredAttribute(t, records, "pay/load") + require.Equal(t, originalPayload.AsRaw(), mergedPayload.AsRaw()) + require.Greater(t, countStructuredPath(records, "/attributes/pay~1load/a~0b/attachment"), 1) +} + +func TestChunksEmptyStructuredValuesWithoutLosingType(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 5, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("abcdef")) + attrs := firstRecord(input).Attributes() + attrs.PutEmptyMap("m") + attrs.PutEmptySlice("s") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + emptyMap := mergeStructuredAttribute(t, records, "m") + require.Equal(t, pcommon.ValueTypeMap, emptyMap.Type()) + require.Empty(t, emptyMap.Map().AsRaw()) + emptySlice := mergeStructuredAttribute(t, records, "s") + require.Equal(t, pcommon.ValueTypeSlice, emptySlice.Type()) + require.Empty(t, emptySlice.Slice().AsRaw()) + requireStructuredPath(t, records, "/attributes/m") + requireStructuredPath(t, records, "/attributes/s") +} + +func TestChunksEmptyAttributesOnce(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 5, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("abcdef")) + firstRecord(input).Attributes().PutStr("e", "") + firstRecord(input).Attributes().PutEmptyBytes("z") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + require.Equal(t, "abcde", records.At(0).Body().Str()) + requireAttributeAbsent(t, records.At(0).Attributes(), "e") + requireAttributeAbsent(t, records.At(0).Attributes(), "z") + require.Equal(t, "f", records.At(1).Body().Str()) + requireAttributeStr(t, records.At(1).Attributes(), "e", "") + requireAttributeBytes(t, records.At(1).Attributes(), "z", nil) + require.LessOrEqual(t, payloadBytes(records.At(1), defaultMetadataPrefix), 5) +} + +func TestChunksStringAttributesWithoutSplittingUTF8Runes(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 5, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("ab")) + firstRecord(input).Attributes().PutStr("u", "🙂🙂") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 3, records.Len()) + require.Equal(t, "ab", records.At(0).Body().Str()) + requireAttributeAbsent(t, records.At(0).Attributes(), "u") + requireAttributeStr(t, records.At(1).Attributes(), "u", "🙂") + requireAttributeStr(t, records.At(2).Attributes(), "u", "🙂") + attr1, _ := records.At(1).Attributes().Get("u") + attr2, _ := records.At(2).Attributes().Get("u") + require.True(t, utf8.ValidString(attr1.Str())) + require.True(t, utf8.ValidString(attr2.Str())) + require.LessOrEqual(t, payloadBytes(records.At(1), defaultMetadataPrefix), 5) + require.LessOrEqual(t, payloadBytes(records.At(2), defaultMetadataPrefix), 5) +} + +func TestChunksAttributesInDeterministicKeyOrder(t *testing.T) { + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 4, MetadataPrefix: defaultMetadataPrefix}) + input := makeLogs(pcommon.NewValueStr("x")) + firstRecord(input).Attributes().PutStr("b", "12") + firstRecord(input).Attributes().PutStr("a", "34") + + output, err := processor.processLogs(context.Background(), input) + + require.NoError(t, err) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + require.Equal(t, "x", records.At(0).Body().Str()) + requireAttributeStr(t, records.At(0).Attributes(), "a", "34") + requireAttributeAbsent(t, records.At(0).Attributes(), "b") + require.Empty(t, records.At(1).Body().Str()) + requireAttributeAbsent(t, records.At(1).Attributes(), "a") + requireAttributeStr(t, records.At(1).Attributes(), "b", "12") +} + func TestChunksDoNotSplitUTF8Runes(t *testing.T) { chunks := splitUTF8ByBytes("ab🙂cd", 5) @@ -222,23 +556,23 @@ func TestChunksFitFourByteUTF8RunesWithinLimit(t *testing.T) { } } -func TestNonStringBodyIsUnchanged(t *testing.T) { +func TestChunksOversizedStructuredBody(t *testing.T) { body := pcommon.NewValueMap() body.Map().PutStr("message", "abcdef") - processor := newTestProcessor(t, &Config{MaxBodyBytes: 4, MetadataPrefix: defaultMetadataPrefix}) + processor := newTestProcessor(t, &Config{MaxPayloadBytes: 10, MetadataPrefix: defaultMetadataPrefix}) input := makeLogs(body) output, err := processor.processLogs(context.Background(), input) require.NoError(t, err) - require.Equal(t, 1, output.LogRecordCount()) - record := firstRecord(output) - require.Equal(t, pcommon.ValueTypeMap, record.Body().Type()) - value, ok := record.Body().Map().Get("message") - require.True(t, ok) - require.Equal(t, "abcdef", value.Str()) - _, ok = record.Attributes().Get(defaultMetadataPrefix + ".id") - require.False(t, ok) + records := output.ResourceLogs().At(0).ScopeLogs().At(0).LogRecords() + require.Equal(t, 2, records.Len()) + for i := 0; i < records.Len(); i++ { + require.LessOrEqual(t, payloadBytes(records.At(i), defaultMetadataPrefix), 10) + } + mergedBody := mergeStructuredBody(records) + require.Equal(t, body.AsRaw(), mergedBody.AsRaw()) + requireStructuredPath(t, records, "/body/message") } func requireAttributeStr(t *testing.T, attrs pcommon.Map, key string, want string) { @@ -262,12 +596,30 @@ func requireAttributeBool(t *testing.T, attrs pcommon.Map, key string, want bool require.Equal(t, want, got.Bool()) } +func requireAttributeBytes(t *testing.T, attrs pcommon.Map, key string, want []byte) { + t.Helper() + got, ok := attrs.Get(key) + require.True(t, ok, "missing attribute %s", key) + require.Equal(t, pcommon.ValueTypeBytes, got.Type()) + require.Equal(t, want, got.Bytes().AsRaw()) +} + func requireAttributeAbsent(t *testing.T, attrs pcommon.Map, key string) { t.Helper() _, ok := attrs.Get(key) require.False(t, ok, "attribute %s should not be present", key) } +func requireOptionalAttributeStr(t *testing.T, attrs pcommon.Map, key string, want string, wantOK bool) { + t.Helper() + got, ok := attrs.Get(key) + require.Equal(t, wantOK, ok, "attribute %s presence mismatch", key) + if !wantOK { + return + } + require.Equal(t, want, got.Str()) +} + func requireSharesFirstRecord(t *testing.T, input plog.Logs, output plog.Logs) { t.Helper() firstRecord(output).Attributes().PutStr("shared", "true") @@ -276,6 +628,169 @@ func requireSharesFirstRecord(t *testing.T, input plog.Logs, output plog.Logs) { require.Equal(t, "true", got.Str()) } +func payloadBytes(record plog.LogRecord, metadataPrefix string) int { + total := valuePayloadBytes(record.Body()) + if record.Body().Type() == pcommon.ValueTypeEmpty { + total = 0 + } + record.Attributes().Range(func(key string, value pcommon.Value) bool { + if strings.HasPrefix(key, metadataPrefix+".") { + return true + } + total += len(key) + valuePayloadBytes(value) + return true + }) + return total +} + +func mergeStructuredAttribute(t *testing.T, records plog.LogRecordSlice, key string) pcommon.Value { + t.Helper() + merged := pcommon.NewValueEmpty() + found := false + for i := 0; i < records.Len(); i++ { + value, ok := records.At(i).Attributes().Get(key) + if !ok { + continue + } + found = true + mergePartialValue(merged, value) + } + require.True(t, found, "missing structured attribute %s", key) + return merged +} + +func mergeStructuredBody(records plog.LogRecordSlice) pcommon.Value { + merged := pcommon.NewValueEmpty() + for i := 0; i < records.Len(); i++ { + body := records.At(i).Body() + if body.Type() != pcommon.ValueTypeMap && body.Type() != pcommon.ValueTypeSlice { + continue + } + mergePartialValue(merged, body) + } + return merged +} + +func mergePartialValue(destination pcommon.Value, fragment pcommon.Value) { + switch fragment.Type() { + case pcommon.ValueTypeEmpty: + return + case pcommon.ValueTypeMap: + if destination.Type() != pcommon.ValueTypeMap { + destination.SetEmptyMap() + } + fragment.Map().Range(func(key string, child pcommon.Value) bool { + target, ok := destination.Map().Get(key) + if !ok { + target = destination.Map().PutEmpty(key) + } + mergePartialValue(target, child) + return true + }) + case pcommon.ValueTypeSlice: + if destination.Type() != pcommon.ValueTypeSlice { + destination.SetEmptySlice() + } + target := destination.Slice() + source := fragment.Slice() + for target.Len() < source.Len() { + target.AppendEmpty() + } + for i := 0; i < source.Len(); i++ { + mergePartialValue(target.At(i), source.At(i)) + } + case pcommon.ValueTypeStr: + if destination.Type() == pcommon.ValueTypeStr { + destination.SetStr(destination.Str() + fragment.Str()) + return + } + fragment.CopyTo(destination) + case pcommon.ValueTypeBytes: + if destination.Type() == pcommon.ValueTypeBytes { + combined := append([]byte(nil), destination.Bytes().AsRaw()...) + combined = append(combined, fragment.Bytes().AsRaw()...) + destination.SetEmptyBytes().FromRaw(combined) + return + } + fragment.CopyTo(destination) + default: + fragment.CopyTo(destination) + } +} + +func requireStructuredPath(t *testing.T, records plog.LogRecordSlice, want string) { + t.Helper() + require.Greater(t, countStructuredPath(records, want), 0, "missing structured path %q", want) +} + +func countStructuredPath(records plog.LogRecordSlice, want string) int { + key := defaultMetadataPrefix + ".structured_paths" + count := 0 + for i := 0; i < records.Len(); i++ { + value, ok := records.At(i).Attributes().Get(key) + if !ok { + continue + } + paths := value.Slice() + for j := 0; j < paths.Len(); j++ { + if paths.At(j).Str() == want { + count++ + } + } + } + return count +} + +func requireNestedContentUTF8(t *testing.T, payload pcommon.Value) { + t.Helper() + messages, ok := payload.Map().Get("messages") + if !ok || messages.Type() != pcommon.ValueTypeSlice || messages.Slice().Len() < 2 { + return + } + message := messages.Slice().At(1) + if message.Type() != pcommon.ValueTypeMap { + return + } + content, ok := message.Map().Get("content") + if !ok { + return + } + require.Equal(t, pcommon.ValueTypeStr, content.Type()) + require.True(t, utf8.ValidString(content.Str())) +} + +func concatenateBodies(records plog.LogRecordSlice) string { + var builder strings.Builder + for i := 0; i < records.Len(); i++ { + builder.WriteString(records.At(i).Body().Str()) + } + return builder.String() +} + +func concatenateStringAttribute(records plog.LogRecordSlice, key string) string { + var builder strings.Builder + for i := 0; i < records.Len(); i++ { + value, ok := records.At(i).Attributes().Get(key) + if !ok { + continue + } + builder.WriteString(value.Str()) + } + return builder.String() +} + +func concatenateBytesAttribute(records plog.LogRecordSlice, key string) []byte { + var out []byte + for i := 0; i < records.Len(); i++ { + value, ok := records.At(i).Attributes().Get(key) + if !ok { + continue + } + out = append(out, value.Bytes().AsRaw()...) + } + return out +} + func requireInt64MetricDataPoint( t *testing.T, metrics metricdata.ResourceMetrics, diff --git a/src/compute-plane-services/byoo-otel-collector/otelcol/main.go b/src/compute-plane-services/byoo-otel-collector/otelcol/main.go index caed2d84d..f47d08ba3 100644 --- a/src/compute-plane-services/byoo-otel-collector/otelcol/main.go +++ b/src/compute-plane-services/byoo-otel-collector/otelcol/main.go @@ -38,11 +38,11 @@ func main() { }, }, ProviderModules: map[string]string{ - envprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/envprovider v1.59.0", - fileprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/fileprovider v1.59.0", - httpprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/httpprovider v1.59.0", - httpsprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.59.0", - yamlprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.59.0", + envprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/envprovider v1.63.0", + fileprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/fileprovider v1.63.0", + httpprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/httpprovider v1.63.0", + httpsprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/httpsprovider v1.63.0", + yamlprovider.NewFactory().Create(confmap.ProviderSettings{}).Scheme(): "go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.63.0", }, ConverterModules: []string{ }, diff --git a/src/compute-plane-services/byoo-otel-collector/scripts/regenerate-otelcol.sh b/src/compute-plane-services/byoo-otel-collector/scripts/regenerate-otelcol.sh index 26b3c0f41..2b814e24b 100755 --- a/src/compute-plane-services/byoo-otel-collector/scripts/regenerate-otelcol.sh +++ b/src/compute-plane-services/byoo-otel-collector/scripts/regenerate-otelcol.sh @@ -28,7 +28,7 @@ set -euo pipefail # Pinned to the OpenTelemetry release line that all the receivers/ # processors/etc. in otel-collector-build.yaml are tagged for. Bump in # lockstep with the gomod versions in that YAML. -OTEL_BUILDER_VERSION="${OTEL_BUILDER_VERSION:-v0.153.0}" +OTEL_BUILDER_VERSION="${OTEL_BUILDER_VERSION:-v0.157.0}" # OCB writes a temporary module under output/; keep parent go.work from # overriding that generated module's replacements. @@ -84,7 +84,7 @@ if ! grep -Fq 'logchunkprocessor "github.com/NVIDIA/nvcf/src/compute-plane-servi echo "regenerate-otelcol: failed to insert logchunkprocessor factory into ${COMPONENTS_GO}" >&2 exit 1 } - perl -0pi -e 's/(\n\t\ttransformprocessor\.NewFactory\(\)\.Type\(\): "github\.com\/open-telemetry\/opentelemetry-collector-contrib\/processor\/transformprocessor v0\.153\.0",\n)/$1\t\tlogchunkprocessor.NewFactory().Type(): "github.com\/NVIDIA\/nvcf\/src\/compute-plane-services\/byoo-otel-collector\/otelcol\/logchunkprocessor v0.0.0",\n/' "${COMPONENTS_GO}" + perl -0pi -e 's/(\n\t\ttransformprocessor\.NewFactory\(\)\.Type\(\): "github\.com\/open-telemetry\/opentelemetry-collector-contrib\/processor\/transformprocessor v0\.[0-9]+\.[0-9]+",\n)/$1\t\tlogchunkprocessor.NewFactory().Type(): "github.com\/NVIDIA\/nvcf\/src\/compute-plane-services\/byoo-otel-collector\/otelcol\/logchunkprocessor v0.0.0",\n/' "${COMPONENTS_GO}" grep -Fq 'logchunkprocessor.NewFactory().Type(): "github.com/NVIDIA/nvcf/src/compute-plane-services/byoo-otel-collector/otelcol/logchunkprocessor v0.0.0"' "${COMPONENTS_GO}" || { echo "regenerate-otelcol: failed to insert logchunkprocessor module metadata into ${COMPONENTS_GO}" >&2 exit 1 diff --git a/src/compute-plane-services/byoo-otel-collector/scripts/update-examples.sh b/src/compute-plane-services/byoo-otel-collector/scripts/update-examples.sh index aa443ddba..04c92ed4c 100755 --- a/src/compute-plane-services/byoo-otel-collector/scripts/update-examples.sh +++ b/src/compute-plane-services/byoo-otel-collector/scripts/update-examples.sh @@ -22,6 +22,22 @@ export ESS_SECRETS_PATH="$(pwd)/examples/secrets" local_secrets_path="$(pwd)/examples/secrets" real_secrets_path="/etc/byoo-otel-collector/secrets" +prepend_spdx_header() { + local file="$1" + if head -n 1 "$file" | grep -q '^# SPDX-FileCopyrightText:'; then + return + fi + + local tmp_file="${file}.tmp" + { + echo "# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved." + echo "# SPDX-License-Identifier: Apache-2.0" + echo + cat "$file" + } > "$tmp_file" + mv "$tmp_file" "$file" +} + mkdir -p _output for input_file in testdata/*.json; do echo "=== Test $input_file ===" @@ -38,6 +54,7 @@ for input_file in testdata/*.json; do else sed -i "s|${local_secrets_path}|${real_secrets_path}|g" examples/otelconfigs/${backend_type}/config_${compute_type}_${req_type}_${basename}.yaml fi + prepend_spdx_header "examples/otelconfigs/${backend_type}/config_${compute_type}_${req_type}_${basename}.yaml" rm $generated_file done done diff --git a/src/compute-plane-services/byoo-otel-collector/scripts/validate-otelconfig.sh b/src/compute-plane-services/byoo-otel-collector/scripts/validate-otelconfig.sh index 7db2a9cfb..c0ac5777e 100755 --- a/src/compute-plane-services/byoo-otel-collector/scripts/validate-otelconfig.sh +++ b/src/compute-plane-services/byoo-otel-collector/scripts/validate-otelconfig.sh @@ -34,7 +34,7 @@ ensure_otelcol_binary() { if [ -z "${OTEL_COLLECTOR_VERSION:-}" ]; then echo "Building otelcol-contrib from checked-in otelcol module" GOWORK=off CGO_ENABLED="${CGO_ENABLED:-0}" GOMAXPROCS="${GOMAXPROCS:-2}" \ - go -C otelcol build -trimpath -o ../_output/bin/otelcol-contrib . + go -C otelcol build -p "${GO_BUILD_P:-1}" -trimpath -o ../_output/bin/otelcol-contrib . return fi @@ -84,6 +84,11 @@ run_with_timeout() { validate_otel_config() { local config_path="$1" + if [[ "$(uname -s)" != "Linux" ]]; then + echo "Runtime startup validation skipped on non-Linux host" + return + fi + set +e timeout_output=$(run_with_timeout 2 ./_output/bin/otelcol-contrib --config="$config_path" 2>&1) exit_code=$? diff --git a/src/compute-plane-services/nvca/deployments/nvca-operator/values.yaml b/src/compute-plane-services/nvca/deployments/nvca-operator/values.yaml index b797c279e..e6f8a51f5 100644 --- a/src/compute-plane-services/nvca/deployments/nvca-operator/values.yaml +++ b/src/compute-plane-services/nvca/deployments/nvca-operator/values.yaml @@ -115,6 +115,21 @@ agentConfig: # mergeConfig: | # agent: # logLevel: debug + # + # BYOO metric subset example: + # + # mergeConfig: | + # agent: + # byooMetricSubset: + # enabled: true + # filterConfig: | + # error_mode: ignore + # metric_conditions: + # - 'metric.name != "BpsInstrument"' + # byooWorkloadMetrics: + # dropLabels: + # - metric_subset_enabled + # - custom_label ## @section resources Resource requests and limits for the nvca-operator container ## @param resources.limits.cpu CPU limit for the nvca-operator container diff --git a/src/compute-plane-services/nvca/internal/miniservice/metadata_configmap_test.go b/src/compute-plane-services/nvca/internal/miniservice/metadata_configmap_test.go index b6d5e3a8f..528eb2e7a 100644 --- a/src/compute-plane-services/nvca/internal/miniservice/metadata_configmap_test.go +++ b/src/compute-plane-services/nvca/internal/miniservice/metadata_configmap_test.go @@ -463,7 +463,7 @@ func TestBuildMiniserviceMetadata_RoundtripWithConfigMap(t *testing.T) { GeneralLabels: generalLabels, GeneralAnnotations: generalAnnotations, OTelCollectorEnvVars: []corev1.EnvVar{ - {Name: nvcaconfig.BYOOLogChunkMaxBodyBytesEnv, Value: "983040"}, + {Name: nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv, Value: "983040"}, }, }) require.NoError(t, err) diff --git a/src/compute-plane-services/nvca/internal/miniservice/reconcile.go b/src/compute-plane-services/nvca/internal/miniservice/reconcile.go index ace79ec11..6efc6165e 100644 --- a/src/compute-plane-services/nvca/internal/miniservice/reconcile.go +++ b/src/compute-plane-services/nvca/internal/miniservice/reconcile.go @@ -785,7 +785,7 @@ func (r *Reconciler) doInstall(ctx context.Context, metaInput.OTelCollectorEnvVars = append(metaInput.OTelCollectorEnvVars, collectorEnvs...) // The webhook special-cases Helm utils pods and skips metadata-carried collector // env injection, so inject the envs directly into the BYOO collector sidecar. - k8sutil.AddBYOOEnvVarsToPodSpec(&utilsPod.Spec, collectorEnvs) + k8sutil.AddBYOOOTelCollectorEnvVarsToPodSpec(&utilsPod.Spec, collectorEnvs) } // Task-specific mutators. diff --git a/src/compute-plane-services/nvca/internal/miniservice/reconcile_test.go b/src/compute-plane-services/nvca/internal/miniservice/reconcile_test.go index b5e24abc7..af3518321 100644 --- a/src/compute-plane-services/nvca/internal/miniservice/reconcile_test.go +++ b/src/compute-plane-services/nvca/internal/miniservice/reconcile_test.go @@ -179,6 +179,32 @@ func filterNVCFEnvVars(envs []corev1.EnvVar) []corev1.EnvVar { return result } +func envVarsByName(envs []corev1.EnvVar) map[string]string { + result := map[string]string{} + for _, env := range envs { + result[env.Name] = env.Value + } + return result +} + +func assertBYOOOTelCollectorEnvVars(t *testing.T, envs []corev1.EnvVar) { + t.Helper() + envsByName := envVarsByName(envs) + assert.Equal(t, "true", envsByName[nvcaconfig.BYOOLogChunkingEnabledEnv]) + assert.Equal(t, "262144", envsByName[nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv]) + assert.Equal(t, "true", envsByName[nvcaconfig.BYOOLogChunkDryRunEnv]) + encodedCollectorConfig, ok := envsByName[nvcaconfig.BYOOOTelCollectorConfigEnv] + require.True(t, ok) + decodedCollectorConfig, err := base64.StdEncoding.DecodeString(encodedCollectorConfig) + require.NoError(t, err) + var collectorConfig nvcaconfig.BYOOOTelCollectorConfig + require.NoError(t, json.Unmarshal(decodedCollectorConfig, &collectorConfig)) + assert.Equal(t, "30s", collectorConfig.ExporterHelper.Timeout) + assert.Equal(t, "true", envsByName[nvcaconfig.BYOOMetricSubsetEnabledEnv]) + assert.Contains(t, envsByName[nvcaconfig.BYOOMetricSubsetFilterConfigEnv], "metric.name") + assert.Equal(t, "metric_subset_enabled,custom_label", envsByName[nvcaconfig.BYOOWorkloadMetricsDropLabelsEnv]) +} + func TestReconcile_Function(t *testing.T) { ctx := newTestContext() testScheme := mgrScheme @@ -254,11 +280,15 @@ func TestReconcile_Function(t *testing.T) { Effect: corev1.TaintEffectNoSchedule, } r.cfg.Agent.SharedStorage.Server.Image = "smb:latest" - exporterBatchMaxSizeBytes := int64(1000000) r.cfg.Agent.BYOOLogChunking = nvcaconfig.BYOOLogChunkingConfig{ - MaxBodyBytes: 262144, - DryRun: true, - ExporterBatchMaxSizeBytes: &exporterBatchMaxSizeBytes, + Enabled: true, + MaxPayloadBytes: 262144, + DryRun: true, + } + r.cfg.Agent.BYOOOTelCollector = nvcaconfig.BYOOOTelCollectorConfig{ + ExporterHelper: nvcaconfig.BYOOOTelExporterHelperConfig{ + Timeout: "30s", + }, } r.cfg.Agent.BYOOMetricSubset = nvcaconfig.BYOOMetricSubsetConfig{ Enabled: true, @@ -667,13 +697,7 @@ rules: } } require.NotNil(t, byooCollector, "utils pod should include BYOO collector sidecar") - byooCollectorEnv := map[string]string{} - for _, env := range byooCollector.Env { - byooCollectorEnv[env.Name] = env.Value - } - assert.Equal(t, "262144", byooCollectorEnv[nvcaconfig.BYOOLogChunkMaxBodyBytesEnv]) - assert.Equal(t, "true", byooCollectorEnv[nvcaconfig.BYOOLogChunkDryRunEnv]) - assert.Equal(t, "1000000", byooCollectorEnv[nvcaconfig.BYOOLogExporterBatchMaxSizeBytesEnv]) + assertBYOOOTelCollectorEnvVars(t, byooCollector.Env) assert.Contains(t, utilsPod.Spec.Tolerations, configuredToleration) assert.Equal(t, mergeMaps(translatedLabels, map[string]string{ common.BYOOMetricsEgressTargetLabelKey: common.BYOOMetricsEgressTargetLabelValue, @@ -827,18 +851,10 @@ rules: for _, env := range msMeta.EnvVars { metaEnv[env.Name] = env.Value } - assert.NotContains(t, metaEnv, nvcaconfig.BYOOLogChunkMaxBodyBytesEnv) + assert.NotContains(t, metaEnv, nvcaconfig.BYOOLogChunkingEnabledEnv) + assert.NotContains(t, metaEnv, nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv) assert.NotContains(t, metaEnv, nvcaconfig.BYOOMetricSubsetEnabledEnv) - otelCollectorEnv := map[string]string{} - for _, env := range msMeta.OTelCollectorEnvVars { - otelCollectorEnv[env.Name] = env.Value - } - assert.Equal(t, "262144", otelCollectorEnv[nvcaconfig.BYOOLogChunkMaxBodyBytesEnv]) - assert.Equal(t, "true", otelCollectorEnv[nvcaconfig.BYOOLogChunkDryRunEnv]) - assert.Equal(t, "1000000", otelCollectorEnv[nvcaconfig.BYOOLogExporterBatchMaxSizeBytesEnv]) - assert.Equal(t, "true", otelCollectorEnv[nvcaconfig.BYOOMetricSubsetEnabledEnv]) - assert.Contains(t, otelCollectorEnv[nvcaconfig.BYOOMetricSubsetFilterConfigEnv], "metric.name") - assert.Equal(t, "metric_subset_enabled,custom_label", otelCollectorEnv[nvcaconfig.BYOOWorkloadMetricsDropLabelsEnv]) + assertBYOOOTelCollectorEnvVars(t, msMeta.OTelCollectorEnvVars) assert.Equal(t, nodefeatures.UniformInstanceTypeLabelKey, msMeta.NodeAffinityKey) assert.Equal(t, []corev1.Toleration{configuredToleration}, msMeta.Tolerations) @@ -2184,6 +2200,23 @@ func TestReconcile_Task(t *testing.T) { } r.cfg.Agent.SharedStorage.Server.Image = "smb:latest" + r.cfg.Agent.BYOOLogChunking = nvcaconfig.BYOOLogChunkingConfig{ + Enabled: true, + MaxPayloadBytes: 262144, + DryRun: true, + } + r.cfg.Agent.BYOOOTelCollector = nvcaconfig.BYOOOTelCollectorConfig{ + ExporterHelper: nvcaconfig.BYOOOTelExporterHelperConfig{ + Timeout: "30s", + }, + } + r.cfg.Agent.BYOOMetricSubset = nvcaconfig.BYOOMetricSubsetConfig{ + Enabled: true, + FilterConfig: "error_mode: ignore\nmetric_conditions:\n - 'metric.name == \"drop\"'\n", + } + r.cfg.Agent.BYOOWorkloadMetrics = nvcaconfig.BYOOWorkloadMetricsConfig{ + DropLabels: []string{"metric_subset_enabled", "custom_label"}, + } err := k8sutil.SetConfigDefaultResources(&r.cfg) require.NoError(t, err) @@ -2529,6 +2562,15 @@ rules: }) } } + var byooCollector *corev1.Container + for i := range utilsPod.Spec.Containers { + if utilsPod.Spec.Containers[i].Name == common.ByooOTelCollectorPodNameBase { + byooCollector = &utilsPod.Spec.Containers[i] + break + } + } + require.NotNil(t, byooCollector, "utils pod should include BYOO collector sidecar") + assertBYOOOTelCollectorEnvVars(t, byooCollector.Env) assert.Equal(t, mergeMaps(translatedLabels, map[string]string{ common.BYOOMetricsEgressTargetLabelKey: common.BYOOMetricsEgressTargetLabelValue, }), utilsPod.Labels) @@ -2642,6 +2684,12 @@ rules: assert.Equal(t, serviceAccountName, msMeta.ServiceAccountName) assert.NotEmpty(t, msMeta.EnvVars, "metadata should include workload env vars") assert.NotNil(t, msMeta.TerminationGracePeriodSeconds) + metaEnv := envVarsByName(msMeta.EnvVars) + assert.NotContains(t, metaEnv, nvcaconfig.BYOOLogChunkingEnabledEnv) + assert.NotContains(t, metaEnv, nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv) + assert.NotContains(t, metaEnv, nvcaconfig.BYOOMetricSubsetEnabledEnv) + assert.NotContains(t, metaEnv, nvcaconfig.BYOOOTelCollectorConfigEnv) + assertBYOOOTelCollectorEnvVars(t, msMeta.OTelCollectorEnvVars) gotSecrets := &corev1.SecretList{} err = r.Client.List(ctx, gotSecrets, client.InNamespace(ms.Spec.Namespace)) diff --git a/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars.go b/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars.go index 4b671a18a..5fca91d05 100644 --- a/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars.go +++ b/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars.go @@ -22,8 +22,8 @@ import ( corev1 "k8s.io/api/core/v1" ) -// AddBYOOEnvVarsToPodSpec injects env vars into only the BYOO OTel collector container. -func AddBYOOEnvVarsToPodSpec(podSpec *corev1.PodSpec, envs []corev1.EnvVar) { +// AddBYOOOTelCollectorEnvVarsToPodSpec injects env vars into only the BYOO OTel collector container. +func AddBYOOOTelCollectorEnvVarsToPodSpec(podSpec *corev1.PodSpec, envs []corev1.EnvVar) { if len(envs) == 0 { return } diff --git a/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars_test.go b/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars_test.go index b229c1c89..a5e271042 100644 --- a/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars_test.go +++ b/src/compute-plane-services/nvca/internal/util/k8sutil/byoo_env_vars_test.go @@ -26,16 +26,20 @@ import ( corev1 "k8s.io/api/core/v1" ) -func TestAddBYOOEnvVarsToPodSpecMutatesOnlyBYOOCollectorContainer(t *testing.T) { +func TestAddBYOOOTelCollectorEnvVarsToPodSpecMutatesOnlyBYOOCollectorContainer(t *testing.T) { envs := []corev1.EnvVar{ - {Name: nvcaconfig.BYOOLogChunkMaxBodyBytesEnv, Value: "983040"}, - {Name: nvcaconfig.BYOOLogExporterBatchMaxSizeBytesEnv, Value: "1000000"}, + {Name: nvcaconfig.BYOOLogChunkingEnabledEnv, Value: "true"}, + {Name: nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv, Value: "983040"}, + {Name: nvcaconfig.BYOODebugModeEnv, Value: "true"}, {Name: nvcaconfig.BYOOMetricSubsetEnabledEnv, Value: "true"}, + {Name: nvcaconfig.BYOOOTelCollectorConfigEnv, Value: "eyJleHBvcnRlckhlbHBlciI6eyJ0aW1lb3V0IjoiMzBzIn19"}, } expectedEnv := []corev1.EnvVar{ - {Name: nvcaconfig.BYOOLogChunkMaxBodyBytesEnv, Value: "983040"}, - {Name: nvcaconfig.BYOOLogExporterBatchMaxSizeBytesEnv, Value: "1000000"}, + {Name: nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv, Value: "983040"}, + {Name: nvcaconfig.BYOOLogChunkingEnabledEnv, Value: "true"}, + {Name: nvcaconfig.BYOODebugModeEnv, Value: "true"}, {Name: nvcaconfig.BYOOMetricSubsetEnabledEnv, Value: "true"}, + {Name: nvcaconfig.BYOOOTelCollectorConfigEnv, Value: "eyJleHBvcnRlckhlbHBlciI6eyJ0aW1lb3V0IjoiMzBzIn19"}, } pod := &corev1.Pod{ Spec: corev1.PodSpec{ @@ -43,7 +47,7 @@ func TestAddBYOOEnvVarsToPodSpecMutatesOnlyBYOOCollectorContainer(t *testing.T) { Name: common.ByooOTelCollectorPodNameBase, Env: []corev1.EnvVar{ - {Name: nvcaconfig.BYOOLogChunkMaxBodyBytesEnv, Value: "1000000"}, + {Name: nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv, Value: "1000000"}, }, }, {Name: "inference"}, @@ -51,7 +55,7 @@ func TestAddBYOOEnvVarsToPodSpecMutatesOnlyBYOOCollectorContainer(t *testing.T) }, } - AddBYOOEnvVarsToPodSpec(&pod.Spec, envs) + AddBYOOOTelCollectorEnvVarsToPodSpec(&pod.Spec, envs) assert.Equal(t, expectedEnv, pod.Spec.Containers[0].Env) assert.Empty(t, pod.Spec.Containers[1].Env) diff --git a/src/compute-plane-services/nvca/pkg/nvca/cli_test.go b/src/compute-plane-services/nvca/pkg/nvca/cli_test.go index daf52ac22..c18714520 100644 --- a/src/compute-plane-services/nvca/pkg/nvca/cli_test.go +++ b/src/compute-plane-services/nvca/pkg/nvca/cli_test.go @@ -137,8 +137,49 @@ agent: } require.NoError(t, err) require.NotNil(t, gotOpts) - require.NotNil(t, gotOpts.Config.Agent.BYOOLogChunking.ExporterBatchMaxSizeBytes) - assert.Equal(t, nvcaconfig.DefaultBYOOLogExporterBatchMaxSizeBytes, *gotOpts.Config.Agent.BYOOLogChunking.ExporterBatchMaxSizeBytes) + assert.False(t, gotOpts.Config.Agent.BYOOLogChunking.Enabled) + assert.Zero(t, gotOpts.Config.Agent.BYOOLogChunking.MaxPayloadBytes) + }) + + t.Run("enabled BYOO log chunking config preserves collector default handoff", func(t *testing.T) { + a, block := newMockCLIAgent() + var gotOpts *AgentOptions + cmd := newCobraCommand( + func(ctx context.Context, opts *AgentOptions) (cliAgent, error) { + gotOpts = opts + return a, nil + }, + setFlag, + initLogger, + ) + + cfgFilePath := filepath.Join(t.TempDir(), "config.yaml") + err := os.WriteFile(cfgFilePath, []byte(` +agent: + icmsURL: https://test.example.com + byooLogChunking: + enabled: true +`), 0600) + require.NoError(t, err) + + ctx, cancel := context.WithCancel(t.Context()) + errCh := make(chan error) + go func() { + cmd.SetArgs([]string{"--config=" + cfgFilePath}) + errCh <- cmd.ExecuteContext(ctx) + }() + + select { + case <-block: + cancel() + err = <-errCh + case err = <-errCh: + cancel() + } + require.NoError(t, err) + require.NotNil(t, gotOpts) + assert.True(t, gotOpts.Config.Agent.BYOOLogChunking.Enabled) + assert.Zero(t, gotOpts.Config.Agent.BYOOLogChunking.MaxPayloadBytes) }) t.Run("configured control plane endpoints populate agent options", func(t *testing.T) { diff --git a/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend.go b/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend.go index d6d966208..f0d18f43a 100644 --- a/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend.go +++ b/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend.go @@ -323,7 +323,7 @@ func (c K8sComputeBackend) translateFunctionLaunchSpecification( if !ok { continue } - k8sutil.AddBYOOEnvVarsToPodSpec(&pod.Spec, envs) + k8sutil.AddBYOOOTelCollectorEnvVarsToPodSpec(&pod.Spec, envs) } } diff --git a/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend_task_container.go b/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend_task_container.go index a8049d322..2b12f09ee 100644 --- a/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend_task_container.go +++ b/src/compute-plane-services/nvca/pkg/nvca/k8scomputebackend_task_container.go @@ -137,7 +137,7 @@ func (c K8sComputeBackend) applyContainerTaskCreationMessage(ctx context.Context if !ok { continue } - k8sutil.AddBYOOEnvVarsToPodSpec(&pod.Spec, envs) + k8sutil.AddBYOOOTelCollectorEnvVarsToPodSpec(&pod.Spec, envs) } ownerRefsForReq := getOwnerRefForRequest(req) diff --git a/src/compute-plane-services/nvca/pkg/operator/reconcile/nvcaagent_reconcile_test.go b/src/compute-plane-services/nvca/pkg/operator/reconcile/nvcaagent_reconcile_test.go index 751c6b2bb..d6406cc17 100644 --- a/src/compute-plane-services/nvca/pkg/operator/reconcile/nvcaagent_reconcile_test.go +++ b/src/compute-plane-services/nvca/pkg/operator/reconcile/nvcaagent_reconcile_test.go @@ -2837,9 +2837,24 @@ func TestEncodeAgentConfig_MergesBYOOConfig(t *testing.T) { }, }, BYOOLogChunking: nvcaconfig.BYOOLogChunkingConfig{ - MaxBodyBytes: 983040, - DryRun: true, - ExporterBatchMaxSizeBytes: ptr.To[int64](1000000), + Enabled: true, + MaxPayloadBytes: 983040, + DryRun: true, + }, + BYOOOTelCollector: nvcaconfig.BYOOOTelCollectorConfig{ + ExporterHelper: nvcaconfig.BYOOOTelExporterHelperConfig{ + Timeout: "30s", + SendingQueue: nvcaconfig.BYOOOTelSendingQueueConfig{ + Batch: nvcaconfig.BYOOOTelSendingQueueBatchConfig{ + Sizer: "bytes", + MinSize: ptr.To[int64](1000000), + MaxSize: ptr.To[int64](1000000), + }, + }, + }, + }, + BYOODebugMode: nvcaconfig.BYOODebugModeConfig{ + Enabled: true, }, BYOOMetricSubset: nvcaconfig.BYOOMetricSubsetConfig{ Enabled: true, @@ -2860,10 +2875,15 @@ func TestEncodeAgentConfig_MergesBYOOConfig(t *testing.T) { fluentBitRequests := corev1.ResourceList(got.Agent.BYOOFluentBitResources.Requests) assert.True(t, byooLimits.Memory().Equal(resource.MustParse("2Gi"))) assert.True(t, fluentBitRequests.Cpu().Equal(resource.MustParse("100m"))) - assert.Equal(t, int64(983040), got.Agent.BYOOLogChunking.MaxBodyBytes) + assert.True(t, got.Agent.BYOOLogChunking.Enabled) + assert.Equal(t, int64(983040), got.Agent.BYOOLogChunking.MaxPayloadBytes) assert.True(t, got.Agent.BYOOLogChunking.DryRun) - require.NotNil(t, got.Agent.BYOOLogChunking.ExporterBatchMaxSizeBytes) - assert.Equal(t, int64(1000000), *got.Agent.BYOOLogChunking.ExporterBatchMaxSizeBytes) + assert.Equal(t, "30s", got.Agent.BYOOOTelCollector.ExporterHelper.Timeout) + require.NotNil(t, got.Agent.BYOOOTelCollector.ExporterHelper.SendingQueue.Batch.MinSize) + require.NotNil(t, got.Agent.BYOOOTelCollector.ExporterHelper.SendingQueue.Batch.MaxSize) + assert.Equal(t, int64(1000000), *got.Agent.BYOOOTelCollector.ExporterHelper.SendingQueue.Batch.MinSize) + assert.Equal(t, int64(1000000), *got.Agent.BYOOOTelCollector.ExporterHelper.SendingQueue.Batch.MaxSize) + assert.True(t, got.Agent.BYOODebugMode.Enabled) assert.True(t, got.Agent.BYOOMetricSubset.Enabled) assert.Contains(t, got.Agent.BYOOMetricSubset.FilterConfig, "metric.name") assert.Equal(t, []string{"metric_subset_enabled", "custom_label"}, got.Agent.BYOOWorkloadMetrics.DropLabels) diff --git a/src/compute-plane-services/nvca/pkg/types/miniservice_types_test.go b/src/compute-plane-services/nvca/pkg/types/miniservice_types_test.go index a6289ebe7..f437f8fef 100644 --- a/src/compute-plane-services/nvca/pkg/types/miniservice_types_test.go +++ b/src/compute-plane-services/nvca/pkg/types/miniservice_types_test.go @@ -51,7 +51,7 @@ func TestMiniserviceMetadata_ToConfigMapData_Roundtrip(t *testing.T) { {Name: "EXTRA_ENV", Value: "extra-value"}, }, OTelCollectorEnvVars: []corev1.EnvVar{ - {Name: "BYOO_LOG_CHUNK_MAX_BODY_BYTES", Value: "983040"}, + {Name: "BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES", Value: "983040"}, }, NodeAffinityKey: "nvca.nvcf.nvidia.io/instance-type", NodeAffinityValue: "ON-PREM.GPU.A100x2", diff --git a/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook.go b/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook.go index ca20b3f27..e6c7dbd54 100644 --- a/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook.go +++ b/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook.go @@ -366,7 +366,7 @@ func (w *miniserviceMutatingWebhook) mutatePodSpec(ps *corev1.PodSpec, meta nvca } _ = translatecommon.AddMixedEnvsToContainers(overrideableEnvVars, ps.InitContainers, meta.EnvVars...) _ = translatecommon.AddMixedEnvsToContainers(overrideableEnvVars, ps.Containers, meta.EnvVars...) - k8sutil.AddBYOOEnvVarsToPodSpec(ps, meta.OTelCollectorEnvVars) + k8sutil.AddBYOOOTelCollectorEnvVarsToPodSpec(ps, meta.OTelCollectorEnvVars) // If the pod is allowed k8s api access (ex. when an operator created it), and it has set a non-default service account, // use it instead of the service account override. diff --git a/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook_test.go b/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook_test.go index f76f2d906..28359185a 100644 --- a/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook_test.go +++ b/src/compute-plane-services/nvca/pkg/webhook/miniservice_mutating_webhook_test.go @@ -1389,9 +1389,11 @@ func TestMiniserviceMutatePodSpec_BYOOOTelCollectorEnvVarsOnlyCollector(t *testi {Name: "SHARED_ENV", Value: "shared"}, }, OTelCollectorEnvVars: []corev1.EnvVar{ - {Name: nvcaconfig.BYOOLogChunkMaxBodyBytesEnv, Value: "983040"}, - {Name: nvcaconfig.BYOOLogExporterBatchMaxSizeBytesEnv, Value: "1000000"}, + {Name: nvcaconfig.BYOOLogChunkingEnabledEnv, Value: "true"}, + {Name: nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv, Value: "983040"}, + {Name: nvcaconfig.BYOODebugModeEnv, Value: "true"}, {Name: nvcaconfig.BYOOMetricSubsetEnabledEnv, Value: "true"}, + {Name: nvcaconfig.BYOOOTelCollectorConfigEnv, Value: "eyJleHBvcnRlckhlbHBlciI6eyJ0aW1lb3V0IjoiMzBzIn19"}, }, } ps := corev1.PodSpec{ @@ -1401,7 +1403,7 @@ func TestMiniserviceMutatePodSpec_BYOOOTelCollectorEnvVarsOnlyCollector(t *testi { Name: common.ByooOTelCollectorPodNameBase, Env: []corev1.EnvVar{ - {Name: nvcaconfig.BYOOLogChunkMaxBodyBytesEnv, Value: "1000000"}, + {Name: nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv, Value: "1000000"}, }, }, }, @@ -1416,13 +1418,21 @@ func TestMiniserviceMutatePodSpec_BYOOOTelCollectorEnvVarsOnlyCollector(t *testi assert.Equal(t, "shared", initByName["SHARED_ENV"]) assert.Equal(t, "shared", appByName["SHARED_ENV"]) assert.Equal(t, "shared", collectorByName["SHARED_ENV"]) - assert.NotContains(t, initByName, nvcaconfig.BYOOLogChunkMaxBodyBytesEnv) - assert.NotContains(t, appByName, nvcaconfig.BYOOLogChunkMaxBodyBytesEnv) + assert.NotContains(t, initByName, nvcaconfig.BYOOLogChunkingEnabledEnv) + assert.NotContains(t, initByName, nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv) + assert.NotContains(t, initByName, nvcaconfig.BYOODebugModeEnv) + assert.NotContains(t, appByName, nvcaconfig.BYOOLogChunkingEnabledEnv) + assert.NotContains(t, appByName, nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv) assert.NotContains(t, initByName, nvcaconfig.BYOOMetricSubsetEnabledEnv) assert.NotContains(t, appByName, nvcaconfig.BYOOMetricSubsetEnabledEnv) - assert.Equal(t, "983040", collectorByName[nvcaconfig.BYOOLogChunkMaxBodyBytesEnv]) - assert.Equal(t, "1000000", collectorByName[nvcaconfig.BYOOLogExporterBatchMaxSizeBytesEnv]) + assert.NotContains(t, initByName, nvcaconfig.BYOOOTelCollectorConfigEnv) + assert.NotContains(t, appByName, nvcaconfig.BYOOOTelCollectorConfigEnv) + assert.NotContains(t, appByName, nvcaconfig.BYOODebugModeEnv) + assert.Equal(t, "true", collectorByName[nvcaconfig.BYOOLogChunkingEnabledEnv]) + assert.Equal(t, "983040", collectorByName[nvcaconfig.BYOOLogChunkMaxPayloadBytesEnv]) + assert.Equal(t, "true", collectorByName[nvcaconfig.BYOODebugModeEnv]) assert.Equal(t, "true", collectorByName[nvcaconfig.BYOOMetricSubsetEnabledEnv]) + assert.Equal(t, "eyJleHBvcnRlckhlbHBlciI6eyJ0aW1lb3V0IjoiMzBzIn19", collectorByName[nvcaconfig.BYOOOTelCollectorConfigEnv]) } func envNames(envs []corev1.EnvVar) []string { diff --git a/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/types.go b/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/types.go index 19a148224..50d6d9456 100644 --- a/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/types.go +++ b/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/types.go @@ -16,6 +16,8 @@ package nvcaconfig import ( + "encoding/base64" + "encoding/json" "fmt" "reflect" "strconv" @@ -53,68 +55,90 @@ type ResourceRequirements struct { } const ( - // BYOOLogChunkMaxBodyBytesEnv is the BYOO collector env var that enables log chunking. + // BYOOLogChunkMaxPayloadBytesEnv is the BYOO collector env var for the log chunk payload size override. + BYOOLogChunkMaxPayloadBytesEnv = "BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES" + // BYOOLogChunkMaxBodyBytesEnv is the deprecated BYOO collector env var for the log chunk size override. + // + // Deprecated: use BYOOLogChunkMaxPayloadBytesEnv. BYOOLogChunkMaxBodyBytesEnv = "BYOO_LOG_CHUNK_MAX_BODY_BYTES" // BYOOLogChunkDryRunEnv is the BYOO collector env var that records chunking metrics without mutating logs. BYOOLogChunkDryRunEnv = "BYOO_LOG_CHUNK_DRY_RUN" - // BYOOLogExporterBatchMaxSizeBytesEnv is the BYOO collector env var for exporterhelper byte batch splitting. - BYOOLogExporterBatchMaxSizeBytesEnv = "BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES" + // BYOOLogChunkingEnabledEnv is the BYOO collector env var that enables log chunking. + BYOOLogChunkingEnabledEnv = "BYOO_LOG_CHUNKING_ENABLED" + // BYOODebugModeEnv is the BYOO collector env var that enables collector debug mode. + BYOODebugModeEnv = "BYOO_DEBUG_MODE" // BYOOMetricSubsetEnabledEnv is the BYOO collector env var that enables the metric subset pipeline. BYOOMetricSubsetEnabledEnv = "BYOO_METRIC_SUBSET_ENABLED" // BYOOMetricSubsetFilterConfigEnv is the BYOO collector env var for metric subset filter config YAML. BYOOMetricSubsetFilterConfigEnv = "BYOO_METRIC_SUBSET_FILTER_CONFIG" // BYOOWorkloadMetricsDropLabelsEnv is the BYOO collector env var for workload metrics resource labels to drop. BYOOWorkloadMetricsDropLabelsEnv = "BYOO_WORKLOAD_METRICS_DROP_LABELS" - - // DefaultBYOOLogExporterBatchMaxSizeBytes keeps serialized exporter batches near the backend limit. - DefaultBYOOLogExporterBatchMaxSizeBytes int64 = 1000000 + // BYOOOTelCollectorConfigEnv is the BYOO collector env var for structured collector config. + BYOOOTelCollectorConfigEnv = "BYOO_OTEL_COLLECTOR_CONFIG_B64" ) type BYOOLogChunkingConfig struct { - MaxBodyBytes int64 `yaml:"maxBodyBytes,omitempty"` - DryRun bool `yaml:"dryRun,omitempty"` - ExporterBatchMaxSizeBytes *int64 `yaml:"exporterBatchMaxSizeBytes,omitempty"` + Enabled bool `mapstructure:"enabled" yaml:"enabled,omitempty" json:"enabled,omitempty"` + MaxPayloadBytes int64 `mapstructure:"maxPayloadBytes" yaml:"maxPayloadBytes,omitempty" json:"maxPayloadBytes,omitempty"` + // MaxBodyBytes is a deprecated alias for MaxPayloadBytes. + // + // Deprecated: use MaxPayloadBytes / maxPayloadBytes. + MaxBodyBytes int64 `mapstructure:"maxBodyBytes" yaml:"maxBodyBytes,omitempty" json:"maxBodyBytes,omitempty"` + DryRun bool `mapstructure:"dryRun" yaml:"dryRun,omitempty" json:"dryRun,omitempty"` } func (c BYOOLogChunkingConfig) IsZero() bool { - return c.MaxBodyBytes == 0 && !c.DryRun && c.ExporterBatchMaxSizeBytes == nil + return !c.Enabled && c.MaxPayloadBytes == 0 && c.MaxBodyBytes == 0 && !c.DryRun } func (c BYOOLogChunkingConfig) Complete() BYOOLogChunkingConfig { - if c.ExporterBatchMaxSizeBytes == nil { - defaultValue := DefaultBYOOLogExporterBatchMaxSizeBytes - c.ExporterBatchMaxSizeBytes = &defaultValue + if c.MaxPayloadBytes == 0 && c.MaxBodyBytes != 0 { + c.MaxPayloadBytes = c.MaxBodyBytes } return c } // EnvVars returns BYOO collector env vars for the supplied config. func (c BYOOLogChunkingConfig) EnvVars() []corev1.EnvVar { + c = c.Complete() envs := []corev1.EnvVar{} - if c.MaxBodyBytes > 0 { + if c.Enabled { envs = append(envs, corev1.EnvVar{ - Name: BYOOLogChunkMaxBodyBytesEnv, - Value: strconv.FormatInt(c.MaxBodyBytes, 10), + Name: BYOOLogChunkingEnabledEnv, + Value: strconv.FormatBool(c.Enabled), }) } - if c.DryRun { + if c.MaxPayloadBytes > 0 { envs = append(envs, corev1.EnvVar{ - Name: BYOOLogChunkDryRunEnv, - Value: strconv.FormatBool(c.DryRun), + Name: BYOOLogChunkMaxPayloadBytesEnv, + Value: strconv.FormatInt(c.MaxPayloadBytes, 10), }) } - if c.ExporterBatchMaxSizeBytes != nil && *c.ExporterBatchMaxSizeBytes > 0 { + if c.DryRun { envs = append(envs, corev1.EnvVar{ - Name: BYOOLogExporterBatchMaxSizeBytesEnv, - Value: strconv.FormatInt(*c.ExporterBatchMaxSizeBytes, 10), + Name: BYOOLogChunkDryRunEnv, + Value: strconv.FormatBool(c.DryRun), }) } return envs } -// BYOOLogChunkingEnvVars returns BYOO collector env vars for the supplied config. -func BYOOLogChunkingEnvVars(config BYOOLogChunkingConfig) []corev1.EnvVar { - return config.EnvVars() +type BYOODebugModeConfig struct { + Enabled bool `yaml:"enabled,omitempty"` +} + +func (c BYOODebugModeConfig) IsZero() bool { + return !c.Enabled +} + +func (c BYOODebugModeConfig) EnvVars() []corev1.EnvVar { + if !c.Enabled { + return nil + } + return []corev1.EnvVar{{ + Name: BYOODebugModeEnv, + Value: strconv.FormatBool(c.Enabled), + }} } type BYOOMetricSubsetConfig struct { @@ -162,6 +186,135 @@ func (c BYOOWorkloadMetricsConfig) EnvVars() []corev1.EnvVar { }} } +// BYOOOTelCollectorConfig configures BYOO OTel collector rendering behavior. +type BYOOOTelCollectorConfig struct { + ExporterHelper BYOOOTelExporterHelperConfig `mapstructure:"exporterHelper" yaml:"exporterHelper,omitempty" json:"exporterHelper,omitempty"` + MemoryLimiter BYOOOTelMemoryLimiterConfig `mapstructure:"memoryLimiter" yaml:"memoryLimiter,omitempty" json:"memoryLimiter,omitempty"` + Batch BYOOOTelBatchConfig `mapstructure:"batch" yaml:"batch,omitempty" json:"batch,omitempty"` + LogBatch BYOOOTelBatchConfig `mapstructure:"logBatch" yaml:"logBatch,omitempty" json:"logBatch,omitempty"` +} + +// IsZero returns true when no collector rendering overrides are configured. +func (c BYOOOTelCollectorConfig) IsZero() bool { + return c.ExporterHelper.IsZero() && + c.MemoryLimiter.IsZero() && + c.Batch.IsZero() && + c.LogBatch.IsZero() +} + +// EnvVars returns the BYOO collector env vars for the structured config. +func (c BYOOOTelCollectorConfig) EnvVars() []corev1.EnvVar { + if c.IsZero() { + return nil + } + data, err := json.Marshal(c) + if err != nil { + panic(fmt.Sprintf("code bug: marshal BYOO OTel collector config: %v", err)) + } + return []corev1.EnvVar{{ + Name: BYOOOTelCollectorConfigEnv, + Value: base64.StdEncoding.EncodeToString(data), + }} +} + +// BYOOOTelExporterHelperConfig configures common exporterhelper settings for BYOO exporters. +type BYOOOTelExporterHelperConfig struct { + Timeout string `mapstructure:"timeout" yaml:"timeout,omitempty" json:"timeout,omitempty"` + RetryOnFailure BYOOOTelRetryOnFailureConfig `mapstructure:"retryOnFailure" yaml:"retryOnFailure,omitempty" json:"retryOnFailure,omitempty"` + SendingQueue BYOOOTelSendingQueueConfig `mapstructure:"sendingQueue" yaml:"sendingQueue,omitempty" json:"sendingQueue,omitempty"` +} + +// IsZero returns true when no exporterhelper overrides are configured. +func (c BYOOOTelExporterHelperConfig) IsZero() bool { + return c.Timeout == "" && c.RetryOnFailure.IsZero() && c.SendingQueue.IsZero() +} + +// BYOOOTelRetryOnFailureConfig configures exporterhelper retry_on_failure settings. +type BYOOOTelRetryOnFailureConfig struct { + Enabled *bool `mapstructure:"enabled" yaml:"enabled,omitempty" json:"enabled,omitempty"` + InitialInterval string `mapstructure:"initialInterval" yaml:"initialInterval,omitempty" json:"initialInterval,omitempty"` + MaxInterval string `mapstructure:"maxInterval" yaml:"maxInterval,omitempty" json:"maxInterval,omitempty"` + MaxElapsedTime string `mapstructure:"maxElapsedTime" yaml:"maxElapsedTime,omitempty" json:"maxElapsedTime,omitempty"` +} + +// IsZero returns true when no retry_on_failure overrides are configured. +func (c BYOOOTelRetryOnFailureConfig) IsZero() bool { + return c.Enabled == nil && c.InitialInterval == "" && c.MaxInterval == "" && c.MaxElapsedTime == "" +} + +// BYOOOTelSendingQueueConfig configures exporterhelper sending_queue settings. +type BYOOOTelSendingQueueConfig struct { + Enabled *bool `mapstructure:"enabled" yaml:"enabled,omitempty" json:"enabled,omitempty"` + NumConsumers *int64 `mapstructure:"numConsumers" yaml:"numConsumers,omitempty" json:"numConsumers,omitempty"` + QueueSize *int64 `mapstructure:"queueSize" yaml:"queueSize,omitempty" json:"queueSize,omitempty"` + Sizer string `mapstructure:"sizer" yaml:"sizer,omitempty" json:"sizer,omitempty"` + Storage string `mapstructure:"storage" yaml:"storage,omitempty" json:"storage,omitempty"` + BlockOnOverflow *bool `mapstructure:"blockOnOverflow" yaml:"blockOnOverflow,omitempty" json:"blockOnOverflow,omitempty"` + WaitForResult *bool `mapstructure:"waitForResult" yaml:"waitForResult,omitempty" json:"waitForResult,omitempty"` + Batch BYOOOTelSendingQueueBatchConfig `mapstructure:"batch" yaml:"batch,omitempty" json:"batch,omitempty"` +} + +// IsZero returns true when no sending_queue overrides are configured. +func (c BYOOOTelSendingQueueConfig) IsZero() bool { + return c.Enabled == nil && + c.NumConsumers == nil && + c.QueueSize == nil && + c.Sizer == "" && + c.Storage == "" && + c.BlockOnOverflow == nil && + c.WaitForResult == nil && + c.Batch.IsZero() +} + +// BYOOOTelSendingQueueBatchConfig configures exporterhelper sending_queue.batch settings. +type BYOOOTelSendingQueueBatchConfig struct { + FlushTimeout string `mapstructure:"flushTimeout" yaml:"flushTimeout,omitempty" json:"flushTimeout,omitempty"` + Sizer string `mapstructure:"sizer" yaml:"sizer,omitempty" json:"sizer,omitempty"` + MinSize *int64 `mapstructure:"minSize" yaml:"minSize,omitempty" json:"minSize,omitempty"` + MaxSize *int64 `mapstructure:"maxSize" yaml:"maxSize,omitempty" json:"maxSize,omitempty"` +} + +// IsZero returns true when no sending_queue.batch overrides are configured. +func (c BYOOOTelSendingQueueBatchConfig) IsZero() bool { + return c.FlushTimeout == "" && c.Sizer == "" && c.MinSize == nil && c.MaxSize == nil +} + +// BYOOOTelMemoryLimiterConfig configures the BYOO collector memory_limiter processor. +type BYOOOTelMemoryLimiterConfig struct { + CheckInterval string `mapstructure:"checkInterval" yaml:"checkInterval,omitempty" json:"checkInterval,omitempty"` + LimitMiB *int64 `mapstructure:"limitMiB" yaml:"limitMiB,omitempty" json:"limitMiB,omitempty"` + SpikeLimitMiB *int64 `mapstructure:"spikeLimitMiB" yaml:"spikeLimitMiB,omitempty" json:"spikeLimitMiB,omitempty"` + LimitPercentage *int64 `mapstructure:"limitPercentage" yaml:"limitPercentage,omitempty" json:"limitPercentage,omitempty"` + SpikeLimitPercentage *int64 `mapstructure:"spikeLimitPercentage" yaml:"spikeLimitPercentage,omitempty" json:"spikeLimitPercentage,omitempty"` +} + +// IsZero returns true when no memory_limiter overrides are configured. +func (c BYOOOTelMemoryLimiterConfig) IsZero() bool { + return c.CheckInterval == "" && + c.LimitMiB == nil && + c.SpikeLimitMiB == nil && + c.LimitPercentage == nil && + c.SpikeLimitPercentage == nil +} + +// BYOOOTelBatchConfig configures the BYOO collector batch processor. +type BYOOOTelBatchConfig struct { + Timeout string `mapstructure:"timeout" yaml:"timeout,omitempty" json:"timeout,omitempty"` + SendBatchSize *int64 `mapstructure:"sendBatchSize" yaml:"sendBatchSize,omitempty" json:"sendBatchSize,omitempty"` + SendBatchMaxSize *int64 `mapstructure:"sendBatchMaxSize" yaml:"sendBatchMaxSize,omitempty" json:"sendBatchMaxSize,omitempty"` + MetadataKeys []string `mapstructure:"metadataKeys" yaml:"metadataKeys,omitempty" json:"metadataKeys,omitempty"` + MetadataCardinalityLimit *int64 `mapstructure:"metadataCardinalityLimit" yaml:"metadataCardinalityLimit,omitempty" json:"metadataCardinalityLimit,omitempty"` +} + +// IsZero returns true when no batch processor overrides are configured. +func (c BYOOOTelBatchConfig) IsZero() bool { + return c.Timeout == "" && + c.SendBatchSize == nil && + c.SendBatchMaxSize == nil && + len(c.MetadataKeys) == 0 && + c.MetadataCardinalityLimit == nil +} + func (r *ResourceRequirements) ToK8sResourceRequirements() corev1.ResourceRequirements { return corev1.ResourceRequirements{ Limits: corev1.ResourceList(r.Limits), @@ -390,14 +543,20 @@ type AgentConfig struct { // Quantities must be strings. BYOOFluentBitResources ResourceRequirements `yaml:",omitempty"` - // BYOOLogChunking contains BYOO OTel collector log chunking and exporter batch settings. - BYOOLogChunking BYOOLogChunkingConfig `yaml:",omitempty"` + // BYOOLogChunking contains BYOO OTel collector log chunking settings. + BYOOLogChunking BYOOLogChunkingConfig `mapstructure:"byooLogChunking" yaml:"byooLogChunking,omitempty" json:"byooLogChunking,omitempty"` + + // BYOODebugMode enables BYOO OTel collector debug logs and debug exporter fanout. + BYOODebugMode BYOODebugModeConfig `mapstructure:"byooDebugMode" yaml:"byooDebugMode,omitempty" json:"byooDebugMode,omitempty"` // BYOOMetricSubset contains BYOO OTel collector metric subset pipeline settings. BYOOMetricSubset BYOOMetricSubsetConfig `yaml:"byooMetricSubset,omitempty"` // BYOOWorkloadMetrics contains settings for the generated workload metrics pipeline. BYOOWorkloadMetrics BYOOWorkloadMetricsConfig `yaml:"byooWorkloadMetrics,omitempty"` + + // BYOOOTelCollector contains structured BYOO OTel collector rendering settings. + BYOOOTelCollector BYOOOTelCollectorConfig `mapstructure:"byooOtelCollector" yaml:"byooOtelCollector,omitempty"` } func (t AgentConfig) Complete(env Environment) AgentConfig { @@ -413,8 +572,10 @@ func (t AgentConfig) Complete(env Environment) AgentConfig { // BYOOOTelCollectorEnvVars returns env vars that must be set only on the BYOO OTel collector container. func (t AgentConfig) BYOOOTelCollectorEnvVars() []corev1.EnvVar { envs := t.BYOOLogChunking.EnvVars() + envs = append(envs, t.BYOODebugMode.EnvVars()...) envs = append(envs, t.BYOOMetricSubset.EnvVars()...) - return append(envs, t.BYOOWorkloadMetrics.EnvVars()...) + envs = append(envs, t.BYOOWorkloadMetrics.EnvVars()...) + return append(envs, t.BYOOOTelCollector.EnvVars()...) } const ( diff --git a/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go b/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go index f13411198..2924ec332 100644 --- a/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go +++ b/src/compute-plane-services/nvca/vendor/github.com/NVIDIA/nvcf/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go @@ -70,9 +70,11 @@ func (in *AgentConfig) DeepCopyInto(out *AgentConfig) { } in.BYOOResources.DeepCopyInto(&out.BYOOResources) in.BYOOFluentBitResources.DeepCopyInto(&out.BYOOFluentBitResources) - in.BYOOLogChunking.DeepCopyInto(&out.BYOOLogChunking) + out.BYOOLogChunking = in.BYOOLogChunking + out.BYOODebugMode = in.BYOODebugMode out.BYOOMetricSubset = in.BYOOMetricSubset in.BYOOWorkloadMetrics.DeepCopyInto(&out.BYOOWorkloadMetrics) + in.BYOOOTelCollector.DeepCopyInto(&out.BYOOOTelCollector) return } @@ -135,13 +137,24 @@ func (in *AuthzConfig) DeepCopy() *AuthzConfig { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BYOOLogChunkingConfig) DeepCopyInto(out *BYOOLogChunkingConfig) { +func (in *BYOODebugModeConfig) DeepCopyInto(out *BYOODebugModeConfig) { *out = *in - if in.ExporterBatchMaxSizeBytes != nil { - in, out := &in.ExporterBatchMaxSizeBytes, &out.ExporterBatchMaxSizeBytes - *out = new(int64) - **out = **in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOODebugModeConfig. +func (in *BYOODebugModeConfig) DeepCopy() *BYOODebugModeConfig { + if in == nil { + return nil } + out := new(BYOODebugModeConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOLogChunkingConfig) DeepCopyInto(out *BYOOLogChunkingConfig) { + *out = *in return } @@ -171,6 +184,205 @@ func (in *BYOOMetricSubsetConfig) DeepCopy() *BYOOMetricSubsetConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelBatchConfig) DeepCopyInto(out *BYOOOTelBatchConfig) { + *out = *in + if in.SendBatchSize != nil { + in, out := &in.SendBatchSize, &out.SendBatchSize + *out = new(int64) + **out = **in + } + if in.SendBatchMaxSize != nil { + in, out := &in.SendBatchMaxSize, &out.SendBatchMaxSize + *out = new(int64) + **out = **in + } + if in.MetadataKeys != nil { + in, out := &in.MetadataKeys, &out.MetadataKeys + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.MetadataCardinalityLimit != nil { + in, out := &in.MetadataCardinalityLimit, &out.MetadataCardinalityLimit + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelBatchConfig. +func (in *BYOOOTelBatchConfig) DeepCopy() *BYOOOTelBatchConfig { + if in == nil { + return nil + } + out := new(BYOOOTelBatchConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelCollectorConfig) DeepCopyInto(out *BYOOOTelCollectorConfig) { + *out = *in + in.ExporterHelper.DeepCopyInto(&out.ExporterHelper) + in.MemoryLimiter.DeepCopyInto(&out.MemoryLimiter) + in.Batch.DeepCopyInto(&out.Batch) + in.LogBatch.DeepCopyInto(&out.LogBatch) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelCollectorConfig. +func (in *BYOOOTelCollectorConfig) DeepCopy() *BYOOOTelCollectorConfig { + if in == nil { + return nil + } + out := new(BYOOOTelCollectorConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelExporterHelperConfig) DeepCopyInto(out *BYOOOTelExporterHelperConfig) { + *out = *in + in.RetryOnFailure.DeepCopyInto(&out.RetryOnFailure) + in.SendingQueue.DeepCopyInto(&out.SendingQueue) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelExporterHelperConfig. +func (in *BYOOOTelExporterHelperConfig) DeepCopy() *BYOOOTelExporterHelperConfig { + if in == nil { + return nil + } + out := new(BYOOOTelExporterHelperConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelMemoryLimiterConfig) DeepCopyInto(out *BYOOOTelMemoryLimiterConfig) { + *out = *in + if in.LimitMiB != nil { + in, out := &in.LimitMiB, &out.LimitMiB + *out = new(int64) + **out = **in + } + if in.SpikeLimitMiB != nil { + in, out := &in.SpikeLimitMiB, &out.SpikeLimitMiB + *out = new(int64) + **out = **in + } + if in.LimitPercentage != nil { + in, out := &in.LimitPercentage, &out.LimitPercentage + *out = new(int64) + **out = **in + } + if in.SpikeLimitPercentage != nil { + in, out := &in.SpikeLimitPercentage, &out.SpikeLimitPercentage + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelMemoryLimiterConfig. +func (in *BYOOOTelMemoryLimiterConfig) DeepCopy() *BYOOOTelMemoryLimiterConfig { + if in == nil { + return nil + } + out := new(BYOOOTelMemoryLimiterConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelRetryOnFailureConfig) DeepCopyInto(out *BYOOOTelRetryOnFailureConfig) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelRetryOnFailureConfig. +func (in *BYOOOTelRetryOnFailureConfig) DeepCopy() *BYOOOTelRetryOnFailureConfig { + if in == nil { + return nil + } + out := new(BYOOOTelRetryOnFailureConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelSendingQueueBatchConfig) DeepCopyInto(out *BYOOOTelSendingQueueBatchConfig) { + *out = *in + if in.MinSize != nil { + in, out := &in.MinSize, &out.MinSize + *out = new(int64) + **out = **in + } + if in.MaxSize != nil { + in, out := &in.MaxSize, &out.MaxSize + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelSendingQueueBatchConfig. +func (in *BYOOOTelSendingQueueBatchConfig) DeepCopy() *BYOOOTelSendingQueueBatchConfig { + if in == nil { + return nil + } + out := new(BYOOOTelSendingQueueBatchConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelSendingQueueConfig) DeepCopyInto(out *BYOOOTelSendingQueueConfig) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NumConsumers != nil { + in, out := &in.NumConsumers, &out.NumConsumers + *out = new(int64) + **out = **in + } + if in.QueueSize != nil { + in, out := &in.QueueSize, &out.QueueSize + *out = new(int64) + **out = **in + } + if in.BlockOnOverflow != nil { + in, out := &in.BlockOnOverflow, &out.BlockOnOverflow + *out = new(bool) + **out = **in + } + if in.WaitForResult != nil { + in, out := &in.WaitForResult, &out.WaitForResult + *out = new(bool) + **out = **in + } + in.Batch.DeepCopyInto(&out.Batch) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelSendingQueueConfig. +func (in *BYOOOTelSendingQueueConfig) DeepCopy() *BYOOOTelSendingQueueConfig { + if in == nil { + return nil + } + out := new(BYOOOTelSendingQueueConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *BYOOWorkloadMetricsConfig) DeepCopyInto(out *BYOOWorkloadMetricsConfig) { *out = *in diff --git a/src/libraries/go/lib/pkg/types/nvca/config/config_test.go b/src/libraries/go/lib/pkg/types/nvca/config/config_test.go index fcb1751bb..f875520ea 100644 --- a/src/libraries/go/lib/pkg/types/nvca/config/config_test.go +++ b/src/libraries/go/lib/pkg/types/nvca/config/config_test.go @@ -196,6 +196,29 @@ agent: assert.Equal(t, cfg, gotDecodedCfg) } +func TestConfig_EncodeDecode_BYOOConfigSwitches(t *testing.T) { + cfg, err := DecodeConfig([]byte(` +agent: + byooLogChunking: + enabled: true + maxBodyBytes: 131072 + maxPayloadBytes: 262144 + byooDebugMode: + enabled: true + byooOtelCollector: + exporterHelper: + timeout: 30s +`)) + require.NoError(t, err) + + completed := cfg.Complete() + assert.True(t, completed.Agent.BYOOLogChunking.Enabled) + assert.Equal(t, int64(262144), completed.Agent.BYOOLogChunking.MaxPayloadBytes) + assert.Equal(t, int64(131072), completed.Agent.BYOOLogChunking.MaxBodyBytes) + assert.True(t, completed.Agent.BYOODebugMode.Enabled) + assert.Equal(t, "30s", completed.Agent.BYOOOTelCollector.ExporterHelper.Timeout) +} + func TestConfig_EncodeDecode_Tolerations(t *testing.T) { cfg := Config{ Agent: AgentConfig{ diff --git a/src/libraries/go/lib/pkg/types/nvca/config/types.go b/src/libraries/go/lib/pkg/types/nvca/config/types.go index 19a148224..50d6d9456 100644 --- a/src/libraries/go/lib/pkg/types/nvca/config/types.go +++ b/src/libraries/go/lib/pkg/types/nvca/config/types.go @@ -16,6 +16,8 @@ package nvcaconfig import ( + "encoding/base64" + "encoding/json" "fmt" "reflect" "strconv" @@ -53,68 +55,90 @@ type ResourceRequirements struct { } const ( - // BYOOLogChunkMaxBodyBytesEnv is the BYOO collector env var that enables log chunking. + // BYOOLogChunkMaxPayloadBytesEnv is the BYOO collector env var for the log chunk payload size override. + BYOOLogChunkMaxPayloadBytesEnv = "BYOO_LOG_CHUNK_MAX_PAYLOAD_BYTES" + // BYOOLogChunkMaxBodyBytesEnv is the deprecated BYOO collector env var for the log chunk size override. + // + // Deprecated: use BYOOLogChunkMaxPayloadBytesEnv. BYOOLogChunkMaxBodyBytesEnv = "BYOO_LOG_CHUNK_MAX_BODY_BYTES" // BYOOLogChunkDryRunEnv is the BYOO collector env var that records chunking metrics without mutating logs. BYOOLogChunkDryRunEnv = "BYOO_LOG_CHUNK_DRY_RUN" - // BYOOLogExporterBatchMaxSizeBytesEnv is the BYOO collector env var for exporterhelper byte batch splitting. - BYOOLogExporterBatchMaxSizeBytesEnv = "BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES" + // BYOOLogChunkingEnabledEnv is the BYOO collector env var that enables log chunking. + BYOOLogChunkingEnabledEnv = "BYOO_LOG_CHUNKING_ENABLED" + // BYOODebugModeEnv is the BYOO collector env var that enables collector debug mode. + BYOODebugModeEnv = "BYOO_DEBUG_MODE" // BYOOMetricSubsetEnabledEnv is the BYOO collector env var that enables the metric subset pipeline. BYOOMetricSubsetEnabledEnv = "BYOO_METRIC_SUBSET_ENABLED" // BYOOMetricSubsetFilterConfigEnv is the BYOO collector env var for metric subset filter config YAML. BYOOMetricSubsetFilterConfigEnv = "BYOO_METRIC_SUBSET_FILTER_CONFIG" // BYOOWorkloadMetricsDropLabelsEnv is the BYOO collector env var for workload metrics resource labels to drop. BYOOWorkloadMetricsDropLabelsEnv = "BYOO_WORKLOAD_METRICS_DROP_LABELS" - - // DefaultBYOOLogExporterBatchMaxSizeBytes keeps serialized exporter batches near the backend limit. - DefaultBYOOLogExporterBatchMaxSizeBytes int64 = 1000000 + // BYOOOTelCollectorConfigEnv is the BYOO collector env var for structured collector config. + BYOOOTelCollectorConfigEnv = "BYOO_OTEL_COLLECTOR_CONFIG_B64" ) type BYOOLogChunkingConfig struct { - MaxBodyBytes int64 `yaml:"maxBodyBytes,omitempty"` - DryRun bool `yaml:"dryRun,omitempty"` - ExporterBatchMaxSizeBytes *int64 `yaml:"exporterBatchMaxSizeBytes,omitempty"` + Enabled bool `mapstructure:"enabled" yaml:"enabled,omitempty" json:"enabled,omitempty"` + MaxPayloadBytes int64 `mapstructure:"maxPayloadBytes" yaml:"maxPayloadBytes,omitempty" json:"maxPayloadBytes,omitempty"` + // MaxBodyBytes is a deprecated alias for MaxPayloadBytes. + // + // Deprecated: use MaxPayloadBytes / maxPayloadBytes. + MaxBodyBytes int64 `mapstructure:"maxBodyBytes" yaml:"maxBodyBytes,omitempty" json:"maxBodyBytes,omitempty"` + DryRun bool `mapstructure:"dryRun" yaml:"dryRun,omitempty" json:"dryRun,omitempty"` } func (c BYOOLogChunkingConfig) IsZero() bool { - return c.MaxBodyBytes == 0 && !c.DryRun && c.ExporterBatchMaxSizeBytes == nil + return !c.Enabled && c.MaxPayloadBytes == 0 && c.MaxBodyBytes == 0 && !c.DryRun } func (c BYOOLogChunkingConfig) Complete() BYOOLogChunkingConfig { - if c.ExporterBatchMaxSizeBytes == nil { - defaultValue := DefaultBYOOLogExporterBatchMaxSizeBytes - c.ExporterBatchMaxSizeBytes = &defaultValue + if c.MaxPayloadBytes == 0 && c.MaxBodyBytes != 0 { + c.MaxPayloadBytes = c.MaxBodyBytes } return c } // EnvVars returns BYOO collector env vars for the supplied config. func (c BYOOLogChunkingConfig) EnvVars() []corev1.EnvVar { + c = c.Complete() envs := []corev1.EnvVar{} - if c.MaxBodyBytes > 0 { + if c.Enabled { envs = append(envs, corev1.EnvVar{ - Name: BYOOLogChunkMaxBodyBytesEnv, - Value: strconv.FormatInt(c.MaxBodyBytes, 10), + Name: BYOOLogChunkingEnabledEnv, + Value: strconv.FormatBool(c.Enabled), }) } - if c.DryRun { + if c.MaxPayloadBytes > 0 { envs = append(envs, corev1.EnvVar{ - Name: BYOOLogChunkDryRunEnv, - Value: strconv.FormatBool(c.DryRun), + Name: BYOOLogChunkMaxPayloadBytesEnv, + Value: strconv.FormatInt(c.MaxPayloadBytes, 10), }) } - if c.ExporterBatchMaxSizeBytes != nil && *c.ExporterBatchMaxSizeBytes > 0 { + if c.DryRun { envs = append(envs, corev1.EnvVar{ - Name: BYOOLogExporterBatchMaxSizeBytesEnv, - Value: strconv.FormatInt(*c.ExporterBatchMaxSizeBytes, 10), + Name: BYOOLogChunkDryRunEnv, + Value: strconv.FormatBool(c.DryRun), }) } return envs } -// BYOOLogChunkingEnvVars returns BYOO collector env vars for the supplied config. -func BYOOLogChunkingEnvVars(config BYOOLogChunkingConfig) []corev1.EnvVar { - return config.EnvVars() +type BYOODebugModeConfig struct { + Enabled bool `yaml:"enabled,omitempty"` +} + +func (c BYOODebugModeConfig) IsZero() bool { + return !c.Enabled +} + +func (c BYOODebugModeConfig) EnvVars() []corev1.EnvVar { + if !c.Enabled { + return nil + } + return []corev1.EnvVar{{ + Name: BYOODebugModeEnv, + Value: strconv.FormatBool(c.Enabled), + }} } type BYOOMetricSubsetConfig struct { @@ -162,6 +186,135 @@ func (c BYOOWorkloadMetricsConfig) EnvVars() []corev1.EnvVar { }} } +// BYOOOTelCollectorConfig configures BYOO OTel collector rendering behavior. +type BYOOOTelCollectorConfig struct { + ExporterHelper BYOOOTelExporterHelperConfig `mapstructure:"exporterHelper" yaml:"exporterHelper,omitempty" json:"exporterHelper,omitempty"` + MemoryLimiter BYOOOTelMemoryLimiterConfig `mapstructure:"memoryLimiter" yaml:"memoryLimiter,omitempty" json:"memoryLimiter,omitempty"` + Batch BYOOOTelBatchConfig `mapstructure:"batch" yaml:"batch,omitempty" json:"batch,omitempty"` + LogBatch BYOOOTelBatchConfig `mapstructure:"logBatch" yaml:"logBatch,omitempty" json:"logBatch,omitempty"` +} + +// IsZero returns true when no collector rendering overrides are configured. +func (c BYOOOTelCollectorConfig) IsZero() bool { + return c.ExporterHelper.IsZero() && + c.MemoryLimiter.IsZero() && + c.Batch.IsZero() && + c.LogBatch.IsZero() +} + +// EnvVars returns the BYOO collector env vars for the structured config. +func (c BYOOOTelCollectorConfig) EnvVars() []corev1.EnvVar { + if c.IsZero() { + return nil + } + data, err := json.Marshal(c) + if err != nil { + panic(fmt.Sprintf("code bug: marshal BYOO OTel collector config: %v", err)) + } + return []corev1.EnvVar{{ + Name: BYOOOTelCollectorConfigEnv, + Value: base64.StdEncoding.EncodeToString(data), + }} +} + +// BYOOOTelExporterHelperConfig configures common exporterhelper settings for BYOO exporters. +type BYOOOTelExporterHelperConfig struct { + Timeout string `mapstructure:"timeout" yaml:"timeout,omitempty" json:"timeout,omitempty"` + RetryOnFailure BYOOOTelRetryOnFailureConfig `mapstructure:"retryOnFailure" yaml:"retryOnFailure,omitempty" json:"retryOnFailure,omitempty"` + SendingQueue BYOOOTelSendingQueueConfig `mapstructure:"sendingQueue" yaml:"sendingQueue,omitempty" json:"sendingQueue,omitempty"` +} + +// IsZero returns true when no exporterhelper overrides are configured. +func (c BYOOOTelExporterHelperConfig) IsZero() bool { + return c.Timeout == "" && c.RetryOnFailure.IsZero() && c.SendingQueue.IsZero() +} + +// BYOOOTelRetryOnFailureConfig configures exporterhelper retry_on_failure settings. +type BYOOOTelRetryOnFailureConfig struct { + Enabled *bool `mapstructure:"enabled" yaml:"enabled,omitempty" json:"enabled,omitempty"` + InitialInterval string `mapstructure:"initialInterval" yaml:"initialInterval,omitempty" json:"initialInterval,omitempty"` + MaxInterval string `mapstructure:"maxInterval" yaml:"maxInterval,omitempty" json:"maxInterval,omitempty"` + MaxElapsedTime string `mapstructure:"maxElapsedTime" yaml:"maxElapsedTime,omitempty" json:"maxElapsedTime,omitempty"` +} + +// IsZero returns true when no retry_on_failure overrides are configured. +func (c BYOOOTelRetryOnFailureConfig) IsZero() bool { + return c.Enabled == nil && c.InitialInterval == "" && c.MaxInterval == "" && c.MaxElapsedTime == "" +} + +// BYOOOTelSendingQueueConfig configures exporterhelper sending_queue settings. +type BYOOOTelSendingQueueConfig struct { + Enabled *bool `mapstructure:"enabled" yaml:"enabled,omitempty" json:"enabled,omitempty"` + NumConsumers *int64 `mapstructure:"numConsumers" yaml:"numConsumers,omitempty" json:"numConsumers,omitempty"` + QueueSize *int64 `mapstructure:"queueSize" yaml:"queueSize,omitempty" json:"queueSize,omitempty"` + Sizer string `mapstructure:"sizer" yaml:"sizer,omitempty" json:"sizer,omitempty"` + Storage string `mapstructure:"storage" yaml:"storage,omitempty" json:"storage,omitempty"` + BlockOnOverflow *bool `mapstructure:"blockOnOverflow" yaml:"blockOnOverflow,omitempty" json:"blockOnOverflow,omitempty"` + WaitForResult *bool `mapstructure:"waitForResult" yaml:"waitForResult,omitempty" json:"waitForResult,omitempty"` + Batch BYOOOTelSendingQueueBatchConfig `mapstructure:"batch" yaml:"batch,omitempty" json:"batch,omitempty"` +} + +// IsZero returns true when no sending_queue overrides are configured. +func (c BYOOOTelSendingQueueConfig) IsZero() bool { + return c.Enabled == nil && + c.NumConsumers == nil && + c.QueueSize == nil && + c.Sizer == "" && + c.Storage == "" && + c.BlockOnOverflow == nil && + c.WaitForResult == nil && + c.Batch.IsZero() +} + +// BYOOOTelSendingQueueBatchConfig configures exporterhelper sending_queue.batch settings. +type BYOOOTelSendingQueueBatchConfig struct { + FlushTimeout string `mapstructure:"flushTimeout" yaml:"flushTimeout,omitempty" json:"flushTimeout,omitempty"` + Sizer string `mapstructure:"sizer" yaml:"sizer,omitempty" json:"sizer,omitempty"` + MinSize *int64 `mapstructure:"minSize" yaml:"minSize,omitempty" json:"minSize,omitempty"` + MaxSize *int64 `mapstructure:"maxSize" yaml:"maxSize,omitempty" json:"maxSize,omitempty"` +} + +// IsZero returns true when no sending_queue.batch overrides are configured. +func (c BYOOOTelSendingQueueBatchConfig) IsZero() bool { + return c.FlushTimeout == "" && c.Sizer == "" && c.MinSize == nil && c.MaxSize == nil +} + +// BYOOOTelMemoryLimiterConfig configures the BYOO collector memory_limiter processor. +type BYOOOTelMemoryLimiterConfig struct { + CheckInterval string `mapstructure:"checkInterval" yaml:"checkInterval,omitempty" json:"checkInterval,omitempty"` + LimitMiB *int64 `mapstructure:"limitMiB" yaml:"limitMiB,omitempty" json:"limitMiB,omitempty"` + SpikeLimitMiB *int64 `mapstructure:"spikeLimitMiB" yaml:"spikeLimitMiB,omitempty" json:"spikeLimitMiB,omitempty"` + LimitPercentage *int64 `mapstructure:"limitPercentage" yaml:"limitPercentage,omitempty" json:"limitPercentage,omitempty"` + SpikeLimitPercentage *int64 `mapstructure:"spikeLimitPercentage" yaml:"spikeLimitPercentage,omitempty" json:"spikeLimitPercentage,omitempty"` +} + +// IsZero returns true when no memory_limiter overrides are configured. +func (c BYOOOTelMemoryLimiterConfig) IsZero() bool { + return c.CheckInterval == "" && + c.LimitMiB == nil && + c.SpikeLimitMiB == nil && + c.LimitPercentage == nil && + c.SpikeLimitPercentage == nil +} + +// BYOOOTelBatchConfig configures the BYOO collector batch processor. +type BYOOOTelBatchConfig struct { + Timeout string `mapstructure:"timeout" yaml:"timeout,omitempty" json:"timeout,omitempty"` + SendBatchSize *int64 `mapstructure:"sendBatchSize" yaml:"sendBatchSize,omitempty" json:"sendBatchSize,omitempty"` + SendBatchMaxSize *int64 `mapstructure:"sendBatchMaxSize" yaml:"sendBatchMaxSize,omitempty" json:"sendBatchMaxSize,omitempty"` + MetadataKeys []string `mapstructure:"metadataKeys" yaml:"metadataKeys,omitempty" json:"metadataKeys,omitempty"` + MetadataCardinalityLimit *int64 `mapstructure:"metadataCardinalityLimit" yaml:"metadataCardinalityLimit,omitempty" json:"metadataCardinalityLimit,omitempty"` +} + +// IsZero returns true when no batch processor overrides are configured. +func (c BYOOOTelBatchConfig) IsZero() bool { + return c.Timeout == "" && + c.SendBatchSize == nil && + c.SendBatchMaxSize == nil && + len(c.MetadataKeys) == 0 && + c.MetadataCardinalityLimit == nil +} + func (r *ResourceRequirements) ToK8sResourceRequirements() corev1.ResourceRequirements { return corev1.ResourceRequirements{ Limits: corev1.ResourceList(r.Limits), @@ -390,14 +543,20 @@ type AgentConfig struct { // Quantities must be strings. BYOOFluentBitResources ResourceRequirements `yaml:",omitempty"` - // BYOOLogChunking contains BYOO OTel collector log chunking and exporter batch settings. - BYOOLogChunking BYOOLogChunkingConfig `yaml:",omitempty"` + // BYOOLogChunking contains BYOO OTel collector log chunking settings. + BYOOLogChunking BYOOLogChunkingConfig `mapstructure:"byooLogChunking" yaml:"byooLogChunking,omitempty" json:"byooLogChunking,omitempty"` + + // BYOODebugMode enables BYOO OTel collector debug logs and debug exporter fanout. + BYOODebugMode BYOODebugModeConfig `mapstructure:"byooDebugMode" yaml:"byooDebugMode,omitempty" json:"byooDebugMode,omitempty"` // BYOOMetricSubset contains BYOO OTel collector metric subset pipeline settings. BYOOMetricSubset BYOOMetricSubsetConfig `yaml:"byooMetricSubset,omitempty"` // BYOOWorkloadMetrics contains settings for the generated workload metrics pipeline. BYOOWorkloadMetrics BYOOWorkloadMetricsConfig `yaml:"byooWorkloadMetrics,omitempty"` + + // BYOOOTelCollector contains structured BYOO OTel collector rendering settings. + BYOOOTelCollector BYOOOTelCollectorConfig `mapstructure:"byooOtelCollector" yaml:"byooOtelCollector,omitempty"` } func (t AgentConfig) Complete(env Environment) AgentConfig { @@ -413,8 +572,10 @@ func (t AgentConfig) Complete(env Environment) AgentConfig { // BYOOOTelCollectorEnvVars returns env vars that must be set only on the BYOO OTel collector container. func (t AgentConfig) BYOOOTelCollectorEnvVars() []corev1.EnvVar { envs := t.BYOOLogChunking.EnvVars() + envs = append(envs, t.BYOODebugMode.EnvVars()...) envs = append(envs, t.BYOOMetricSubset.EnvVars()...) - return append(envs, t.BYOOWorkloadMetrics.EnvVars()...) + envs = append(envs, t.BYOOWorkloadMetrics.EnvVars()...) + return append(envs, t.BYOOOTelCollector.EnvVars()...) } const ( diff --git a/src/libraries/go/lib/pkg/types/nvca/config/types_test.go b/src/libraries/go/lib/pkg/types/nvca/config/types_test.go index b06c1bc77..5792000bd 100644 --- a/src/libraries/go/lib/pkg/types/nvca/config/types_test.go +++ b/src/libraries/go/lib/pkg/types/nvca/config/types_test.go @@ -16,11 +16,14 @@ package nvcaconfig import ( + "encoding/base64" + "encoding/json" "fmt" "testing" "time" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" ) @@ -86,6 +89,84 @@ func TestAgentConfig_Complete(t *testing.T) { }) } +func TestBYOOLogChunkingConfig_Complete(t *testing.T) { + t.Run("disabled does not add defaults", func(t *testing.T) { + completed := BYOOLogChunkingConfig{}.Complete() + assert.False(t, completed.Enabled) + assert.Zero(t, completed.MaxPayloadBytes) + assert.False(t, completed.DryRun) + }) + + t.Run("enabled does not add collector defaults", func(t *testing.T) { + completed := BYOOLogChunkingConfig{Enabled: true}.Complete() + assert.True(t, completed.Enabled) + assert.Zero(t, completed.MaxPayloadBytes) + assert.False(t, completed.DryRun) + }) + + t.Run("enabled preserves explicit values", func(t *testing.T) { + completed := BYOOLogChunkingConfig{ + Enabled: true, + MaxPayloadBytes: 131072, + DryRun: true, + }.Complete() + assert.Equal(t, int64(131072), completed.MaxPayloadBytes) + assert.True(t, completed.DryRun) + }) + + t.Run("deprecated max body bytes populates max payload bytes", func(t *testing.T) { + completed := BYOOLogChunkingConfig{ + MaxBodyBytes: 131072, + }.Complete() + assert.Equal(t, int64(131072), completed.MaxPayloadBytes) + }) + + t.Run("max payload bytes takes precedence over deprecated max body bytes", func(t *testing.T) { + completed := BYOOLogChunkingConfig{ + MaxPayloadBytes: 262144, + MaxBodyBytes: 131072, + }.Complete() + assert.Equal(t, int64(262144), completed.MaxPayloadBytes) + }) +} + +func TestBYOOLogChunkingConfig_EnvVarsUsesMaxPayloadBytes(t *testing.T) { + cfg := BYOOLogChunkingConfig{ + Enabled: true, + MaxPayloadBytes: 262144, + DryRun: true, + } + + assert.Equal(t, []corev1.EnvVar{ + {Name: BYOOLogChunkingEnabledEnv, Value: "true"}, + {Name: BYOOLogChunkMaxPayloadBytesEnv, Value: "262144"}, + {Name: BYOOLogChunkDryRunEnv, Value: "true"}, + }, cfg.EnvVars()) +} + +func TestBYOOLogChunkingConfig_EnvVarsAcceptsDeprecatedMaxBodyBytes(t *testing.T) { + cfg := BYOOLogChunkingConfig{ + MaxPayloadBytes: 262144, + MaxBodyBytes: 131072, + } + + assert.Equal(t, []corev1.EnvVar{{ + Name: BYOOLogChunkMaxPayloadBytesEnv, + Value: "262144", + }}, cfg.EnvVars()) + + cfg = BYOOLogChunkingConfig{MaxBodyBytes: 131072} + assert.Equal(t, []corev1.EnvVar{{ + Name: BYOOLogChunkMaxPayloadBytesEnv, + Value: "131072", + }}, cfg.EnvVars()) +} + +func TestBYOODebugModeConfig_IsZero(t *testing.T) { + assert.True(t, BYOODebugModeConfig{}.IsZero()) + assert.False(t, BYOODebugModeConfig{Enabled: true}.IsZero()) +} + func TestBYOOMetricSubsetConfig_EnvVars(t *testing.T) { cfg := BYOOMetricSubsetConfig{ Enabled: true, @@ -110,11 +191,13 @@ func TestBYOOWorkloadMetricsConfig_EnvVars(t *testing.T) { } func TestAgentConfig_BYOOOTelCollectorEnvVars(t *testing.T) { - exporterBatchMaxSizeBytes := int64(1000000) + queueSize := int64(2048) cfg := AgentConfig{ BYOOLogChunking: BYOOLogChunkingConfig{ - MaxBodyBytes: 983040, - ExporterBatchMaxSizeBytes: &exporterBatchMaxSizeBytes, + Enabled: true, + }, + BYOODebugMode: BYOODebugModeConfig{ + Enabled: true, }, BYOOMetricSubset: BYOOMetricSubsetConfig{ Enabled: true, @@ -122,14 +205,34 @@ func TestAgentConfig_BYOOOTelCollectorEnvVars(t *testing.T) { BYOOWorkloadMetrics: BYOOWorkloadMetricsConfig{ DropLabels: []string{"metric_subset_enabled"}, }, + BYOOOTelCollector: BYOOOTelCollectorConfig{ + ExporterHelper: BYOOOTelExporterHelperConfig{ + Timeout: "30s", + SendingQueue: BYOOOTelSendingQueueConfig{ + QueueSize: &queueSize, + }, + }, + }, } - assert.Equal(t, []corev1.EnvVar{ - {Name: BYOOLogChunkMaxBodyBytesEnv, Value: "983040"}, - {Name: BYOOLogExporterBatchMaxSizeBytesEnv, Value: "1000000"}, - {Name: BYOOMetricSubsetEnabledEnv, Value: "true"}, - {Name: BYOOWorkloadMetricsDropLabelsEnv, Value: "metric_subset_enabled"}, - }, cfg.BYOOOTelCollectorEnvVars()) + envsByName := map[string]string{} + for _, env := range cfg.BYOOOTelCollectorEnvVars() { + envsByName[env.Name] = env.Value + } + + assert.Equal(t, "true", envsByName[BYOOLogChunkingEnabledEnv]) + assert.Equal(t, "true", envsByName[BYOODebugModeEnv]) + assert.Equal(t, "true", envsByName[BYOOMetricSubsetEnabledEnv]) + assert.Equal(t, "metric_subset_enabled", envsByName[BYOOWorkloadMetricsDropLabelsEnv]) + assert.NotContains(t, envsByName, "BYOO_LOG_EXPORTER_BATCH_MAX_SIZE_BYTES") + + decodedConfig, ok := envsByName[BYOOOTelCollectorConfigEnv] + require.True(t, ok) + decodedBytes, err := base64.StdEncoding.DecodeString(decodedConfig) + require.NoError(t, err) + var got BYOOOTelCollectorConfig + require.NoError(t, json.Unmarshal(decodedBytes, &got)) + assert.Equal(t, cfg.BYOOOTelCollector, got) } func TestAgentTimeConfig_Complete(t *testing.T) { diff --git a/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go b/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go index f13411198..2924ec332 100644 --- a/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go +++ b/src/libraries/go/lib/pkg/types/nvca/config/zz_generated.deepcopy.go @@ -70,9 +70,11 @@ func (in *AgentConfig) DeepCopyInto(out *AgentConfig) { } in.BYOOResources.DeepCopyInto(&out.BYOOResources) in.BYOOFluentBitResources.DeepCopyInto(&out.BYOOFluentBitResources) - in.BYOOLogChunking.DeepCopyInto(&out.BYOOLogChunking) + out.BYOOLogChunking = in.BYOOLogChunking + out.BYOODebugMode = in.BYOODebugMode out.BYOOMetricSubset = in.BYOOMetricSubset in.BYOOWorkloadMetrics.DeepCopyInto(&out.BYOOWorkloadMetrics) + in.BYOOOTelCollector.DeepCopyInto(&out.BYOOOTelCollector) return } @@ -135,13 +137,24 @@ func (in *AuthzConfig) DeepCopy() *AuthzConfig { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BYOOLogChunkingConfig) DeepCopyInto(out *BYOOLogChunkingConfig) { +func (in *BYOODebugModeConfig) DeepCopyInto(out *BYOODebugModeConfig) { *out = *in - if in.ExporterBatchMaxSizeBytes != nil { - in, out := &in.ExporterBatchMaxSizeBytes, &out.ExporterBatchMaxSizeBytes - *out = new(int64) - **out = **in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOODebugModeConfig. +func (in *BYOODebugModeConfig) DeepCopy() *BYOODebugModeConfig { + if in == nil { + return nil } + out := new(BYOODebugModeConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOLogChunkingConfig) DeepCopyInto(out *BYOOLogChunkingConfig) { + *out = *in return } @@ -171,6 +184,205 @@ func (in *BYOOMetricSubsetConfig) DeepCopy() *BYOOMetricSubsetConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelBatchConfig) DeepCopyInto(out *BYOOOTelBatchConfig) { + *out = *in + if in.SendBatchSize != nil { + in, out := &in.SendBatchSize, &out.SendBatchSize + *out = new(int64) + **out = **in + } + if in.SendBatchMaxSize != nil { + in, out := &in.SendBatchMaxSize, &out.SendBatchMaxSize + *out = new(int64) + **out = **in + } + if in.MetadataKeys != nil { + in, out := &in.MetadataKeys, &out.MetadataKeys + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.MetadataCardinalityLimit != nil { + in, out := &in.MetadataCardinalityLimit, &out.MetadataCardinalityLimit + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelBatchConfig. +func (in *BYOOOTelBatchConfig) DeepCopy() *BYOOOTelBatchConfig { + if in == nil { + return nil + } + out := new(BYOOOTelBatchConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelCollectorConfig) DeepCopyInto(out *BYOOOTelCollectorConfig) { + *out = *in + in.ExporterHelper.DeepCopyInto(&out.ExporterHelper) + in.MemoryLimiter.DeepCopyInto(&out.MemoryLimiter) + in.Batch.DeepCopyInto(&out.Batch) + in.LogBatch.DeepCopyInto(&out.LogBatch) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelCollectorConfig. +func (in *BYOOOTelCollectorConfig) DeepCopy() *BYOOOTelCollectorConfig { + if in == nil { + return nil + } + out := new(BYOOOTelCollectorConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelExporterHelperConfig) DeepCopyInto(out *BYOOOTelExporterHelperConfig) { + *out = *in + in.RetryOnFailure.DeepCopyInto(&out.RetryOnFailure) + in.SendingQueue.DeepCopyInto(&out.SendingQueue) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelExporterHelperConfig. +func (in *BYOOOTelExporterHelperConfig) DeepCopy() *BYOOOTelExporterHelperConfig { + if in == nil { + return nil + } + out := new(BYOOOTelExporterHelperConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelMemoryLimiterConfig) DeepCopyInto(out *BYOOOTelMemoryLimiterConfig) { + *out = *in + if in.LimitMiB != nil { + in, out := &in.LimitMiB, &out.LimitMiB + *out = new(int64) + **out = **in + } + if in.SpikeLimitMiB != nil { + in, out := &in.SpikeLimitMiB, &out.SpikeLimitMiB + *out = new(int64) + **out = **in + } + if in.LimitPercentage != nil { + in, out := &in.LimitPercentage, &out.LimitPercentage + *out = new(int64) + **out = **in + } + if in.SpikeLimitPercentage != nil { + in, out := &in.SpikeLimitPercentage, &out.SpikeLimitPercentage + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelMemoryLimiterConfig. +func (in *BYOOOTelMemoryLimiterConfig) DeepCopy() *BYOOOTelMemoryLimiterConfig { + if in == nil { + return nil + } + out := new(BYOOOTelMemoryLimiterConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelRetryOnFailureConfig) DeepCopyInto(out *BYOOOTelRetryOnFailureConfig) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelRetryOnFailureConfig. +func (in *BYOOOTelRetryOnFailureConfig) DeepCopy() *BYOOOTelRetryOnFailureConfig { + if in == nil { + return nil + } + out := new(BYOOOTelRetryOnFailureConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelSendingQueueBatchConfig) DeepCopyInto(out *BYOOOTelSendingQueueBatchConfig) { + *out = *in + if in.MinSize != nil { + in, out := &in.MinSize, &out.MinSize + *out = new(int64) + **out = **in + } + if in.MaxSize != nil { + in, out := &in.MaxSize, &out.MaxSize + *out = new(int64) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelSendingQueueBatchConfig. +func (in *BYOOOTelSendingQueueBatchConfig) DeepCopy() *BYOOOTelSendingQueueBatchConfig { + if in == nil { + return nil + } + out := new(BYOOOTelSendingQueueBatchConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BYOOOTelSendingQueueConfig) DeepCopyInto(out *BYOOOTelSendingQueueConfig) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.NumConsumers != nil { + in, out := &in.NumConsumers, &out.NumConsumers + *out = new(int64) + **out = **in + } + if in.QueueSize != nil { + in, out := &in.QueueSize, &out.QueueSize + *out = new(int64) + **out = **in + } + if in.BlockOnOverflow != nil { + in, out := &in.BlockOnOverflow, &out.BlockOnOverflow + *out = new(bool) + **out = **in + } + if in.WaitForResult != nil { + in, out := &in.WaitForResult, &out.WaitForResult + *out = new(bool) + **out = **in + } + in.Batch.DeepCopyInto(&out.Batch) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BYOOOTelSendingQueueConfig. +func (in *BYOOOTelSendingQueueConfig) DeepCopy() *BYOOOTelSendingQueueConfig { + if in == nil { + return nil + } + out := new(BYOOOTelSendingQueueConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *BYOOWorkloadMetricsConfig) DeepCopyInto(out *BYOOWorkloadMetricsConfig) { *out = *in diff --git a/tools/ci/check-byoo-otel-collector-version b/tools/ci/check-byoo-otel-collector-version new file mode 100755 index 000000000..631bbe92b --- /dev/null +++ b/tools/ci/check-byoo-otel-collector-version @@ -0,0 +1,96 @@ +#!/usr/bin/env bash +# +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -euo pipefail + +SERVICE_PATH="src/compute-plane-services/byoo-otel-collector" +VERSION_FILE="${SERVICE_PATH}/VERSION" + +is_zero_sha() { + [[ "$1" =~ ^0+$ ]] +} + +changed_files() { + if [ "$#" -gt 0 ]; then + printf "%s\n" "$@" + return + fi + + local event="${EVENT:-${GITHUB_EVENT_NAME:-}}" + local base_ref="${BASE_REF:-${GITHUB_BASE_REF:-}}" + local base_sha="${BASE_SHA:-}" + local before_sha="${BEFORE_SHA:-${GITHUB_EVENT_BEFORE:-}}" + local head_sha="${HEAD_SHA:-${GITHUB_SHA:-HEAD}}" + local merge_group_base_sha="${MERGE_GROUP_BASE_SHA:-}" + + case "$event" in + pull_request) + if [ -n "$base_sha" ] && git diff --name-only "${base_sha}...HEAD" 2>/dev/null; then + return + fi + if [ -n "$base_ref" ] && git diff --name-only "origin/${base_ref}...HEAD" 2>/dev/null; then + return + fi + git diff --name-only HEAD^..HEAD + ;; + push) + if [ -n "$before_sha" ] && ! is_zero_sha "$before_sha" && git diff --name-only "${before_sha}..${head_sha}" 2>/dev/null; then + return + fi + git diff --name-only HEAD^..HEAD + ;; + merge_group) + if [ -n "$merge_group_base_sha" ] && git diff --name-only "${merge_group_base_sha}...HEAD" 2>/dev/null; then + return + fi + if [ -n "$base_sha" ] && git diff --name-only "${base_sha}...HEAD" 2>/dev/null; then + return + fi + git diff --name-only HEAD^..HEAD + ;; + *) + git diff --name-only HEAD^..HEAD + ;; + esac +} + +changed="$(changed_files "$@" | sed '/^[[:space:]]*$/d')" +if [ -z "$changed" ]; then + echo "No changed files detected." + exit 0 +fi + +version_changed=false +collector_changed=false +collector_files=() + +while IFS= read -r path; do + if [[ "$path" != "${SERVICE_PATH}/"* ]]; then + continue + fi + if [ "$path" = "$VERSION_FILE" ]; then + version_changed=true + continue + fi + collector_changed=true + collector_files+=("$path") +done <<< "$changed" + +if [ "$collector_changed" != "true" ]; then + echo "No BYOO OTel collector changes requiring ${VERSION_FILE}." + exit 0 +fi + +if [ "$version_changed" = "true" ]; then + echo "${VERSION_FILE} changed with BYOO OTel collector files." + exit 0 +fi + +{ + echo "::error file=${VERSION_FILE}::Update ${VERSION_FILE} whenever files under ${SERVICE_PATH}/ change." + echo "Changed BYOO OTel collector files:" + printf " %s\n" "${collector_files[@]}" +} >&2 +exit 1 diff --git a/tools/ci/test-check-byoo-otel-collector-version b/tools/ci/test-check-byoo-otel-collector-version new file mode 100755 index 000000000..c8909ef94 --- /dev/null +++ b/tools/ci/test-check-byoo-otel-collector-version @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -euo pipefail + +CHECK="./tools/ci/check-byoo-otel-collector-version" +SERVICE_PATH="src/compute-plane-services/byoo-otel-collector" +VERSION_FILE="${SERVICE_PATH}/VERSION" + +assert_pass() { + local name="$1" + shift + if ! "$CHECK" "$@" >/tmp/check-byoo-otel-collector-version.out 2>&1; then + echo "FAIL: expected pass: ${name}" >&2 + cat /tmp/check-byoo-otel-collector-version.out >&2 + exit 1 + fi +} + +assert_fail() { + local name="$1" + shift + if "$CHECK" "$@" >/tmp/check-byoo-otel-collector-version.out 2>&1; then + echo "FAIL: expected failure: ${name}" >&2 + cat /tmp/check-byoo-otel-collector-version.out >&2 + exit 1 + fi +} + +assert_pass "non-collector change" "README.md" +assert_pass "version-only collector change" "$VERSION_FILE" +assert_pass "collector change with version" \ + "${SERVICE_PATH}/otel-collector-build.yaml" \ + "$VERSION_FILE" +assert_fail "collector change without version" \ + "${SERVICE_PATH}/otel-collector-build.yaml" +assert_fail "nested collector change without version" \ + "${SERVICE_PATH}/internal/otelconfig/render.go" + +echo "check-byoo-otel-collector-version tests passed"