diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 9d95d871251383..8c82bee16308ec 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -59,6 +59,7 @@
/.github/workflows/cws-btfhub-sync.yml @DataDog/agent-security
/.github/workflows/gohai.yml @DataDog/agent-shared-components
/.github/workflows/go-update-commenter.yml @DataDog/agent-shared-components
+/.github/workflows/update_dependencies.yml @DataDog/agent-shared-components
/.github/workflows/buildimages-update.yml @DataDog/agent-delivery @DataDog/agent-shared-components
/.github/workflows/collector-generate-and-update.yml @DataDog/opentelemetry
@@ -433,6 +434,7 @@
/pkg/flare/*_windows.go @Datadog/windows-agent
/pkg/flare/*_windows_test.go @Datadog/windows-agent
/pkg/fleet/ @DataDog/fleet @DataDog/windows-agent
+/pkg/fleet/installer/setup/djm/ @DataDog/fleet @DataDog/data-jobs-monitoring
/pkg/pidfile/ @DataDog/agent-shared-components
/pkg/persistentcache/ @DataDog/agent-metrics-logs
/pkg/proto/ @DataDog/agent-shared-components
@@ -622,6 +624,7 @@
/test/new-e2e/tests/apm @DataDog/agent-apm
/test/new-e2e/tests/remote-config @DataDog/remote-config
/test/new-e2e/tests/installer @DataDog/fleet @DataDog/windows-agent
+/test/new-e2e/tests/installer/script @DataDog/fleet @DataDog/data-jobs-monitoring
/test/new-e2e/tests/gpu @Datadog/ebpf-platform
/test/otel/ @DataDog/opentelemetry
/test/system/ @DataDog/agent-shared-components
diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
index 7eb0cdbc4e0dc5..1af1fdc9fdcc58 100644
--- a/.github/dependabot.yaml
+++ b/.github/dependabot.yaml
@@ -27,6 +27,8 @@ updates:
- dependency-name: github.com/ugorji/go
# Ignore internal modules
- dependency-name: github.com/DataDog/datadog-agent/*
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
# OpenTelemetry collector packages need to be updated with inv rather than dependabot
- dependency-name: go.opentelemetry.io/collector/*
- dependency-name: github.com/open-telemetry/opentelemetry-collector-contrib/*
@@ -55,6 +57,8 @@ updates:
- dependency-name: github.com/DataDog/datadog-agent/*
# See https://github.com/DataDog/datadog-agent/pull/10112
- dependency-name: github.com/mailru/easyjson
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
# OpenTelemetry collector packages need to be updated with inv rather than dependabot
- dependency-name: go.opentelemetry.io/collector/*
- dependency-name: github.com/open-telemetry/opentelemetry-collector-contrib/*
@@ -73,6 +77,8 @@ updates:
- dependency-name: github.com/DataDog/datadog-agent/*
# See https://github.com/DataDog/datadog-agent/pull/10112
- dependency-name: github.com/mailru/easyjson
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
schedule:
interval: weekly
open-pull-requests-limit: 100
@@ -88,6 +94,8 @@ updates:
- dependency-name: github.com/DataDog/datadog-agent/*
# See https://github.com/DataDog/datadog-agent/pull/10112
- dependency-name: github.com/mailru/easyjson
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
schedule:
interval: weekly
open-pull-requests-limit: 100
@@ -101,6 +109,8 @@ updates:
ignore:
# Ignore internal modules
- dependency-name: github.com/DataDog/datadog-agent/*
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
schedule:
interval: weekly
open-pull-requests-limit: 100
@@ -119,6 +129,9 @@ updates:
- qa/no-code-change
schedule:
interval: monthly
+ ignore:
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
open-pull-requests-limit: 100
- package-ecosystem: gomod
directory: /pkg/networkdevice/profile
@@ -130,6 +143,8 @@ updates:
ignore:
# Ignore internal modules
- dependency-name: github.com/DataDog/datadog-agent/*
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
schedule:
interval: weekly
open-pull-requests-limit: 100
@@ -150,6 +165,8 @@ updates:
# Do not bump dependencies that come from test-infra-definitions, they will be bumped when we'll bump the version
# https://datadoghq.atlassian.net/browse/ADXT-375
- dependency-name: github.com/pulumi*
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
schedule:
interval: weekly
@@ -166,6 +183,9 @@ updates:
schedule:
interval: weekly
open-pull-requests-limit: 100
+ ignore:
+ # Ignore golang.org/x/... deps to avoid noise, they are updated together, pretty regularly
+ - dependency-name: golang.org/x/*
- package-ecosystem: docker
directory: /test/fakeintake
labels:
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index d6886960d23968..bb6d39efa5e6dd 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -45,7 +45,7 @@ jobs:
go-version-file: ".go-version"
- name: Initialize CodeQL
- uses: github/codeql-action/init@babb554ede22fd5605947329c4d04d8e7a0b8155 # v3.27.7
+ uses: github/codeql-action/init@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9
with:
languages: ${{ matrix.language }}
config: |
@@ -67,4 +67,4 @@ jobs:
invoke agent.build --build-exclude=systemd
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@babb554ede22fd5605947329c4d04d8e7a0b8155 # v3.27.7
+ uses: github/codeql-action/analyze@df409f7d9260372bd5f19e5b04e83cb3c43714ae # v3.27.9
diff --git a/.github/workflows/cws-btfhub-sync.yml b/.github/workflows/cws-btfhub-sync.yml
index 0a61cd6d38c0ca..b5f1ba4df7b0cc 100644
--- a/.github/workflows/cws-btfhub-sync.yml
+++ b/.github/workflows/cws-btfhub-sync.yml
@@ -127,7 +127,7 @@ jobs:
go-version-file: '.go-version'
- name: Download All Artifacts
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
path: ./dev/dist/constants
pattern: constants-*
diff --git a/.github/workflows/docs-dev.yml b/.github/workflows/docs-dev.yml
index 2f0cc36c01ce8e..8602adc372c1fd 100644
--- a/.github/workflows/docs-dev.yml
+++ b/.github/workflows/docs-dev.yml
@@ -65,7 +65,7 @@ jobs:
- build
steps:
- - uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: documentation
path: site
diff --git a/.github/workflows/serverless-benchmarks.yml b/.github/workflows/serverless-benchmarks.yml
index a393d8e08917ef..195f3441c45915 100644
--- a/.github/workflows/serverless-benchmarks.yml
+++ b/.github/workflows/serverless-benchmarks.yml
@@ -112,12 +112,12 @@ jobs:
go install golang.org/x/perf/cmd/benchstat@latest
- name: Download baseline artifact
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: baseline.log
path: baseline
- name: Download current artifact
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: current.log
path: current
diff --git a/.github/workflows/serverless-binary-size.yml b/.github/workflows/serverless-binary-size.yml
index 5bc272591f0e6b..5bf7a69b361775 100644
--- a/.github/workflows/serverless-binary-size.yml
+++ b/.github/workflows/serverless-binary-size.yml
@@ -43,7 +43,7 @@ jobs:
persist-credentials: false
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
+ uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
- name: Previous binary size and dependencies
id: previous
diff --git a/.github/workflows/serverless-integration.yml b/.github/workflows/serverless-integration.yml
index de78371e895e1f..f94ed5ca56b529 100644
--- a/.github/workflows/serverless-integration.yml
+++ b/.github/workflows/serverless-integration.yml
@@ -54,7 +54,7 @@ jobs:
platforms: amd64,arm64
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3.6.1
+ uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
- name: Create raw logs directory
id: rawlogs
diff --git a/.github/workflows/update_dependencies.yml b/.github/workflows/update_dependencies.yml
new file mode 100644
index 00000000000000..dbcbc436dabdd0
--- /dev/null
+++ b/.github/workflows/update_dependencies.yml
@@ -0,0 +1,82 @@
+name: Update golang.org/x/... dependencies
+on:
+ schedule:
+ # Run every 10th of the month, as it seems golang.org/x/... packages are usually
+ # released at the beginning of the month.
+ # Run at 6AM UTC so that it's ready at the beginning of the day CET.
+ - cron: "0 6 10 * *"
+
+ # allow triggering the workflow manually
+ workflow_dispatch:
+
+permissions: {}
+
+jobs:
+ backport:
+ name: Update golang.org/x/... dependencies
+ runs-on: ubuntu-latest
+ permissions: {} # the workflow uses the GitHub App token to create the PR so no specific permissions needed here
+ steps:
+ - uses: actions/create-github-app-token@5d869da34e18e7287c1daad50e0b8ea0f506ce69 # v1.11.0
+ id: app-token
+ with:
+ app-id: ${{ vars.DD_GITHUB_TOKEN_GENERATOR_APP_ID }}
+ private-key: ${{ secrets.DD_GITHUB_TOKEN_GENERATOR_PRIVATE_KEY }}
+ - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
+ with:
+ # credentials are needed to create the PR at the end of the workflow
+ persist-credentials: true
+ token: ${{ steps.app-token.outputs.token }}
+ - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
+ with:
+ go-version-file: ".go-version"
+ - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
+ with:
+ cache: "pip"
+ - name: Install dependencies
+ run: pip install -r requirements.txt -r tasks/requirements.txt
+ - name: Update every golang.org/x/... package
+ run: |
+ go get -u golang.org/x/arch golang.org/x/crypto \
+ golang.org/x/lint golang.org/x/mod \
+ golang.org/x/net golang.org/x/sync \
+ golang.org/x/sys golang.org/x/term \
+ golang.org/x/text golang.org/x/time \
+ golang.org/x/xerrors golang.org/x/tools \
+ golang.org/x/exp
+ # run tidy twice because the first one doesn't always clean everything
+ # depending on module order
+ inv -e tidy tidy
+ - uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 # v5.0.1
+ id: autocommit
+ with:
+ commit_message: "chore(deps): update all golang.org/x/... dependencies"
+ branch: update-golang-org-x-${{ github.run_id }}-${{ github.run_attempt }}
+ create_branch: true
+ skip_fetch: true
+ - name: Create PR
+ env:
+ TMP_PR_BODY_PATH: /tmp/pr_body
+ GH_TOKEN: ${{ steps.app-token.outputs.token }}
+ PR_TITLE: "[automated] Update golang.org/x/... dependencies"
+ PR_LABELS: "team/agent-shared-components,qa/done,changelog/no-changelog"
+ GITHUB_REF: ${{ github.ref }}
+ run: |
+ # Generate the PR description
+ cat > $TMP_PR_BODY_PATH <<- EOM
+ ### What does this PR do?
+ Update all \`golang.org/x/...\` dependencies.
+
+ ### Motivation
+ Keep dependencies up-to-date, benefit from bug fixes and new features.
+
+ ### Describe how you validated your changes
+ CI is considered enough to validate changes.
+ EOM
+
+ # Create the PR
+ gh pr create \
+ --base "$GITHUB_REF" \
+ --title "$PR_TITLE" \
+ --body-file "$TMP_PR_BODY_PATH" \
+ --label "$PR_LABELS"
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 38a0cde349fc83..05351cee64faff 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -151,6 +151,7 @@ variables:
## comment out both lines below (S3_OMNIBUS_CACHE_BUCKET and USE_S3_CACHING) to allow
## build to succeed with S3 caching disabled.
S3_OMNIBUS_CACHE_BUCKET: dd-ci-datadog-agent-omnibus-cache-build-stable
+ S3_OMNIBUS_GIT_CACHE_BUCKET: dd-ci-datadog-agent-omnibus-git-cache-build-stable
USE_S3_CACHING: --omnibus-s3-cache
# This value is not used on windows, a specific value is provided to
# our build containers in the windows build jobs
diff --git a/.gitlab/deploy_packages/e2e.yml b/.gitlab/deploy_packages/e2e.yml
index a72844e37c2459..78bb3286f1292f 100644
--- a/.gitlab/deploy_packages/e2e.yml
+++ b/.gitlab/deploy_packages/e2e.yml
@@ -1,31 +1,5 @@
# Jobs that deploy agent packages on QA environment, to be used by e2e tests
-qa_agent_oci:
- extends: .docker_publish_job_definition
- stage: deploy_packages
- rules:
- - !reference [.on_installer_or_e2e_changes]
- - !reference [.manual]
- needs:
- - deploy_agent_oci
- variables:
- IMG_REGISTRIES: agent-qa
- IMG_SOURCES: registry.ddbuild.io/ci/remote-updates/datadog-agent:pipeline-${CI_PIPELINE_ID}
- IMG_DESTINATIONS: agent-package:pipeline-${CI_PIPELINE_ID}
-
-qa_installer_oci:
- extends: .docker_publish_job_definition
- stage: deploy_packages
- rules:
- - !reference [.on_installer_or_e2e_changes]
- - !reference [.manual]
- needs:
- - deploy_installer_oci
- variables:
- IMG_REGISTRIES: agent-qa
- IMG_SOURCES: registry.ddbuild.io/ci/remote-updates/datadog-installer:pipeline-${CI_PIPELINE_ID}
- IMG_DESTINATIONS: installer-package:pipeline-${CI_PIPELINE_ID}
-
qa_installer_script:
image: registry.ddbuild.io/ci/datadog-agent-buildimages/gitlab_agent_deploy$DATADOG_AGENT_BUILDIMAGES_SUFFIX:$DATADOG_AGENT_BUILDIMAGES
stage: deploy_packages
diff --git a/.gitlab/deploy_packages/oci.yml b/.gitlab/deploy_packages/oci.yml
index 7db0433b743dd5..bcefacac8d134c 100644
--- a/.gitlab/deploy_packages/oci.yml
+++ b/.gitlab/deploy_packages/oci.yml
@@ -24,9 +24,10 @@ include:
- datadog-package push registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:${VERSION} ${OMNIBUS_PACKAGE_DIR}/${OCI_PRODUCT}-${VERSION}.oci.tar
# This is used for E2E tests. Doesn't cost more than an additional tag to the registry.
- datadog-package push registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:pipeline-${CI_PIPELINE_ID} ${OMNIBUS_PACKAGE_DIR}/${OCI_PRODUCT}-${VERSION}.oci.tar
- # Used for install scripts e2e tests
+ # Used for e2e tests
- datadog-package replicate-s3 registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:pipeline-${CI_PIPELINE_ID} us-east-1 ${INSTALLER_TESTING_S3_BUCKET} ${S3_PACKAGE} ${VERSION}
- datadog-package replicate-s3 registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:pipeline-${CI_PIPELINE_ID} us-east-1 ${INSTALLER_TESTING_S3_BUCKET} ${S3_PACKAGE} ${CI_COMMIT_SHA}
+ - datadog-package replicate-s3 registry.ddbuild.io/ci/remote-updates/${OCI_PRODUCT}:pipeline-${CI_PIPELINE_ID} us-east-1 ${INSTALLER_TESTING_S3_BUCKET} ${S3_PACKAGE} pipeline-${CI_PIPELINE_ID}
variables:
MAJOR_VERSION: 7
diff --git a/.gitlab/e2e/e2e.yml b/.gitlab/e2e/e2e.yml
index b23939329f0116..f944f407fa2dd8 100644
--- a/.gitlab/e2e/e2e.yml
+++ b/.gitlab/e2e/e2e.yml
@@ -412,8 +412,8 @@ new-e2e-installer:
- deploy_rpm_testing-a7_x64
- deploy_suse_rpm_testing_arm64-a7
- deploy_suse_rpm_testing_x64-a7
- - qa_installer_oci
- - qa_agent_oci
+ - deploy_installer_oci
+ - deploy_agent_oci
variables:
TARGETS: ./tests/installer/unix
TEAM: fleet
@@ -428,8 +428,8 @@ new-e2e-installer-windows:
needs:
- !reference [.needs_new_e2e_template]
- deploy_windows_testing-a7
- - qa_installer_oci
- - qa_agent_oci
+ - deploy_installer_oci
+ - deploy_agent_oci
before_script:
# CURRENT_AGENT_VERSION is used to verify the installed agent version
# Must run before new_e2e_template changes the aws profile
@@ -471,8 +471,8 @@ new-e2e-installer-ansible:
- deploy_rpm_testing-a7_x64
- deploy_suse_rpm_testing_arm64-a7
- deploy_suse_rpm_testing_x64-a7
- - qa_installer_oci
- - qa_agent_oci
+ - deploy_installer_oci
+ - deploy_agent_oci
variables:
TARGETS: ./tests/installer/unix
TEAM: fleet
@@ -663,8 +663,8 @@ generate-flakes-finder-pipeline:
- deploy_suse_rpm_testing_arm64-a7
- deploy_suse_rpm_testing_x64-a7
- deploy_windows_testing-a7
- - qa_installer_oci
- - qa_agent_oci
+ - deploy_installer_oci
+ - deploy_agent_oci
- qa_cws_instrumentation
- qa_dca
- qa_dogstatsd
diff --git a/.gitlab/package_build/windows.yml b/.gitlab/package_build/windows.yml
index cb57ebafa617fc..ea458c9db77a79 100644
--- a/.gitlab/package_build/windows.yml
+++ b/.gitlab/package_build/windows.yml
@@ -30,6 +30,7 @@
-e DEBUG_CUSTOMACTION="$DEBUG_CUSTOMACTION"
-e BUCKET_BRANCH="$BUCKET_BRANCH"
-e S3_OMNIBUS_CACHE_BUCKET="$S3_OMNIBUS_CACHE_BUCKET"
+ -e S3_OMNIBUS_GIT_CACHE_BUCKET="$S3_OMNIBUS_GIT_CACHE_BUCKET"
-e USE_S3_CACHING="$USE_S3_CACHING"
-e INTEGRATION_WHEELS_CACHE_BUCKET="$INTEGRATION_WHEELS_CACHE_BUCKET"
-e BUNDLE_MIRROR__RUBYGEMS__ORG=${BUNDLE_MIRROR__RUBYGEMS__ORG}
diff --git a/LICENSE-3rdparty.csv b/LICENSE-3rdparty.csv
index 8c766a337eb1ca..d424a9ed015c78 100644
--- a/LICENSE-3rdparty.csv
+++ b/LICENSE-3rdparty.csv
@@ -596,12 +596,6 @@ core,github.com/aws/aws-sdk-go-v2/service/ebs/types,Apache-2.0,"Copyright 2014-2
core,github.com/aws/aws-sdk-go-v2/service/ec2,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
core,github.com/aws/aws-sdk-go-v2/service/ec2/internal/endpoints,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
core,github.com/aws/aws-sdk-go-v2/service/ec2/types,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/aws/aws-sdk-go-v2/service/ecr,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/aws/aws-sdk-go-v2/service/ecr/internal/endpoints,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/aws/aws-sdk-go-v2/service/ecr/types,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/aws/aws-sdk-go-v2/service/ecrpublic,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/aws/aws-sdk-go-v2/service/ecrpublic/internal/endpoints,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/aws/aws-sdk-go-v2/service/ecrpublic/types,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
core,github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
core,github.com/aws/aws-sdk-go-v2/service/internal/presigned-url,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
core,github.com/aws/aws-sdk-go-v2/service/kms,Apache-2.0,"Copyright 2014-2015 Stripe, Inc. | Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved."
@@ -692,11 +686,6 @@ core,github.com/aws/smithy-go/tracing,Apache-2.0,"Copyright Amazon.com, Inc. or
core,github.com/aws/smithy-go/transport/http,Apache-2.0,"Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved"
core,github.com/aws/smithy-go/transport/http/internal/io,Apache-2.0,"Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved"
core,github.com/aws/smithy-go/waiter,Apache-2.0,"Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved"
-core,github.com/awslabs/amazon-ecr-credential-helper/ecr-login,Apache-2.0,"Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/awslabs/amazon-ecr-credential-helper/ecr-login/api,Apache-2.0,"Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cache,Apache-2.0,"Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/awslabs/amazon-ecr-credential-helper/ecr-login/config,Apache-2.0,"Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved."
-core,github.com/awslabs/amazon-ecr-credential-helper/ecr-login/version,Apache-2.0,"Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved."
core,github.com/bahlo/generic-list-go,BSD-3-Clause,Copyright (c) 2009 The Go Authors. All rights reserved
core,github.com/beevik/ntp,BSD-2-Clause,Al Cutter (AlCutter) | Andrey Smirnov (smira) | Anton Tolchanov (knyar) | Ask Bjørn Hansen (abh) | Brett Vickers (beevik) | Christopher Batey (chbatey) | Copyright © 2015-2023 Brett Vickers. All rights reserved | Leonid Evdokimov (darkk) | Meng Zhuo (mengzhuo) | Mikhail Salosin (AlphaB) | Silves-Xiang (silves-xiang)
core,github.com/benbjohnson/clock,MIT,Copyright (c) 2014 Ben Johnson
diff --git a/cmd/agent/common/common_windows.go b/cmd/agent/common/common_windows.go
index 33d215dccc84a6..b3c84d6c660357 100644
--- a/cmd/agent/common/common_windows.go
+++ b/cmd/agent/common/common_windows.go
@@ -9,9 +9,6 @@ import (
"os"
"path/filepath"
- //nolint:depguard // creating a logger from a seelog config
- "github.com/cihub/seelog"
-
pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup"
"github.com/DataDog/datadog-agent/pkg/util/defaultpaths"
"github.com/DataDog/datadog-agent/pkg/util/log"
@@ -29,18 +26,6 @@ func init() {
}
}
-// EnableLoggingToFile -- set up logging to file
-func EnableLoggingToFile() {
- seeConfig := `
-
-
-
-
-`
- logger, _ := seelog.LoggerFromConfigAsBytes([]byte(seeConfig))
- log.ReplaceLogger(logger)
-}
-
// CheckAndUpgradeConfig checks to see if there's an old datadog.conf, and if
// datadog.yaml is either missing or incomplete (no API key). If so, upgrade it
func CheckAndUpgradeConfig() error {
diff --git a/cmd/agent/main_windows.go b/cmd/agent/main_windows.go
index bf4fc6e032a3f6..389d880cf50dae 100644
--- a/cmd/agent/main_windows.go
+++ b/cmd/agent/main_windows.go
@@ -11,7 +11,6 @@ import (
"os"
"github.com/DataDog/datadog-agent/cmd/agent/command"
- "github.com/DataDog/datadog-agent/cmd/agent/common"
"github.com/DataDog/datadog-agent/cmd/agent/subcommands"
"github.com/DataDog/datadog-agent/cmd/agent/windows/service"
"github.com/DataDog/datadog-agent/cmd/internal/runcmd"
@@ -20,7 +19,6 @@ import (
)
func main() {
- common.EnableLoggingToFile()
// if command line arguments are supplied, even in a non interactive session,
// then just execute that. Used when the service is executing the executable,
// for instance to trigger a restart.
diff --git a/cmd/installer-downloader/main.go b/cmd/installer-downloader/main.go
index 5ddadc54c0d606..f7b67910ae94eb 100644
--- a/cmd/installer-downloader/main.go
+++ b/cmd/installer-downloader/main.go
@@ -17,7 +17,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/fleet/installer/env"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/oci"
"github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const (
@@ -49,7 +48,7 @@ func main() {
defer func() { _ = t.Stop(ctx) }()
var err error
span, ctx := telemetry.StartSpanFromEnv(ctx, fmt.Sprintf("downloader-%s", Flavor))
- defer func() { span.Finish(tracer.WithError(err)) }()
+ defer func() { span.Finish(err) }()
err = runDownloader(ctx, env, Version, Flavor)
if err != nil {
fmt.Fprintf(os.Stderr, "Installation failed: %v\n", err)
diff --git a/cmd/installer/main.go b/cmd/installer/main.go
index e7d94bb6d70fee..bf05b5b6a0e087 100644
--- a/cmd/installer/main.go
+++ b/cmd/installer/main.go
@@ -29,9 +29,9 @@ func runCmd(cmd *cobra.Command) int {
err := cmd.Execute()
if err != nil {
if rootCauseErr := dig.RootCause(err); rootCauseErr != err {
- fmt.Fprintln(cmd.ErrOrStderr(), installerErrors.FromErr(rootCauseErr).ToJSON())
+ fmt.Fprintln(cmd.ErrOrStderr(), installerErrors.ToJSON(rootCauseErr))
} else {
- fmt.Fprintln(cmd.ErrOrStderr(), installerErrors.FromErr(err).ToJSON())
+ fmt.Fprintln(cmd.ErrOrStderr(), installerErrors.ToJSON(err))
}
return -1
}
diff --git a/cmd/installer/subcommands/daemon/status.tmpl b/cmd/installer/subcommands/daemon/status.tmpl
index 045b819d537644..02481dea5c50d9 100644
--- a/cmd/installer/subcommands/daemon/status.tmpl
+++ b/cmd/installer/subcommands/daemon/status.tmpl
@@ -1,12 +1,12 @@
Datadog Installer v{{ htmlSafe .Version }}
{{ range $name, $package := .Packages }}
{{ boldText $name }}
- State: {{ if $package.Experiment -}}{{ yellowText "Upgrading" }}{{- else if $package.Stable -}}{{ greenText "OK" }}{{- else -}}{{ redText "no stable version" }}{{- end }}
+ State: {{ if $package.Experiment -}}{{ yellowText "Upgrading" }}{{- else if $package.Stable -}}{{ greenText "OK" }}{{- else -}}config only{{- end }}
Installed versions:
{{- if $package.Stable }}
{{ greenText "●" }} stable: v{{ htmlSafe $package.Stable }}
{{- else }}
- {{ redText "●" }} stable: none
+ ● stable: none
{{- end }}
{{- if $package.Experiment }}
{{ yellowText "●" }} experiment: v{{ htmlSafe $package.Experiment }}
@@ -23,9 +23,9 @@ Datadog Installer v{{ htmlSafe .Version }}
Remote configuration client state:
StableVersion: {{ $remoteConfig.StableVersion }}
ExperimentVersion: {{ $remoteConfig.ExperimentVersion }}
- StableConfigVersion: {{ $remoteConfig.StableConfigVersion }}
- ExperimentConfigVersion: {{ $remoteConfig.ExperimentConfigVersion }}
- RemoteConfigVersion: {{ $remoteConfig.RemoteConfigVersion }}
+ StableConfigVersion: {{ if $remoteConfig.StableConfigState }}{{ $remoteConfig.StableConfigState.Version }}{{ else }}{{ "" }}{{ end }}
+ ExperimentConfigVersion: {{ if $remoteConfig.ExperimentConfigState }}{{ $remoteConfig.ExperimentConfigState.Version }}{{ else }}{{ "" }}{{ end }}
+ RemoteConfigVersion: {{ if $remoteConfig.RemoteConfigState }}{{ $remoteConfig.RemoteConfigState.Version }}{{ else }}{{ "" }}{{ end }}
Task:
{{- if $remoteConfig.Task }}
Id: {{ $remoteConfig.Task.Id }}
diff --git a/cmd/installer/subcommands/installer/command.go b/cmd/installer/subcommands/installer/command.go
index 186367fc20b42f..66ec6b1c74c57d 100644
--- a/cmd/installer/subcommands/installer/command.go
+++ b/cmd/installer/subcommands/installer/command.go
@@ -22,8 +22,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/version"
"github.com/spf13/cobra"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
"gopkg.in/yaml.v2"
)
@@ -89,7 +87,7 @@ func UnprivilegedCommands(_ *command.GlobalParams) []*cobra.Command {
type cmd struct {
t *telemetry.Telemetry
ctx context.Context
- span ddtrace.Span
+ span telemetry.Span
env *env.Env
}
@@ -107,7 +105,7 @@ func newCmd(operation string) *cmd {
}
func (c *cmd) Stop(err error) {
- c.span.Finish(tracer.WithError(err))
+ c.span.Finish(err)
if c.t != nil {
err := c.t.Stop(context.Background())
if err != nil {
diff --git a/cmd/installer/subcommands/installer/umask_nix.go b/cmd/installer/subcommands/installer/umask_nix.go
index b4062c09a4f77f..1fd44c01ac4057 100644
--- a/cmd/installer/subcommands/installer/umask_nix.go
+++ b/cmd/installer/subcommands/installer/umask_nix.go
@@ -10,11 +10,11 @@ package installer
import (
"syscall"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
)
// setInstallerUmask sets umask 0 to override any inherited umask
-func setInstallerUmask(span ddtrace.Span) {
+func setInstallerUmask(span telemetry.Span) {
oldmask := syscall.Umask(0)
span.SetTag("inherited_umask", oldmask)
}
diff --git a/cmd/installer/subcommands/installer/umask_windows.go b/cmd/installer/subcommands/installer/umask_windows.go
index 3d308c67cc3185..1b076f92bc3896 100644
--- a/cmd/installer/subcommands/installer/umask_windows.go
+++ b/cmd/installer/subcommands/installer/umask_windows.go
@@ -7,9 +7,7 @@
package installer
-import (
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
-)
+import "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
// setInstallerUmask no-op on Windows
-func setInstallerUmask(_ ddtrace.Span) {}
+func setInstallerUmask(_ telemetry.Span) {}
diff --git a/cmd/iot-agent/main_windows.go b/cmd/iot-agent/main_windows.go
index b7a9183b4bcb77..a53048ea9a1002 100644
--- a/cmd/iot-agent/main_windows.go
+++ b/cmd/iot-agent/main_windows.go
@@ -12,7 +12,6 @@ import (
"os"
"github.com/DataDog/datadog-agent/cmd/agent/command"
- "github.com/DataDog/datadog-agent/cmd/agent/common"
"github.com/DataDog/datadog-agent/cmd/agent/subcommands"
"github.com/DataDog/datadog-agent/cmd/agent/windows/service"
"github.com/DataDog/datadog-agent/pkg/util/flavor"
@@ -24,7 +23,6 @@ func main() {
// set the Agent flavor
flavor.SetFlavor(flavor.IotAgent)
- common.EnableLoggingToFile()
// if command line arguments are supplied, even in a non interactive session,
// then just execute that. Used when the service is executing the executable,
// for instance to trigger a restart.
diff --git a/cmd/security-agent/subcommands/runtime/activity_dump.go b/cmd/security-agent/subcommands/runtime/activity_dump.go
index 514cdda1bc612f..35907553045fb9 100644
--- a/cmd/security-agent/subcommands/runtime/activity_dump.go
+++ b/cmd/security-agent/subcommands/runtime/activity_dump.go
@@ -37,6 +37,7 @@ type activityDumpCliParams struct {
name string
containerID string
+ cgroupID string
file string
file2 string
timeout string
@@ -113,7 +114,13 @@ func stopCommands(globalParams *command.GlobalParams) []*cobra.Command {
&cliParams.containerID,
"container-id",
"",
- "an containerID can be used to filter the activity dump.",
+ "a containerID can be used to filter the activity dump.",
+ )
+ activityDumpStopCmd.Flags().StringVar(
+ &cliParams.cgroupID,
+ "cgroup-id",
+ "",
+ "a cgroup ID can be used to filter the activity dump.",
)
return []*cobra.Command{activityDumpStopCmd}
@@ -157,6 +164,12 @@ func generateDumpCommands(globalParams *command.GlobalParams) []*cobra.Command {
"",
"a container identifier can be used to filter the activity dump from a specific container.",
)
+ activityDumpGenerateDumpCmd.Flags().StringVar(
+ &cliParams.cgroupID,
+ "cgroup-id",
+ "",
+ "a cgroup identifier can be used to filter the activity dump from a specific cgroup.",
+ )
activityDumpGenerateDumpCmd.Flags().StringVar(
&cliParams.timeout,
"timeout",
@@ -461,6 +474,7 @@ func generateActivityDump(_ log.Component, _ config.Component, _ secrets.Compone
output, err := client.GenerateActivityDump(&api.ActivityDumpParams{
ContainerID: activityDumpArgs.containerID,
+ CGroupID: activityDumpArgs.cgroupID,
Timeout: activityDumpArgs.timeout,
DifferentiateArgs: activityDumpArgs.differentiateArgs,
Storage: storage,
@@ -609,7 +623,7 @@ func stopActivityDump(_ log.Component, _ config.Component, _ secrets.Component,
}
defer client.Close()
- output, err := client.StopActivityDump(activityDumpArgs.name, activityDumpArgs.containerID)
+ output, err := client.StopActivityDump(activityDumpArgs.name, activityDumpArgs.containerID, activityDumpArgs.cgroupID)
if err != nil {
return fmt.Errorf("unable to send request to system-probe: %w", err)
}
diff --git a/cmd/security-agent/subcommands/runtime/command_linux.go b/cmd/security-agent/subcommands/runtime/command_linux.go
index 4c5a90d3167cd1..a813dc82b03856 100644
--- a/cmd/security-agent/subcommands/runtime/command_linux.go
+++ b/cmd/security-agent/subcommands/runtime/command_linux.go
@@ -46,6 +46,9 @@ func printSecurityActivityDumpMessage(prefix string, msg *api.ActivityDumpMessag
if len(msg.GetMetadata().GetContainerID()) > 0 {
fmt.Printf("%s container ID: %s\n", prefix, msg.GetMetadata().GetContainerID())
}
+ if len(msg.GetMetadata().GetCGroupID()) > 0 {
+ fmt.Printf("%s cgroup ID: %s\n", prefix, msg.GetMetadata().GetCGroupID())
+ }
if len(msg.GetTags()) > 0 {
fmt.Printf("%s tags: %s\n", prefix, strings.Join(msg.GetTags(), ", "))
}
diff --git a/cmd/system-probe/api/debug/handlers_linux.go b/cmd/system-probe/api/debug/handlers_linux.go
new file mode 100644
index 00000000000000..d2bd7dfbd5f484
--- /dev/null
+++ b/cmd/system-probe/api/debug/handlers_linux.go
@@ -0,0 +1,41 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2024-present Datadog, Inc.
+
+//go:build linux
+
+// Package debug contains handlers for debug information global to all of system-probe
+package debug
+
+import (
+ "context"
+ "errors"
+ "fmt"
+ "net/http"
+ "os/exec"
+ "time"
+)
+
+// HandleSelinuxSestatus reports the output of sestatus as an http result
+func HandleSelinuxSestatus(w http.ResponseWriter, r *http.Request) {
+ ctx, cancel := context.WithTimeout(r.Context(), 5*time.Second)
+ defer cancel()
+
+ cmd := exec.CommandContext(ctx, "sestatus")
+ output, err := cmd.CombinedOutput()
+
+ var execError *exec.Error
+ var exitErr *exec.ExitError
+
+ if err != nil {
+ // don't 500 for ExitErrors etc, to report "normal" failures to the selinux_sestatus.log file
+ if !errors.As(err, &execError) && !errors.As(err, &exitErr) {
+ w.WriteHeader(500)
+ }
+ fmt.Fprintf(w, "command failed: %s\n%s", err, output)
+ return
+ }
+
+ w.Write(output)
+}
diff --git a/cmd/system-probe/api/debug/handlers_nolinux.go b/cmd/system-probe/api/debug/handlers_nolinux.go
new file mode 100644
index 00000000000000..1475d821c1e6e5
--- /dev/null
+++ b/cmd/system-probe/api/debug/handlers_nolinux.go
@@ -0,0 +1,20 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2024-present Datadog, Inc.
+
+//go:build !linux
+
+// Package debug contains handlers for debug information global to all of system-probe
+package debug
+
+import (
+ "io"
+ "net/http"
+)
+
+// HandleSelinuxSestatus is not supported
+func HandleSelinuxSestatus(w http.ResponseWriter, _ *http.Request) {
+ w.WriteHeader(500)
+ io.WriteString(w, "HandleSelinuxSestatus is not supported on this platform")
+}
diff --git a/cmd/system-probe/api/server.go b/cmd/system-probe/api/server.go
index 3e4a71056f1438..d81007a0c8f0d2 100644
--- a/cmd/system-probe/api/server.go
+++ b/cmd/system-probe/api/server.go
@@ -15,6 +15,7 @@ import (
gorilla "github.com/gorilla/mux"
+ "github.com/DataDog/datadog-agent/cmd/system-probe/api/debug"
"github.com/DataDog/datadog-agent/cmd/system-probe/api/module"
"github.com/DataDog/datadog-agent/cmd/system-probe/api/server"
sysconfigtypes "github.com/DataDog/datadog-agent/cmd/system-probe/config/types"
@@ -58,6 +59,7 @@ func StartServer(cfg *sysconfigtypes.Config, telemetry telemetry.Component, wmet
if runtime.GOOS == "linux" {
mux.HandleFunc("/debug/ebpf_btf_loader_info", ebpf.HandleBTFLoaderInfo)
+ mux.HandleFunc("/debug/selinux_sestatus", debug.HandleSelinuxSestatus)
}
go func() {
diff --git a/cmd/system-probe/subcommands/runtime/activity_dump.go b/cmd/system-probe/subcommands/runtime/activity_dump.go
index 72096d1160bbd2..e00d027c94d7b2 100644
--- a/cmd/system-probe/subcommands/runtime/activity_dump.go
+++ b/cmd/system-probe/subcommands/runtime/activity_dump.go
@@ -34,6 +34,7 @@ type activityDumpCliParams struct {
name string
containerID string
+ cgroupID string
file string
file2 string
timeout string
@@ -109,7 +110,12 @@ func stopCommands(globalParams *command.GlobalParams) []*cobra.Command {
"",
"an containerID can be used to filter the activity dump.",
)
-
+ activityDumpStopCmd.Flags().StringVar(
+ &cliParams.cgroupID,
+ "cgroup-id",
+ "",
+ "a cgroup ID can be used to filter the activity dump.",
+ )
return []*cobra.Command{activityDumpStopCmd}
}
@@ -151,6 +157,12 @@ func generateDumpCommands(globalParams *command.GlobalParams) []*cobra.Command {
"",
"a container identifier can be used to filter the activity dump from a specific container.",
)
+ activityDumpGenerateDumpCmd.Flags().StringVar(
+ &cliParams.cgroupID,
+ "cgroup-id",
+ "",
+ "a cgroup identifier can be used to filter the activity dump from a specific cgroup.",
+ )
activityDumpGenerateDumpCmd.Flags().StringVar(
&cliParams.timeout,
"timeout",
@@ -449,6 +461,7 @@ func generateActivityDump(_ log.Component, _ config.Component, _ secrets.Compone
output, err := client.GenerateActivityDump(&api.ActivityDumpParams{
ContainerID: activityDumpArgs.containerID,
+ CGroupID: activityDumpArgs.cgroupID,
Timeout: activityDumpArgs.timeout,
DifferentiateArgs: activityDumpArgs.differentiateArgs,
Storage: storage,
@@ -573,7 +586,7 @@ func stopActivityDump(_ log.Component, _ config.Component, _ secrets.Component,
}
defer client.Close()
- output, err := client.StopActivityDump(activityDumpArgs.name, activityDumpArgs.containerID)
+ output, err := client.StopActivityDump(activityDumpArgs.name, activityDumpArgs.containerID, activityDumpArgs.cgroupID)
if err != nil {
return fmt.Errorf("unable to send request to system-probe: %w", err)
}
diff --git a/cmd/system-probe/subcommands/runtime/command_linux.go b/cmd/system-probe/subcommands/runtime/command_linux.go
index 51d2a8c92dec79..1980ac0fbfb238 100644
--- a/cmd/system-probe/subcommands/runtime/command_linux.go
+++ b/cmd/system-probe/subcommands/runtime/command_linux.go
@@ -42,6 +42,9 @@ func printSecurityActivityDumpMessage(prefix string, msg *api.ActivityDumpMessag
if len(msg.GetMetadata().GetContainerID()) > 0 {
fmt.Printf("%s container ID: %s\n", prefix, msg.GetMetadata().GetContainerID())
}
+ if len(msg.GetMetadata().GetCGroupID()) > 0 {
+ fmt.Printf("%s cgroup ID: %s\n", prefix, msg.GetMetadata().GetCGroupID())
+ }
if len(msg.GetTags()) > 0 {
fmt.Printf("%s tags: %s\n", prefix, strings.Join(msg.GetTags(), ", "))
}
diff --git a/comp/core/tagger/collectors/workloadmeta_main.go b/comp/core/tagger/collectors/workloadmeta_main.go
index 3c4150c9f3efb0..15fec7fe4ce5b2 100644
--- a/comp/core/tagger/collectors/workloadmeta_main.go
+++ b/comp/core/tagger/collectors/workloadmeta_main.go
@@ -96,7 +96,7 @@ func (c *WorkloadMetaCollector) Run(ctx context.Context, datadogConfig config.Co
}
func (c *WorkloadMetaCollector) collectStaticGlobalTags(ctx context.Context, datadogConfig config.Component) {
- c.staticTags = util.GetStaticTags(ctx)
+ c.staticTags = util.GetStaticTags(ctx, datadogConfig)
if _, exists := c.staticTags[clusterTagNamePrefix]; flavor.GetFlavor() == flavor.ClusterAgent && !exists {
// If we are running the cluster agent, we want to set the kube_cluster_name tag as a global tag if we are able
// to read it, for the instances where we are running in an environment where hostname cannot be detected.
diff --git a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go
index 5f604e3568220b..d02d5177f5a746 100644
--- a/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go
+++ b/comp/core/workloadmeta/collectors/util/kubernetes_resource_parsers/pod_test.go
@@ -8,9 +8,10 @@
package kubernetesresourceparsers
import (
- "reflect"
"testing"
+ "github.com/google/go-cmp/cmp"
+ "github.com/google/go-cmp/cmp/cmpopts"
"github.com/stretchr/testify/assert"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
@@ -125,6 +126,11 @@ func TestPodParser_Parse(t *testing.T) {
QOSClass: "Guaranteed",
}
- assert.True(t, reflect.DeepEqual(expected, parsed),
- "Expected: %v, Actual: %v", expected, parsed)
+ opt := cmpopts.SortSlices(func(a, b string) bool {
+ return a < b
+ })
+ assert.True(t,
+ cmp.Equal(expected, parsed, opt),
+ cmp.Diff(expected, parsed, opt),
+ )
}
diff --git a/comp/dogstatsd/server/server.go b/comp/dogstatsd/server/server.go
index 662d5b2092a8dc..a879dac31f828f 100644
--- a/comp/dogstatsd/server/server.go
+++ b/comp/dogstatsd/server/server.go
@@ -236,7 +236,7 @@ func newServerCompat(cfg model.Reader, log log.Component, capture replay.Compone
// if the server is running in a context where static tags are required, add those
// to extraTags.
- if staticTags := util.GetStaticTagsSlice(context.TODO()); staticTags != nil {
+ if staticTags := util.GetStaticTagsSlice(context.TODO(), cfg); staticTags != nil {
extraTags = append(extraTags, staticTags...)
}
util.SortUniqInPlace(extraTags)
diff --git a/comp/metadata/host/hostimpl/hosttags/tags.go b/comp/metadata/host/hostimpl/hosttags/tags.go
index 606a874bf7fd30..01cfff7c0810f7 100644
--- a/comp/metadata/host/hostimpl/hosttags/tags.go
+++ b/comp/metadata/host/hostimpl/hosttags/tags.go
@@ -133,6 +133,10 @@ func Get(ctx context.Context, cached bool, conf model.Reader) *Tags {
hostTags = appendToHostTags(hostTags, clusterNameTags)
}
+ if conf.GetBool("ha_agent.enabled") {
+ hostTags = appendToHostTags(hostTags, []string{"agent_group:" + conf.GetString("ha_agent.group")})
+ }
+
gceTags := []string{}
providers := getProvidersDefinitionsFunc(conf)
for {
diff --git a/comp/metadata/host/hostimpl/hosttags/tags_test.go b/comp/metadata/host/hostimpl/hosttags/tags_test.go
index 64460410ac1437..274250a432e460 100644
--- a/comp/metadata/host/hostimpl/hosttags/tags_test.go
+++ b/comp/metadata/host/hostimpl/hosttags/tags_test.go
@@ -137,3 +137,18 @@ func TestHostTagsCache(t *testing.T) {
assert.Equal(t, []string{"foo1:value1"}, hostTags.System)
assert.Equal(t, 2, nbCall)
}
+
+func TestHaAgentTags(t *testing.T) {
+ mockConfig, ctx := setupTest(t)
+
+ hostTags := Get(ctx, false, mockConfig)
+ assert.NotNil(t, hostTags.System)
+ assert.Equal(t, []string{}, hostTags.System)
+
+ mockConfig.SetWithoutSource("ha_agent.enabled", true)
+ mockConfig.SetWithoutSource("ha_agent.group", "my-group")
+
+ hostTags = Get(ctx, false, mockConfig)
+ assert.NotNil(t, hostTags.System)
+ assert.Equal(t, []string{"agent_group:my-group"}, hostTags.System)
+}
diff --git a/comp/otelcol/converter/README.md b/comp/otelcol/converter/README.md
index 31c0c53f7176b5..ad8c831ada147e 100644
--- a/comp/otelcol/converter/README.md
+++ b/comp/otelcol/converter/README.md
@@ -1,8 +1,6 @@
# Converter Component
-The converter:
-- Enhances the user provided configuration
-- Provides an API which returns the provided and enhanced configurations
+The converter enhances the user provided configuration.
## Autoconfigure logic
@@ -32,12 +30,6 @@ If `api_key` is unset, set to an empty string or set to a secret, the converter
The converter will automatically set `datadogconnector` config `trace.span_name_as_resource_name` to true in any datadog connectors in your configuration.
-## Provided and enhanced config
-
-`GetProvidedConf` and `GetEnhancedConf` return the string representation of the user provided and autoconfigured conf respectively. Currently, these APIs have two limitations:
-- They do not redact sensitive data
-- They do not provide the effective config (including defaults...etc)
-
## Opting out of converter
It is possible to opt out of the converter by setting env var `DD_OTELCOLLECTOR_CONVERTER_ENABLED` or agent config `otelcollector.converter.enabled` to `false` (`true` by default). Please note that by doing so, you are removing functionality including flare collection from otel-agent, health metrics from collector, or infra level tagging on your telemetry data. If you want to opt out of some components, you can disable all and add the components that you require manually:
diff --git a/comp/otelcol/ddflareextension/README.md b/comp/otelcol/ddflareextension/README.md
index 13f5902877c4ec..c54027041c70ff 100644
--- a/comp/otelcol/ddflareextension/README.md
+++ b/comp/otelcol/ddflareextension/README.md
@@ -32,7 +32,7 @@ The port is the location in which the otel-agent will expose the data required t
The flare will collect both the provided collector config and the enhanced config (enhanced via [converter](../converter/README.md)).
-The provided collector configs can be found in `otel/otel-flare/customer.cfg` and the enhanced config can be found in `otel/otel-flare/customer.cfg`.
+The provided collector configs can be found in `otel/otel-flare/customer.cfg` and the enhanced config can be found in `otel/otel-flare/runtime.cfg`.
### Environment variables
diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod
index 4deb81664b9ff1..0719700f9222a6 100644
--- a/comp/otelcol/ddflareextension/impl/go.mod
+++ b/comp/otelcol/ddflareextension/impl/go.mod
@@ -262,16 +262,16 @@ require (
github.com/DataDog/datadog-agent/pkg/util/system v0.59.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect
- github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect
- github.com/DataDog/datadog-go/v5 v5.5.0 // indirect
+ github.com/DataDog/datadog-api-client-go/v2 v2.33.0 // indirect
+ github.com/DataDog/datadog-go/v5 v5.6.0 // indirect
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect
github.com/DataDog/go-sqllexer v0.0.17 // indirect
github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 // indirect
github.com/DataDog/sketches-go v1.4.6 // indirect
github.com/DataDog/viper v1.14.0 // indirect
github.com/DataDog/zstd v1.5.6 // indirect
diff --git a/comp/otelcol/ddflareextension/impl/go.sum b/comp/otelcol/ddflareextension/impl/go.sum
index b4c098bd22dcdc..7a6bcb0649c647 100644
--- a/comp/otelcol/ddflareextension/impl/go.sum
+++ b/comp/otelcol/ddflareextension/impl/go.sum
@@ -63,11 +63,11 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju
github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc=
github.com/DataDog/datadog-agent/comp/core/log v0.56.2 h1:qvBT+FfjKGqimyEvmsNHCZKbTfBJAdUZSVy2IZQ8HS4=
github.com/DataDog/datadog-agent/comp/core/log v0.56.2/go.mod h1:ivJ/RMZjTNkoPPNDX+v/nnBwABLCiMv1vQA5tk/HCR4=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0 h1:OI6kDnJeQmkjfGzxmP0XUQUxMD4tp6oAPXnnJ4VpgUM=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.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.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
@@ -78,18 +78,18 @@ github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee h1:tXibLZk3G6HncIFJK
github.com/DataDog/gohai v0.0.0-20230524154621-4316413895ee/go.mod h1:nTot/Iy0kW16bXgXr6blEc8gFeAS7vTqYlhAxh+dbc0=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66+tfbdanOFSMGEfwWfnrn/IxG/Dc5bv5I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcCIWzxWrpI31C0QYoOjTaUGp6USCwiRbP5Fp4=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 h1:r1Dx2cRHCBWkVluSZA41i4eoI/nOGbcrrZdkqWjoFCc=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0/go.mod h1:+/dkO8ZiMa8rfm4SmtTF6qPUdBbBcvsWWKaO4xPKAIk=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0 h1:cXcKVEU1D0HlguR7GunnvuI70TghkarCa9DApqzMY94=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0/go.mod h1:ES00EXfyEKgUkjd93tAXCxJA6i0seeOhZoS5Cj2qzzg=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 h1:Zqj8YUZ/ualUhM8GDCQX6xKnUJKEiG0eYdFGWmIDG30=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0/go.mod h1:lpr4q6g2TB0BHeLHaz/XleKm8YXQjuxiQEb9Q9HXXE0=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0 h1:w9+ngZDYUMLW+GSRA8x1DvVbuMR+cwlGb8VLwZfgBGs=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0/go.mod h1:UsfqLgiD6Sjhpjkg+YzAd+TdKUZ2m6ZZ8t+tEkLNTMA=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 h1:63SzQz9Ab8XJj8fQKQz6UZNBhOm8rucwzbDfwTVF6dQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0/go.mod h1:E/PY/aQ6S/N5hBPHXZRGmovs5b1BSi4RHGNcB4yP/Z0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod
index d29e1451378c75..5023166f00df5c 100644
--- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod
+++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod
@@ -102,9 +102,9 @@ require (
github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/serializer v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3
- github.com/DataDog/datadog-go/v5 v5.5.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0
+ github.com/DataDog/datadog-go/v5 v5.6.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog v0.115.0
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/component v0.115.0
@@ -197,13 +197,13 @@ require (
github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect
github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect
- github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect
+ github.com/DataDog/datadog-api-client-go/v2 v2.33.0 // indirect
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect
github.com/DataDog/go-sqllexer v0.0.17 // indirect
github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 // indirect
github.com/DataDog/sketches-go v1.4.6 // indirect
github.com/DataDog/viper v1.14.0 // indirect
github.com/DataDog/zstd v1.5.6 // indirect
@@ -260,7 +260,6 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.115.0 // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0 // indirect
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/outcaste-io/ristretto v0.2.3 // indirect
@@ -268,6 +267,7 @@ require (
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // 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-20220216144756-c35f1ee13d7c // indirect
github.com/prometheus/client_golang v1.20.5 // indirect
diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum
index 5a622c5f06bbe3..5107430987dd34 100644
--- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum
+++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.sum
@@ -2,10 +2,10 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc=
github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0 h1:OI6kDnJeQmkjfGzxmP0XUQUxMD4tp6oAPXnnJ4VpgUM=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
@@ -14,18 +14,18 @@ github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4ti
github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66+tfbdanOFSMGEfwWfnrn/IxG/Dc5bv5I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcCIWzxWrpI31C0QYoOjTaUGp6USCwiRbP5Fp4=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 h1:r1Dx2cRHCBWkVluSZA41i4eoI/nOGbcrrZdkqWjoFCc=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0/go.mod h1:+/dkO8ZiMa8rfm4SmtTF6qPUdBbBcvsWWKaO4xPKAIk=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0 h1:cXcKVEU1D0HlguR7GunnvuI70TghkarCa9DApqzMY94=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0/go.mod h1:ES00EXfyEKgUkjd93tAXCxJA6i0seeOhZoS5Cj2qzzg=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 h1:Zqj8YUZ/ualUhM8GDCQX6xKnUJKEiG0eYdFGWmIDG30=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0/go.mod h1:lpr4q6g2TB0BHeLHaz/XleKm8YXQjuxiQEb9Q9HXXE0=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0 h1:w9+ngZDYUMLW+GSRA8x1DvVbuMR+cwlGb8VLwZfgBGs=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0/go.mod h1:UsfqLgiD6Sjhpjkg+YzAd+TdKUZ2m6ZZ8t+tEkLNTMA=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 h1:63SzQz9Ab8XJj8fQKQz6UZNBhOm8rucwzbDfwTVF6dQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0/go.mod h1:E/PY/aQ6S/N5hBPHXZRGmovs5b1BSi4RHGNcB4yP/Z0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
@@ -280,6 +280,8 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod
index a040e58e4630b0..23ddd3225d7792 100644
--- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod
+++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod
@@ -48,8 +48,8 @@ require (
github.com/DataDog/datadog-agent/pkg/logs/message v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/logs/sources v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0
github.com/stormcat24/protodep v0.1.8
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/component v0.115.0
@@ -90,8 +90,8 @@ require (
github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect
github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect
- github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 // indirect
+ github.com/DataDog/datadog-api-client-go/v2 v2.33.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 // indirect
github.com/DataDog/sketches-go v1.4.6 // indirect
github.com/DataDog/viper v1.14.0 // indirect
github.com/DataDog/zstd v1.5.6 // indirect
@@ -123,6 +123,7 @@ require (
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // 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-20220216144756-c35f1ee13d7c // indirect
github.com/shirou/gopsutil/v4 v4.24.11 // indirect
diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum
index c65db2e5974bfd..85a19bf8e57b5e 100644
--- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum
+++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.sum
@@ -1,13 +1,13 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66+tfbdanOFSMGEfwWfnrn/IxG/Dc5bv5I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0 h1:OI6kDnJeQmkjfGzxmP0XUQUxMD4tp6oAPXnnJ4VpgUM=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 h1:r1Dx2cRHCBWkVluSZA41i4eoI/nOGbcrrZdkqWjoFCc=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0/go.mod h1:+/dkO8ZiMa8rfm4SmtTF6qPUdBbBcvsWWKaO4xPKAIk=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 h1:Zqj8YUZ/ualUhM8GDCQX6xKnUJKEiG0eYdFGWmIDG30=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0/go.mod h1:lpr4q6g2TB0BHeLHaz/XleKm8YXQjuxiQEb9Q9HXXE0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
@@ -182,6 +182,8 @@ github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1Gsh
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter.go b/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter.go
index 04f8eaeae152bc..c6677de7a068ad 100644
--- a/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter.go
+++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter.go
@@ -73,18 +73,22 @@ func (e *Exporter) ConsumeLogs(ctx context.Context, ld plog.Logs) (err error) {
if ddLog.Service != nil {
service = *ddLog.Service
}
- status := ddLog.AdditionalProperties["status"]
- if status == "" {
- status = message.StatusInfo
+ status := message.StatusInfo
+ if val, ok := ddLog.AdditionalProperties["status"]; ok {
+ if strVal, ok := val.(string); ok && strVal != "" {
+ status = strVal
+ }
}
origin := message.NewOrigin(e.logSource)
origin.SetTags(tags)
origin.SetService(service)
- if src, ok := ddLog.AdditionalProperties["datadog.log.source"]; ok {
- origin.SetSource(src)
- } else {
- origin.SetSource(e.logSource.Name)
+ src := e.logSource.Name
+ if val, ok := ddLog.AdditionalProperties["datadog.log.source"]; ok {
+ if strVal, ok := val.(string); ok && strVal != "" {
+ src = strVal
+ }
}
+ origin.SetSource(src)
content, err := ddLog.MarshalJSON()
if err != nil {
diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter_test.go b/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter_test.go
index f7ed2dc597281d..cfe69f7a60704c 100644
--- a/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter_test.go
+++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/logs_exporter_test.go
@@ -136,6 +136,38 @@ func TestLogsExporter(t *testing.T) {
},
expectedTags: [][]string{{"otel_source:datadog_agent"}},
},
+ {
+ name: "status",
+ args: args{
+ ld: func() plog.Logs {
+ l := testutil.GenerateLogsOneLogRecord()
+ rl := l.ResourceLogs().At(0)
+ rl.ScopeLogs().At(0).LogRecords().At(0).SetSeverityText("Fatal")
+ return l
+ }(),
+ otelSource: otelSource,
+ logSourceName: LogSourceName,
+ },
+
+ want: testutil.JSONLogs{
+ {
+ "message": "This is a log message",
+ "app": "server",
+ "instance_num": "1",
+ "@timestamp": testutil.TestLogTime.Format("2006-01-02T15:04:05.000Z07:00"),
+ "status": "Fatal",
+ "dd.span_id": fmt.Sprintf("%d", spanIDToUint64(ld.SpanID())),
+ "dd.trace_id": fmt.Sprintf("%d", traceIDToUint64(ld.TraceID())),
+ "otel.severity_text": "Fatal",
+ "otel.severity_number": "9",
+ "otel.span_id": spanIDToHexOrEmptyString(ld.SpanID()),
+ "otel.trace_id": traceIDToHexOrEmptyString(ld.TraceID()),
+ "otel.timestamp": fmt.Sprintf("%d", testutil.TestLogTime.UnixNano()),
+ "resource-attr": "resource-attr-val-1",
+ },
+ },
+ expectedTags: [][]string{{"otel_source:datadog_agent"}},
+ },
{
name: "ddtags",
args: args{
diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod
index c47c4c07206d3f..3ed3c5a02c175f 100644
--- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod
+++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod
@@ -69,9 +69,9 @@ require (
github.com/DataDog/datadog-agent/pkg/serializer v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/tagset v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/log v0.59.1
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c // indirect
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.115.0
github.com/stretchr/testify v1.10.0
@@ -241,8 +241,8 @@ require (
github.com/knadh/koanf/maps v0.1.1 // indirect
github.com/knadh/koanf/providers/confmap v0.1.0 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 // indirect
github.com/pierrec/lz4/v4 v4.1.21 // indirect
+ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/shirou/gopsutil/v4 v4.24.11 // indirect
go.opentelemetry.io/collector/client v1.21.0 // indirect
go.opentelemetry.io/collector/config/configauth v0.115.0 // indirect
diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum
index e39d69c0417ad4..b0e60957170e61 100644
--- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum
+++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.sum
@@ -4,14 +4,14 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju
github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcCIWzxWrpI31C0QYoOjTaUGp6USCwiRbP5Fp4=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0 h1:cXcKVEU1D0HlguR7GunnvuI70TghkarCa9DApqzMY94=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0/go.mod h1:ES00EXfyEKgUkjd93tAXCxJA6i0seeOhZoS5Cj2qzzg=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0 h1:w9+ngZDYUMLW+GSRA8x1DvVbuMR+cwlGb8VLwZfgBGs=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0/go.mod h1:UsfqLgiD6Sjhpjkg+YzAd+TdKUZ2m6ZZ8t+tEkLNTMA=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 h1:63SzQz9Ab8XJj8fQKQz6UZNBhOm8rucwzbDfwTVF6dQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0/go.mod h1:E/PY/aQ6S/N5hBPHXZRGmovs5b1BSi4RHGNcB4yP/Z0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
@@ -231,6 +231,8 @@ github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFu
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/comp/otelcol/otlp/components/metricsclient/go.mod b/comp/otelcol/otlp/components/metricsclient/go.mod
index 953a7c7a017cd4..9f3e33feb8bf76 100644
--- a/comp/otelcol/otlp/components/metricsclient/go.mod
+++ b/comp/otelcol/otlp/components/metricsclient/go.mod
@@ -6,7 +6,7 @@ replace github.com/DataDog/datadog-agent/pkg/trace => ../../../../../pkg/trace
require (
github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3
- github.com/DataDog/datadog-go/v5 v5.5.0
+ github.com/DataDog/datadog-go/v5 v5.6.0
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/otel v1.32.0
go.opentelemetry.io/otel/metric v1.32.0
diff --git a/comp/otelcol/otlp/components/metricsclient/go.sum b/comp/otelcol/otlp/components/metricsclient/go.sum
index d3cbee6f760834..08cca2d402cd60 100644
--- a/comp/otelcol/otlp/components/metricsclient/go.sum
+++ b/comp/otelcol/otlp/components/metricsclient/go.sum
@@ -1,5 +1,5 @@
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
diff --git a/comp/otelcol/otlp/components/statsprocessor/go.mod b/comp/otelcol/otlp/components/statsprocessor/go.mod
index c0343f17f54b30..05eb43fdf46293 100644
--- a/comp/otelcol/otlp/components/statsprocessor/go.mod
+++ b/comp/otelcol/otlp/components/statsprocessor/go.mod
@@ -22,8 +22,8 @@ require (
github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3
- github.com/DataDog/datadog-go/v5 v5.5.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
+ github.com/DataDog/datadog-go/v5 v5.6.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/component/componenttest v0.115.0
go.opentelemetry.io/collector/pdata v1.21.0
@@ -71,6 +71,7 @@ require (
github.com/outcaste-io/ristretto v0.2.3 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
github.com/pkg/errors v0.9.1 // indirect
+ github.com/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-20220216144756-c35f1ee13d7c // indirect
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
diff --git a/comp/otelcol/otlp/components/statsprocessor/go.sum b/comp/otelcol/otlp/components/statsprocessor/go.sum
index 6d97a133216365..25a9e6fccac3c1 100644
--- a/comp/otelcol/otlp/components/statsprocessor/go.sum
+++ b/comp/otelcol/otlp/components/statsprocessor/go.sum
@@ -1,11 +1,11 @@
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc=
github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4=
github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY=
@@ -92,6 +92,8 @@ github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1Gsh
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/comp/otelcol/otlp/config.go b/comp/otelcol/otlp/config.go
index 82448dbf45a592..ce56626e2f3e82 100644
--- a/comp/otelcol/otlp/config.go
+++ b/comp/otelcol/otlp/config.go
@@ -14,12 +14,13 @@ import (
"go.uber.org/multierr"
+ "github.com/go-viper/mapstructure/v2"
+
"github.com/DataDog/datadog-agent/comp/core/config"
"github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter"
"github.com/DataDog/datadog-agent/comp/otelcol/otlp/configcheck"
coreconfig "github.com/DataDog/datadog-agent/pkg/config/setup"
"github.com/DataDog/datadog-agent/pkg/util"
- "github.com/go-viper/mapstructure/v2"
)
func portToUint(v int) (port uint, err error) {
@@ -51,7 +52,7 @@ func FromAgentConfig(cfg config.Reader) (PipelineConfig, error) {
metricsConfigMap["apm_stats_receiver_addr"] = fmt.Sprintf("http://localhost:%s/v0.6/stats", coreconfig.Datadog().GetString("apm_config.receiver_port"))
}
- tags := strings.Join(util.GetStaticTagsSlice(context.TODO()), ",")
+ tags := strings.Join(util.GetStaticTagsSlice(context.TODO(), cfg), ",")
if tags != "" {
metricsConfigMap["tags"] = tags
}
diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod
index 3612a4e9b1e4cc..58832aca7482e6 100644
--- a/comp/otelcol/otlp/testutil/go.mod
+++ b/comp/otelcol/otlp/testutil/go.mod
@@ -37,8 +37,8 @@ require (
github.com/DataDog/datadog-agent/pkg/config/model v0.59.0
github.com/DataDog/datadog-agent/pkg/config/setup v0.59.0
github.com/DataDog/datadog-agent/pkg/proto v0.55.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
github.com/DataDog/sketches-go v1.4.6
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/pdata v1.21.0
@@ -83,6 +83,7 @@ require (
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // 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-20220216144756-c35f1ee13d7c // indirect
github.com/shirou/gopsutil/v4 v4.24.11 // indirect
diff --git a/comp/otelcol/otlp/testutil/go.sum b/comp/otelcol/otlp/testutil/go.sum
index 90eafd9495c039..22f79264c82e83 100644
--- a/comp/otelcol/otlp/testutil/go.sum
+++ b/comp/otelcol/otlp/testutil/go.sum
@@ -1,9 +1,9 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 h1:r1Dx2cRHCBWkVluSZA41i4eoI/nOGbcrrZdkqWjoFCc=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0/go.mod h1:+/dkO8ZiMa8rfm4SmtTF6qPUdBbBcvsWWKaO4xPKAIk=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
@@ -154,6 +154,8 @@ github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1Gsh
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod
index c7b0d130245fec..56d13f69c88cf8 100644
--- a/comp/trace/agent/def/go.mod
+++ b/comp/trace/agent/def/go.mod
@@ -6,21 +6,17 @@ replace github.com/DataDog/datadog-agent/pkg/proto => ../../../../pkg/proto
require (
github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
go.opentelemetry.io/collector/pdata v1.21.0
)
-require (
- go.opentelemetry.io/collector/component/componenttest v0.115.0 // indirect
- go.opentelemetry.io/otel/sdk/metric v1.32.0 // indirect
-)
-
require (
github.com/gogo/protobuf v1.3.2 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
+ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/tinylib/msgp v1.2.4 // indirect
go.opentelemetry.io/collector/component v0.115.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.115.0 // indirect
diff --git a/comp/trace/agent/def/go.sum b/comp/trace/agent/def/go.sum
index 983db883b8b3d6..7b3dbbc7fe0b39 100644
--- a/comp/trace/agent/def/go.sum
+++ b/comp/trace/agent/def/go.sum
@@ -1,5 +1,5 @@
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -30,6 +30,8 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY=
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/go.mod b/go.mod
index e4a9b163a0ed19..0a6de46e14ef7e 100644
--- a/go.mod
+++ b/go.mod
@@ -157,14 +157,14 @@ require (
github.com/DataDog/datadog-agent/pkg/util/log v0.59.1
github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.1
- github.com/DataDog/datadog-go/v5 v5.5.0
- github.com/DataDog/datadog-operator v0.7.1-0.20241024104907-734366f3c0d1
+ github.com/DataDog/datadog-go/v5 v5.6.0
+ github.com/DataDog/datadog-operator v1.11.0-rc.2
github.com/DataDog/ebpf-manager v0.7.4
github.com/DataDog/gopsutil v1.2.2
github.com/DataDog/nikos v1.12.8
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0
github.com/DataDog/sketches-go v1.4.6
github.com/DataDog/viper v1.14.0
github.com/DataDog/watermarkpodautoscaler v0.5.3-0.20241023200123-ab786c1724cf
@@ -197,7 +197,7 @@ require (
github.com/cri-o/ocicni v0.4.3
github.com/cyphar/filepath-securejoin v0.3.4
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
- github.com/docker/docker v27.3.1+incompatible
+ github.com/docker/docker v27.4.0+incompatible
github.com/docker/go-connections v0.5.0
github.com/dustin/go-humanize v1.0.1
github.com/elastic/go-libaudit/v2 v2.5.0
@@ -323,9 +323,9 @@ require (
gopkg.in/yaml.v2 v2.4.0
gopkg.in/yaml.v3 v3.0.1
gopkg.in/zorkian/go-datadog-api.v2 v2.30.0
- k8s.io/api v0.31.3
+ k8s.io/api v0.31.4
k8s.io/apiextensions-apiserver v0.31.2
- k8s.io/apimachinery v0.31.3
+ k8s.io/apimachinery v0.31.4
k8s.io/apiserver v0.31.2 // indirect
k8s.io/autoscaler/vertical-pod-autoscaler v0.13.0
k8s.io/client-go v0.31.3
@@ -403,7 +403,7 @@ require (
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect
github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
- github.com/docker/cli v27.1.1+incompatible // indirect
+ github.com/docker/cli v27.4.0+incompatible // indirect
github.com/docker/distribution v2.8.3+incompatible // indirect
github.com/docker/docker-credential-helpers v0.8.1 // indirect
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect
@@ -741,7 +741,6 @@ require (
github.com/aws/aws-sdk-go-v2/service/kms v1.37.6
github.com/aws/aws-sdk-go-v2/service/rds v1.90.0
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.6
- github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240409155312-26d1ea377073
github.com/cloudfoundry-community/go-cfclient/v2 v2.0.1-0.20230503155151-3d15366c5820
github.com/containerd/cgroups/v3 v3.0.4
github.com/containerd/typeurl/v2 v2.2.3
@@ -803,25 +802,25 @@ require (
github.com/DataDog/datadog-agent/pkg/util/buf v0.56.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/statstracker v0.59.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect
- github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect
+ github.com/DataDog/datadog-api-client-go/v2 v2.33.0 // indirect
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect
github.com/Intevation/gval v1.3.0 // indirect
github.com/Intevation/jsonpath v0.2.1 // indirect
github.com/Showmax/go-fqdn v1.0.0 // indirect
github.com/VividCortex/ewma v1.2.0 // indirect
github.com/agext/levenshtein v1.2.3 // indirect
+ github.com/alecthomas/assert/v2 v2.6.0 // indirect
github.com/alecthomas/participle/v2 v2.1.1 // indirect
+ github.com/alecthomas/repr v0.4.0 // indirect
github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 // indirect
github.com/antchfx/xmlquery v1.4.2 // indirect
github.com/antchfx/xpath v1.3.2 // indirect
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/apache/thrift v0.21.0 // indirect
github.com/aquasecurity/trivy-java-db v0.0.0-20240109071736-184bd7481d48 // indirect
- github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 // indirect
- github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.0 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect
github.com/bahlo/generic-list-go v0.2.0 // indirect
github.com/bitnami/go-version v0.0.0-20231130084017-bb00604d650c // indirect
diff --git a/go.sum b/go.sum
index c6cb56a57dc594..5fd04067f49053 100644
--- a/go.sum
+++ b/go.sum
@@ -125,13 +125,13 @@ github.com/DataDog/cast v1.8.0 h1:uooY8bMzq+cjgiNP1VTquCWve5emgk8fRspZojJwQa8=
github.com/DataDog/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo=
github.com/DataDog/datadog-agent/comp/core/log v0.56.2 h1:qvBT+FfjKGqimyEvmsNHCZKbTfBJAdUZSVy2IZQ8HS4=
github.com/DataDog/datadog-agent/comp/core/log v0.56.2/go.mod h1:ivJ/RMZjTNkoPPNDX+v/nnBwABLCiMv1vQA5tk/HCR4=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0 h1:OI6kDnJeQmkjfGzxmP0XUQUxMD4tp6oAPXnnJ4VpgUM=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.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.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
-github.com/DataDog/datadog-operator v0.7.1-0.20241024104907-734366f3c0d1 h1:17MXCuo1IacLeVzdmwV+92ANVrXkquObm0yxjen1eJ0=
-github.com/DataDog/datadog-operator v0.7.1-0.20241024104907-734366f3c0d1/go.mod h1:5Xp66c0HGadP85lOQtb6oVuSvuL5ZSSowQM58hNtTi8=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-operator v1.11.0-rc.2 h1:4tMZlxbYE0WEpRYAhoqEe8nLP67C/PDq7utJJcD8RM8=
+github.com/DataDog/datadog-operator v1.11.0-rc.2/go.mod h1:mD+3PWR0wOSVJGaXjkpzsYEK/7PhqjOipx2usgfsxM0=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc=
github.com/DataDog/dd-trace-go/v2 v2.0.0-beta.11 h1:6vwU//TjBIghQKMgIP9UyIRhN/LWS1y8tYzvRnu8JZw=
@@ -160,18 +160,18 @@ github.com/DataDog/netlink v1.0.1-0.20240223195320-c7a4f832a3d1 h1:HnvrdC79xJ+RP
github.com/DataDog/netlink v1.0.1-0.20240223195320-c7a4f832a3d1/go.mod h1:whJevzBpTrid75eZy99s3DqCmy05NfibNaF2Ol5Ox5A=
github.com/DataDog/nikos v1.12.8 h1:naQa3ve9Rv0lFIWC2H41zpqnhbBFLlYUIXu9jK7l84o=
github.com/DataDog/nikos v1.12.8/go.mod h1:BGSRgJ6w1ji26//oGecmYiOFMWFmMARIOu0Fr7CKvB8=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66+tfbdanOFSMGEfwWfnrn/IxG/Dc5bv5I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcCIWzxWrpI31C0QYoOjTaUGp6USCwiRbP5Fp4=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 h1:r1Dx2cRHCBWkVluSZA41i4eoI/nOGbcrrZdkqWjoFCc=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0/go.mod h1:+/dkO8ZiMa8rfm4SmtTF6qPUdBbBcvsWWKaO4xPKAIk=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0 h1:cXcKVEU1D0HlguR7GunnvuI70TghkarCa9DApqzMY94=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0/go.mod h1:ES00EXfyEKgUkjd93tAXCxJA6i0seeOhZoS5Cj2qzzg=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 h1:Zqj8YUZ/ualUhM8GDCQX6xKnUJKEiG0eYdFGWmIDG30=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0/go.mod h1:lpr4q6g2TB0BHeLHaz/XleKm8YXQjuxiQEb9Q9HXXE0=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0 h1:w9+ngZDYUMLW+GSRA8x1DvVbuMR+cwlGb8VLwZfgBGs=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0/go.mod h1:UsfqLgiD6Sjhpjkg+YzAd+TdKUZ2m6ZZ8t+tEkLNTMA=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 h1:63SzQz9Ab8XJj8fQKQz6UZNBhOm8rucwzbDfwTVF6dQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0/go.mod h1:E/PY/aQ6S/N5hBPHXZRGmovs5b1BSi4RHGNcB4yP/Z0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/trivy v0.0.0-20241126101205-8517f9b946f4 h1:UVL5oU/8o0JhEv8Js6qxJgiqeV+PzPw/aldojyexS/U=
@@ -241,16 +241,16 @@ github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7l
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
github.com/agnivade/levenshtein v1.2.0 h1:U9L4IOT0Y3i0TIlUIDJ7rVUziKi/zPbrJGaFrtYH3SY=
github.com/agnivade/levenshtein v1.2.0/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=
-github.com/alecthomas/assert/v2 v2.3.0 h1:mAsH2wmvjsuvyBvAmCtm7zFsBlb8mIHx5ySLVdDZXL0=
-github.com/alecthomas/assert/v2 v2.3.0/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ=
+github.com/alecthomas/assert/v2 v2.6.0 h1:o3WJwILtexrEUk3cUVal3oiQY2tfgr/FHWiz/v2n4FU=
+github.com/alecthomas/assert/v2 v2.6.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
github.com/alecthomas/jsonschema v0.0.0-20210918223802-a1d3f4b43d7b/go.mod h1:/n6+1/DWPltRLWL/VKyUxg6tzsl5kHUCcraimt4vr60=
github.com/alecthomas/participle v0.7.1 h1:2bN7reTw//5f0cugJcTOnY/NYZcWQOaajW+BwZB5xWs=
github.com/alecthomas/participle v0.7.1/go.mod h1:HfdmEuwvr12HXQN44HPWXR0lHmVolVYe4dyL6lQ3duY=
github.com/alecthomas/participle/v2 v2.1.1 h1:hrjKESvSqGHzRb4yW1ciisFJ4p3MGYih6icjJvbsmV8=
github.com/alecthomas/participle/v2 v2.1.1/go.mod h1:Y1+hAs8DHPmc3YUFzqllV+eSQ9ljPTk0ZkPMtEdAx2c=
github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
-github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk=
-github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
+github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
+github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -347,10 +347,6 @@ github.com/aws/aws-sdk-go-v2/service/ebs v1.27.0 h1:4zuGQITyy9O+GlSGcs+aUz3+Smlv
github.com/aws/aws-sdk-go-v2/service/ebs v1.27.0/go.mod h1:T0t6q7wBD2P11xwVcc6GvwmuDT3i6ZJgZ+13ziQUUnA=
github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0 h1:k97fGog9Tl0woxTiSIHN14Qs5ehqK6GXejUwkhJYyL0=
github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0/go.mod h1:mzj8EEjIHSN2oZRXiw1Dd+uB4HZTl7hC8nBzX9IZMWw=
-github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 h1:VDQaVwGOokbd3VUbHF+wupiffdrbAZPdQnr5XZMJqrs=
-github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2/go.mod h1:lvUlMghKYmSxSfv0vU7pdU/8jSY+s0zpG8xXhaGKCw0=
-github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.0 h1:k4ykVLeoO2JohTC7BIfIqWYvmf8HcirbWHf8Zn0SPpI=
-github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.27.0/go.mod h1:vJMqaxbvogPsWZYEInEwK82EBwCfc7cnE/5BEqnvTYI=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.15/go.mod h1:26SQUPcTNgV1Tapwdt4a1rOsYRsnBsJHLMPoxK2b0d8=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE=
@@ -378,8 +374,6 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.33.1/go.mod h1:GqWyYCwLXnlUB1lOAXQyN
github.com/aws/smithy-go v1.15.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro=
github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
-github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240409155312-26d1ea377073 h1:9XtHL16FtbSDAedz9AnboTDqfKacYqc5BmwtUxzwwD8=
-github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20240409155312-26d1ea377073/go.mod h1:2nlYPkG0rFrODp6R875pk/kOnB8Ivj3+onhzk2mO57g=
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/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps=
@@ -552,12 +546,12 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
-github.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE=
-github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/cli v27.4.0+incompatible h1:/nJzWkcI1MDMN+U+px/YXnQWJqnu4J+QKGTfD6ptiTc=
+github.com/docker/cli v27.4.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk=
github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
-github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
-github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/docker v27.4.0+incompatible h1:I9z7sQ5qyzO0BfAb9IMOawRkAGxhYsidKiTMcm0DU+A=
+github.com/docker/docker v27.4.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker-credential-helpers v0.8.1 h1:j/eKUktUltBtMzKqmfLB0PAgqYyMHOp5vfsD1807oKo=
github.com/docker/docker-credential-helpers v0.8.1/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M=
github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
@@ -2666,13 +2660,13 @@ honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9
honnef.co/go/tools v0.5.1 h1:4bH5o3b5ZULQ4UrBmP+63W9r7qIkqJClEA9ko5YKx+I=
honnef.co/go/tools v0.5.1/go.mod h1:e9irvo83WDG9/irijV44wr3tbhcFeRnfpVlRqVwpzMs=
k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s=
-k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8=
-k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE=
+k8s.io/api v0.31.4 h1:I2QNzitPVsPeLQvexMEsj945QumYraqv9m74isPDKhM=
+k8s.io/api v0.31.4/go.mod h1:d+7vgXLvmcdT1BCo79VEgJxHHryww3V5np2OYTr6jdw=
k8s.io/apiextensions-apiserver v0.31.2 h1:W8EwUb8+WXBLu56ser5IudT2cOho0gAKeTOnywBLxd0=
k8s.io/apiextensions-apiserver v0.31.2/go.mod h1:i+Geh+nGCJEGiCGR3MlBDkS7koHIIKWVfWeRFiOsUcM=
k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY=
-k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4=
-k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
+k8s.io/apimachinery v0.31.4 h1:8xjE2C4CzhYVm9DGf60yohpNUh5AEBnPxCryPBECmlM=
+k8s.io/apimachinery v0.31.4/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
k8s.io/apiserver v0.31.2 h1:VUzOEUGRCDi6kX1OyQ801m4A7AUPglpsmGvdsekmcI4=
k8s.io/apiserver v0.31.2/go.mod h1:o3nKZR7lPlJqkU5I3Ove+Zx3JuoFjQobGX1Gctw6XuE=
k8s.io/autoscaler/vertical-pod-autoscaler v0.13.0 h1:pH6AsxeBZcyX6KBqcnl7SPIJqbN1d59RrEBuIE6Rq6c=
diff --git a/internal/tools/go.mod b/internal/tools/go.mod
index e2a60b08d89718..79be9ca61a043e 100644
--- a/internal/tools/go.mod
+++ b/internal/tools/go.mod
@@ -32,7 +32,7 @@ require (
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
github.com/ProtonMail/go-crypto v1.1.0-alpha.0 // indirect
- github.com/alecthomas/assert/v2 v2.3.0 // indirect
+ github.com/alecthomas/assert/v2 v2.6.0 // indirect
github.com/alecthomas/go-check-sumtype v0.1.4 // indirect
github.com/alexkohler/nakedret/v2 v2.0.4 // indirect
github.com/alexkohler/prealloc v1.0.0 // indirect
diff --git a/internal/tools/go.sum b/internal/tools/go.sum
index f5f1fb317b59a3..2bf7f8b759bd6e 100644
--- a/internal/tools/go.sum
+++ b/internal/tools/go.sum
@@ -38,12 +38,12 @@ github.com/aclements/go-gg v0.0.0-20170118225347-6dbb4e4fefb0/go.mod h1:55qNq4vc
github.com/aclements/go-moremath v0.0.0-20161014184102-0ff62e0875ff/go.mod h1:idZL3yvz4kzx1dsBOAC+oYv6L92P1oFEhUXUB1A/lwQ=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs=
-github.com/alecthomas/assert/v2 v2.3.0 h1:mAsH2wmvjsuvyBvAmCtm7zFsBlb8mIHx5ySLVdDZXL0=
-github.com/alecthomas/assert/v2 v2.3.0/go.mod h1:pXcQ2Asjp247dahGEmsZ6ru0UVwnkhktn7S0bBDLxvQ=
+github.com/alecthomas/assert/v2 v2.6.0 h1:o3WJwILtexrEUk3cUVal3oiQY2tfgr/FHWiz/v2n4FU=
+github.com/alecthomas/assert/v2 v2.6.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
github.com/alecthomas/go-check-sumtype v0.1.4 h1:WCvlB3l5Vq5dZQTFmodqL2g68uHiSwwlWcT5a2FGK0c=
github.com/alecthomas/go-check-sumtype v0.1.4/go.mod h1:WyYPfhfkdhyrdaligV6svFopZV8Lqdzn5pyVBaV6jhQ=
-github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk=
-github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
+github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
+github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/alexkohler/nakedret/v2 v2.0.4 h1:yZuKmjqGi0pSmjGpOC016LtPJysIL0WEUiaXW5SUnNg=
github.com/alexkohler/nakedret/v2 v2.0.4/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=
github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=
diff --git a/omnibus/config/software/gstatus.rb b/omnibus/config/software/gstatus.rb
index 8eb469763dc8c6..fc96d2ba840442 100644
--- a/omnibus/config/software/gstatus.rb
+++ b/omnibus/config/software/gstatus.rb
@@ -16,10 +16,10 @@
#
name "gstatus"
-default_version "1.0.5"
+default_version "1.0.9"
source :url => "https://github.com/gluster/gstatus/releases/download/v#{version}/gstatus",
- :sha256 => "485b79c42d5623e2593374be3b8d8cde8a00f080ab2fe417c84a2dc3d2a49719",
+ :sha256 => "4731a515ce1b75c7d9f378588be5be369ca0130fb51802de853527310724b0f8",
:target_filename => "gstatus"
diff --git a/pkg/aggregator/aggregator.go b/pkg/aggregator/aggregator.go
index 653a0311948193..0423f9871c65d9 100644
--- a/pkg/aggregator/aggregator.go
+++ b/pkg/aggregator/aggregator.go
@@ -877,9 +877,6 @@ func (agg *BufferedAggregator) tags(withVersion bool) []string {
tags = append(tags, "package_version:"+version.AgentPackageVersion)
}
}
- if agg.haAgent.Enabled() {
- tags = append(tags, "agent_group:"+agg.haAgent.GetGroup())
- }
// nil to empty string
// This is expected by other components/tests
if tags == nil {
diff --git a/pkg/aggregator/aggregator_test.go b/pkg/aggregator/aggregator_test.go
index 5a0676cbcb5074..2b447281eea771 100644
--- a/pkg/aggregator/aggregator_test.go
+++ b/pkg/aggregator/aggregator_test.go
@@ -294,7 +294,7 @@ func TestDefaultSeries(t *testing.T) {
require.Equal(t, 1, len(m))
require.Equal(t, "datadog.agent.up", m[0].CheckName)
require.Equal(t, servicecheck.ServiceCheckOK, m[0].Status)
- require.Equal(t, []string{"agent_group:group01"}, m[0].Tags)
+ require.Equal(t, []string{}, m[0].Tags)
require.Equal(t, agg.hostname, m[0].Host)
return true
@@ -304,14 +304,14 @@ func TestDefaultSeries(t *testing.T) {
expectedSeries := metrics.Series{&metrics.Serie{
Name: fmt.Sprintf("datadog.%s.running", flavor.GetFlavor()),
Points: []metrics.Point{{Value: 1, Ts: float64(start.Unix())}},
- Tags: tagset.CompositeTagsFromSlice([]string{"version:" + version.AgentVersion, "agent_group:group01"}),
+ Tags: tagset.CompositeTagsFromSlice([]string{"version:" + version.AgentVersion}),
Host: agg.hostname,
MType: metrics.APIGaugeType,
SourceTypeName: "System",
}, &metrics.Serie{
Name: fmt.Sprintf("datadog.%s.ha_agent.running", agg.agentName),
Points: []metrics.Point{{Value: float64(1), Ts: float64(start.Unix())}},
- Tags: tagset.CompositeTagsFromSlice([]string{"agent_group:group01", "agent_state:standby"}),
+ Tags: tagset.CompositeTagsFromSlice([]string{"agent_state:standby"}),
Host: agg.hostname,
MType: metrics.APIGaugeType,
SourceTypeName: "System",
@@ -319,7 +319,7 @@ func TestDefaultSeries(t *testing.T) {
Name: fmt.Sprintf("n_o_i_n_d_e_x.datadog.%s.payload.dropped", flavor.GetFlavor()),
Points: []metrics.Point{{Value: 0, Ts: float64(start.Unix())}},
Host: agg.hostname,
- Tags: tagset.CompositeTagsFromSlice([]string{"agent_group:group01"}),
+ Tags: tagset.CompositeTagsFromSlice([]string{}),
MType: metrics.APIGaugeType,
SourceTypeName: "System",
NoIndex: true,
@@ -643,16 +643,6 @@ func TestTags(t *testing.T) {
withVersion: true,
want: []string{"container_name:agent", "version:" + version.AgentVersion, "kube_cluster_name:foo"},
},
- {
- name: "tags disabled, without version, ha agent enabled",
- hostname: "hostname",
- tlmContainerTagsEnabled: false,
- agentTags: func(types.TagCardinality) ([]string, error) { return nil, errors.New("disabled") },
- globalTags: func(types.TagCardinality) ([]string, error) { return nil, errors.New("disabled") },
- withVersion: false,
- haAgentEnabled: true,
- want: []string{"agent_group:group01"},
- },
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
diff --git a/pkg/collector/corechecks/containers/generic/filters.go b/pkg/collector/corechecks/containers/generic/filters.go
index 788a88664bcb50..fbf0fb544e25a8 100644
--- a/pkg/collector/corechecks/containers/generic/filters.go
+++ b/pkg/collector/corechecks/containers/generic/filters.go
@@ -56,7 +56,7 @@ func (f LegacyContainerFilter) IsExcluded(container *workloadmeta.Container) boo
annotations = pod.Annotations
}
- return f.OldFilter.IsExcluded(annotations, container.Name, container.Image.Name, container.Labels[kubernetes.CriContainerNamespaceLabel])
+ return f.OldFilter.IsExcluded(annotations, container.Name, container.Image.RawName, container.Labels[kubernetes.CriContainerNamespaceLabel])
}
// RuntimeContainerFilter filters containers by runtime
diff --git a/pkg/collector/corechecks/containers/kubelet/common/pod.go b/pkg/collector/corechecks/containers/kubelet/common/pod.go
index f0689b2c852d1d..da2706b143de5a 100644
--- a/pkg/collector/corechecks/containers/kubelet/common/pod.go
+++ b/pkg/collector/corechecks/containers/kubelet/common/pod.go
@@ -190,7 +190,7 @@ func GetContainerID(store workloadmeta.Component, metric model.Metric, filter *c
return "", ErrContainerNotFound
}
- if filter.IsExcluded(pod.EntityMeta.Annotations, container.Name, container.Image.Name, pod.Namespace) {
+ if filter.IsExcluded(pod.EntityMeta.Annotations, container.Name, container.Image.RawName, pod.Namespace) {
return "", ErrContainerExcluded
}
diff --git a/pkg/collector/corechecks/servicediscovery/module/testutil/fake_server/.gitignore b/pkg/collector/corechecks/servicediscovery/module/testutil/fake_server/.gitignore
index eaaf842eef4d46..6882d79c431d08 100644
--- a/pkg/collector/corechecks/servicediscovery/module/testutil/fake_server/.gitignore
+++ b/pkg/collector/corechecks/servicediscovery/module/testutil/fake_server/.gitignore
@@ -1,6 +1,2 @@
-fake_server
-dotnet
-python
-java
-node
-sshd
+*
+! *.go
diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod
index ec7d298386516f..282d7f34ff86f0 100644
--- a/pkg/config/remote/go.mod
+++ b/pkg/config/remote/go.mod
@@ -85,7 +85,7 @@ require (
github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect
github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect
- github.com/DataDog/datadog-go/v5 v5.5.0 // indirect
+ github.com/DataDog/datadog-go/v5 v5.6.0 // indirect
github.com/DataDog/go-libddwaf/v3 v3.5.1 // indirect
github.com/DataDog/go-sqllexer v0.0.17 // indirect
github.com/DataDog/sketches-go v1.4.6 // indirect
diff --git a/pkg/config/remote/go.sum b/pkg/config/remote/go.sum
index e9342de28e23ce..84cc570d9ad845 100644
--- a/pkg/config/remote/go.sum
+++ b/pkg/config/remote/go.sum
@@ -7,8 +7,8 @@ cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/yb
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/DataDog/appsec-internal-go v1.9.0 h1:cGOneFsg0JTRzWl5U2+og5dbtyW3N8XaYwc5nXe39Vw=
github.com/DataDog/appsec-internal-go v1.9.0/go.mod h1:wW0cRfWBo4C044jHGwYiyh5moQV2x0AhnwqMuiX7O/g=
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/go-libddwaf/v3 v3.5.1 h1:GWA4ln4DlLxiXm+X7HA/oj0ZLcdCwOS81KQitegRTyY=
github.com/DataDog/go-libddwaf/v3 v3.5.1/go.mod h1:n98d9nZ1gzenRSk53wz8l6d34ikxS+hs62A31Fqmyi4=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
diff --git a/pkg/config/setup/apm.go b/pkg/config/setup/apm.go
index f792f9c57dd818..a8558fb1d894e7 100644
--- a/pkg/config/setup/apm.go
+++ b/pkg/config/setup/apm.go
@@ -56,7 +56,7 @@ func setupAPM(config pkgconfigmodel.Setup) {
config.SetKnown("apm_config.service_writer.queue_size")
config.SetKnown("apm_config.stats_writer.connection_limit")
config.SetKnown("apm_config.stats_writer.queue_size")
- config.SetKnown("apm_config.analyzed_rate_by_service.*")
+ config.SetKnown("apm_config.analyzed_rate_by_service")
config.SetKnown("apm_config.bucket_size_seconds")
config.SetKnown("apm_config.watchdog_check_delay")
config.SetKnown("apm_config.sync_flushing")
diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go
index 66942a316486ee..24f8d81503459b 100644
--- a/pkg/config/setup/config.go
+++ b/pkg/config/setup/config.go
@@ -868,8 +868,7 @@ func InitConfig(config pkgconfigmodel.Setup) {
// DEPRECATED in favor of `orchestrator_explorer.orchestrator_dd_url` setting. If both are set `orchestrator_explorer.orchestrator_dd_url` will take precedence.
config.BindEnv("process_config.orchestrator_dd_url", "DD_PROCESS_CONFIG_ORCHESTRATOR_DD_URL", "DD_PROCESS_AGENT_ORCHESTRATOR_DD_URL")
// DEPRECATED in favor of `orchestrator_explorer.orchestrator_additional_endpoints` setting. If both are set `orchestrator_explorer.orchestrator_additional_endpoints` will take precedence.
- config.SetKnown("process_config.orchestrator_additional_endpoints.*")
- config.SetKnown("orchestrator_explorer.orchestrator_additional_endpoints.*")
+ config.SetKnown("process_config.orchestrator_additional_endpoints")
config.BindEnvAndSetDefault("orchestrator_explorer.extra_tags", []string{})
// Network
@@ -1283,7 +1282,6 @@ func telemetry(config pkgconfigmodel.Setup) {
// Agent Telemetry
config.BindEnvAndSetDefault("agent_telemetry.enabled", true)
- config.SetKnown("agent_telemetry.additional_endpoints.*")
bindEnvAndSetLogsConfigKeys(config, "agent_telemetry.")
}
@@ -1819,19 +1817,18 @@ func findUnknownKeys(config pkgconfigmodel.Config) []string {
var unknownKeys []string
knownKeys := config.GetKnownKeysLowercased()
loadedKeys := config.AllKeysLowercased()
- for _, key := range loadedKeys {
- if _, found := knownKeys[key]; !found {
- // Check if any subkey terminated with a '.*' wildcard is marked as known
- // e.g.: apm_config.* would match all sub-keys of apm_config
- splitPath := strings.Split(key, ".")
- for j := range splitPath {
- subKey := strings.Join(splitPath[:j+1], ".") + ".*"
- if _, found = knownKeys[subKey]; found {
+ for _, loadedKey := range loadedKeys {
+ if _, found := knownKeys[loadedKey]; !found {
+ nestedValue := false
+ // If a value is within a known key it is considered known.
+ for knownKey := range knownKeys {
+ if strings.HasPrefix(loadedKey, knownKey+".") {
+ nestedValue = true
break
}
}
- if !found {
- unknownKeys = append(unknownKeys, key)
+ if !nestedValue {
+ unknownKeys = append(unknownKeys, loadedKey)
}
}
}
diff --git a/pkg/config/setup/config_test.go b/pkg/config/setup/config_test.go
index c9713b2fccd9cc..a02ffa8b6af72f 100644
--- a/pkg/config/setup/config_test.go
+++ b/pkg/config/setup/config_test.go
@@ -6,11 +6,11 @@
package setup
import (
- "bytes"
"fmt"
"os"
"path"
"path/filepath"
+ "slices"
"strings"
"testing"
"time"
@@ -45,7 +45,7 @@ func unsetEnvForTest(t *testing.T, env string) {
func confFromYAML(t *testing.T, yamlConfig string) pkgconfigmodel.Config {
conf := newTestConf()
conf.SetConfigType("yaml")
- err := conf.ReadConfig(bytes.NewBuffer([]byte(yamlConfig)))
+ err := conf.ReadConfig(strings.NewReader(yamlConfig))
require.NoError(t, err)
return conf
}
@@ -133,15 +133,39 @@ func TestUnexpectedWhitespace(t *testing.T) {
}
func TestUnknownKeysWarning(t *testing.T) {
- conf := newTestConf()
- conf.SetWithoutSource("site", "datadoghq.eu")
- assert.Len(t, findUnknownKeys(conf), 0)
+ yaml := `
+a: 21
+aa: 21
+b:
+ c:
+ d: "test"
+`
+ conf := confFromYAML(t, yaml)
- conf.SetWithoutSource("unknown_key.unknown_subkey", "true")
- assert.Len(t, findUnknownKeys(conf), 1)
+ res := findUnknownKeys(conf)
+ slices.Sort(res)
+ assert.Equal(t, []string{"a", "aa", "b.c.d"}, res)
+
+ conf.SetDefault("a", 0)
+ res = findUnknownKeys(conf)
+ slices.Sort(res)
+ assert.Equal(t, []string{"aa", "b.c.d"}, res)
- conf.SetKnown("unknown_key.*")
- assert.Len(t, findUnknownKeys(conf), 0)
+ conf.SetWithoutSource("a", 12)
+ res = findUnknownKeys(conf)
+ slices.Sort(res)
+ assert.Equal(t, []string{"aa", "b.c.d"}, res)
+
+ // testing that nested value are correctly detected
+ conf.SetDefault("b.c", map[string]string{})
+ res = findUnknownKeys(conf)
+ slices.Sort(res)
+ assert.Equal(t, []string{"aa"}, res)
+
+ conf.SetWithoutSource("unknown_key.unknown_subkey", "true")
+ res = findUnknownKeys(conf)
+ slices.Sort(res)
+ assert.Equal(t, []string{"aa", "unknown_key.unknown_subkey"}, res)
}
func TestUnknownVarsWarning(t *testing.T) {
diff --git a/pkg/ebpf/debug_handlers.go b/pkg/ebpf/debug_handlers.go
index ea10d22a844c2c..04cba9faed5564 100644
--- a/pkg/ebpf/debug_handlers.go
+++ b/pkg/ebpf/debug_handlers.go
@@ -6,10 +6,9 @@
package ebpf
import (
+ "fmt"
"io"
"net/http"
-
- "github.com/DataDog/datadog-agent/pkg/util/log"
)
// HandleBTFLoaderInfo responds with where the system-probe found BTF data (and
@@ -17,7 +16,7 @@ import (
func HandleBTFLoaderInfo(w http.ResponseWriter, _ *http.Request) {
info, err := GetBTFLoaderInfo()
if err != nil {
- log.Errorf("unable to get ebpf_btf_loader info: %s", err)
+ fmt.Fprintf(w, "unable to get ebpf_btf_loader info: %s", err)
w.WriteHeader(500)
return
}
diff --git a/pkg/flare/archive_linux.go b/pkg/flare/archive_linux.go
index 1c9b5d7a4ad484..dafe8bd41d1bc5 100644
--- a/pkg/flare/archive_linux.go
+++ b/pkg/flare/archive_linux.go
@@ -38,6 +38,7 @@ func addSystemProbePlatformSpecificEntries(fb flaretypes.FlareBuilder) {
_ = fb.AddFileFromFunc(filepath.Join("system-probe", "conntrack_cached.log"), getSystemProbeConntrackCached)
_ = fb.AddFileFromFunc(filepath.Join("system-probe", "conntrack_host.log"), getSystemProbeConntrackHost)
_ = fb.AddFileFromFunc(filepath.Join("system-probe", "ebpf_btf_loader.log"), getSystemProbeBTFLoaderInfo)
+ _ = fb.AddFileFromFunc(filepath.Join("system-probe", "selinux_sestatus.log"), getSystemProbeSelinuxSestatus)
}
}
@@ -148,3 +149,9 @@ func getSystemProbeBTFLoaderInfo() ([]byte, error) {
url := sysprobeclient.DebugURL("/ebpf_btf_loader_info")
return getHTTPData(sysProbeClient, url)
}
+
+func getSystemProbeSelinuxSestatus() ([]byte, error) {
+ sysProbeClient := sysprobeclient.Get(getSystemProbeSocketPath())
+ url := sysprobeclient.DebugURL("/selinux_sestatus")
+ return getHTTPData(sysProbeClient, url)
+}
diff --git a/pkg/fleet/daemon/daemon.go b/pkg/fleet/daemon/daemon.go
index 192587f641163d..ba79d5456dd3e9 100644
--- a/pkg/fleet/daemon/daemon.go
+++ b/pkg/fleet/daemon/daemon.go
@@ -20,9 +20,6 @@ import (
"sync"
"time"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
-
"github.com/DataDog/datadog-agent/comp/core/config"
"github.com/DataDog/datadog-agent/pkg/config/remote/client"
"github.com/DataDog/datadog-agent/pkg/config/utils"
@@ -34,6 +31,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/fleet/internal/cdn"
"github.com/DataDog/datadog-agent/pkg/fleet/internal/exec"
"github.com/DataDog/datadog-agent/pkg/fleet/internal/paths"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core"
"github.com/DataDog/datadog-agent/pkg/util/log"
"github.com/DataDog/datadog-agent/pkg/version"
@@ -142,7 +140,34 @@ func (d *daemonImpl) GetState() (map[string]repository.State, error) {
d.m.Lock()
defer d.m.Unlock()
- return d.installer.States()
+ states, err := d.installer.States()
+ if err != nil {
+ return nil, err
+ }
+
+ var configStates map[string]repository.State
+ if d.env.RemotePolicies {
+ configStates, err = d.installer.ConfigStates()
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ res := make(map[string]repository.State)
+ for pkg, state := range states {
+ res[pkg] = state
+ }
+ for pkg, state := range configStates {
+ if _, ok := res[pkg]; !ok {
+ res[pkg] = repository.State{
+ Stable: "",
+ Experiment: "",
+ StablePoliciesState: state.StablePoliciesState,
+ ExperimentPoliciesState: state.ExperimentPoliciesState,
+ }
+ }
+ }
+ return res, nil
}
// GetRemoteConfigState returns the remote config state.
@@ -271,8 +296,8 @@ func (d *daemonImpl) Install(ctx context.Context, url string, args []string) err
}
func (d *daemonImpl) install(ctx context.Context, url string, args []string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "install")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "install")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -293,8 +318,8 @@ func (d *daemonImpl) StartExperiment(ctx context.Context, url string) error {
}
func (d *daemonImpl) startExperiment(ctx context.Context, url string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "start_experiment")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "start_experiment")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -308,8 +333,8 @@ func (d *daemonImpl) startExperiment(ctx context.Context, url string) (err error
}
func (d *daemonImpl) startInstallerExperiment(ctx context.Context, url string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "start_installer_experiment")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "start_installer_experiment")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -334,8 +359,8 @@ func (d *daemonImpl) PromoteExperiment(ctx context.Context, pkg string) error {
}
func (d *daemonImpl) promoteExperiment(ctx context.Context, pkg string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "promote_experiment")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "promote_experiment")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -356,8 +381,8 @@ func (d *daemonImpl) StopExperiment(ctx context.Context, pkg string) error {
}
func (d *daemonImpl) stopExperiment(ctx context.Context, pkg string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "stop_experiment")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "stop_experiment")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -378,8 +403,8 @@ func (d *daemonImpl) StartConfigExperiment(ctx context.Context, url string, vers
}
func (d *daemonImpl) startConfigExperiment(ctx context.Context, url string, version string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "start_config_experiment")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "start_config_experiment")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -400,8 +425,8 @@ func (d *daemonImpl) PromoteConfigExperiment(ctx context.Context, pkg string) er
}
func (d *daemonImpl) promoteConfigExperiment(ctx context.Context, pkg string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "promote_config_experiment")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "promote_config_experiment")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -422,8 +447,8 @@ func (d *daemonImpl) StopConfigExperiment(ctx context.Context, pkg string) error
}
func (d *daemonImpl) stopConfigExperiment(ctx context.Context, pkg string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "stop_config_experiment")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "stop_config_experiment")
+ defer func() { span.Finish(err) }()
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -455,7 +480,7 @@ func (d *daemonImpl) handleRemoteAPIRequest(request remoteAPIRequest) (err error
defer d.m.Unlock()
defer d.requestsWG.Done()
parentSpan, ctx := newRequestContext(request)
- defer parentSpan.Finish(tracer.WithError(err))
+ defer parentSpan.Finish(err)
d.refreshState(ctx)
defer d.refreshState(ctx)
@@ -494,7 +519,10 @@ func (d *daemonImpl) handleRemoteAPIRequest(request remoteAPIRequest) (err error
}
experimentPackage, ok := d.catalog.getPackage(request.Package, params.Version, runtime.GOARCH, runtime.GOOS)
if !ok {
- return fmt.Errorf("could not get package %s, %s for %s, %s", request.Package, params.Version, runtime.GOARCH, runtime.GOOS)
+ return installerErrors.Wrap(
+ installerErrors.ErrPackageNotFound,
+ fmt.Errorf("could not get package %s, %s for %s, %s", request.Package, params.Version, runtime.GOARCH, runtime.GOOS),
+ )
}
log.Infof("Installer: Received remote request %s to start experiment for package %s version %s", request.ID, request.Package, request.Params)
if request.Package == "datadog-installer" {
@@ -535,31 +563,20 @@ var requestStateKey requestKey
// requestState represents the state of a task.
type requestState struct {
- Package string
- ID string
- State pbgo.TaskState
- Err *installerErrors.InstallerError
+ Package string
+ ID string
+ State pbgo.TaskState
+ Err error
+ ErrorCode installerErrors.InstallerErrorCode
}
-func newRequestContext(request remoteAPIRequest) (ddtrace.Span, context.Context) {
+func newRequestContext(request remoteAPIRequest) (telemetry.Span, context.Context) {
ctx := context.WithValue(context.Background(), requestStateKey, &requestState{
Package: request.Package,
ID: request.ID,
State: pbgo.TaskState_RUNNING,
})
-
- ctxCarrier := tracer.TextMapCarrier{
- tracer.DefaultTraceIDHeader: request.TraceID,
- tracer.DefaultParentIDHeader: request.ParentSpanID,
- tracer.DefaultPriorityHeader: "2",
- }
- spanCtx, err := tracer.Extract(ctxCarrier)
- if err != nil {
- log.Debugf("failed to extract span context from install script params: %v", err)
- return tracer.StartSpan("remote_request"), ctx
- }
-
- return tracer.StartSpanFromContext(ctx, "remote_request", tracer.ChildOf(spanCtx))
+ return telemetry.StartSpanFromIDs(ctx, "remote_request", request.TraceID, request.ParentSpanID)
}
func setRequestInvalid(ctx context.Context) {
@@ -572,7 +589,8 @@ func setRequestDone(ctx context.Context, err error) {
state.State = pbgo.TaskState_DONE
if err != nil {
state.State = pbgo.TaskState_ERROR
- state.Err = installerErrors.FromErr(err)
+ state.Err = err
+ state.ErrorCode = installerErrors.GetCode(err)
}
}
@@ -608,17 +626,24 @@ func (d *daemonImpl) refreshState(ctx context.Context) {
log.Errorf("could not get available size: %v", err)
}
+ for pkg, configState := range configState {
+ if _, ok := state[pkg]; !ok {
+ state[pkg] = repository.State{}
+ }
+ tmp := state[pkg]
+ tmp.StablePoliciesState = configState.StablePoliciesState
+ tmp.ExperimentPoliciesState = configState.ExperimentPoliciesState
+ state[pkg] = tmp
+ }
+
var packages []*pbgo.PackageState
for pkg, s := range state {
p := &pbgo.PackageState{
- Package: pkg,
- StableVersion: s.Stable,
- ExperimentVersion: s.Experiment,
- }
- cs, hasConfig := configState[pkg]
- if hasConfig {
- p.StableConfigState = cs.StablePoliciesState
- p.ExperimentConfigState = cs.ExperimentPoliciesState
+ Package: pkg,
+ StableVersion: s.Stable,
+ ExperimentVersion: s.Experiment,
+ StableConfigState: s.StablePoliciesState,
+ ExperimentConfigState: s.ExperimentPoliciesState,
}
configState, err := d.resolveRemoteConfigVersion(ctx, pkg)
@@ -633,7 +658,7 @@ func (d *daemonImpl) refreshState(ctx context.Context) {
var taskErr *pbgo.TaskError
if requestState.Err != nil {
taskErr = &pbgo.TaskError{
- Code: uint64(requestState.Err.Code()),
+ Code: uint64(requestState.ErrorCode),
Message: requestState.Err.Error(),
}
}
diff --git a/pkg/fleet/installer/errors/errors.go b/pkg/fleet/installer/errors/errors.go
index 736c609af033c6..e8679359d39095 100644
--- a/pkg/fleet/installer/errors/errors.go
+++ b/pkg/fleet/installer/errors/errors.go
@@ -42,27 +42,17 @@ func (e InstallerError) Error() string {
return e.err.Error()
}
-// Unwrap returns the wrapped error.
-func (e InstallerError) Unwrap() error {
- return e.err
-}
-
// Is implements the Is method of the errors.Is interface.
func (e InstallerError) Is(target error) bool {
_, ok := target.(*InstallerError)
return ok
}
-// Code returns the error code of the installer error.
-func (e InstallerError) Code() InstallerErrorCode {
- return e.code
-}
-
// Wrap wraps the given error with an installer error.
// If the given error is already an installer error, it is not wrapped and
// left as it is. Only the deepest InstallerError remains.
func Wrap(errCode InstallerErrorCode, err error) error {
- if FromErr(err).code != errUnknown {
+ if errors.Is(err, &InstallerError{}) {
return err
}
return &InstallerError{
@@ -71,50 +61,40 @@ func Wrap(errCode InstallerErrorCode, err error) error {
}
}
-// FromErr returns a new InstallerError from the given error.
-// Unwraps the error until it finds an InstallerError and return unknown error code if not found.
-func FromErr(err error) *InstallerError {
- if err == nil {
- return nil
+// GetCode returns the installer error code of the given error.
+func GetCode(err error) InstallerErrorCode {
+ code := errUnknown
+ e := &InstallerError{}
+ if ok := errors.As(err, &e); ok {
+ code = e.code
}
- e, ok := err.(*InstallerError)
- if !ok {
- unwrappedErr := errors.Unwrap(err)
- if unwrappedErr == nil {
- return &InstallerError{
- err: err,
- code: errUnknown,
- }
- }
- return FromErr(unwrappedErr)
- }
- return e
+ return code
}
// ToJSON returns the error as a JSON string.
-func (e InstallerError) ToJSON() string {
+func ToJSON(err error) string {
tmp := installerErrorJSON{
- Error: e.err.Error(),
- Code: int(e.code),
+ Error: err.Error(),
+ Code: int(GetCode(err)),
}
jsonErr, err := json.Marshal(tmp)
if err != nil {
- return e.err.Error()
+ return err.Error()
}
return string(jsonErr)
}
// FromJSON returns an InstallerError from a JSON string.
-func FromJSON(errStr string) InstallerError {
+func FromJSON(errStr string) *InstallerError {
var jsonError installerErrorJSON
err := json.Unmarshal([]byte(errStr), &jsonError)
if err != nil {
- return InstallerError{
+ return &InstallerError{
err: errors.New(errStr),
code: errUnknown,
}
}
- return InstallerError{
+ return &InstallerError{
err: errors.New(jsonError.Error),
code: InstallerErrorCode(jsonError.Code),
}
diff --git a/pkg/fleet/installer/errors/errors_test.go b/pkg/fleet/installer/errors/errors_test.go
index 5115faaaf8a263..4cb8be7eb4a0ee 100644
--- a/pkg/fleet/installer/errors/errors_test.go
+++ b/pkg/fleet/installer/errors/errors_test.go
@@ -6,40 +6,34 @@
package errors
import (
+ "errors"
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
-func TestFromErr(t *testing.T) {
+func TestGetCode(t *testing.T) {
+ // Nil case
+ assert.Equal(t, GetCode(nil), errUnknown)
+
+ // Simple case
var err error = &InstallerError{
err: fmt.Errorf("test: test"),
code: ErrDownloadFailed,
}
- taskErr := FromErr(err)
- assert.Equal(t, taskErr, &InstallerError{
- err: fmt.Errorf("test: test"),
- code: ErrDownloadFailed,
- })
+ assert.Equal(t, GetCode(err), ErrDownloadFailed)
- assert.Nil(t, FromErr(nil))
-}
-
-func TestFromErrWithWrap(t *testing.T) {
- err := fmt.Errorf("test: %w", &InstallerError{
- err: fmt.Errorf("test: test"),
- code: ErrDownloadFailed,
- })
- taskErr := FromErr(err)
- assert.Equal(t, taskErr, &InstallerError{
- err: fmt.Errorf("test: test"),
+ // Wrap
+ err = fmt.Errorf("test1: %w", &InstallerError{
+ err: fmt.Errorf("test2: test3"),
code: ErrDownloadFailed,
})
+ assert.Equal(t, GetCode(err), ErrDownloadFailed)
- taskErr2 := fmt.Errorf("Wrap 2: %w", fmt.Errorf("Wrap 1: %w", taskErr))
- assert.Equal(t, FromErr(taskErr2).Code(), ErrDownloadFailed)
- assert.Nil(t, FromErr(nil))
+ // Multiple wraps
+ err = fmt.Errorf("Wrap 2: %w", fmt.Errorf("Wrap 1: %w", err))
+ assert.Equal(t, GetCode(err), ErrDownloadFailed)
}
func TestWrap(t *testing.T) {
@@ -59,5 +53,22 @@ func TestWrap(t *testing.T) {
})
taskErr3 := Wrap(ErrFilesystemIssue, fmt.Errorf("Wrap 2: %w", fmt.Errorf("Wrap 1: %w", taskErr2)))
- assert.Equal(t, FromErr(taskErr3).Code(), ErrDownloadFailed)
+ unwrapped := &InstallerError{}
+ assert.True(t, errors.As(taskErr3, &unwrapped))
+ assert.Equal(t, unwrapped.code, ErrDownloadFailed)
+}
+
+func TestToJSON(t *testing.T) {
+ err := fmt.Errorf("test: %w", &InstallerError{
+ err: fmt.Errorf("test2: test3"),
+ code: ErrDownloadFailed,
+ })
+ assert.Equal(t, ToJSON(err), `{"error":"test: test2: test3","code":1}`)
+}
+
+func TestFromJSON(t *testing.T) {
+ json := `{"error":"test: test2: test3","code":1}`
+ err := FromJSON(json)
+ assert.Equal(t, err.Error(), "test: test2: test3")
+ assert.Equal(t, GetCode(err), ErrDownloadFailed)
}
diff --git a/pkg/fleet/installer/installer.go b/pkg/fleet/installer/installer.go
index e43e0cfaae4d22..d9a2a910f45ef7 100644
--- a/pkg/fleet/installer/installer.go
+++ b/pkg/fleet/installer/installer.go
@@ -19,6 +19,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/fleet/internal/cdn"
"github.com/DataDog/datadog-agent/pkg/fleet/internal/paths"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/env"
installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors"
@@ -28,13 +29,12 @@ import (
"github.com/DataDog/datadog-agent/pkg/fleet/internal/db"
"github.com/DataDog/datadog-agent/pkg/util/log"
"github.com/DataDog/datadog-agent/pkg/version"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const (
packageDatadogAgent = "datadog-agent"
packageAPMInjector = "datadog-apm-inject"
+ packageAPMLibraries = "datadog-apm-libraries"
packageDatadogInstaller = "datadog-installer"
)
@@ -164,9 +164,9 @@ func (i *installerImpl) Install(ctx context.Context, url string, args []string)
if err != nil {
return fmt.Errorf("could not download package: %w", err)
}
- span, ok := tracer.SpanFromContext(ctx)
+ span, ok := telemetry.SpanFromContext(ctx)
if ok {
- span.SetTag(ext.ResourceName, pkg.Name)
+ span.SetResourceName(pkg.Name)
span.SetTag("package_version", pkg.Version)
}
err = i.preparePackage(ctx, pkg.Name, args) // Preinst
@@ -211,6 +211,16 @@ func (i *installerImpl) Install(ctx context.Context, url string, args []string)
if err != nil {
return fmt.Errorf("could not configure package: %w", err)
}
+ if pkg.Name == packageDatadogInstaller {
+ // We must handle the configuration of some packages that are not
+ // don't have an OCI. To properly configure their configuration repositories,
+ // we call configurePackage when setting up the installer; which is the only
+ // package that is always installed.
+ err = i.configurePackage(ctx, packageAPMLibraries)
+ if err != nil {
+ return fmt.Errorf("could not configure package: %w", err)
+ }
+ }
err = i.setupPackage(ctx, pkg.Name, args) // Postinst
if err != nil {
return fmt.Errorf("could not setup package: %w", err)
@@ -471,9 +481,9 @@ func (i *installerImpl) Purge(ctx context.Context) {
}
// remove all from disk
- span, _ := tracer.StartSpanFromContext(ctx, "remove_all")
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_all")
err = os.RemoveAll(i.packagesDir)
- defer span.Finish(tracer.WithError(err))
+ defer span.Finish(err)
if err != nil {
log.Warnf("could not delete packages dir: %v", err)
}
@@ -659,11 +669,11 @@ func (i *installerImpl) configurePackage(ctx context.Context, pkg string) (err e
return nil
}
- span, _ := tracer.StartSpanFromContext(ctx, "configure_package")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "configure_package")
+ defer func() { span.Finish(err) }()
switch pkg {
- case packageDatadogAgent, packageAPMInjector:
+ case packageDatadogAgent, packageAPMInjector, packageAPMLibraries:
config, err := i.cdn.Get(ctx, pkg)
if err != nil {
return fmt.Errorf("could not get %s CDN config: %w", pkg, err)
diff --git a/pkg/fleet/installer/oci/download.go b/pkg/fleet/installer/oci/download.go
index 1ddff40e372381..7fcce0234512c9 100644
--- a/pkg/fleet/installer/oci/download.go
+++ b/pkg/fleet/installer/oci/download.go
@@ -20,7 +20,6 @@ import (
"syscall"
"time"
- "github.com/awslabs/amazon-ecr-credential-helper/ecr-login"
"github.com/google/go-containerregistry/pkg/authn"
"github.com/google/go-containerregistry/pkg/name"
oci "github.com/google/go-containerregistry/pkg/v1"
@@ -31,11 +30,11 @@ import (
"github.com/google/go-containerregistry/pkg/v1/types"
"go.uber.org/multierr"
"golang.org/x/net/http2"
- httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/env"
installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/tar"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
)
@@ -44,8 +43,6 @@ const (
RegistryAuthDefault string = "docker"
// RegistryAuthGCR is the Google Container Registry authentication method.
RegistryAuthGCR string = "gcr"
- // RegistryAuthECR is the Amazon Elastic Container Registry authentication method.
- RegistryAuthECR string = "ecr"
// RegistryAuthPassword is the password registry authentication method.
RegistryAuthPassword string = "password"
)
@@ -154,8 +151,6 @@ func getKeychain(auth string, username string, password string) authn.Keychain {
switch auth {
case RegistryAuthGCR:
return google.Keychain
- case RegistryAuthECR:
- return authn.NewKeychainFromHelper(ecr.NewECRHelper())
case RegistryAuthPassword:
return usernamePasswordKeychain{
username: username,
@@ -241,7 +236,7 @@ func getRefAndKeychain(env *env.Env, url string) urlWithKeychain {
// If they are specified, the registry and authentication overrides are applied first.
// Then we try each registry in the list of default registries in order and return the first successful download.
func (d *Downloader) downloadRegistry(ctx context.Context, url string) (oci.Image, error) {
- transport := httptrace.WrapRoundTripper(d.client.Transport)
+ transport := telemetry.WrapRoundTripper(d.client.Transport)
var err error
if d.env.Mirror != "" {
transport, err = newMirrorTransport(transport, d.env.Mirror)
diff --git a/pkg/fleet/installer/packages/apm_inject.go b/pkg/fleet/installer/packages/apm_inject.go
index 3f51793cf34865..00666714942048 100644
--- a/pkg/fleet/installer/packages/apm_inject.go
+++ b/pkg/fleet/installer/packages/apm_inject.go
@@ -19,9 +19,9 @@ import (
"github.com/DataDog/datadog-agent/pkg/fleet/installer/env"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/packages/embedded"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
"go.uber.org/multierr"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const (
@@ -32,8 +32,8 @@ const (
// SetupAPMInjector sets up the injector at bootstrap
func SetupAPMInjector(ctx context.Context) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "setup_injector")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "setup_injector")
+ defer func() { span.Finish(err) }()
installer := newAPMInjectorInstaller(injectorPath)
defer func() { installer.Finish(err) }()
return installer.Setup(ctx)
@@ -41,8 +41,8 @@ func SetupAPMInjector(ctx context.Context) (err error) {
// RemoveAPMInjector removes the APM injector
func RemoveAPMInjector(ctx context.Context) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "remove_injector")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "remove_injector")
+ defer func() { span.Finish(err) }()
installer := newAPMInjectorInstaller(injectorPath)
defer func() { installer.Finish(err) }()
return installer.Remove(ctx)
@@ -50,8 +50,8 @@ func RemoveAPMInjector(ctx context.Context) (err error) {
// InstrumentAPMInjector instruments the APM injector
func InstrumentAPMInjector(ctx context.Context, method string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "instrument_injector")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "instrument_injector")
+ defer func() { span.Finish(err) }()
installer := newAPMInjectorInstaller(injectorPath)
installer.envs.InstallScript.APMInstrumentationEnabled = method
defer func() { installer.Finish(err) }()
@@ -60,8 +60,8 @@ func InstrumentAPMInjector(ctx context.Context, method string) (err error) {
// UninstrumentAPMInjector uninstruments the APM injector
func UninstrumentAPMInjector(ctx context.Context, method string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "uninstrument_injector")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "uninstrument_injector")
+ defer func() { span.Finish(err) }()
installer := newAPMInjectorInstaller(injectorPath)
installer.envs.InstallScript.APMInstrumentationEnabled = method
defer func() { installer.Finish(err) }()
@@ -148,8 +148,8 @@ func (a *apmInjectorInstaller) Setup(ctx context.Context) error {
}
func (a *apmInjectorInstaller) Remove(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "remove_injector")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_injector")
+ defer func() { span.Finish(err) }()
err = a.removeInstrumentScripts(ctx)
if err != nil {
@@ -277,8 +277,8 @@ func (a *apmInjectorInstaller) deleteLDPreloadConfigContent(_ context.Context, l
}
func (a *apmInjectorInstaller) verifySharedLib(ctx context.Context, libPath string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "verify_shared_lib")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "verify_shared_lib")
+ defer func() { span.Finish(err) }()
echoPath, err := exec.LookPath("echo")
if err != nil {
// If echo is not found, to not block install,
@@ -302,8 +302,8 @@ func (a *apmInjectorInstaller) verifySharedLib(ctx context.Context, libPath stri
// - Referenced in our public documentation, so we override them to use installer commands for consistency
// - Used on deb/rpm removal and may break the OCI in the process
func (a *apmInjectorInstaller) addInstrumentScripts(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "add_instrument_scripts")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "add_instrument_scripts")
+ defer func() { span.Finish(err) }()
hostMutator := newFileMutator(
"/usr/bin/dd-host-install",
@@ -370,8 +370,8 @@ func (a *apmInjectorInstaller) addInstrumentScripts(ctx context.Context) (err er
// removeInstrumentScripts removes the install scripts that come with the APM injector
// if and only if they've been installed by the installer and not modified
func (a *apmInjectorInstaller) removeInstrumentScripts(ctx context.Context) (retErr error) {
- span, _ := tracer.StartSpanFromContext(ctx, "remove_instrument_scripts")
- defer func() { span.Finish(tracer.WithError(retErr)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_instrument_scripts")
+ defer func() { span.Finish(retErr) }()
for _, script := range []string{"dd-host-install", "dd-container-install", "dd-cleanup"} {
path := filepath.Join("/usr/bin", script)
diff --git a/pkg/fleet/installer/packages/apm_sockets.go b/pkg/fleet/installer/packages/apm_sockets.go
index db2def19fe43f0..4c2e8661165579 100644
--- a/pkg/fleet/installer/packages/apm_sockets.go
+++ b/pkg/fleet/installer/packages/apm_sockets.go
@@ -15,8 +15,8 @@ import (
"path/filepath"
"strings"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
"gopkg.in/yaml.v2"
)
@@ -119,9 +119,9 @@ func (a *apmInjectorInstaller) configureSocketsEnv(ctx context.Context) (retErr
}
// setSocketEnvs sets the socket environment variables
-func setSocketEnvs(ctx context.Context, envFile []byte) ([]byte, error) {
- span, _ := tracer.StartSpanFromContext(ctx, "set_socket_envs")
- defer span.Finish()
+func setSocketEnvs(ctx context.Context, envFile []byte) (res []byte, err error) {
+ span, _ := telemetry.StartSpanFromContext(ctx, "set_socket_envs")
+ defer span.Finish(err)
apmSocket, statsdSocket, err := getSocketsPath()
if err != nil {
@@ -169,8 +169,8 @@ func addEnvsIfNotSet(envs map[string]string, envFile []byte) ([]byte, error) {
//
// Reloading systemd & restarting the unit has to be done separately by the caller
func addSystemDEnvOverrides(ctx context.Context, unit string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "add_systemd_env_overrides")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "add_systemd_env_overrides")
+ defer func() { span.Finish(err) }()
span.SetTag("unit", unit)
// The - is important as it lets the unit start even if the file is missing.
diff --git a/pkg/fleet/installer/packages/app_armor.go b/pkg/fleet/installer/packages/app_armor.go
index bd0ea2889802e9..054a319fe41396 100644
--- a/pkg/fleet/installer/packages/app_armor.go
+++ b/pkg/fleet/installer/packages/app_armor.go
@@ -15,8 +15,8 @@ import (
"path/filepath"
"strings"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const (
@@ -33,8 +33,8 @@ func setupAppArmor(ctx context.Context) (err error) {
// no-op if apparmor is not installed
return nil
}
- span, _ := tracer.StartSpanFromContext(ctx, "setup_app_armor")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "setup_app_armor")
+ defer func() { span.Finish(err) }()
if err = os.MkdirAll(appArmorConfigPath, 0755); err != nil {
return fmt.Errorf("failed to create %s: %w", appArmorConfigPath, err)
}
@@ -61,8 +61,8 @@ func removeAppArmor(ctx context.Context) (err error) {
}
return err
}
- span, _ := tracer.StartSpanFromContext(ctx, "remove_app_armor")
- defer span.Finish(tracer.WithError(err))
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_app_armor")
+ defer span.Finish(err)
if err = os.Remove(datadogProfilePath); err != nil {
return err
}
diff --git a/pkg/fleet/installer/packages/datadog_agent.go b/pkg/fleet/installer/packages/datadog_agent.go
index 2b7d4192d45927..c3b56f0e9c87b9 100644
--- a/pkg/fleet/installer/packages/datadog_agent.go
+++ b/pkg/fleet/installer/packages/datadog_agent.go
@@ -16,9 +16,9 @@ import (
"path/filepath"
"strings"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/installinfo"
"github.com/DataDog/datadog-agent/pkg/util/log"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const (
@@ -55,6 +55,13 @@ var (
)
var (
+ rootOwnedConfigPaths = []string{
+ "security-agent.yaml",
+ "system-probe.yaml",
+ "inject/tracer.yaml",
+ "inject",
+ "managed",
+ }
// matches omnibus/package-scripts/agent-deb/postinst
rootOwnedAgentPaths = []string{
"embedded/bin/system-probe",
@@ -66,8 +73,8 @@ var (
// PrepareAgent prepares the machine to install the agent
func PrepareAgent(ctx context.Context) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "prepare_agent")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "prepare_agent")
+ defer func() { span.Finish(err) }()
// Check if the agent has been installed by a package manager, if yes remove it
if !oldAgentInstalled() {
@@ -82,13 +89,13 @@ func PrepareAgent(ctx context.Context) (err error) {
// SetupAgent installs and starts the agent
func SetupAgent(ctx context.Context, _ []string) (err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "setup_agent")
+ span, ctx := telemetry.StartSpanFromContext(ctx, "setup_agent")
defer func() {
if err != nil {
log.Errorf("Failed to setup agent, reverting: %s", err)
err = errors.Join(err, RemoveAgent(ctx))
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
for _, unit := range stableUnits {
@@ -112,6 +119,9 @@ func SetupAgent(ctx context.Context, _ []string) (err error) {
if err = os.Chown("/etc/datadog-agent", ddAgentUID, ddAgentGID); err != nil {
return fmt.Errorf("failed to chown /etc/datadog-agent: %v", err)
}
+ if err = chownRecursive("/etc/datadog-agent", ddAgentUID, ddAgentGID, rootOwnedConfigPaths); err != nil {
+ return fmt.Errorf("failed to chown /etc/datadog-agent: %v", err)
+ }
if err = chownRecursive("/opt/datadog-packages/datadog-agent/stable/", ddAgentUID, ddAgentGID, rootOwnedAgentPaths); err != nil {
return fmt.Errorf("failed to chown /opt/datadog-packages/datadog-agent/stable/: %v", err)
}
@@ -150,38 +160,45 @@ func SetupAgent(ctx context.Context, _ []string) (err error) {
// RemoveAgent stops and removes the agent
func RemoveAgent(ctx context.Context) error {
- span, ctx := tracer.StartSpanFromContext(ctx, "remove_agent_units")
- defer span.Finish()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "remove_agent_units")
+ var spanErr error
+ defer func() { span.Finish(spanErr) }()
// stop experiments, they can restart stable agent
for _, unit := range experimentalUnits {
if err := stopUnit(ctx, unit); err != nil {
log.Warnf("Failed to stop %s: %s", unit, err)
+ spanErr = err
}
}
// stop stable agents
for _, unit := range stableUnits {
if err := stopUnit(ctx, unit); err != nil {
log.Warnf("Failed to stop %s: %s", unit, err)
+ spanErr = err
}
}
if err := disableUnit(ctx, agentUnit); err != nil {
log.Warnf("Failed to disable %s: %s", agentUnit, err)
+ spanErr = err
}
// remove units from disk
for _, unit := range experimentalUnits {
if err := removeUnit(ctx, unit); err != nil {
log.Warnf("Failed to remove %s: %s", unit, err)
+ spanErr = err
}
}
for _, unit := range stableUnits {
if err := removeUnit(ctx, unit); err != nil {
log.Warnf("Failed to remove %s: %s", unit, err)
+ spanErr = err
}
}
if err := os.Remove(agentSymlink); err != nil {
log.Warnf("Failed to remove agent symlink: %s", err)
+ spanErr = err
}
installinfo.RmInstallInfo()
// TODO: Return error to caller?
@@ -193,12 +210,12 @@ func oldAgentInstalled() bool {
return err == nil
}
-func stopOldAgentUnits(ctx context.Context) error {
+func stopOldAgentUnits(ctx context.Context) (err error) {
if !oldAgentInstalled() {
return nil
}
- span, ctx := tracer.StartSpanFromContext(ctx, "remove_old_agent_units")
- defer span.Finish()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "remove_old_agent_units")
+ defer span.Finish(err)
for _, unit := range stableUnits {
if err := stopUnit(ctx, unit); err != nil {
return fmt.Errorf("failed to stop %s: %v", unit, err)
diff --git a/pkg/fleet/installer/packages/datadog_agent_windows.go b/pkg/fleet/installer/packages/datadog_agent_windows.go
index d330ab434d0e07..69935fdee41d89 100644
--- a/pkg/fleet/installer/packages/datadog_agent_windows.go
+++ b/pkg/fleet/installer/packages/datadog_agent_windows.go
@@ -12,9 +12,8 @@ import (
"fmt"
"github.com/DataDog/datadog-agent/pkg/fleet/internal/winregistry"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
-
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const (
@@ -28,12 +27,12 @@ func PrepareAgent(_ context.Context) error {
// SetupAgent installs and starts the agent
func SetupAgent(ctx context.Context, args []string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "setup_agent")
+ span, _ := telemetry.StartSpanFromContext(ctx, "setup_agent")
defer func() {
if err != nil {
log.Errorf("Failed to setup agent: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
// Make sure there are no Agent already installed
_ = removeAgentIfInstalled(ctx)
@@ -43,12 +42,12 @@ func SetupAgent(ctx context.Context, args []string) (err error) {
// StartAgentExperiment starts the agent experiment
func StartAgentExperiment(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "start_experiment")
+ span, _ := telemetry.StartSpanFromContext(ctx, "start_experiment")
defer func() {
if err != nil {
log.Errorf("Failed to start agent experiment: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
err = removeAgentIfInstalled(ctx)
@@ -66,12 +65,12 @@ func StartAgentExperiment(ctx context.Context) (err error) {
// StopAgentExperiment stops the agent experiment, i.e. removes/uninstalls it.
func StopAgentExperiment(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "stop_experiment")
+ span, _ := telemetry.StartSpanFromContext(ctx, "stop_experiment")
defer func() {
if err != nil {
log.Errorf("Failed to stop agent experiment: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
err = removeAgentIfInstalled(ctx)
@@ -123,14 +122,14 @@ func installAgentPackage(target string, args []string) error {
func removeAgentIfInstalled(ctx context.Context) (err error) {
if isProductInstalled("Datadog Agent") {
- span, _ := tracer.StartSpanFromContext(ctx, "remove_agent")
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_agent")
defer func() {
if err != nil {
// removal failed, this should rarely happen.
// Rollback might have restored the Agent, but we can't be sure.
log.Errorf("Failed to remove agent: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
err := removeProduct("Datadog Agent")
if err != nil {
diff --git a/pkg/fleet/installer/packages/datadog_installer_windows.go b/pkg/fleet/installer/packages/datadog_installer_windows.go
index 2d8dc8241c541d..d7714ddb257cc0 100644
--- a/pkg/fleet/installer/packages/datadog_installer_windows.go
+++ b/pkg/fleet/installer/packages/datadog_installer_windows.go
@@ -11,8 +11,8 @@ package packages
import (
"context"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const (
@@ -21,12 +21,12 @@ const (
// SetupInstaller installs and starts the installer
func SetupInstaller(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "setup_installer")
+ span, _ := telemetry.StartSpanFromContext(ctx, "setup_installer")
defer func() {
if err != nil {
log.Errorf("Failed to setup installer: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
cmd, err := msiexec("stable", datadogInstaller, "/i", nil)
if err == nil {
@@ -39,12 +39,12 @@ func SetupInstaller(ctx context.Context) (err error) {
// RemoveInstaller removes the installer
func RemoveInstaller(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "remove_installer")
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_installer")
defer func() {
if err != nil {
log.Errorf("Failed to remove installer: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
err = removeProduct("Datadog Installer")
return err
@@ -52,12 +52,12 @@ func RemoveInstaller(ctx context.Context) (err error) {
// StartInstallerExperiment starts the installer experiment
func StartInstallerExperiment(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "start_installer_experiment")
+ span, _ := telemetry.StartSpanFromContext(ctx, "start_installer_experiment")
defer func() {
if err != nil {
log.Errorf("Failed to start installer experiment: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
cmd, err := msiexec("experiment", datadogInstaller, "/i", nil)
if err == nil {
@@ -69,12 +69,12 @@ func StartInstallerExperiment(ctx context.Context) (err error) {
// StopInstallerExperiment stops the installer experiment
func StopInstallerExperiment(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "stop_installer_experiment")
+ span, _ := telemetry.StartSpanFromContext(ctx, "stop_installer_experiment")
defer func() {
if err != nil {
log.Errorf("Failed to stop installer experiment: %s", err)
}
- span.Finish(tracer.WithError(err))
+ span.Finish(err)
}()
cmd, err := msiexec("stable", datadogInstaller, "/i", nil)
if err == nil {
diff --git a/pkg/fleet/installer/packages/docker.go b/pkg/fleet/installer/packages/docker.go
index 45984ca96a6524..2b264fb7f9e02e 100644
--- a/pkg/fleet/installer/packages/docker.go
+++ b/pkg/fleet/installer/packages/docker.go
@@ -20,9 +20,9 @@ import (
"syscall"
"time"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
"github.com/shirou/gopsutil/v4/process"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
type dockerDaemonConfig map[string]interface{}
@@ -73,14 +73,14 @@ func (a *apmInjectorInstaller) uninstrumentDocker(ctx context.Context) error {
}
// setDockerConfigContent sets the content of the docker daemon configuration
-func (a *apmInjectorInstaller) setDockerConfigContent(ctx context.Context, previousContent []byte) ([]byte, error) {
- span, _ := tracer.StartSpanFromContext(ctx, "set_docker_config_content")
- defer span.Finish()
+func (a *apmInjectorInstaller) setDockerConfigContent(ctx context.Context, previousContent []byte) (res []byte, err error) {
+ span, _ := telemetry.StartSpanFromContext(ctx, "set_docker_config_content")
+ defer span.Finish(err)
dockerConfig := dockerDaemonConfig{}
if len(previousContent) > 0 {
- err := json.Unmarshal(previousContent, &dockerConfig)
+ err = json.Unmarshal(previousContent, &dockerConfig)
if err != nil {
return nil, err
}
@@ -140,8 +140,8 @@ func (a *apmInjectorInstaller) deleteDockerConfigContent(_ context.Context, prev
//
// This method is valid since at least Docker 17.03 (last update 2018-08-30)
func (a *apmInjectorInstaller) verifyDockerRuntime(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "verify_docker_runtime")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "verify_docker_runtime")
+ defer func() { span.Finish(err) }()
if !isDockerActive(ctx) {
log.Warn("docker is inactive, skipping docker runtime verification")
@@ -172,8 +172,8 @@ func (a *apmInjectorInstaller) verifyDockerRuntime(ctx context.Context) (err err
}
func reloadDockerConfig(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "reload_docker")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "reload_docker")
+ defer func() { span.Finish(err) }()
if !isDockerActive(ctx) {
log.Warn("docker is inactive, skipping docker reload")
return nil
@@ -205,8 +205,8 @@ func reloadDockerConfig(ctx context.Context) (err error) {
// isDockerInstalled checks if docker is installed on the system
func isDockerInstalled(ctx context.Context) bool {
- span, _ := tracer.StartSpanFromContext(ctx, "is_docker_installed")
- defer span.Finish()
+ span, _ := telemetry.StartSpanFromContext(ctx, "is_docker_installed")
+ defer span.Finish(nil)
// Docker is installed if the docker binary is in the PATH
_, err := exec.LookPath("docker")
diff --git a/pkg/fleet/installer/packages/file.go b/pkg/fleet/installer/packages/file.go
index b8670b26ee34d2..f6e6b7eeadb709 100644
--- a/pkg/fleet/installer/packages/file.go
+++ b/pkg/fleet/installer/packages/file.go
@@ -15,8 +15,8 @@ import (
"os"
"syscall"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
var rollbackNoop = func() error { return nil }
@@ -46,8 +46,8 @@ func newFileMutator(path string, transform func(ctx context.Context, existing []
}
func (ft *fileMutator) mutate(ctx context.Context) (rollback func() error, err error) {
- span, ctx := tracer.StartSpanFromContext(ctx, "mutate_file")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, ctx := telemetry.StartSpanFromContext(ctx, "mutate_file")
+ defer func() { span.Finish(err) }()
span.SetTag("file", ft.path)
defer os.Remove(ft.pathTmp)
diff --git a/pkg/fleet/installer/packages/pkg_manager.go b/pkg/fleet/installer/packages/pkg_manager.go
index e74dba210a015e..98b9d76b29d595 100644
--- a/pkg/fleet/installer/packages/pkg_manager.go
+++ b/pkg/fleet/installer/packages/pkg_manager.go
@@ -13,7 +13,7 @@ import (
"fmt"
"os/exec"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
)
// removeDebRPMPackage removes a package installed via deb/rpm package manager
@@ -21,8 +21,8 @@ import (
// and reinstall the package using the installer.
// Note: we don't run the pre/post remove scripts as we want to avoid surprises for older agent versions (like removing config)
func removeDebRPMPackage(ctx context.Context, pkg string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "remove_deb_rpm_package")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_deb_rpm_package")
+ defer func() { span.Finish(err) }()
// Compute the right command depending on the package manager
var cmd *exec.Cmd
if _, pathErr := exec.LookPath("dpkg"); pathErr == nil {
diff --git a/pkg/fleet/installer/packages/systemd.go b/pkg/fleet/installer/packages/systemd.go
index 9b95672af1533d..0daf5623b8332d 100644
--- a/pkg/fleet/installer/packages/systemd.go
+++ b/pkg/fleet/installer/packages/systemd.go
@@ -17,15 +17,15 @@ import (
"path/filepath"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/packages/embedded"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
"github.com/DataDog/datadog-agent/pkg/util/log"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
const systemdPath = "/etc/systemd/system"
func stopUnit(ctx context.Context, unit string, args ...string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "stop_unit")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "stop_unit")
+ defer func() { span.Finish(err) }()
span.SetTag("unit", unit)
args = append([]string{"stop", unit}, args...)
err = exec.CommandContext(ctx, "systemctl", args...).Run()
@@ -42,8 +42,8 @@ func stopUnit(ctx context.Context, unit string, args ...string) (err error) {
}
func startUnit(ctx context.Context, unit string, args ...string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "start_unit")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "start_unit")
+ defer func() { span.Finish(err) }()
span.SetTag("unit", unit)
args = append([]string{"start", unit}, args...)
err = exec.CommandContext(ctx, "systemctl", args...).Run()
@@ -56,8 +56,8 @@ func startUnit(ctx context.Context, unit string, args ...string) (err error) {
}
func enableUnit(ctx context.Context, unit string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "enable_unit")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "enable_unit")
+ defer func() { span.Finish(err) }()
span.SetTag("unit", unit)
err = exec.CommandContext(ctx, "systemctl", "enable", unit).Run()
exitErr := &exec.ExitError{}
@@ -69,8 +69,8 @@ func enableUnit(ctx context.Context, unit string) (err error) {
}
func disableUnit(ctx context.Context, unit string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "disable_unit")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "disable_unit")
+ defer func() { span.Finish(err) }()
span.SetTag("unit", unit)
enabledErr := exec.CommandContext(ctx, "systemctl", "is-enabled", "--quiet", unit).Run()
@@ -93,8 +93,8 @@ func disableUnit(ctx context.Context, unit string) (err error) {
}
func loadUnit(ctx context.Context, unit string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "load_unit")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "load_unit")
+ defer func() { span.Finish(err) }()
span.SetTag("unit", unit)
content, err := embedded.FS.ReadFile(unit)
if err != nil {
@@ -105,8 +105,8 @@ func loadUnit(ctx context.Context, unit string) (err error) {
}
func removeUnit(ctx context.Context, unit string) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "remove_unit")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "remove_unit")
+ defer func() { span.Finish(err) }()
span.SetTag("unit", unit)
err = os.Remove(path.Join(systemdPath, unit))
if err != nil && !os.IsNotExist(err) {
@@ -116,8 +116,8 @@ func removeUnit(ctx context.Context, unit string) (err error) {
}
func systemdReload(ctx context.Context) (err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "systemd_reload")
- defer func() { span.Finish(tracer.WithError(err)) }()
+ span, _ := telemetry.StartSpanFromContext(ctx, "systemd_reload")
+ defer func() { span.Finish(err) }()
err = exec.CommandContext(ctx, "systemctl", "daemon-reload").Run()
exitErr := &exec.ExitError{}
if !errors.As(err, &exitErr) {
diff --git a/pkg/fleet/installer/setup/common/config.go b/pkg/fleet/installer/setup/common/config.go
index fb1677aeb69643..650b6b0acebe70 100644
--- a/pkg/fleet/installer/setup/common/config.go
+++ b/pkg/fleet/installer/setup/common/config.go
@@ -123,7 +123,7 @@ type DatadogConfigProcessConfig struct {
// IntegrationConfig represents the configuration for an integration under conf.d/
type IntegrationConfig struct {
- InitConfig []any `yaml:"init_config,omitempty"`
+ InitConfig []any `yaml:"init_config"`
Instances []any `yaml:"instances,omitempty"`
Logs []IntegrationConfigLogs `yaml:"logs,omitempty"`
}
diff --git a/pkg/fleet/installer/setup/common/config_test.go b/pkg/fleet/installer/setup/common/config_test.go
index 7c02cd3999e022..7a985606567308 100644
--- a/pkg/fleet/installer/setup/common/config_test.go
+++ b/pkg/fleet/installer/setup/common/config_test.go
@@ -147,6 +147,7 @@ func TestIntegrationConfigInstanceSpark(t *testing.T) {
err = yaml.Unmarshal(sparkYAML, &spark)
assert.NoError(t, err)
assert.Equal(t, map[string]interface{}{
+ "init_config": []interface{}{},
"logs": []interface{}{
map[string]interface{}{
"type": "file",
diff --git a/pkg/fleet/installer/setup/common/output.go b/pkg/fleet/installer/setup/common/output.go
new file mode 100644
index 00000000000000..cc42f5e4c8d023
--- /dev/null
+++ b/pkg/fleet/installer/setup/common/output.go
@@ -0,0 +1,18 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2016-present Datadog, Inc.
+
+package common
+
+import "io"
+
+// Output is a writer for the output. It will support some ANSI escape sequences to format the output.
+type Output struct {
+ tty io.Writer
+}
+
+// WriteString writes a string to the output.
+func (o *Output) WriteString(s string) {
+ _, _ = o.tty.Write([]byte(s))
+}
diff --git a/pkg/fleet/installer/setup/common/setup.go b/pkg/fleet/installer/setup/common/setup.go
index dbd48a7f830287..60931ef01da69a 100644
--- a/pkg/fleet/installer/setup/common/setup.go
+++ b/pkg/fleet/installer/setup/common/setup.go
@@ -10,13 +10,15 @@ import (
"context"
"errors"
"fmt"
+ "io"
"os"
+ "time"
"github.com/DataDog/datadog-agent/pkg/fleet/installer"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/env"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/oci"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
+ "github.com/DataDog/datadog-agent/pkg/version"
)
const (
@@ -32,16 +34,25 @@ var (
type Setup struct {
configDir string
installer installer.Installer
+ start time.Time
+ flavor string
+ Out *Output
Env *env.Env
Ctx context.Context
- Span ddtrace.Span
+ Span telemetry.Span
Packages Packages
Config Config
}
// NewSetup creates a new Setup structure with some default values.
-func NewSetup(ctx context.Context, env *env.Env, name string) (*Setup, error) {
+func NewSetup(ctx context.Context, env *env.Env, flavor string, flavorPath string, logOutput io.Writer) (*Setup, error) {
+ header := `Datadog Installer %s - https://www.datadoghq.com
+Running the %s installation script (https://github.com/DataDog/datadog-agent/tree/%s/pkg/fleet/installer/setup/%s) - %s
+`
+ start := time.Now()
+ output := &Output{tty: logOutput}
+ output.WriteString(fmt.Sprintf(header, version.AgentVersion, flavor, version.Commit, flavorPath, start.Format(time.RFC3339)))
if env.APIKey == "" {
return nil, ErrNoAPIKey
}
@@ -49,10 +60,13 @@ func NewSetup(ctx context.Context, env *env.Env, name string) (*Setup, error) {
if err != nil {
return nil, fmt.Errorf("failed to create installer: %w", err)
}
- span, ctx := tracer.StartSpanFromContext(ctx, fmt.Sprintf("setup.%s", name))
+ span, ctx := telemetry.StartSpanFromContext(ctx, fmt.Sprintf("setup.%s", flavor))
s := &Setup{
configDir: configDir,
installer: installer,
+ start: start,
+ flavor: flavor,
+ Out: output,
Env: env,
Ctx: ctx,
Span: span,
@@ -74,22 +88,45 @@ func NewSetup(ctx context.Context, env *env.Env, name string) (*Setup, error) {
// Run installs the packages and writes the configurations
func (s *Setup) Run() (err error) {
- defer func() { s.Span.Finish(tracer.WithError(err)) }()
+ defer func() { s.Span.Finish(err) }()
+ s.Out.WriteString("Applying configurations...\n")
err = writeConfigs(s.Config, s.configDir)
if err != nil {
return fmt.Errorf("failed to write configuration: %w", err)
}
- err = s.installer.Install(s.Ctx, installerOCILayoutURL, nil)
+ packages := resolvePackages(s.Packages)
+ s.Out.WriteString("The following packages will be installed:\n")
+ s.Out.WriteString(fmt.Sprintf(" - %s / %s\n", "datadog-installer", version.AgentVersion))
+ for _, p := range packages {
+ s.Out.WriteString(fmt.Sprintf(" - %s / %s\n", p.name, p.version))
+ }
+ err = s.installPackage("datadog-installer", installerOCILayoutURL)
if err != nil {
return fmt.Errorf("failed to install installer: %w", err)
}
- packages := resolvePackages(s.Packages)
for _, p := range packages {
url := oci.PackageURL(s.Env, p.name, p.version)
- err = s.installer.Install(s.Ctx, url, nil)
+ err = s.installPackage(p.name, url)
if err != nil {
return fmt.Errorf("failed to install package %s: %w", url, err)
}
}
+ s.Out.WriteString(fmt.Sprintf("Successfully ran the %s install script in %s!\n", s.flavor, time.Since(s.start).Round(time.Second)))
+ return nil
+}
+
+// installPackage mimicks the telemetry of calling the install package command
+func (s *Setup) installPackage(name string, url string) (err error) {
+ span, ctx := telemetry.StartSpanFromContext(s.Ctx, "install")
+ defer func() { span.Finish(err) }()
+ span.SetTag("url", url)
+ span.SetTag("_top_level", 1)
+
+ s.Out.WriteString(fmt.Sprintf("Installing %s...\n", name))
+ err = s.installer.Install(ctx, url, nil)
+ if err != nil {
+ return err
+ }
+ s.Out.WriteString(fmt.Sprintf("Successfully installed %s\n", name))
return nil
}
diff --git a/pkg/fleet/installer/setup/djm/databricks.go b/pkg/fleet/installer/setup/djm/databricks.go
index 2dc8909c58e8b2..af54e1bb995536 100644
--- a/pkg/fleet/installer/setup/djm/databricks.go
+++ b/pkg/fleet/installer/setup/djm/databricks.go
@@ -9,25 +9,23 @@ package djm
import (
"fmt"
"os"
+ "regexp"
+ "strings"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/common"
"github.com/DataDog/datadog-agent/pkg/util/log"
)
const (
- databricksInjectorVersion = "0.21.0-1"
- databricksJavaVersion = "1.41.1-1"
- databricksAgentVersion = "7.57.2-1"
+ databricksInjectorVersion = "0.26.0-1"
+ databricksJavaVersion = "1.42.2-1"
+ databricksAgentVersion = "7.58.2-1"
)
var (
- envToTags = map[string]string{
- "DATABRICKS_WORKSPACE": "workspace",
- "DB_CLUSTER_NAME": "databricks_cluster_name",
- "DB_CLUSTER_ID": "databricks_cluster_id",
- "DB_NODE_TYPE": "databricks_node_type",
- }
- driverLogs = []common.IntegrationConfigLogs{
+ jobNameRegex = regexp.MustCompile(`[,\']`)
+ clusterNameRegex = regexp.MustCompile(`[^a-zA-Z0-9_:.-]`)
+ driverLogs = []common.IntegrationConfigLogs{
{
Type: "file",
Path: "/databricks/driver/logs/*.log",
@@ -91,11 +89,13 @@ func SetupDatabricks(s *common.Setup) error {
s.Config.DatadogYAML.DJM.Enabled = true
s.Config.DatadogYAML.ExpectedTagsDuration = "10m"
s.Config.DatadogYAML.ProcessConfig.ExpvarPort = 6063 // avoid port conflict on 6062
- for env, tag := range envToTags {
- if val, ok := os.LookupEnv(env); ok {
- s.Config.DatadogYAML.Tags = append(s.Config.DatadogYAML.Tags, tag+":"+val)
- }
+
+ setupCommonHostTags(s)
+ installMethod := "manual"
+ if os.Getenv("DD_DJM_INIT_IS_MANAGED_INSTALL") != "true" {
+ installMethod = "managed"
}
+ s.Span.SetTag("install_method", installMethod)
switch os.Getenv("DB_IS_DRIVER") {
case "TRUE":
@@ -106,6 +106,65 @@ func SetupDatabricks(s *common.Setup) error {
return nil
}
+func setupCommonHostTags(s *common.Setup) {
+ setIfExists(s, "DB_DRIVER_IP", "spark_host_ip", nil)
+ setIfExists(s, "DB_INSTANCE_TYPE", "databricks_instance_type", nil)
+ setIfExists(s, "DB_IS_JOB_CLUSTER", "databricks_is_job_cluster", nil)
+ setIfExists(s, "DD_JOB_NAME", "job_name", func(v string) string {
+ return jobNameRegex.ReplaceAllString(v, "_")
+ })
+ setIfExists(s, "DB_CLUSTER_NAME", "databricks_cluster_name", func(v string) string {
+ return clusterNameRegex.ReplaceAllString(v, "_")
+ })
+ setIfExists(s, "DB_CLUSTER_ID", "databricks_cluster_id", nil)
+
+ // dupes for backward compatibility
+ setIfExists(s, "DB_CLUSTER_ID", "cluster_id", nil)
+ setIfExists(s, "DB_CLUSTER_NAME", "cluster_name", func(v string) string {
+ return clusterNameRegex.ReplaceAllString(v, "_")
+ })
+
+ jobID, runID, ok := getJobAndRunIDs()
+ if ok {
+ setHostTag(s, "jobid", jobID)
+ setHostTag(s, "runid", runID)
+ }
+}
+
+func getJobAndRunIDs() (jobID, runID string, ok bool) {
+ clusterName := os.Getenv("DB_CLUSTER_NAME")
+ if !strings.HasPrefix(clusterName, "job-") {
+ return "", "", false
+ }
+ if !strings.Contains(clusterName, "-run-") {
+ return "", "", false
+ }
+ parts := strings.Split(clusterName, "-")
+ if len(parts) != 4 {
+ return "", "", false
+ }
+ if parts[0] != "job" || parts[2] != "run" {
+ return "", "", false
+ }
+ return parts[1], parts[3], true
+}
+
+func setIfExists(s *common.Setup, envKey, tagKey string, normalize func(string) string) {
+ value, ok := os.LookupEnv(envKey)
+ if !ok {
+ return
+ }
+ if normalize != nil {
+ value = normalize(value)
+ }
+ setHostTag(s, tagKey, value)
+}
+
+func setHostTag(s *common.Setup, tagKey, value string) {
+ s.Config.DatadogYAML.Tags = append(s.Config.DatadogYAML.Tags, tagKey+":"+value)
+ s.Span.SetTag("host_tag_set."+tagKey, "true")
+}
+
func setupDatabricksDriver(s *common.Setup) {
s.Span.SetTag("spark_node", "driver")
@@ -120,17 +179,17 @@ func setupDatabricksDriver(s *common.Setup) {
s.Config.DatadogYAML.LogsEnabled = true
sparkIntegration.Logs = driverLogs
}
- if os.Getenv("DB_DRIVER_IP") != "" || os.Getenv("DB_DRIVER_PORT") != "" {
+ if os.Getenv("DB_DRIVER_IP") != "" {
sparkIntegration.Instances = []any{
common.IntegrationConfigInstanceSpark{
- SparkURL: "http://" + os.Getenv("DB_DRIVER_IP") + ":" + os.Getenv("DB_DRIVER_PORT"),
+ SparkURL: "http://" + os.Getenv("DB_DRIVER_IP") + ":40001",
SparkClusterMode: "spark_driver_mode",
ClusterName: os.Getenv("DB_CLUSTER_NAME"),
StreamingMetrics: true,
},
}
} else {
- log.Warn("DB_DRIVER_IP or DB_DRIVER_PORT not set")
+ log.Warn("DB_DRIVER_IP not set")
}
s.Config.IntegrationConfigs["spark.d/databricks.yaml"] = sparkIntegration
}
diff --git a/pkg/fleet/installer/setup/djm/databricks_test.go b/pkg/fleet/installer/setup/djm/databricks_test.go
new file mode 100644
index 00000000000000..0bd7d183122cf3
--- /dev/null
+++ b/pkg/fleet/installer/setup/djm/databricks_test.go
@@ -0,0 +1,81 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2016-present Datadog, Inc.
+
+// Package djm contains data-jobs-monitoring installation logic
+package djm
+
+import (
+ "context"
+ "os"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
+ "github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/common"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
+)
+
+func TestSetupCommonHostTags(t *testing.T) {
+ tests := []struct {
+ name string
+ env map[string]string
+ wantTags []string
+ }{
+ {
+ name: "basic fields with formatting",
+ env: map[string]string{
+ "DB_DRIVER_IP": "192.168.1.100",
+ "DB_INSTANCE_TYPE": "m4.xlarge",
+ "DB_IS_JOB_CLUSTER": "true",
+ "DD_JOB_NAME": "example,'job,name",
+ "DB_CLUSTER_NAME": "example[,'job]name",
+ "DB_CLUSTER_ID": "cluster123",
+ },
+ wantTags: []string{
+ "spark_host_ip:192.168.1.100",
+ "databricks_instance_type:m4.xlarge",
+ "databricks_is_job_cluster:true",
+ "job_name:example__job_name",
+ "databricks_cluster_name:example___job_name",
+ "databricks_cluster_id:cluster123",
+ "cluster_id:cluster123",
+ "cluster_name:example___job_name",
+ },
+ },
+ {
+ name: "with job, run ids",
+ env: map[string]string{
+ "DB_CLUSTER_NAME": "job-123-run-456",
+ },
+ wantTags: []string{
+ "databricks_cluster_name:job-123-run-456",
+ "cluster_name:job-123-run-456",
+ "jobid:123",
+ "runid:456",
+ },
+ },
+ {
+ name: "Missing env vars results in no tags",
+ env: map[string]string{},
+ wantTags: []string{},
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ os.Clearenv()
+ for k, v := range tt.env {
+ require.NoError(t, os.Setenv(k, v))
+ }
+ span, _ := telemetry.StartSpanFromContext(context.Background(), "test")
+ s := &common.Setup{Span: span}
+
+ setupCommonHostTags(s)
+
+ assert.ElementsMatch(t, tt.wantTags, s.Config.DatadogYAML.Tags)
+ })
+ }
+}
diff --git a/pkg/fleet/installer/setup/setup.go b/pkg/fleet/installer/setup/setup.go
index 3b01d320c9975b..93a57fc575a5bf 100644
--- a/pkg/fleet/installer/setup/setup.go
+++ b/pkg/fleet/installer/setup/setup.go
@@ -9,6 +9,7 @@ package setup
import (
"context"
"fmt"
+ "os"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/env"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/setup/common"
@@ -17,23 +18,26 @@ import (
"github.com/DataDog/datadog-agent/pkg/fleet/internal/paths"
)
-const (
- // FlavorDatabricks is the flavor for the Data Jobs Monitoring databricks setup.
- FlavorDatabricks = "databricks"
-)
+type flavor struct {
+ path string // path is used to print the path to the setup script for users.
+ run func(*common.Setup) error
+}
+
+var flavors = map[string]flavor{
+ "databricks": {path: "djm/databricks.go", run: djm.SetupDatabricks},
+}
// Setup installs Datadog.
func Setup(ctx context.Context, env *env.Env, flavor string) error {
- s, err := common.NewSetup(ctx, env, flavor)
+ f, ok := flavors[flavor]
+ if !ok {
+ return fmt.Errorf("unknown flavor %s", flavor)
+ }
+ s, err := common.NewSetup(ctx, env, flavor, f.path, os.Stdout)
if err != nil {
return err
}
- switch flavor {
- case FlavorDatabricks:
- err = djm.SetupDatabricks(s)
- default:
- return fmt.Errorf("unknown setup flavor %s", flavor)
- }
+ err = f.run(s)
if err != nil {
return err
}
diff --git a/pkg/fleet/internal/cdn/cdn.go b/pkg/fleet/internal/cdn/cdn.go
index ab74ce9bfe0a7a..f35418cc0b7bc8 100644
--- a/pkg/fleet/internal/cdn/cdn.go
+++ b/pkg/fleet/internal/cdn/cdn.go
@@ -7,6 +7,7 @@
package cdn
import (
+ "bytes"
"context"
"encoding/json"
"errors"
@@ -16,11 +17,15 @@ import (
"runtime"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/env"
+ "github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
+ "gopkg.in/yaml.v2"
)
-const policyMetadataFilename = "policy.metadata"
+const (
+ policyMetadataFilename = "policy.metadata"
+ doNotEditDisclaimer = `# This configuration was generated by Datadog's Fleet Automation. DO NOT EDIT.`
+)
var (
// ErrProductNotSupported is returned when the product is not supported.
@@ -110,13 +115,13 @@ func New(env *env.Env, configDBPath string) (*CDN, error) {
// Get fetches the configuration for the given package.
func (c *CDN) Get(ctx context.Context, pkg string) (cfg Config, err error) {
- span, _ := tracer.StartSpanFromContext(ctx, "cdn.Get")
+ span, _ := telemetry.StartSpanFromContext(ctx, "cdn.Get")
defer func() {
spanErr := err
if spanErr == ErrProductNotSupported {
spanErr = nil
}
- span.Finish(tracer.WithError(spanErr))
+ span.Finish(spanErr)
}()
switch pkg {
@@ -134,7 +139,16 @@ func (c *CDN) Get(ctx context.Context, pkg string) (cfg Config, err error) {
if err != nil {
return nil, err
}
- cfg, err = newAPMConfig(c.hostTagsGetter.get(), orderedLayers...)
+ cfg, err = newAPMSSIConfig(c.hostTagsGetter.get(), orderedLayers...)
+ if err != nil {
+ return nil, err
+ }
+ case "datadog-apm-libraries":
+ orderedLayers, err := c.fetcher.get(ctx)
+ if err != nil {
+ return nil, err
+ }
+ cfg, err = newAPMLibrariesConfig(c.hostTagsGetter.get(), orderedLayers...)
if err != nil {
return nil, err
}
@@ -175,3 +189,19 @@ func writePolicyMetadata(config Config, dir string) error {
}
return nil
}
+
+// marshalYAMLConfig marshals the config as YAML.
+func marshalYAMLConfig(c map[string]interface{}) ([]byte, error) {
+ if len(c) == 0 {
+ return nil, nil
+ }
+ var b bytes.Buffer
+ b.WriteString(doNotEditDisclaimer)
+ b.WriteString("\n")
+ rawConfig, err := yaml.Marshal(c)
+ if err != nil {
+ return nil, err
+ }
+ b.Write(rawConfig)
+ return b.Bytes(), nil
+}
diff --git a/pkg/fleet/internal/cdn/config_datadog_agent.go b/pkg/fleet/internal/cdn/config_datadog_agent.go
index b9882ebaad4696..71e96d0d2655e3 100644
--- a/pkg/fleet/internal/cdn/config_datadog_agent.go
+++ b/pkg/fleet/internal/cdn/config_datadog_agent.go
@@ -6,7 +6,6 @@
package cdn
import (
- "bytes"
"crypto/sha256"
"encoding/json"
"fmt"
@@ -18,12 +17,10 @@ import (
pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core"
"github.com/DataDog/datadog-agent/pkg/util/log"
- "gopkg.in/yaml.v2"
)
const (
- layerKeys = "fleet_layers"
- doNotEditDisclaimer = `# This configuration was generated by Datadog's Fleet Automation. DO NOT EDIT.`
+ layerKeys = "fleet_layers"
configDatadogYAML = "datadog.yaml"
configSecurityAgentYAML = "security-agent.yaml"
@@ -106,15 +103,15 @@ func newAgentConfig(orderedLayers ...[]byte) (*agentConfig, error) {
compiledLayer.AgentConfig[layerKeys] = policyIDs
// Marshal into YAML configs
- config, err := marshalAgentConfig(compiledLayer.AgentConfig)
+ config, err := marshalYAMLConfig(compiledLayer.AgentConfig)
if err != nil {
return nil, err
}
- securityAgentConfig, err := marshalAgentConfig(compiledLayer.SecurityAgentConfig)
+ securityAgentConfig, err := marshalYAMLConfig(compiledLayer.SecurityAgentConfig)
if err != nil {
return nil, err
}
- systemProbeConfig, err := marshalAgentConfig(compiledLayer.SystemProbeConfig)
+ systemProbeConfig, err := marshalYAMLConfig(compiledLayer.SystemProbeConfig)
if err != nil {
return nil, err
}
@@ -182,22 +179,6 @@ func (a *agentConfig) Write(dir string) error {
return writePolicyMetadata(a, dir)
}
-// marshalAgentConfig marshals the config as YAML.
-func marshalAgentConfig(c map[string]interface{}) ([]byte, error) {
- if len(c) == 0 {
- return nil, nil
- }
- var b bytes.Buffer
- b.WriteString(doNotEditDisclaimer)
- b.WriteString("\n")
- rawConfig, err := yaml.Marshal(c)
- if err != nil {
- return nil, err
- }
- b.Write(rawConfig)
- return b.Bytes(), nil
-}
-
// getAgentIDs returns the UID and GID of the dd-agent user and group.
func getAgentIDs() (uid, gid int, err error) {
ddAgentUser, err := user.Lookup("dd-agent")
diff --git a/pkg/fleet/internal/cdn/config_datadog_apm.go b/pkg/fleet/internal/cdn/config_datadog_apm_inject.go
similarity index 83%
rename from pkg/fleet/internal/cdn/config_datadog_apm.go
rename to pkg/fleet/internal/cdn/config_datadog_apm_inject.go
index fd171f06e0d929..f5cc04894b7f72 100644
--- a/pkg/fleet/internal/cdn/config_datadog_apm.go
+++ b/pkg/fleet/internal/cdn/config_datadog_apm_inject.go
@@ -21,37 +21,37 @@ const (
injectorConfigFilename = "injector.msgpack"
)
-// apmConfig represents the injector configuration from the CDN.
-type apmConfig struct {
+// apmSSIConfig represents the injector configuration from the CDN.
+type apmSSIConfig struct {
version string
policyIDs []string
injectorConfig []byte
}
-// apmConfigLayer is a config layer that can be merged with other layers into a config.
-type apmConfigLayer struct {
+// apmSSIConfigLayer is a config layer that can be merged with other layers into a config.
+type apmSSIConfigLayer struct {
ID string `json:"name"`
InjectorConfig map[string]interface{} `json:"apm_ssi_config"`
}
// State returns the APM configs state
-func (i *apmConfig) State() *pbgo.PoliciesState {
+func (i *apmSSIConfig) State() *pbgo.PoliciesState {
return &pbgo.PoliciesState{
MatchedPolicies: i.policyIDs,
Version: i.version,
}
}
-func newAPMConfig(hostTags []string, orderedLayers ...[]byte) (*apmConfig, error) {
+func newAPMSSIConfig(hostTags []string, orderedLayers ...[]byte) (*apmSSIConfig, error) {
// Compile ordered layers into a single config
// TODO: maybe we don't want that and we should reject if there are more than one config?
policyIDs := []string{}
- compiledLayer := &apmConfigLayer{
+ compiledLayer := &apmSSIConfigLayer{
InjectorConfig: map[string]interface{}{},
}
for _, rawLayer := range orderedLayers {
- layer := &apmConfigLayer{}
+ layer := &apmSSIConfigLayer{}
if err := json.Unmarshal(rawLayer, layer); err != nil {
log.Warnf("Failed to unmarshal layer: %v", err)
continue
@@ -84,7 +84,7 @@ func newAPMConfig(hostTags []string, orderedLayers ...[]byte) (*apmConfig, error
return nil, err
}
- return &apmConfig{
+ return &apmSSIConfig{
version: fmt.Sprintf("%x", hash.Sum(nil)),
policyIDs: policyIDs,
@@ -93,7 +93,7 @@ func newAPMConfig(hostTags []string, orderedLayers ...[]byte) (*apmConfig, error
}
// Write writes the agent configuration to the given directory.
-func (i *apmConfig) Write(dir string) error {
+func (i *apmSSIConfig) Write(dir string) error {
if i.injectorConfig != nil {
err := os.WriteFile(filepath.Join(dir, injectorConfigFilename), []byte(i.injectorConfig), 0644) // Must be world readable
if err != nil {
diff --git a/pkg/fleet/internal/cdn/config_datadog_apm_libraries.go b/pkg/fleet/internal/cdn/config_datadog_apm_libraries.go
new file mode 100644
index 00000000000000..bf31d18bd69a31
--- /dev/null
+++ b/pkg/fleet/internal/cdn/config_datadog_apm_libraries.go
@@ -0,0 +1,101 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2016-present Datadog, Inc.
+
+package cdn
+
+import (
+ "crypto/sha256"
+ "encoding/json"
+ "fmt"
+ "os"
+ "path/filepath"
+
+ pbgo "github.com/DataDog/datadog-agent/pkg/proto/pbgo/core"
+ "github.com/DataDog/datadog-agent/pkg/util/log"
+)
+
+const (
+ apmLibrariesConfigPath = "libraries_config.yaml"
+)
+
+// apmLibrariesConfig represents the injector configuration from the CDN.
+type apmLibrariesConfig struct {
+ version string
+ policyIDs []string
+
+ apmLibrariesConfig []byte
+}
+
+// apmLibrariesConfigLayer is a config layer that can be merged with other layers into a config.
+type apmLibrariesConfigLayer struct {
+ ID string `json:"name"`
+ APMLibrariesConfig map[string]interface{} `json:"apm_libraries_config"`
+}
+
+// State returns the APM configs state
+func (i *apmLibrariesConfig) State() *pbgo.PoliciesState {
+ return &pbgo.PoliciesState{
+ MatchedPolicies: i.policyIDs,
+ Version: i.version,
+ }
+}
+
+func newAPMLibrariesConfig(hostTags []string, orderedLayers ...[]byte) (*apmLibrariesConfig, error) {
+ // Compile ordered layers into a single config
+ policyIDs := []string{}
+ compiledLayer := &apmLibrariesConfigLayer{
+ APMLibrariesConfig: map[string]interface{}{},
+ }
+ for _, rawLayer := range orderedLayers {
+ layer := &apmLibrariesConfigLayer{}
+ if err := json.Unmarshal(rawLayer, layer); err != nil {
+ log.Warnf("Failed to unmarshal layer: %v", err)
+ continue
+ }
+
+ if layer.APMLibrariesConfig != nil {
+ cfg, err := merge(compiledLayer.APMLibrariesConfig, layer.APMLibrariesConfig)
+ if err != nil {
+ return nil, err
+ }
+ compiledLayer.APMLibrariesConfig = cfg.(map[string]interface{})
+ policyIDs = append(policyIDs, layer.ID)
+ }
+ }
+
+ hash := sha256.New()
+ version, err := json.Marshal(compiledLayer)
+ if err != nil {
+ return nil, err
+ }
+ hash.Write(version)
+
+ // Add host tags AFTER compiling the version -- we don't want to trigger noop updates
+ compiledLayer.APMLibrariesConfig["host_tags"] = hostTags
+
+ // Marshal into msgpack configs
+ yamlCfg, err := marshalYAMLConfig(compiledLayer.APMLibrariesConfig)
+ if err != nil {
+ return nil, err
+ }
+
+ return &apmLibrariesConfig{
+ version: fmt.Sprintf("%x", hash.Sum(nil)),
+ policyIDs: policyIDs,
+
+ apmLibrariesConfig: yamlCfg,
+ }, nil
+}
+
+// Write writes the agent configuration to the given directory.
+func (i *apmLibrariesConfig) Write(dir string) error {
+ if i.apmLibrariesConfig != nil {
+ err := os.WriteFile(filepath.Join(dir, apmLibrariesConfigPath), []byte(i.apmLibrariesConfig), 0644) // Must be world readable
+ if err != nil {
+ return fmt.Errorf("could not write %s: %w", apmLibrariesConfigPath, err)
+ }
+ }
+ return writePolicyMetadata(i, dir)
+}
diff --git a/pkg/fleet/internal/exec/installer_exec.go b/pkg/fleet/internal/exec/installer_exec.go
index 74b7a49beb8971..834f54b3d8a53f 100644
--- a/pkg/fleet/internal/exec/installer_exec.go
+++ b/pkg/fleet/internal/exec/installer_exec.go
@@ -22,7 +22,6 @@ import (
installerErrors "github.com/DataDog/datadog-agent/pkg/fleet/installer/errors"
"github.com/DataDog/datadog-agent/pkg/fleet/installer/repository"
"github.com/DataDog/datadog-agent/pkg/fleet/telemetry"
- "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
)
// InstallerExec is an implementation of the Installer interface that uses the installer binary.
@@ -41,13 +40,13 @@ func NewInstallerExec(env *env.Env, installerBinPath string) *InstallerExec {
type installerCmd struct {
*exec.Cmd
- span tracer.Span
+ span telemetry.Span
ctx context.Context
}
func (i *InstallerExec) newInstallerCmd(ctx context.Context, command string, args ...string) *installerCmd {
env := i.env.ToEnv()
- span, ctx := tracer.StartSpanFromContext(ctx, fmt.Sprintf("installer.%s", command))
+ span, ctx := telemetry.StartSpanFromContext(ctx, fmt.Sprintf("installer.%s", command))
span.SetTag("args", args)
cmd := exec.CommandContext(ctx, i.installerBinPath, append([]string{command}, args...)...)
env = append(os.Environ(), env...)
@@ -72,14 +71,14 @@ func (i *InstallerExec) newInstallerCmd(ctx context.Context, command string, arg
// Install installs a package.
func (i *InstallerExec) Install(ctx context.Context, url string, _ []string) (err error) {
cmd := i.newInstallerCmd(ctx, "install", url)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// Remove removes a package.
func (i *InstallerExec) Remove(ctx context.Context, pkg string) (err error) {
cmd := i.newInstallerCmd(ctx, "remove", pkg)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
@@ -91,70 +90,70 @@ func (i *InstallerExec) Purge(_ context.Context) {
// InstallExperiment installs an experiment.
func (i *InstallerExec) InstallExperiment(ctx context.Context, url string) (err error) {
cmd := i.newInstallerCmd(ctx, "install-experiment", url)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// RemoveExperiment removes an experiment.
func (i *InstallerExec) RemoveExperiment(ctx context.Context, pkg string) (err error) {
cmd := i.newInstallerCmd(ctx, "remove-experiment", pkg)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// PromoteExperiment promotes an experiment to stable.
func (i *InstallerExec) PromoteExperiment(ctx context.Context, pkg string) (err error) {
cmd := i.newInstallerCmd(ctx, "promote-experiment", pkg)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// InstallConfigExperiment installs an experiment.
func (i *InstallerExec) InstallConfigExperiment(ctx context.Context, url string, version string) (err error) {
cmd := i.newInstallerCmd(ctx, "install-config-experiment", url, version)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// RemoveConfigExperiment removes an experiment.
func (i *InstallerExec) RemoveConfigExperiment(ctx context.Context, pkg string) (err error) {
cmd := i.newInstallerCmd(ctx, "remove-config-experiment", pkg)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// PromoteConfigExperiment promotes an experiment to stable.
func (i *InstallerExec) PromoteConfigExperiment(ctx context.Context, pkg string) (err error) {
cmd := i.newInstallerCmd(ctx, "promote-config-experiment", pkg)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// GarbageCollect runs the garbage collector.
func (i *InstallerExec) GarbageCollect(ctx context.Context) (err error) {
cmd := i.newInstallerCmd(ctx, "garbage-collect")
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// InstrumentAPMInjector instruments the APM auto-injector.
func (i *InstallerExec) InstrumentAPMInjector(ctx context.Context, method string) (err error) {
cmd := i.newInstallerCmd(ctx, "apm instrument", method)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// UninstrumentAPMInjector uninstruments the APM auto-injector.
func (i *InstallerExec) UninstrumentAPMInjector(ctx context.Context, method string) (err error) {
cmd := i.newInstallerCmd(ctx, "apm uninstrument", method)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
return cmd.Run()
}
// IsInstalled checks if a package is installed.
func (i *InstallerExec) IsInstalled(ctx context.Context, pkg string) (_ bool, err error) {
cmd := i.newInstallerCmd(ctx, "is-installed", pkg)
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
err = cmd.Run()
if err != nil && cmd.ProcessState.ExitCode() == 10 {
return false, nil
@@ -168,7 +167,7 @@ func (i *InstallerExec) IsInstalled(ctx context.Context, pkg string) (_ bool, er
// DefaultPackages returns the default packages to install.
func (i *InstallerExec) DefaultPackages(ctx context.Context) (_ []string, err error) {
cmd := i.newInstallerCmd(ctx, "default-packages")
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
var stdout bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &stdout
@@ -190,7 +189,7 @@ func (i *InstallerExec) DefaultPackages(ctx context.Context) (_ []string, err er
// Setup runs the setup command.
func (i *InstallerExec) Setup(ctx context.Context) (err error) {
cmd := i.newInstallerCmd(ctx, "setup")
- defer func() { cmd.span.Finish(tracer.WithError(err)) }()
+ defer func() { cmd.span.Finish(err) }()
var stderr bytes.Buffer
cmd.Stderr = &stderr
err = cmd.Run()
@@ -252,5 +251,5 @@ func (iCmd *installerCmd) Run() error {
}
installerError := installerErrors.FromJSON(strings.TrimSpace(errBuf.String()))
- return fmt.Errorf("run failed: %v \n%s", installerError, err.Error())
+ return fmt.Errorf("run failed: %w \n%s", installerError, err.Error())
}
diff --git a/pkg/fleet/telemetry/span.go b/pkg/fleet/telemetry/span.go
new file mode 100644
index 00000000000000..ac8f79516c7364
--- /dev/null
+++ b/pkg/fleet/telemetry/span.go
@@ -0,0 +1,26 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2016-present Datadog, Inc.
+
+// Package telemetry provides the telemetry for fleet components.
+package telemetry
+
+import (
+ "gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
+ "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/ext"
+ "gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
+)
+
+// Span is an alias for ddtrace.Span until we phase ddtrace out.
+type Span struct{ ddtrace.Span }
+
+// Finish finishes the span with an error.
+func (s *Span) Finish(err error) {
+ s.Span.Finish(tracer.WithError(err))
+}
+
+// SetResourceName sets the resource name of the span.
+func (s *Span) SetResourceName(name string) {
+ s.Span.SetTag(ext.ResourceName, name)
+}
diff --git a/pkg/fleet/telemetry/telemetry.go b/pkg/fleet/telemetry/telemetry.go
index f484e06822cd4c..5bbfd8ca773c44 100644
--- a/pkg/fleet/telemetry/telemetry.go
+++ b/pkg/fleet/telemetry/telemetry.go
@@ -19,6 +19,7 @@ import (
"strings"
"sync"
+ httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
@@ -207,17 +208,40 @@ func (addr) String() string {
return "local"
}
-// StartSpanFromEnv starts a span using the environment variables to find the parent span.
-func StartSpanFromEnv(ctx context.Context, operationName string, spanOptions ...ddtrace.StartSpanOption) (ddtrace.Span, context.Context) {
- spanContext, ok := spanContextFromEnv()
- if ok {
- spanOptions = append([]ddtrace.StartSpanOption{tracer.ChildOf(spanContext)}, spanOptions...)
+// StartSpanFromIDs starts a span using the trace and parent
+// IDs provided.
+func StartSpanFromIDs(ctx context.Context, operationName, traceID, parentID string, spanOptions ...ddtrace.StartSpanOption) (Span, context.Context) {
+ ctxCarrier := tracer.TextMapCarrier{
+ tracer.DefaultTraceIDHeader: traceID,
+ tracer.DefaultParentIDHeader: parentID,
+ tracer.DefaultPriorityHeader: "2",
}
- return tracer.StartSpanFromContext(ctx, operationName, spanOptions...)
+ spanCtx, err := tracer.Extract(ctxCarrier)
+ if err != nil {
+ log.Debugf("failed to extract span context from install script params: %v", err)
+ return StartSpanFromContext(ctx, operationName, spanOptions...)
+ }
+ spanOptions = append([]ddtrace.StartSpanOption{tracer.ChildOf(spanCtx)}, spanOptions...)
+ return StartSpanFromContext(ctx, operationName, spanOptions...)
}
-// spanContextFromEnv injects the traceID and parentID from the environment into the context if available.
-func spanContextFromEnv() (ddtrace.SpanContext, bool) {
+// SpanFromContext returns the span from the context if available.
+func SpanFromContext(ctx context.Context) (Span, bool) {
+ span, ok := tracer.SpanFromContext(ctx)
+ if !ok {
+ return Span{}, false
+ }
+ return Span{span}, true
+}
+
+// StartSpanFromContext starts a span using the context to find the parent span.
+func StartSpanFromContext(ctx context.Context, operationName string, spanOptions ...ddtrace.StartSpanOption) (Span, context.Context) {
+ span, ctx := tracer.StartSpanFromContext(ctx, operationName, spanOptions...)
+ return Span{span}, ctx
+}
+
+// StartSpanFromEnv starts a span using the environment variables to find the parent span.
+func StartSpanFromEnv(ctx context.Context, operationName string, spanOptions ...ddtrace.StartSpanOption) (Span, context.Context) {
traceID, ok := os.LookupEnv(EnvTraceID)
if !ok {
traceID = strconv.FormatUint(rand.Uint64(), 10)
@@ -226,17 +250,7 @@ func spanContextFromEnv() (ddtrace.SpanContext, bool) {
if !ok {
parentID = "0"
}
- ctxCarrier := tracer.TextMapCarrier{
- tracer.DefaultTraceIDHeader: traceID,
- tracer.DefaultParentIDHeader: parentID,
- tracer.DefaultPriorityHeader: "2",
- }
- spanCtx, err := tracer.Extract(ctxCarrier)
- if err != nil {
- log.Debugf("failed to extract span context from install script params: %v", err)
- return nil, false
- }
- return spanCtx, true
+ return StartSpanFromIDs(ctx, operationName, traceID, parentID, spanOptions...)
}
// EnvFromContext returns the environment variables for the context.
@@ -266,3 +280,8 @@ func WithSamplingRules(rules ...tracer.SamplingRule) Option {
t.samplingRules = rules
}
}
+
+// WrapRoundTripper wraps the round tripper with the telemetry round tripper.
+func WrapRoundTripper(rt http.RoundTripper) http.RoundTripper {
+ return httptrace.WrapRoundTripper(rt)
+}
diff --git a/pkg/gpu/aggregator.go b/pkg/gpu/aggregator.go
index 6e907c24428a15..30a20e9146efd9 100644
--- a/pkg/gpu/aggregator.go
+++ b/pkg/gpu/aggregator.go
@@ -38,13 +38,13 @@ type aggregator struct {
// processTerminated is true if the process has ended and this aggregator should be deleted
processTerminated bool
- // sysCtx is the system context with global GPU-system data
- sysCtx *systemContext
+ // deviceMaxThreads is the maximum number of threads the GPU can run in parallel, for utilization calculations
+ deviceMaxThreads uint64
}
-func newAggregator(sysCtx *systemContext) *aggregator {
+func newAggregator(deviceMaxThreads uint64) *aggregator {
return &aggregator{
- sysCtx: sysCtx,
+ deviceMaxThreads: deviceMaxThreads,
}
}
@@ -60,8 +60,7 @@ func (agg *aggregator) processKernelSpan(span *kernelSpan) {
}
durationSec := float64(tsEnd-tsStart) / float64(time.Second.Nanoseconds())
- maxThreads := uint64(agg.sysCtx.maxGpuThreadsPerDevice[0]) // TODO: MultiGPU support not enabled yet
- agg.totalThreadSecondsUsed += durationSec * float64(min(span.avgThreadCount, maxThreads)) // we can't use more threads than the GPU has
+ agg.totalThreadSecondsUsed += durationSec * float64(min(span.avgThreadCount, agg.deviceMaxThreads)) // we can't use more threads than the GPU has
}
// processPastData takes spans/allocations that have already been closed
@@ -86,8 +85,7 @@ func (agg *aggregator) processCurrentData(data *streamData) {
func (agg *aggregator) getGPUUtilization() float64 {
intervalSecs := float64(agg.measuredIntervalNs) / float64(time.Second.Nanoseconds())
if intervalSecs > 0 {
- // TODO: MultiGPU support not enabled yet
- availableThreadSeconds := float64(agg.sysCtx.maxGpuThreadsPerDevice[0]) * intervalSecs
+ availableThreadSeconds := float64(agg.deviceMaxThreads) * intervalSecs
return agg.totalThreadSecondsUsed / availableThreadSeconds
}
diff --git a/pkg/gpu/context.go b/pkg/gpu/context.go
index 6c38ae4ad978cf..77bac5185339f3 100644
--- a/pkg/gpu/context.go
+++ b/pkg/gpu/context.go
@@ -248,3 +248,17 @@ func (ctx *systemContext) setDeviceSelection(pid int, tid int, deviceIndex int32
ctx.selectedDeviceByPIDAndTID[pid][tid] = deviceIndex
}
+
+// getDeviceByUUID returns the device with the given UUID.
+func (ctx *systemContext) getDeviceByUUID(uuid string) (nvml.Device, error) {
+ for _, dev := range ctx.gpuDevices {
+ devUUID, ret := dev.GetUUID()
+ if ret != nvml.SUCCESS {
+ return nil, fmt.Errorf("error getting device UUID: %s", nvml.ErrorString(ret))
+ }
+ if devUUID == uuid {
+ return dev, nil
+ }
+ }
+ return nil, fmt.Errorf("device with UUID %s not found", uuid)
+}
diff --git a/pkg/gpu/stats.go b/pkg/gpu/stats.go
index 753fadcf084d95..ba50db6c5226a9 100644
--- a/pkg/gpu/stats.go
+++ b/pkg/gpu/stats.go
@@ -8,8 +8,13 @@
package gpu
import (
+ "fmt"
+
+ "github.com/NVIDIA/go-nvml/pkg/nvml"
+
"github.com/DataDog/datadog-agent/pkg/collector/corechecks/gpu/model"
ddebpf "github.com/DataDog/datadog-agent/pkg/ebpf"
+ "github.com/DataDog/datadog-agent/pkg/util/log"
)
// statsGenerator connects to the active stream handlers and generates stats for the GPU monitoring, by distributing
@@ -40,7 +45,12 @@ func (g *statsGenerator) getStats(nowKtime int64) *model.GPUStats {
g.currGenerationKTime = nowKtime
for key, handler := range g.streamHandlers {
- aggr := g.getOrCreateAggregator(key)
+ aggr, err := g.getOrCreateAggregator(key)
+ if err != nil {
+ log.Errorf("Error getting or creating aggregator for key %v: %s", key, err)
+ continue
+ }
+
currData := handler.getCurrentData(uint64(nowKtime))
pastData := handler.getPastData(true)
@@ -76,7 +86,7 @@ func (g *statsGenerator) getStats(nowKtime int64) *model.GPUStats {
return stats
}
-func (g *statsGenerator) getOrCreateAggregator(sKey streamKey) *aggregator {
+func (g *statsGenerator) getOrCreateAggregator(sKey streamKey) (*aggregator, error) {
aggKey := model.StatsKey{
PID: sKey.pid,
DeviceUUID: sKey.gpuUUID,
@@ -84,13 +94,23 @@ func (g *statsGenerator) getOrCreateAggregator(sKey streamKey) *aggregator {
}
if _, ok := g.aggregators[aggKey]; !ok {
- g.aggregators[aggKey] = newAggregator(g.sysCtx)
+ gpuDevice, err := g.sysCtx.getDeviceByUUID(sKey.gpuUUID)
+ if err != nil {
+ return nil, fmt.Errorf("Error getting device by UUID %s: %s", sKey.gpuUUID, err)
+ }
+
+ maxThreads, ret := gpuDevice.GetNumGpuCores()
+ if ret != nvml.SUCCESS {
+ return nil, fmt.Errorf("Error getting number of GPU cores: %s", nvml.ErrorString(ret))
+ }
+
+ g.aggregators[aggKey] = newAggregator(uint64(maxThreads))
}
// Update the last check time and the measured interval, as these change between check runs
g.aggregators[aggKey].lastCheckKtime = uint64(g.lastGenerationKTime)
g.aggregators[aggKey].measuredIntervalNs = g.currGenerationKTime - g.lastGenerationKTime
- return g.aggregators[aggKey]
+ return g.aggregators[aggKey], nil
}
// getNormalizationFactor returns the factor to use for utilization
diff --git a/pkg/gpu/stats_test.go b/pkg/gpu/stats_test.go
index 4ebbec874ecdc8..c0445e6c4e869c 100644
--- a/pkg/gpu/stats_test.go
+++ b/pkg/gpu/stats_test.go
@@ -233,3 +233,49 @@ func TestGetStatsWithPastAndCurrentData(t *testing.T) {
expectedUtil := expectedUtilKern1 + expectedUtilKern2
require.InDelta(t, expectedUtil, metrics.UtilizationPercentage, 0.001)
}
+
+func TestGetStatsMultiGPU(t *testing.T) {
+ statsGen, streamHandlers, ktime := getStatsGeneratorForTest(t)
+
+ startKtime := ktime + int64(1*time.Second)
+ endKtime := startKtime + int64(1*time.Second)
+
+ pid := uint32(1)
+ numThreads := uint64(5)
+
+ // Add kernels for all devices
+ for i, uuid := range testutil.GPUUUIDs {
+ streamID := uint64(i)
+ streamKey := streamKey{pid: pid, stream: streamID, gpuUUID: uuid}
+ streamHandlers[streamKey] = &StreamHandler{
+ processEnded: false,
+ kernelSpans: []*kernelSpan{
+ {
+ startKtime: uint64(startKtime),
+ endKtime: uint64(endKtime),
+ avgThreadCount: numThreads,
+ numKernels: 10,
+ },
+ },
+ }
+ }
+
+ checkDuration := 10 * time.Second
+ checkKtime := ktime + int64(checkDuration)
+ stats := statsGen.getStats(checkKtime)
+ require.NotNil(t, stats)
+
+ // Check the metrics for each device
+ for i, uuid := range testutil.GPUUUIDs {
+ metricsKey := model.StatsKey{PID: pid, DeviceUUID: uuid}
+ metrics := getMetricsEntry(metricsKey, stats)
+ require.NotNil(t, metrics, "cannot find metrics for key %+v", metricsKey)
+
+ gpuCores := float64(testutil.GPUCores[i])
+ threadSecondsUsed := float64(numThreads) * float64(endKtime-startKtime) / 1e9
+ threadSecondsAvailable := gpuCores * checkDuration.Seconds()
+ expectedUtil := threadSecondsUsed / threadSecondsAvailable
+
+ require.InDelta(t, expectedUtil, metrics.UtilizationPercentage, 0.001, "invalid utilization for device %d (uuid=%s)", i, uuid)
+ }
+}
diff --git a/pkg/gpu/testutil/mocks.go b/pkg/gpu/testutil/mocks.go
index b703a39001ef4f..a7dadd39215ad5 100644
--- a/pkg/gpu/testutil/mocks.go
+++ b/pkg/gpu/testutil/mocks.go
@@ -23,20 +23,23 @@ var GPUUUIDs = []string{
"GPU-00000000-1234-1234-1234-123456789014",
}
+// GPUCores is a list of number of cores for the devices returned by the mock, should be the same length as GPUUUIDs
+var GPUCores = []int{DefaultGpuCores, 20, 30}
+
// DefaultGpuUUID is the UUID for the default device returned by the mock
var DefaultGpuUUID = GPUUUIDs[0]
// GetDeviceMock returns a mock of the nvml.Device with the given UUID.
-func GetDeviceMock(uuid string) *nvmlmock.Device {
+func GetDeviceMock(deviceIdx int) *nvmlmock.Device {
return &nvmlmock.Device{
GetNumGpuCoresFunc: func() (int, nvml.Return) {
- return DefaultGpuCores, nvml.SUCCESS
+ return GPUCores[deviceIdx], nvml.SUCCESS
},
GetCudaComputeCapabilityFunc: func() (int, int, nvml.Return) {
return 7, 5, nvml.SUCCESS
},
GetUUIDFunc: func() (string, nvml.Return) {
- return uuid, nvml.SUCCESS
+ return GPUUUIDs[deviceIdx], nvml.SUCCESS
},
}
}
@@ -49,7 +52,7 @@ func GetBasicNvmlMock() *nvmlmock.Interface {
return len(GPUUUIDs), nvml.SUCCESS
},
DeviceGetHandleByIndexFunc: func(index int) (nvml.Device, nvml.Return) {
- return GetDeviceMock(GPUUUIDs[index]), nvml.SUCCESS
+ return GetDeviceMock(index), nvml.SUCCESS
},
DeviceGetCudaComputeCapabilityFunc: func(nvml.Device) (int, int, nvml.Return) {
return 7, 5, nvml.SUCCESS
diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod
index 46137034d3399a..a7369cfd728f6d 100644
--- a/pkg/metrics/go.mod
+++ b/pkg/metrics/go.mod
@@ -47,7 +47,7 @@ require (
github.com/DataDog/datadog-agent/pkg/telemetry v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/buf v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/log v0.59.1
- github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0
github.com/stretchr/testify v1.10.0
go.uber.org/atomic v1.11.0
)
diff --git a/pkg/metrics/go.sum b/pkg/metrics/go.sum
index 0b55a947b65bf3..cc705048328858 100644
--- a/pkg/metrics/go.sum
+++ b/pkg/metrics/go.sum
@@ -1,9 +1,9 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0 h1:cXcKVEU1D0HlguR7GunnvuI70TghkarCa9DApqzMY94=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0/go.mod h1:ES00EXfyEKgUkjd93tAXCxJA6i0seeOhZoS5Cj2qzzg=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 h1:63SzQz9Ab8XJj8fQKQz6UZNBhOm8rucwzbDfwTVF6dQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0/go.mod h1:E/PY/aQ6S/N5hBPHXZRGmovs5b1BSi4RHGNcB4yP/Z0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
diff --git a/pkg/network/ebpf/c/protocols/tls/go-tls-maps.h b/pkg/network/ebpf/c/protocols/tls/go-tls-maps.h
index 1c66dee1d0abc3..896b77cc8190fd 100644
--- a/pkg/network/ebpf/c/protocols/tls/go-tls-maps.h
+++ b/pkg/network/ebpf/c/protocols/tls/go-tls-maps.h
@@ -11,11 +11,11 @@ BPF_HASH_MAP(offsets_data, go_tls_offsets_data_key_t, tls_offsets_data_t, 1024)
/* go_tls_read_args is used to get the read function info when running in the read-return uprobe.
The key contains the go routine id and the pid. */
-BPF_LRU_MAP(go_tls_read_args, go_tls_function_args_key_t, go_tls_read_args_data_t, 2048)
+BPF_HASH_MAP(go_tls_read_args, go_tls_function_args_key_t, go_tls_read_args_data_t, 2048)
/* go_tls_write_args is used to get the read function info when running in the write-return uprobe.
The key contains the go routine id and the pid. */
-BPF_LRU_MAP(go_tls_write_args, go_tls_function_args_key_t, go_tls_write_args_data_t, 2048)
+BPF_HASH_MAP(go_tls_write_args, go_tls_function_args_key_t, go_tls_write_args_data_t, 2048)
/* This map associates crypto/tls.(*Conn) values to the corresponding conn_tuple_t* value.
It is used to implement a simplified version of tup_from_ssl_ctx from usm.c
diff --git a/pkg/network/ebpf/c/protocols/tls/native-tls-maps.h b/pkg/network/ebpf/c/protocols/tls/native-tls-maps.h
index 4ee9366cd58ccc..282c593308b165 100644
--- a/pkg/network/ebpf/c/protocols/tls/native-tls-maps.h
+++ b/pkg/network/ebpf/c/protocols/tls/native-tls-maps.h
@@ -3,20 +3,20 @@
#include "map-defs.h"
-BPF_LRU_MAP(ssl_sock_by_ctx, void *, ssl_sock_t, 1)
+BPF_HASH_MAP(ssl_sock_by_ctx, void *, ssl_sock_t, 1)
-BPF_LRU_MAP(ssl_read_args, u64, ssl_read_args_t, 1024)
+BPF_HASH_MAP(ssl_read_args, u64, ssl_read_args_t, 1024)
-BPF_LRU_MAP(ssl_read_ex_args, u64, ssl_read_ex_args_t, 1024)
+BPF_HASH_MAP(ssl_read_ex_args, u64, ssl_read_ex_args_t, 1024)
-BPF_LRU_MAP(ssl_write_args, u64, ssl_write_args_t, 1024)
+BPF_HASH_MAP(ssl_write_args, u64, ssl_write_args_t, 1024)
-BPF_LRU_MAP(ssl_write_ex_args, u64, ssl_write_ex_args_t, 1024)
+BPF_HASH_MAP(ssl_write_ex_args, u64, ssl_write_ex_args_t, 1024)
-BPF_LRU_MAP(bio_new_socket_args, __u64, __u32, 1024)
+BPF_HASH_MAP(bio_new_socket_args, __u64, __u32, 1024)
-BPF_LRU_MAP(fd_by_ssl_bio, __u32, void *, 1024)
+BPF_HASH_MAP(fd_by_ssl_bio, __u32, void *, 1024)
-BPF_LRU_MAP(ssl_ctx_by_pid_tgid, __u64, void *, 1024)
+BPF_HASH_MAP(ssl_ctx_by_pid_tgid, __u64, void *, 1024)
#endif
diff --git a/pkg/network/ebpf/c/shared-libraries/maps.h b/pkg/network/ebpf/c/shared-libraries/maps.h
index ec0112536462a4..f1d8f34d854f40 100644
--- a/pkg/network/ebpf/c/shared-libraries/maps.h
+++ b/pkg/network/ebpf/c/shared-libraries/maps.h
@@ -4,7 +4,9 @@
#include "shared-libraries/types.h"
#include "map-defs.h"
-BPF_LRU_MAP(open_at_args, __u64, lib_path_t, 1024)
+// This map is used with 3 different probes, each can be called up to 1024 times each.
+// Thus we need to have a map that can store 1024*3 entries. I'm using a larger map to be safe.
+BPF_HASH_MAP(open_at_args, __u64, lib_path_t, 10240)
/*
* These maps are used for notifying userspace of a shared library being loaded
diff --git a/pkg/network/usm/sharedlibraries/testutil/fmapper/.gitignore b/pkg/network/usm/sharedlibraries/testutil/fmapper/.gitignore
index c7a40853e7ac32..03c02565fb7ffe 100644
--- a/pkg/network/usm/sharedlibraries/testutil/fmapper/.gitignore
+++ b/pkg/network/usm/sharedlibraries/testutil/fmapper/.gitignore
@@ -1 +1,3 @@
fmapper
+dotnet
+python
diff --git a/pkg/obfuscate/go.mod b/pkg/obfuscate/go.mod
index 7085b75f3783d1..b34df591521b5e 100644
--- a/pkg/obfuscate/go.mod
+++ b/pkg/obfuscate/go.mod
@@ -3,7 +3,7 @@ module github.com/DataDog/datadog-agent/pkg/obfuscate
go 1.22.0
require (
- github.com/DataDog/datadog-go/v5 v5.5.0
+ github.com/DataDog/datadog-go/v5 v5.6.0
github.com/DataDog/go-sqllexer v0.0.17
github.com/outcaste-io/ristretto v0.2.3
github.com/stretchr/testify v1.10.0
diff --git a/pkg/obfuscate/go.sum b/pkg/obfuscate/go.sum
index e36a2867eaba63..063bd88a07005d 100644
--- a/pkg/obfuscate/go.sum
+++ b/pkg/obfuscate/go.sum
@@ -1,5 +1,5 @@
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc=
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
diff --git a/pkg/process/util/containers/containers.go b/pkg/process/util/containers/containers.go
index 2beafeced27f56..c5ad7cae1c9b38 100644
--- a/pkg/process/util/containers/containers.go
+++ b/pkg/process/util/containers/containers.go
@@ -120,7 +120,7 @@ func (p *containerProvider) GetContainers(cacheValidity time.Duration, previousC
annotations = pod.Annotations
}
- if p.filter != nil && p.filter.IsExcluded(annotations, container.Name, container.Image.Name, container.Labels[kubernetes.CriContainerNamespaceLabel]) {
+ if p.filter != nil && p.filter.IsExcluded(annotations, container.Name, container.Image.RawName, container.Labels[kubernetes.CriContainerNamespaceLabel]) {
continue
}
@@ -209,7 +209,7 @@ func (p *containerProvider) GetPidToCid(cacheValidity time.Duration) map[int]str
annotations = pod.Annotations
}
- if p.filter != nil && p.filter.IsExcluded(annotations, container.Name, container.Image.Name, container.Labels[kubernetes.CriContainerNamespaceLabel]) {
+ if p.filter != nil && p.filter.IsExcluded(annotations, container.Name, container.Image.RawName, container.Labels[kubernetes.CriContainerNamespaceLabel]) {
continue
}
diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod
index f8bf148c648a22..283fed1972634a 100644
--- a/pkg/proto/go.mod
+++ b/pkg/proto/go.mod
@@ -9,6 +9,7 @@ require (
github.com/golang/protobuf v1.5.4
github.com/google/gofuzz v1.2.0
github.com/grpc-ecosystem/grpc-gateway v1.16.0
+ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10
github.com/stretchr/testify v1.10.0
github.com/tinylib/msgp v1.2.4
github.com/vmihailenco/msgpack/v4 v4.3.13
diff --git a/pkg/proto/go.sum b/pkg/proto/go.sum
index 7299faff274355..899e2f639d24b4 100644
--- a/pkg/proto/go.sum
+++ b/pkg/proto/go.sum
@@ -48,6 +48,8 @@ github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY=
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
diff --git a/pkg/proto/pbgo/core/api.pb.go b/pkg/proto/pbgo/core/api.pb.go
index 6e23a0ef0f9c20..57de2030c617e0 100644
--- a/pkg/proto/pbgo/core/api.pb.go
+++ b/pkg/proto/pbgo/core/api.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/api/v1/api.proto
@@ -177,7 +177,7 @@ var file_datadog_api_v1_api_proto_rawDesc = []byte{
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
-var file_datadog_api_v1_api_proto_goTypes = []interface{}{
+var file_datadog_api_v1_api_proto_goTypes = []any{
(*HostnameRequest)(nil), // 0: datadog.model.v1.HostnameRequest
(*StreamTagsRequest)(nil), // 1: datadog.model.v1.StreamTagsRequest
(*FetchEntityRequest)(nil), // 2: datadog.model.v1.FetchEntityRequest
diff --git a/pkg/proto/pbgo/core/api.pb.gw.go b/pkg/proto/pbgo/core/api.pb.gw.go
index 4ff263f83d8889..0fac62a1daa72f 100644
--- a/pkg/proto/pbgo/core/api.pb.gw.go
+++ b/pkg/proto/pbgo/core/api.pb.gw.go
@@ -21,6 +21,7 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/grpclog"
+ "google.golang.org/grpc/metadata"
"google.golang.org/grpc/status"
)
@@ -31,6 +32,7 @@ var _ status.Status
var _ = runtime.String
var _ = utilities.NewDoubleArray
var _ = descriptor.ForMessage
+var _ = metadata.Join
func request_Agent_GetHostname_0(ctx context.Context, marshaler runtime.Marshaler, client AgentClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq HostnameRequest
@@ -400,11 +402,14 @@ func request_AgentSecure_AutodiscoveryStreamConfig_0(ctx context.Context, marsha
// RegisterAgentHandlerServer registers the http handlers for service Agent to "mux".
// UnaryRPC :call AgentServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
+// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAgentHandlerFromEndpoint instead.
func RegisterAgentHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AgentServer) error {
mux.Handle("GET", pattern_Agent_GetHostname_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -412,6 +417,7 @@ func RegisterAgentHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
return
}
resp, md, err := local_request_Agent_GetHostname_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -428,6 +434,7 @@ func RegisterAgentHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv
// RegisterAgentSecureHandlerServer registers the http handlers for service AgentSecure to "mux".
// UnaryRPC :call AgentSecureServer directly.
// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906.
+// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAgentSecureHandlerFromEndpoint instead.
func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AgentSecureServer) error {
mux.Handle("POST", pattern_AgentSecure_TaggerStreamEntities_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
@@ -440,6 +447,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_TaggerFetchEntity_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -447,6 +456,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_TaggerFetchEntity_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -460,6 +470,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_DogstatsdCaptureTrigger_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -467,6 +479,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_DogstatsdCaptureTrigger_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -480,6 +493,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_DogstatsdSetTaggerState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -487,6 +502,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_DogstatsdSetTaggerState_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -500,6 +516,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_ClientGetConfigs_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -507,6 +525,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_ClientGetConfigs_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -520,6 +539,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_GetConfigState_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -527,6 +548,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_GetConfigState_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -540,6 +562,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_ClientGetConfigsHA_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -547,6 +571,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_ClientGetConfigsHA_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -560,6 +585,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_GetConfigStateHA_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -567,6 +594,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_GetConfigStateHA_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
@@ -587,6 +615,8 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
mux.Handle("POST", pattern_AgentSecure_RegisterRemoteAgent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
@@ -594,6 +624,7 @@ func RegisterAgentSecureHandlerServer(ctx context.Context, mux *runtime.ServeMux
return
}
resp, md, err := local_request_AgentSecure_RegisterRemoteAgent_0(rctx, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
diff --git a/pkg/proto/pbgo/core/autodiscovery.pb.go b/pkg/proto/pbgo/core/autodiscovery.pb.go
index 20f2c5c0102317..898df3ccfe4af8 100644
--- a/pkg/proto/pbgo/core/autodiscovery.pb.go
+++ b/pkg/proto/pbgo/core/autodiscovery.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/autodiscovery/autodiscovery.proto
@@ -77,11 +77,9 @@ type KubeNamespacedName struct {
func (x *KubeNamespacedName) Reset() {
*x = KubeNamespacedName{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KubeNamespacedName) String() string {
@@ -92,7 +90,7 @@ func (*KubeNamespacedName) ProtoMessage() {}
func (x *KubeNamespacedName) ProtoReflect() protoreflect.Message {
mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -132,11 +130,9 @@ type AdvancedADIdentifier struct {
func (x *AdvancedADIdentifier) Reset() {
*x = AdvancedADIdentifier{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AdvancedADIdentifier) String() string {
@@ -147,7 +143,7 @@ func (*AdvancedADIdentifier) ProtoMessage() {}
func (x *AdvancedADIdentifier) ProtoReflect() protoreflect.Message {
mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -202,11 +198,9 @@ type Config struct {
func (x *Config) Reset() {
*x = Config{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Config) String() string {
@@ -217,7 +211,7 @@ func (*Config) ProtoMessage() {}
func (x *Config) ProtoReflect() protoreflect.Message {
mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -361,11 +355,9 @@ type AutodiscoveryStreamResponse struct {
func (x *AutodiscoveryStreamResponse) Reset() {
*x = AutodiscoveryStreamResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AutodiscoveryStreamResponse) String() string {
@@ -376,7 +368,7 @@ func (*AutodiscoveryStreamResponse) ProtoMessage() {}
func (x *AutodiscoveryStreamResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_autodiscovery_autodiscovery_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -491,7 +483,7 @@ func file_datadog_autodiscovery_autodiscovery_proto_rawDescGZIP() []byte {
var file_datadog_autodiscovery_autodiscovery_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_datadog_autodiscovery_autodiscovery_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_datadog_autodiscovery_autodiscovery_proto_goTypes = []interface{}{
+var file_datadog_autodiscovery_autodiscovery_proto_goTypes = []any{
(ConfigEventType)(0), // 0: datadog.autodiscovery.ConfigEventType
(*KubeNamespacedName)(nil), // 1: datadog.autodiscovery.KubeNamespacedName
(*AdvancedADIdentifier)(nil), // 2: datadog.autodiscovery.AdvancedADIdentifier
@@ -516,56 +508,6 @@ func file_datadog_autodiscovery_autodiscovery_proto_init() {
if File_datadog_autodiscovery_autodiscovery_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_autodiscovery_autodiscovery_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*KubeNamespacedName); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_autodiscovery_autodiscovery_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AdvancedADIdentifier); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_autodiscovery_autodiscovery_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Config); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_autodiscovery_autodiscovery_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AutodiscoveryStreamResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/core/model.pb.go b/pkg/proto/pbgo/core/model.pb.go
index cd3ae8350b00d9..3f85da4236b7fc 100644
--- a/pkg/proto/pbgo/core/model.pb.go
+++ b/pkg/proto/pbgo/core/model.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/model/v1/model.proto
@@ -126,11 +126,9 @@ type HostnameRequest struct {
func (x *HostnameRequest) Reset() {
*x = HostnameRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *HostnameRequest) String() string {
@@ -141,7 +139,7 @@ func (*HostnameRequest) ProtoMessage() {}
func (x *HostnameRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -167,11 +165,9 @@ type HostnameReply struct {
func (x *HostnameReply) Reset() {
*x = HostnameReply{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *HostnameReply) String() string {
@@ -182,7 +178,7 @@ func (*HostnameReply) ProtoMessage() {}
func (x *HostnameReply) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -217,11 +213,9 @@ type CaptureTriggerRequest struct {
func (x *CaptureTriggerRequest) Reset() {
*x = CaptureTriggerRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CaptureTriggerRequest) String() string {
@@ -232,7 +226,7 @@ func (*CaptureTriggerRequest) ProtoMessage() {}
func (x *CaptureTriggerRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -278,11 +272,9 @@ type CaptureTriggerResponse struct {
func (x *CaptureTriggerResponse) Reset() {
*x = CaptureTriggerResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *CaptureTriggerResponse) String() string {
@@ -293,7 +285,7 @@ func (*CaptureTriggerResponse) ProtoMessage() {}
func (x *CaptureTriggerResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -329,11 +321,9 @@ type StreamTagsRequest struct {
func (x *StreamTagsRequest) Reset() {
*x = StreamTagsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamTagsRequest) String() string {
@@ -344,7 +334,7 @@ func (*StreamTagsRequest) ProtoMessage() {}
func (x *StreamTagsRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -404,11 +394,9 @@ type StreamTagsResponse struct {
func (x *StreamTagsResponse) Reset() {
*x = StreamTagsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamTagsResponse) String() string {
@@ -419,7 +407,7 @@ func (*StreamTagsResponse) ProtoMessage() {}
func (x *StreamTagsResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -452,11 +440,9 @@ type StreamTagsEvent struct {
func (x *StreamTagsEvent) Reset() {
*x = StreamTagsEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StreamTagsEvent) String() string {
@@ -467,7 +453,7 @@ func (*StreamTagsEvent) ProtoMessage() {}
func (x *StreamTagsEvent) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -508,11 +494,9 @@ type DeprecatedFilter struct {
func (x *DeprecatedFilter) Reset() {
*x = DeprecatedFilter{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DeprecatedFilter) String() string {
@@ -523,7 +507,7 @@ func (*DeprecatedFilter) ProtoMessage() {}
func (x *DeprecatedFilter) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -574,11 +558,9 @@ type Entity struct {
func (x *Entity) Reset() {
*x = Entity{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Entity) String() string {
@@ -589,7 +571,7 @@ func (*Entity) ProtoMessage() {}
func (x *Entity) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -657,11 +639,9 @@ type FetchEntityRequest struct {
func (x *FetchEntityRequest) Reset() {
*x = FetchEntityRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FetchEntityRequest) String() string {
@@ -672,7 +652,7 @@ func (*FetchEntityRequest) ProtoMessage() {}
func (x *FetchEntityRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -713,11 +693,9 @@ type FetchEntityResponse struct {
func (x *FetchEntityResponse) Reset() {
*x = FetchEntityResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FetchEntityResponse) String() string {
@@ -728,7 +706,7 @@ func (*FetchEntityResponse) ProtoMessage() {}
func (x *FetchEntityResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -775,11 +753,9 @@ type EntityId struct {
func (x *EntityId) Reset() {
*x = EntityId{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *EntityId) String() string {
@@ -790,7 +766,7 @@ func (*EntityId) ProtoMessage() {}
func (x *EntityId) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -836,11 +812,9 @@ type UnixDogstatsdMsg struct {
func (x *UnixDogstatsdMsg) Reset() {
*x = UnixDogstatsdMsg{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *UnixDogstatsdMsg) String() string {
@@ -851,7 +825,7 @@ func (*UnixDogstatsdMsg) ProtoMessage() {}
func (x *UnixDogstatsdMsg) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -919,11 +893,9 @@ type TaggerState struct {
func (x *TaggerState) Reset() {
*x = TaggerState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TaggerState) String() string {
@@ -934,7 +906,7 @@ func (*TaggerState) ProtoMessage() {}
func (x *TaggerState) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -973,11 +945,9 @@ type TaggerStateResponse struct {
func (x *TaggerStateResponse) Reset() {
*x = TaggerStateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_model_v1_model_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_model_v1_model_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TaggerStateResponse) String() string {
@@ -988,7 +958,7 @@ func (*TaggerStateResponse) ProtoMessage() {}
func (x *TaggerStateResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_model_v1_model_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1165,7 +1135,7 @@ func file_datadog_model_v1_model_proto_rawDescGZIP() []byte {
var file_datadog_model_v1_model_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_datadog_model_v1_model_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
-var file_datadog_model_v1_model_proto_goTypes = []interface{}{
+var file_datadog_model_v1_model_proto_goTypes = []any{
(EventType)(0), // 0: datadog.model.v1.EventType
(TagCardinality)(0), // 1: datadog.model.v1.TagCardinality
(*HostnameRequest)(nil), // 2: datadog.model.v1.HostnameRequest
@@ -1213,188 +1183,6 @@ func file_datadog_model_v1_model_proto_init() {
if File_datadog_model_v1_model_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_model_v1_model_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*HostnameRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*HostnameReply); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CaptureTriggerRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CaptureTriggerResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StreamTagsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StreamTagsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StreamTagsEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeprecatedFilter); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Entity); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FetchEntityRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FetchEntityResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EntityId); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*UnixDogstatsdMsg); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TaggerState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_model_v1_model_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TaggerStateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/core/remoteagent.pb.go b/pkg/proto/pbgo/core/remoteagent.pb.go
index 0893ee22f3ec95..4e048d389b7130 100644
--- a/pkg/proto/pbgo/core/remoteagent.pb.go
+++ b/pkg/proto/pbgo/core/remoteagent.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/remoteagent/remoteagent.proto
@@ -30,11 +30,9 @@ type StatusSection struct {
func (x *StatusSection) Reset() {
*x = StatusSection{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StatusSection) String() string {
@@ -45,7 +43,7 @@ func (*StatusSection) ProtoMessage() {}
func (x *StatusSection) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -98,11 +96,9 @@ type RegisterRemoteAgentRequest struct {
func (x *RegisterRemoteAgentRequest) Reset() {
*x = RegisterRemoteAgentRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RegisterRemoteAgentRequest) String() string {
@@ -113,7 +109,7 @@ func (*RegisterRemoteAgentRequest) ProtoMessage() {}
func (x *RegisterRemoteAgentRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -172,11 +168,9 @@ type RegisterRemoteAgentResponse struct {
func (x *RegisterRemoteAgentResponse) Reset() {
*x = RegisterRemoteAgentResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *RegisterRemoteAgentResponse) String() string {
@@ -187,7 +181,7 @@ func (*RegisterRemoteAgentResponse) ProtoMessage() {}
func (x *RegisterRemoteAgentResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -217,11 +211,9 @@ type GetStatusDetailsRequest struct {
func (x *GetStatusDetailsRequest) Reset() {
*x = GetStatusDetailsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetStatusDetailsRequest) String() string {
@@ -232,7 +224,7 @@ func (*GetStatusDetailsRequest) ProtoMessage() {}
func (x *GetStatusDetailsRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -264,11 +256,9 @@ type GetStatusDetailsResponse struct {
func (x *GetStatusDetailsResponse) Reset() {
*x = GetStatusDetailsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetStatusDetailsResponse) String() string {
@@ -279,7 +269,7 @@ func (*GetStatusDetailsResponse) ProtoMessage() {}
func (x *GetStatusDetailsResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -316,11 +306,9 @@ type GetFlareFilesRequest struct {
func (x *GetFlareFilesRequest) Reset() {
*x = GetFlareFilesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetFlareFilesRequest) String() string {
@@ -331,7 +319,7 @@ func (*GetFlareFilesRequest) ProtoMessage() {}
func (x *GetFlareFilesRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -363,11 +351,9 @@ type GetFlareFilesResponse struct {
func (x *GetFlareFilesResponse) Reset() {
*x = GetFlareFilesResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetFlareFilesResponse) String() string {
@@ -378,7 +364,7 @@ func (*GetFlareFilesResponse) ProtoMessage() {}
func (x *GetFlareFilesResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteagent_remoteagent_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -482,7 +468,7 @@ func file_datadog_remoteagent_remoteagent_proto_rawDescGZIP() []byte {
}
var file_datadog_remoteagent_remoteagent_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_datadog_remoteagent_remoteagent_proto_goTypes = []interface{}{
+var file_datadog_remoteagent_remoteagent_proto_goTypes = []any{
(*StatusSection)(nil), // 0: datadog.remoteagent.StatusSection
(*RegisterRemoteAgentRequest)(nil), // 1: datadog.remoteagent.RegisterRemoteAgentRequest
(*RegisterRemoteAgentResponse)(nil), // 2: datadog.remoteagent.RegisterRemoteAgentResponse
@@ -512,92 +498,6 @@ func file_datadog_remoteagent_remoteagent_proto_init() {
if File_datadog_remoteagent_remoteagent_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_remoteagent_remoteagent_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StatusSection); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteagent_remoteagent_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RegisterRemoteAgentRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteagent_remoteagent_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RegisterRemoteAgentResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteagent_remoteagent_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetStatusDetailsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteagent_remoteagent_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetStatusDetailsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteagent_remoteagent_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetFlareFilesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteagent_remoteagent_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetFlareFilesResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/core/remoteconfig.pb.go b/pkg/proto/pbgo/core/remoteconfig.pb.go
index 37f3f8aea75929..cfd551d59b6900 100644
--- a/pkg/proto/pbgo/core/remoteconfig.pb.go
+++ b/pkg/proto/pbgo/core/remoteconfig.pb.go
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.2
-// protoc v5.28.3
+// protoc-gen-go v1.35.2
+// protoc v5.26.1
// source: datadog/remoteconfig/remoteconfig.proto
package core
@@ -89,11 +89,9 @@ type ConfigMetas struct {
func (x *ConfigMetas) Reset() {
*x = ConfigMetas{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConfigMetas) String() string {
@@ -104,7 +102,7 @@ func (*ConfigMetas) ProtoMessage() {}
func (x *ConfigMetas) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -167,11 +165,9 @@ type DirectorMetas struct {
func (x *DirectorMetas) Reset() {
*x = DirectorMetas{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DirectorMetas) String() string {
@@ -182,7 +178,7 @@ func (*DirectorMetas) ProtoMessage() {}
func (x *DirectorMetas) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -237,11 +233,9 @@ type DelegatedMeta struct {
func (x *DelegatedMeta) Reset() {
*x = DelegatedMeta{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DelegatedMeta) String() string {
@@ -252,7 +246,7 @@ func (*DelegatedMeta) ProtoMessage() {}
func (x *DelegatedMeta) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -299,11 +293,9 @@ type TopMeta struct {
func (x *TopMeta) Reset() {
*x = TopMeta{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TopMeta) String() string {
@@ -314,7 +306,7 @@ func (*TopMeta) ProtoMessage() {}
func (x *TopMeta) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -354,11 +346,9 @@ type File struct {
func (x *File) Reset() {
*x = File{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *File) String() string {
@@ -369,7 +359,7 @@ func (*File) ProtoMessage() {}
func (x *File) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -423,11 +413,9 @@ type LatestConfigsRequest struct {
func (x *LatestConfigsRequest) Reset() {
*x = LatestConfigsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LatestConfigsRequest) String() string {
@@ -438,7 +426,7 @@ func (*LatestConfigsRequest) ProtoMessage() {}
func (x *LatestConfigsRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -570,11 +558,9 @@ type LatestConfigsResponse struct {
func (x *LatestConfigsResponse) Reset() {
*x = LatestConfigsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *LatestConfigsResponse) String() string {
@@ -585,7 +571,7 @@ func (*LatestConfigsResponse) ProtoMessage() {}
func (x *LatestConfigsResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -631,11 +617,9 @@ type OrgDataResponse struct {
func (x *OrgDataResponse) Reset() {
*x = OrgDataResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *OrgDataResponse) String() string {
@@ -646,7 +630,7 @@ func (*OrgDataResponse) ProtoMessage() {}
func (x *OrgDataResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -679,11 +663,9 @@ type OrgStatusResponse struct {
func (x *OrgStatusResponse) Reset() {
*x = OrgStatusResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *OrgStatusResponse) String() string {
@@ -694,7 +676,7 @@ func (*OrgStatusResponse) ProtoMessage() {}
func (x *OrgStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -743,11 +725,9 @@ type Client struct {
func (x *Client) Reset() {
*x = Client{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Client) String() string {
@@ -758,7 +738,7 @@ func (*Client) ProtoMessage() {}
func (x *Client) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -867,11 +847,9 @@ type ClientTracer struct {
func (x *ClientTracer) Reset() {
*x = ClientTracer{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientTracer) String() string {
@@ -882,7 +860,7 @@ func (*ClientTracer) ProtoMessage() {}
func (x *ClientTracer) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -967,11 +945,9 @@ type ClientAgent struct {
func (x *ClientAgent) Reset() {
*x = ClientAgent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientAgent) String() string {
@@ -982,7 +958,7 @@ func (*ClientAgent) ProtoMessage() {}
func (x *ClientAgent) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1044,11 +1020,9 @@ type ClientUpdater struct {
func (x *ClientUpdater) Reset() {
*x = ClientUpdater{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientUpdater) String() string {
@@ -1059,7 +1033,7 @@ func (*ClientUpdater) ProtoMessage() {}
func (x *ClientUpdater) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1111,11 +1085,9 @@ type PackageState struct {
func (x *PackageState) Reset() {
*x = PackageState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PackageState) String() string {
@@ -1126,7 +1098,7 @@ func (*PackageState) ProtoMessage() {}
func (x *PackageState) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1201,11 +1173,9 @@ type PoliciesState struct {
func (x *PoliciesState) Reset() {
*x = PoliciesState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PoliciesState) String() string {
@@ -1216,7 +1186,7 @@ func (*PoliciesState) ProtoMessage() {}
func (x *PoliciesState) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1257,11 +1227,9 @@ type PackageStateTask struct {
func (x *PackageStateTask) Reset() {
*x = PackageStateTask{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PackageStateTask) String() string {
@@ -1272,7 +1240,7 @@ func (*PackageStateTask) ProtoMessage() {}
func (x *PackageStateTask) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1319,11 +1287,9 @@ type TaskError struct {
func (x *TaskError) Reset() {
*x = TaskError{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TaskError) String() string {
@@ -1334,7 +1300,7 @@ func (*TaskError) ProtoMessage() {}
func (x *TaskError) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1377,11 +1343,9 @@ type ConfigState struct {
func (x *ConfigState) Reset() {
*x = ConfigState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ConfigState) String() string {
@@ -1392,7 +1356,7 @@ func (*ConfigState) ProtoMessage() {}
func (x *ConfigState) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1457,11 +1421,9 @@ type ClientState struct {
func (x *ClientState) Reset() {
*x = ClientState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientState) String() string {
@@ -1472,7 +1434,7 @@ func (*ClientState) ProtoMessage() {}
func (x *ClientState) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1540,11 +1502,9 @@ type TargetFileHash struct {
func (x *TargetFileHash) Reset() {
*x = TargetFileHash{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TargetFileHash) String() string {
@@ -1555,7 +1515,7 @@ func (*TargetFileHash) ProtoMessage() {}
func (x *TargetFileHash) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1596,11 +1556,9 @@ type TargetFileMeta struct {
func (x *TargetFileMeta) Reset() {
*x = TargetFileMeta{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TargetFileMeta) String() string {
@@ -1611,7 +1569,7 @@ func (*TargetFileMeta) ProtoMessage() {}
func (x *TargetFileMeta) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1658,11 +1616,9 @@ type ClientGetConfigsRequest struct {
func (x *ClientGetConfigsRequest) Reset() {
*x = ClientGetConfigsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientGetConfigsRequest) String() string {
@@ -1673,7 +1629,7 @@ func (*ClientGetConfigsRequest) ProtoMessage() {}
func (x *ClientGetConfigsRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1715,11 +1671,9 @@ type ClientGetConfigsResponse struct {
func (x *ClientGetConfigsResponse) Reset() {
*x = ClientGetConfigsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientGetConfigsResponse) String() string {
@@ -1730,7 +1684,7 @@ func (*ClientGetConfigsResponse) ProtoMessage() {}
func (x *ClientGetConfigsResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1784,11 +1738,9 @@ type FileMetaState struct {
func (x *FileMetaState) Reset() {
*x = FileMetaState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *FileMetaState) String() string {
@@ -1799,7 +1751,7 @@ func (*FileMetaState) ProtoMessage() {}
func (x *FileMetaState) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1841,11 +1793,9 @@ type GetStateConfigResponse struct {
func (x *GetStateConfigResponse) Reset() {
*x = GetStateConfigResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *GetStateConfigResponse) String() string {
@@ -1856,7 +1806,7 @@ func (*GetStateConfigResponse) ProtoMessage() {}
func (x *GetStateConfigResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1915,11 +1865,9 @@ type TracerPredicateV1 struct {
func (x *TracerPredicateV1) Reset() {
*x = TracerPredicateV1{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TracerPredicateV1) String() string {
@@ -1930,7 +1878,7 @@ func (*TracerPredicateV1) ProtoMessage() {}
func (x *TracerPredicateV1) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2004,11 +1952,9 @@ type TracerPredicates struct {
func (x *TracerPredicates) Reset() {
*x = TracerPredicates{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TracerPredicates) String() string {
@@ -2019,7 +1965,7 @@ func (*TracerPredicates) ProtoMessage() {}
func (x *TracerPredicates) ProtoReflect() protoreflect.Message {
mi := &file_datadog_remoteconfig_remoteconfig_proto_msgTypes[26]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -2492,332 +2438,6 @@ func file_datadog_remoteconfig_remoteconfig_proto_init() {
if File_datadog_remoteconfig_remoteconfig_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[0].Exporter = func(v any, i int) any {
- switch v := v.(*ConfigMetas); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[1].Exporter = func(v any, i int) any {
- switch v := v.(*DirectorMetas); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[2].Exporter = func(v any, i int) any {
- switch v := v.(*DelegatedMeta); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[3].Exporter = func(v any, i int) any {
- switch v := v.(*TopMeta); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[4].Exporter = func(v any, i int) any {
- switch v := v.(*File); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[5].Exporter = func(v any, i int) any {
- switch v := v.(*LatestConfigsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[6].Exporter = func(v any, i int) any {
- switch v := v.(*LatestConfigsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[7].Exporter = func(v any, i int) any {
- switch v := v.(*OrgDataResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*OrgStatusResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*Client); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ClientTracer); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*ClientAgent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*ClientUpdater); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*PackageState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*PoliciesState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*PackageStateTask); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*TaskError); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*ConfigState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*ClientState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*TargetFileHash); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*TargetFileMeta); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*ClientGetConfigsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*ClientGetConfigsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*FileMetaState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*GetStateConfigResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*TracerPredicateV1); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_remoteconfig_remoteconfig_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*TracerPredicates); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/core/workloadmeta.pb.go b/pkg/proto/pbgo/core/workloadmeta.pb.go
index 1cd608ebe19d1f..a6299b85850fb8 100644
--- a/pkg/proto/pbgo/core/workloadmeta.pb.go
+++ b/pkg/proto/pbgo/core/workloadmeta.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/workloadmeta/workloadmeta.proto
@@ -393,11 +393,9 @@ type WorkloadmetaFilter struct {
func (x *WorkloadmetaFilter) Reset() {
*x = WorkloadmetaFilter{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkloadmetaFilter) String() string {
@@ -408,7 +406,7 @@ func (*WorkloadmetaFilter) ProtoMessage() {}
func (x *WorkloadmetaFilter) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -454,11 +452,9 @@ type WorkloadmetaStreamRequest struct {
func (x *WorkloadmetaStreamRequest) Reset() {
*x = WorkloadmetaStreamRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkloadmetaStreamRequest) String() string {
@@ -469,7 +465,7 @@ func (*WorkloadmetaStreamRequest) ProtoMessage() {}
func (x *WorkloadmetaStreamRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -502,11 +498,9 @@ type WorkloadmetaEntityId struct {
func (x *WorkloadmetaEntityId) Reset() {
*x = WorkloadmetaEntityId{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkloadmetaEntityId) String() string {
@@ -517,7 +511,7 @@ func (*WorkloadmetaEntityId) ProtoMessage() {}
func (x *WorkloadmetaEntityId) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -559,11 +553,9 @@ type EntityMeta struct {
func (x *EntityMeta) Reset() {
*x = EntityMeta{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *EntityMeta) String() string {
@@ -574,7 +566,7 @@ func (*EntityMeta) ProtoMessage() {}
func (x *EntityMeta) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -632,11 +624,9 @@ type ContainerImage struct {
func (x *ContainerImage) Reset() {
*x = ContainerImage{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ContainerImage) String() string {
@@ -647,7 +637,7 @@ func (*ContainerImage) ProtoMessage() {}
func (x *ContainerImage) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -716,11 +706,9 @@ type ContainerPort struct {
func (x *ContainerPort) Reset() {
*x = ContainerPort{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ContainerPort) String() string {
@@ -731,7 +719,7 @@ func (*ContainerPort) ProtoMessage() {}
func (x *ContainerPort) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -783,11 +771,9 @@ type ContainerState struct {
func (x *ContainerState) Reset() {
*x = ContainerState{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ContainerState) String() string {
@@ -798,7 +784,7 @@ func (*ContainerState) ProtoMessage() {}
func (x *ContainerState) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -883,11 +869,9 @@ type Container struct {
func (x *Container) Reset() {
*x = Container{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Container) String() string {
@@ -898,7 +882,7 @@ func (*Container) ProtoMessage() {}
func (x *Container) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1009,11 +993,9 @@ type KubernetesPodOwner struct {
func (x *KubernetesPodOwner) Reset() {
*x = KubernetesPodOwner{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KubernetesPodOwner) String() string {
@@ -1024,7 +1006,7 @@ func (*KubernetesPodOwner) ProtoMessage() {}
func (x *KubernetesPodOwner) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1072,11 +1054,9 @@ type OrchestratorContainer struct {
func (x *OrchestratorContainer) Reset() {
*x = OrchestratorContainer{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *OrchestratorContainer) String() string {
@@ -1087,7 +1067,7 @@ func (*OrchestratorContainer) ProtoMessage() {}
func (x *OrchestratorContainer) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1146,11 +1126,9 @@ type KubernetesPod struct {
func (x *KubernetesPod) Reset() {
*x = KubernetesPod{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KubernetesPod) String() string {
@@ -1161,7 +1139,7 @@ func (*KubernetesPod) ProtoMessage() {}
func (x *KubernetesPod) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[10]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1295,11 +1273,9 @@ type ECSTask struct {
func (x *ECSTask) Reset() {
*x = ECSTask{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ECSTask) String() string {
@@ -1310,7 +1286,7 @@ func (*ECSTask) ProtoMessage() {}
func (x *ECSTask) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[11]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1422,11 +1398,9 @@ type WorkloadmetaEvent struct {
func (x *WorkloadmetaEvent) Reset() {
*x = WorkloadmetaEvent{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkloadmetaEvent) String() string {
@@ -1437,7 +1411,7 @@ func (*WorkloadmetaEvent) ProtoMessage() {}
func (x *WorkloadmetaEvent) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[12]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1490,11 +1464,9 @@ type WorkloadmetaStreamResponse struct {
func (x *WorkloadmetaStreamResponse) Reset() {
*x = WorkloadmetaStreamResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *WorkloadmetaStreamResponse) String() string {
@@ -1505,7 +1477,7 @@ func (*WorkloadmetaStreamResponse) ProtoMessage() {}
func (x *WorkloadmetaStreamResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_workloadmeta_workloadmeta_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -1862,7 +1834,7 @@ func file_datadog_workloadmeta_workloadmeta_proto_rawDescGZIP() []byte {
var file_datadog_workloadmeta_workloadmeta_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
var file_datadog_workloadmeta_workloadmeta_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
-var file_datadog_workloadmeta_workloadmeta_proto_goTypes = []interface{}{
+var file_datadog_workloadmeta_workloadmeta_proto_goTypes = []any{
(WorkloadmetaKind)(0), // 0: datadog.workloadmeta.WorkloadmetaKind
(WorkloadmetaSource)(0), // 1: datadog.workloadmeta.WorkloadmetaSource
(WorkloadmetaEventType)(0), // 2: datadog.workloadmeta.WorkloadmetaEventType
@@ -1940,176 +1912,6 @@ func file_datadog_workloadmeta_workloadmeta_proto_init() {
if File_datadog_workloadmeta_workloadmeta_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*WorkloadmetaFilter); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*WorkloadmetaStreamRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*WorkloadmetaEntityId); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EntityMeta); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ContainerImage); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ContainerPort); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ContainerState); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Container); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*KubernetesPodOwner); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*OrchestratorContainer); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*KubernetesPod); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ECSTask); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*WorkloadmetaEvent); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_workloadmeta_workloadmeta_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*WorkloadmetaStreamResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/languagedetection/api.pb.go b/pkg/proto/pbgo/languagedetection/api.pb.go
index f2c09323e3822d..8b0005ef541f89 100644
--- a/pkg/proto/pbgo/languagedetection/api.pb.go
+++ b/pkg/proto/pbgo/languagedetection/api.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/languagedetection/api.proto
@@ -32,11 +32,9 @@ type Process struct {
func (x *Process) Reset() {
*x = Process{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_languagedetection_api_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_languagedetection_api_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Process) String() string {
@@ -47,7 +45,7 @@ func (*Process) ProtoMessage() {}
func (x *Process) ProtoReflect() protoreflect.Message {
mi := &file_datadog_languagedetection_api_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -95,11 +93,9 @@ type Language struct {
func (x *Language) Reset() {
*x = Language{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_languagedetection_api_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_languagedetection_api_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Language) String() string {
@@ -110,7 +106,7 @@ func (*Language) ProtoMessage() {}
func (x *Language) ProtoReflect() protoreflect.Message {
mi := &file_datadog_languagedetection_api_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -149,11 +145,9 @@ type DetectLanguageRequest struct {
func (x *DetectLanguageRequest) Reset() {
*x = DetectLanguageRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_languagedetection_api_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_languagedetection_api_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DetectLanguageRequest) String() string {
@@ -164,7 +158,7 @@ func (*DetectLanguageRequest) ProtoMessage() {}
func (x *DetectLanguageRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_languagedetection_api_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -196,11 +190,9 @@ type DetectLanguageResponse struct {
func (x *DetectLanguageResponse) Reset() {
*x = DetectLanguageResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_languagedetection_api_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_languagedetection_api_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *DetectLanguageResponse) String() string {
@@ -211,7 +203,7 @@ func (*DetectLanguageResponse) ProtoMessage() {}
func (x *DetectLanguageResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_languagedetection_api_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -278,7 +270,7 @@ func file_datadog_languagedetection_api_proto_rawDescGZIP() []byte {
}
var file_datadog_languagedetection_api_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_datadog_languagedetection_api_proto_goTypes = []interface{}{
+var file_datadog_languagedetection_api_proto_goTypes = []any{
(*Process)(nil), // 0: datadog.languagedetection.Process
(*Language)(nil), // 1: datadog.languagedetection.Language
(*DetectLanguageRequest)(nil), // 2: datadog.languagedetection.DetectLanguageRequest
@@ -299,56 +291,6 @@ func file_datadog_languagedetection_api_proto_init() {
if File_datadog_languagedetection_api_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_languagedetection_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Process); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_languagedetection_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Language); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_languagedetection_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DetectLanguageRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_languagedetection_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DetectLanguageResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/process/process.pb.go b/pkg/proto/pbgo/process/process.pb.go
index f1c158d390062a..cd13a446613b4c 100644
--- a/pkg/proto/pbgo/process/process.pb.go
+++ b/pkg/proto/pbgo/process/process.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/process/process.proto
@@ -31,11 +31,9 @@ type ProcessStatRequest struct {
func (x *ProcessStatRequest) Reset() {
*x = ProcessStatRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_process_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_process_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ProcessStatRequest) String() string {
@@ -46,7 +44,7 @@ func (*ProcessStatRequest) ProtoMessage() {}
func (x *ProcessStatRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_process_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -94,7 +92,7 @@ func file_datadog_process_process_proto_rawDescGZIP() []byte {
}
var file_datadog_process_process_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_datadog_process_process_proto_goTypes = []interface{}{
+var file_datadog_process_process_proto_goTypes = []any{
(*ProcessStatRequest)(nil), // 0: datadog.process.ProcessStatRequest
}
var file_datadog_process_process_proto_depIdxs = []int32{
@@ -110,20 +108,6 @@ func file_datadog_process_process_proto_init() {
if File_datadog_process_process_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_process_process_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProcessStatRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/process/workloadmeta_process.pb.go b/pkg/proto/pbgo/process/workloadmeta_process.pb.go
index 7fc2e0b03f3a6a..3c5d2ddd71152d 100644
--- a/pkg/proto/pbgo/process/workloadmeta_process.pb.go
+++ b/pkg/proto/pbgo/process/workloadmeta_process.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/process/workloadmeta_process.proto
@@ -36,11 +36,9 @@ type ProcessStreamResponse struct {
func (x *ProcessStreamResponse) Reset() {
*x = ProcessStreamResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ProcessStreamResponse) String() string {
@@ -51,7 +49,7 @@ func (*ProcessStreamResponse) ProtoMessage() {}
func (x *ProcessStreamResponse) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -101,11 +99,9 @@ type ProcessEventSet struct {
func (x *ProcessEventSet) Reset() {
*x = ProcessEventSet{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ProcessEventSet) String() string {
@@ -116,7 +112,7 @@ func (*ProcessEventSet) ProtoMessage() {}
func (x *ProcessEventSet) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -176,11 +172,9 @@ type ProcessEventUnset struct {
func (x *ProcessEventUnset) Reset() {
*x = ProcessEventUnset{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ProcessEventUnset) String() string {
@@ -191,7 +185,7 @@ func (*ProcessEventUnset) ProtoMessage() {}
func (x *ProcessEventUnset) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -223,11 +217,9 @@ type Language struct {
func (x *Language) Reset() {
*x = Language{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Language) String() string {
@@ -238,7 +230,7 @@ func (*Language) ProtoMessage() {}
func (x *Language) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -268,11 +260,9 @@ type ProcessStreamEntitiesRequest struct {
func (x *ProcessStreamEntitiesRequest) Reset() {
*x = ProcessStreamEntitiesRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ProcessStreamEntitiesRequest) String() string {
@@ -283,7 +273,7 @@ func (*ProcessStreamEntitiesRequest) ProtoMessage() {}
func (x *ProcessStreamEntitiesRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -310,11 +300,9 @@ type ParentLanguageAnnotationRequest struct {
func (x *ParentLanguageAnnotationRequest) Reset() {
*x = ParentLanguageAnnotationRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ParentLanguageAnnotationRequest) String() string {
@@ -325,7 +313,7 @@ func (*ParentLanguageAnnotationRequest) ProtoMessage() {}
func (x *ParentLanguageAnnotationRequest) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -362,11 +350,9 @@ type PodLanguageDetails struct {
func (x *PodLanguageDetails) Reset() {
*x = PodLanguageDetails{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *PodLanguageDetails) String() string {
@@ -377,7 +363,7 @@ func (*PodLanguageDetails) ProtoMessage() {}
func (x *PodLanguageDetails) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -439,11 +425,9 @@ type ContainerLanguageDetails struct {
func (x *ContainerLanguageDetails) Reset() {
*x = ContainerLanguageDetails{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ContainerLanguageDetails) String() string {
@@ -454,7 +438,7 @@ func (*ContainerLanguageDetails) ProtoMessage() {}
func (x *ContainerLanguageDetails) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -496,11 +480,9 @@ type KubeOwnerInfo struct {
func (x *KubeOwnerInfo) Reset() {
*x = KubeOwnerInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *KubeOwnerInfo) String() string {
@@ -511,7 +493,7 @@ func (*KubeOwnerInfo) ProtoMessage() {}
func (x *KubeOwnerInfo) ProtoReflect() protoreflect.Message {
mi := &file_datadog_process_workloadmeta_process_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -648,7 +630,7 @@ func file_datadog_process_workloadmeta_process_proto_rawDescGZIP() []byte {
}
var file_datadog_process_workloadmeta_process_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
-var file_datadog_process_workloadmeta_process_proto_goTypes = []interface{}{
+var file_datadog_process_workloadmeta_process_proto_goTypes = []any{
(*ProcessStreamResponse)(nil), // 0: datadog.process.ProcessStreamResponse
(*ProcessEventSet)(nil), // 1: datadog.process.ProcessEventSet
(*ProcessEventUnset)(nil), // 2: datadog.process.ProcessEventUnset
@@ -682,116 +664,6 @@ func file_datadog_process_workloadmeta_process_proto_init() {
if File_datadog_process_workloadmeta_process_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_process_workloadmeta_process_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProcessStreamResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProcessEventSet); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProcessEventUnset); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Language); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ProcessStreamEntitiesRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ParentLanguageAnnotationRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PodLanguageDetails); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ContainerLanguageDetails); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_process_workloadmeta_process_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*KubeOwnerInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/trace/agent_payload.pb.go b/pkg/proto/pbgo/trace/agent_payload.pb.go
index 5d803ea9b4019b..30a8415307f402 100644
--- a/pkg/proto/pbgo/trace/agent_payload.pb.go
+++ b/pkg/proto/pbgo/trace/agent_payload.pb.go
@@ -2,7 +2,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/trace/agent_payload.proto
@@ -48,11 +48,9 @@ type AgentPayload struct {
func (x *AgentPayload) Reset() {
*x = AgentPayload{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_agent_payload_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_agent_payload_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *AgentPayload) String() string {
@@ -63,7 +61,7 @@ func (*AgentPayload) ProtoMessage() {}
func (x *AgentPayload) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_agent_payload_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -184,7 +182,7 @@ func file_datadog_trace_agent_payload_proto_rawDescGZIP() []byte {
}
var file_datadog_trace_agent_payload_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_datadog_trace_agent_payload_proto_goTypes = []interface{}{
+var file_datadog_trace_agent_payload_proto_goTypes = []any{
(*AgentPayload)(nil), // 0: datadog.trace.AgentPayload
nil, // 1: datadog.trace.AgentPayload.TagsEntry
(*TracerPayload)(nil), // 2: datadog.trace.TracerPayload
@@ -205,20 +203,6 @@ func file_datadog_trace_agent_payload_proto_init() {
return
}
file_datadog_trace_tracer_payload_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_datadog_trace_agent_payload_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AgentPayload); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/trace/agent_payload_vtproto.pb.go b/pkg/proto/pbgo/trace/agent_payload_vtproto.pb.go
index e4d4f171bf7a2c..9433b709b7da87 100644
--- a/pkg/proto/pbgo/trace/agent_payload_vtproto.pb.go
+++ b/pkg/proto/pbgo/trace/agent_payload_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.4.0
+// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
// source: datadog/trace/agent_payload.proto
package trace
@@ -7,6 +7,7 @@ package trace
import (
binary "encoding/binary"
fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
io "io"
math "math"
@@ -74,7 +75,7 @@ func (m *AgentPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.AgentVersion) > 0 {
i -= len(m.AgentVersion)
copy(dAtA[i:], m.AgentVersion)
- i = encodeVarint(dAtA, i, uint64(len(m.AgentVersion)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AgentVersion)))
i--
dAtA[i] = 0x3a
}
@@ -84,15 +85,15 @@ func (m *AgentPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
baseI := i
i -= len(v)
copy(dAtA[i:], v)
- i = encodeVarint(dAtA, i, uint64(len(v)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(v)))
i--
dAtA[i] = 0x12
i -= len(k)
copy(dAtA[i:], k)
- i = encodeVarint(dAtA, i, uint64(len(k)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
i--
dAtA[i] = 0xa
- i = encodeVarint(dAtA, i, uint64(baseI-i))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
i--
dAtA[i] = 0x32
}
@@ -104,7 +105,7 @@ func (m *AgentPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return 0, err
}
i -= size
- i = encodeVarint(dAtA, i, uint64(size))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x2a
}
@@ -112,14 +113,14 @@ func (m *AgentPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.Env) > 0 {
i -= len(m.Env)
copy(dAtA[i:], m.Env)
- i = encodeVarint(dAtA, i, uint64(len(m.Env)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Env)))
i--
dAtA[i] = 0x12
}
if len(m.HostName) > 0 {
i -= len(m.HostName)
copy(dAtA[i:], m.HostName)
- i = encodeVarint(dAtA, i, uint64(len(m.HostName)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.HostName)))
i--
dAtA[i] = 0xa
}
@@ -134,29 +135,29 @@ func (m *AgentPayload) SizeVT() (n int) {
_ = l
l = len(m.HostName)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Env)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.TracerPayloads) > 0 {
for _, e := range m.TracerPayloads {
l = e.SizeVT()
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
if len(m.Tags) > 0 {
for k, v := range m.Tags {
_ = k
_ = v
- mapEntrySize := 1 + len(k) + sov(uint64(len(k))) + 1 + len(v) + sov(uint64(len(v)))
- n += mapEntrySize + 1 + sov(uint64(mapEntrySize))
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + 1 + len(v) + protohelpers.SizeOfVarint(uint64(len(v)))
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
}
}
l = len(m.AgentVersion)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.TargetTPS != 0 {
n += 9
@@ -179,7 +180,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -207,7 +208,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -221,11 +222,11 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -239,7 +240,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -253,11 +254,11 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -271,7 +272,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -284,11 +285,11 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -305,7 +306,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -318,11 +319,11 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -337,7 +338,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -354,7 +355,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var stringLenmapkey uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -368,11 +369,11 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapkey := int(stringLenmapkey)
if intStringLenmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
if postStringIndexmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
@@ -383,7 +384,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var stringLenmapvalue uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -397,11 +398,11 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapvalue := int(stringLenmapvalue)
if intStringLenmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
if postStringIndexmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
@@ -410,12 +411,12 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
iNdEx = postStringIndexmapvalue
} else {
iNdEx = entryPreIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > postIndex {
return io.ErrUnexpectedEOF
@@ -432,7 +433,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -446,11 +447,11 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -486,7 +487,7 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -501,12 +502,12 @@ func (m *AgentPayload) UnmarshalVT(dAtA []byte) error {
m.RareSamplerEnabled = bool(v != 0)
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
diff --git a/pkg/proto/pbgo/trace/span.pb.go b/pkg/proto/pbgo/trace/span.pb.go
index be7ee2bdadb77a..1d0ad90af63514 100644
--- a/pkg/proto/pbgo/trace/span.pb.go
+++ b/pkg/proto/pbgo/trace/span.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/trace/span.proto
@@ -41,11 +41,9 @@ type SpanLink struct {
func (x *SpanLink) Reset() {
*x = SpanLink{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_span_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_span_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *SpanLink) String() string {
@@ -56,7 +54,7 @@ func (*SpanLink) ProtoMessage() {}
func (x *SpanLink) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_span_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -164,11 +162,9 @@ type Span struct {
func (x *Span) Reset() {
*x = Span{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_span_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_span_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *Span) String() string {
@@ -179,7 +175,7 @@ func (*Span) ProtoMessage() {}
func (x *Span) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_span_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -375,7 +371,7 @@ func file_datadog_trace_span_proto_rawDescGZIP() []byte {
}
var file_datadog_trace_span_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
-var file_datadog_trace_span_proto_goTypes = []interface{}{
+var file_datadog_trace_span_proto_goTypes = []any{
(*SpanLink)(nil), // 0: datadog.trace.SpanLink
(*Span)(nil), // 1: datadog.trace.Span
nil, // 2: datadog.trace.SpanLink.AttributesEntry
@@ -401,32 +397,6 @@ func file_datadog_trace_span_proto_init() {
if File_datadog_trace_span_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_trace_span_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SpanLink); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_trace_span_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Span); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/trace/span_gen.go b/pkg/proto/pbgo/trace/span_gen.go
index f08192b31b01bf..0ebaf789abc635 100644
--- a/pkg/proto/pbgo/trace/span_gen.go
+++ b/pkg/proto/pbgo/trace/span_gen.go
@@ -9,9 +9,10 @@ import (
// MarshalMsg implements msgp.Marshaler
func (z *Span) MarshalMsg(b []byte) (o []byte, err error) {
o = msgp.Require(b, z.Msgsize())
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(14)
var zb0001Mask uint16 /* 14 bits */
+ _ = zb0001Mask
if z.Meta == nil {
zb0001Len--
zb0001Mask |= 0x200
@@ -30,78 +31,79 @@ func (z *Span) MarshalMsg(b []byte) (o []byte, err error) {
}
// variable map header, size zb0001Len
o = append(o, 0x80|uint8(zb0001Len))
- if zb0001Len == 0 {
- return
- }
- // string "service"
- o = append(o, 0xa7, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65)
- o = msgp.AppendString(o, z.Service)
- // string "name"
- o = append(o, 0xa4, 0x6e, 0x61, 0x6d, 0x65)
- o = msgp.AppendString(o, z.Name)
- // string "resource"
- o = append(o, 0xa8, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65)
- o = msgp.AppendString(o, z.Resource)
- // string "trace_id"
- o = append(o, 0xa8, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64)
- o = msgp.AppendUint64(o, z.TraceID)
- // string "span_id"
- o = append(o, 0xa7, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64)
- o = msgp.AppendUint64(o, z.SpanID)
- // string "parent_id"
- o = append(o, 0xa9, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64)
- o = msgp.AppendUint64(o, z.ParentID)
- // string "start"
- o = append(o, 0xa5, 0x73, 0x74, 0x61, 0x72, 0x74)
- o = msgp.AppendInt64(o, z.Start)
- // string "duration"
- o = append(o, 0xa8, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e)
- o = msgp.AppendInt64(o, z.Duration)
- // string "error"
- o = append(o, 0xa5, 0x65, 0x72, 0x72, 0x6f, 0x72)
- o = msgp.AppendInt32(o, z.Error)
- if (zb0001Mask & 0x200) == 0 { // if not empty
- // string "meta"
- o = append(o, 0xa4, 0x6d, 0x65, 0x74, 0x61)
- o = msgp.AppendMapHeader(o, uint32(len(z.Meta)))
- for za0001, za0002 := range z.Meta {
- o = msgp.AppendString(o, za0001)
- o = msgp.AppendString(o, za0002)
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // string "service"
+ o = append(o, 0xa7, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65)
+ o = msgp.AppendString(o, z.Service)
+ // string "name"
+ o = append(o, 0xa4, 0x6e, 0x61, 0x6d, 0x65)
+ o = msgp.AppendString(o, z.Name)
+ // string "resource"
+ o = append(o, 0xa8, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65)
+ o = msgp.AppendString(o, z.Resource)
+ // string "trace_id"
+ o = append(o, 0xa8, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64)
+ o = msgp.AppendUint64(o, z.TraceID)
+ // string "span_id"
+ o = append(o, 0xa7, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64)
+ o = msgp.AppendUint64(o, z.SpanID)
+ // string "parent_id"
+ o = append(o, 0xa9, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64)
+ o = msgp.AppendUint64(o, z.ParentID)
+ // string "start"
+ o = append(o, 0xa5, 0x73, 0x74, 0x61, 0x72, 0x74)
+ o = msgp.AppendInt64(o, z.Start)
+ // string "duration"
+ o = append(o, 0xa8, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e)
+ o = msgp.AppendInt64(o, z.Duration)
+ // string "error"
+ o = append(o, 0xa5, 0x65, 0x72, 0x72, 0x6f, 0x72)
+ o = msgp.AppendInt32(o, z.Error)
+ if (zb0001Mask & 0x200) == 0 { // if not omitted
+ // string "meta"
+ o = append(o, 0xa4, 0x6d, 0x65, 0x74, 0x61)
+ o = msgp.AppendMapHeader(o, uint32(len(z.Meta)))
+ for za0001, za0002 := range z.Meta {
+ o = msgp.AppendString(o, za0001)
+ o = msgp.AppendString(o, za0002)
+ }
}
- }
- if (zb0001Mask & 0x400) == 0 { // if not empty
- // string "metrics"
- o = append(o, 0xa7, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73)
- o = msgp.AppendMapHeader(o, uint32(len(z.Metrics)))
- for za0003, za0004 := range z.Metrics {
- o = msgp.AppendString(o, za0003)
- o = msgp.AppendFloat64(o, za0004)
+ if (zb0001Mask & 0x400) == 0 { // if not omitted
+ // string "metrics"
+ o = append(o, 0xa7, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73)
+ o = msgp.AppendMapHeader(o, uint32(len(z.Metrics)))
+ for za0003, za0004 := range z.Metrics {
+ o = msgp.AppendString(o, za0003)
+ o = msgp.AppendFloat64(o, za0004)
+ }
}
- }
- // string "type"
- o = append(o, 0xa4, 0x74, 0x79, 0x70, 0x65)
- o = msgp.AppendString(o, z.Type)
- if (zb0001Mask & 0x1000) == 0 { // if not empty
- // string "meta_struct"
- o = append(o, 0xab, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74)
- o = msgp.AppendMapHeader(o, uint32(len(z.MetaStruct)))
- for za0005, za0006 := range z.MetaStruct {
- o = msgp.AppendString(o, za0005)
- o = msgp.AppendBytes(o, za0006)
+ // string "type"
+ o = append(o, 0xa4, 0x74, 0x79, 0x70, 0x65)
+ o = msgp.AppendString(o, z.Type)
+ if (zb0001Mask & 0x1000) == 0 { // if not omitted
+ // string "meta_struct"
+ o = append(o, 0xab, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74)
+ o = msgp.AppendMapHeader(o, uint32(len(z.MetaStruct)))
+ for za0005, za0006 := range z.MetaStruct {
+ o = msgp.AppendString(o, za0005)
+ o = msgp.AppendBytes(o, za0006)
+ }
}
- }
- if (zb0001Mask & 0x2000) == 0 { // if not empty
- // string "span_links"
- o = append(o, 0xaa, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73)
- o = msgp.AppendArrayHeader(o, uint32(len(z.SpanLinks)))
- for za0007 := range z.SpanLinks {
- if z.SpanLinks[za0007] == nil {
- o = msgp.AppendNil(o)
- } else {
- o, err = z.SpanLinks[za0007].MarshalMsg(o)
- if err != nil {
- err = msgp.WrapError(err, "SpanLinks", za0007)
- return
+ if (zb0001Mask & 0x2000) == 0 { // if not omitted
+ // string "span_links"
+ o = append(o, 0xaa, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73)
+ o = msgp.AppendArrayHeader(o, uint32(len(z.SpanLinks)))
+ for za0007 := range z.SpanLinks {
+ if z.SpanLinks[za0007] == nil {
+ o = msgp.AppendNil(o)
+ } else {
+ o, err = z.SpanLinks[za0007].MarshalMsg(o)
+ if err != nil {
+ err = msgp.WrapError(err, "SpanLinks", za0007)
+ return
+ }
}
}
}
@@ -416,9 +418,10 @@ func (z *Span) Msgsize() (s int) {
// MarshalMsg implements msgp.Marshaler
func (z *SpanLink) MarshalMsg(b []byte) (o []byte, err error) {
o = msgp.Require(b, z.Msgsize())
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(6)
var zb0001Mask uint8 /* 6 bits */
+ _ = zb0001Mask
if z.TraceIDHigh == 0 {
zb0001Len--
zb0001Mask |= 0x2
@@ -437,38 +440,39 @@ func (z *SpanLink) MarshalMsg(b []byte) (o []byte, err error) {
}
// variable map header, size zb0001Len
o = append(o, 0x80|uint8(zb0001Len))
- if zb0001Len == 0 {
- return
- }
- // string "trace_id"
- o = append(o, 0xa8, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64)
- o = msgp.AppendUint64(o, z.TraceID)
- if (zb0001Mask & 0x2) == 0 { // if not empty
- // string "trace_id_high"
- o = append(o, 0xad, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x68, 0x69, 0x67, 0x68)
- o = msgp.AppendUint64(o, z.TraceIDHigh)
- }
- // string "span_id"
- o = append(o, 0xa7, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64)
- o = msgp.AppendUint64(o, z.SpanID)
- if (zb0001Mask & 0x8) == 0 { // if not empty
- // string "attributes"
- o = append(o, 0xaa, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73)
- o = msgp.AppendMapHeader(o, uint32(len(z.Attributes)))
- for za0001, za0002 := range z.Attributes {
- o = msgp.AppendString(o, za0001)
- o = msgp.AppendString(o, za0002)
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // string "trace_id"
+ o = append(o, 0xa8, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64)
+ o = msgp.AppendUint64(o, z.TraceID)
+ if (zb0001Mask & 0x2) == 0 { // if not omitted
+ // string "trace_id_high"
+ o = append(o, 0xad, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x68, 0x69, 0x67, 0x68)
+ o = msgp.AppendUint64(o, z.TraceIDHigh)
+ }
+ // string "span_id"
+ o = append(o, 0xa7, 0x73, 0x70, 0x61, 0x6e, 0x5f, 0x69, 0x64)
+ o = msgp.AppendUint64(o, z.SpanID)
+ if (zb0001Mask & 0x8) == 0 { // if not omitted
+ // string "attributes"
+ o = append(o, 0xaa, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73)
+ o = msgp.AppendMapHeader(o, uint32(len(z.Attributes)))
+ for za0001, za0002 := range z.Attributes {
+ o = msgp.AppendString(o, za0001)
+ o = msgp.AppendString(o, za0002)
+ }
+ }
+ if (zb0001Mask & 0x10) == 0 { // if not omitted
+ // string "tracestate"
+ o = append(o, 0xaa, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65)
+ o = msgp.AppendString(o, z.Tracestate)
+ }
+ if (zb0001Mask & 0x20) == 0 { // if not omitted
+ // string "flags"
+ o = append(o, 0xa5, 0x66, 0x6c, 0x61, 0x67, 0x73)
+ o = msgp.AppendUint32(o, z.Flags)
}
- }
- if (zb0001Mask & 0x10) == 0 { // if not empty
- // string "tracestate"
- o = append(o, 0xaa, 0x74, 0x72, 0x61, 0x63, 0x65, 0x73, 0x74, 0x61, 0x74, 0x65)
- o = msgp.AppendString(o, z.Tracestate)
- }
- if (zb0001Mask & 0x20) == 0 { // if not empty
- // string "flags"
- o = append(o, 0xa5, 0x66, 0x6c, 0x61, 0x67, 0x73)
- o = msgp.AppendUint32(o, z.Flags)
}
return
}
diff --git a/pkg/proto/pbgo/trace/span_vtproto.pb.go b/pkg/proto/pbgo/trace/span_vtproto.pb.go
index 7b6a7a03087850..d975f7ffae1f2d 100644
--- a/pkg/proto/pbgo/trace/span_vtproto.pb.go
+++ b/pkg/proto/pbgo/trace/span_vtproto.pb.go
@@ -1,5 +1,5 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.4.0
+// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
// source: datadog/trace/span.proto
package trace
@@ -7,10 +7,10 @@ package trace
import (
binary "encoding/binary"
fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
io "io"
math "math"
- bits "math/bits"
)
const (
@@ -51,14 +51,14 @@ func (m *SpanLink) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
copy(dAtA[i:], m.unknownFields)
}
if m.Flags != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Flags))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Flags))
i--
dAtA[i] = 0x30
}
if len(m.Tracestate) > 0 {
i -= len(m.Tracestate)
copy(dAtA[i:], m.Tracestate)
- i = encodeVarint(dAtA, i, uint64(len(m.Tracestate)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Tracestate)))
i--
dAtA[i] = 0x2a
}
@@ -68,31 +68,31 @@ func (m *SpanLink) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
baseI := i
i -= len(v)
copy(dAtA[i:], v)
- i = encodeVarint(dAtA, i, uint64(len(v)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(v)))
i--
dAtA[i] = 0x12
i -= len(k)
copy(dAtA[i:], k)
- i = encodeVarint(dAtA, i, uint64(len(k)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
i--
dAtA[i] = 0xa
- i = encodeVarint(dAtA, i, uint64(baseI-i))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
i--
dAtA[i] = 0x22
}
}
if m.SpanID != 0 {
- i = encodeVarint(dAtA, i, uint64(m.SpanID))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SpanID))
i--
dAtA[i] = 0x18
}
if m.TraceIDHigh != 0 {
- i = encodeVarint(dAtA, i, uint64(m.TraceIDHigh))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TraceIDHigh))
i--
dAtA[i] = 0x10
}
if m.TraceID != 0 {
- i = encodeVarint(dAtA, i, uint64(m.TraceID))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TraceID))
i--
dAtA[i] = 0x8
}
@@ -136,7 +136,7 @@ func (m *Span) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return 0, err
}
i -= size
- i = encodeVarint(dAtA, i, uint64(size))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x72
}
@@ -147,15 +147,15 @@ func (m *Span) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
baseI := i
i -= len(v)
copy(dAtA[i:], v)
- i = encodeVarint(dAtA, i, uint64(len(v)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(v)))
i--
dAtA[i] = 0x12
i -= len(k)
copy(dAtA[i:], k)
- i = encodeVarint(dAtA, i, uint64(len(k)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
i--
dAtA[i] = 0xa
- i = encodeVarint(dAtA, i, uint64(baseI-i))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
i--
dAtA[i] = 0x6a
}
@@ -163,7 +163,7 @@ func (m *Span) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.Type) > 0 {
i -= len(m.Type)
copy(dAtA[i:], m.Type)
- i = encodeVarint(dAtA, i, uint64(len(m.Type)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Type)))
i--
dAtA[i] = 0x62
}
@@ -177,10 +177,10 @@ func (m *Span) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
dAtA[i] = 0x11
i -= len(k)
copy(dAtA[i:], k)
- i = encodeVarint(dAtA, i, uint64(len(k)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
i--
dAtA[i] = 0xa
- i = encodeVarint(dAtA, i, uint64(baseI-i))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
i--
dAtA[i] = 0x5a
}
@@ -191,84 +191,73 @@ func (m *Span) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
baseI := i
i -= len(v)
copy(dAtA[i:], v)
- i = encodeVarint(dAtA, i, uint64(len(v)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(v)))
i--
dAtA[i] = 0x12
i -= len(k)
copy(dAtA[i:], k)
- i = encodeVarint(dAtA, i, uint64(len(k)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
i--
dAtA[i] = 0xa
- i = encodeVarint(dAtA, i, uint64(baseI-i))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
i--
dAtA[i] = 0x52
}
}
if m.Error != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Error))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Error))
i--
dAtA[i] = 0x48
}
if m.Duration != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Duration))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Duration))
i--
dAtA[i] = 0x40
}
if m.Start != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Start))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Start))
i--
dAtA[i] = 0x38
}
if m.ParentID != 0 {
- i = encodeVarint(dAtA, i, uint64(m.ParentID))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.ParentID))
i--
dAtA[i] = 0x30
}
if m.SpanID != 0 {
- i = encodeVarint(dAtA, i, uint64(m.SpanID))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.SpanID))
i--
dAtA[i] = 0x28
}
if m.TraceID != 0 {
- i = encodeVarint(dAtA, i, uint64(m.TraceID))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TraceID))
i--
dAtA[i] = 0x20
}
if len(m.Resource) > 0 {
i -= len(m.Resource)
copy(dAtA[i:], m.Resource)
- i = encodeVarint(dAtA, i, uint64(len(m.Resource)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Resource)))
i--
dAtA[i] = 0x1a
}
if len(m.Name) > 0 {
i -= len(m.Name)
copy(dAtA[i:], m.Name)
- i = encodeVarint(dAtA, i, uint64(len(m.Name)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
i--
dAtA[i] = 0x12
}
if len(m.Service) > 0 {
i -= len(m.Service)
copy(dAtA[i:], m.Service)
- i = encodeVarint(dAtA, i, uint64(len(m.Service)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Service)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
-func encodeVarint(dAtA []byte, offset int, v uint64) int {
- offset -= sov(v)
- base := offset
- for v >= 1<<7 {
- dAtA[offset] = uint8(v&0x7f | 0x80)
- v >>= 7
- offset++
- }
- dAtA[offset] = uint8(v)
- return base
-}
func (m *SpanLink) SizeVT() (n int) {
if m == nil {
return 0
@@ -276,28 +265,28 @@ func (m *SpanLink) SizeVT() (n int) {
var l int
_ = l
if m.TraceID != 0 {
- n += 1 + sov(uint64(m.TraceID))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TraceID))
}
if m.TraceIDHigh != 0 {
- n += 1 + sov(uint64(m.TraceIDHigh))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TraceIDHigh))
}
if m.SpanID != 0 {
- n += 1 + sov(uint64(m.SpanID))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.SpanID))
}
if len(m.Attributes) > 0 {
for k, v := range m.Attributes {
_ = k
_ = v
- mapEntrySize := 1 + len(k) + sov(uint64(len(k))) + 1 + len(v) + sov(uint64(len(v)))
- n += mapEntrySize + 1 + sov(uint64(mapEntrySize))
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + 1 + len(v) + protohelpers.SizeOfVarint(uint64(len(v)))
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
}
}
l = len(m.Tracestate)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.Flags != 0 {
- n += 1 + sov(uint64(m.Flags))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Flags))
}
n += len(m.unknownFields)
return n
@@ -311,79 +300,73 @@ func (m *Span) SizeVT() (n int) {
_ = l
l = len(m.Service)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Name)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Resource)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.TraceID != 0 {
- n += 1 + sov(uint64(m.TraceID))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TraceID))
}
if m.SpanID != 0 {
- n += 1 + sov(uint64(m.SpanID))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.SpanID))
}
if m.ParentID != 0 {
- n += 1 + sov(uint64(m.ParentID))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.ParentID))
}
if m.Start != 0 {
- n += 1 + sov(uint64(m.Start))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Start))
}
if m.Duration != 0 {
- n += 1 + sov(uint64(m.Duration))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Duration))
}
if m.Error != 0 {
- n += 1 + sov(uint64(m.Error))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Error))
}
if len(m.Meta) > 0 {
for k, v := range m.Meta {
_ = k
_ = v
- mapEntrySize := 1 + len(k) + sov(uint64(len(k))) + 1 + len(v) + sov(uint64(len(v)))
- n += mapEntrySize + 1 + sov(uint64(mapEntrySize))
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + 1 + len(v) + protohelpers.SizeOfVarint(uint64(len(v)))
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
}
}
if len(m.Metrics) > 0 {
for k, v := range m.Metrics {
_ = k
_ = v
- mapEntrySize := 1 + len(k) + sov(uint64(len(k))) + 1 + 8
- n += mapEntrySize + 1 + sov(uint64(mapEntrySize))
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + 1 + 8
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
}
}
l = len(m.Type)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.MetaStruct) > 0 {
for k, v := range m.MetaStruct {
_ = k
_ = v
- l = 1 + len(v) + sov(uint64(len(v)))
- mapEntrySize := 1 + len(k) + sov(uint64(len(k))) + l
- n += mapEntrySize + 1 + sov(uint64(mapEntrySize))
+ l = 1 + len(v) + protohelpers.SizeOfVarint(uint64(len(v)))
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + l
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
}
}
if len(m.SpanLinks) > 0 {
for _, e := range m.SpanLinks {
l = e.SizeVT()
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
n += len(m.unknownFields)
return n
}
-func sov(x uint64) (n int) {
- return (bits.Len64(x|1) + 6) / 7
-}
-func soz(x uint64) (n int) {
- return sov(uint64((x << 1) ^ uint64((int64(x) >> 63))))
-}
func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
@@ -392,7 +375,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -420,7 +403,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
m.TraceID = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -439,7 +422,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
m.TraceIDHigh = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -458,7 +441,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
m.SpanID = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -477,7 +460,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -490,11 +473,11 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -509,7 +492,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -526,7 +509,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
var stringLenmapkey uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -540,11 +523,11 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapkey := int(stringLenmapkey)
if intStringLenmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
if postStringIndexmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
@@ -555,7 +538,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
var stringLenmapvalue uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -569,11 +552,11 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapvalue := int(stringLenmapvalue)
if intStringLenmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
if postStringIndexmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
@@ -582,12 +565,12 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
iNdEx = postStringIndexmapvalue
} else {
iNdEx = entryPreIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > postIndex {
return io.ErrUnexpectedEOF
@@ -604,7 +587,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -618,11 +601,11 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -636,7 +619,7 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
m.Flags = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -650,12 +633,12 @@ func (m *SpanLink) UnmarshalVT(dAtA []byte) error {
}
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
@@ -678,7 +661,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -706,7 +689,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -720,11 +703,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -738,7 +721,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -752,11 +735,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -770,7 +753,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -784,11 +767,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -802,7 +785,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
m.TraceID = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -821,7 +804,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
m.SpanID = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -840,7 +823,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
m.ParentID = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -859,7 +842,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
m.Start = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -878,7 +861,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
m.Duration = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -897,7 +880,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
m.Error = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -916,7 +899,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -929,11 +912,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -948,7 +931,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -965,7 +948,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLenmapkey uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -979,11 +962,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapkey := int(stringLenmapkey)
if intStringLenmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
if postStringIndexmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
@@ -994,7 +977,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLenmapvalue uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1008,11 +991,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapvalue := int(stringLenmapvalue)
if intStringLenmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
if postStringIndexmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
@@ -1021,12 +1004,12 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
iNdEx = postStringIndexmapvalue
} else {
iNdEx = entryPreIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > postIndex {
return io.ErrUnexpectedEOF
@@ -1043,7 +1026,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1056,11 +1039,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1075,7 +1058,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1092,7 +1075,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLenmapkey uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1106,11 +1089,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapkey := int(stringLenmapkey)
if intStringLenmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
if postStringIndexmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
@@ -1127,12 +1110,12 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
mapvalue = math.Float64frombits(mapvaluetemp)
} else {
iNdEx = entryPreIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > postIndex {
return io.ErrUnexpectedEOF
@@ -1149,7 +1132,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1163,11 +1146,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1181,7 +1164,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1194,11 +1177,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1213,7 +1196,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1230,7 +1213,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var stringLenmapkey uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1244,11 +1227,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapkey := int(stringLenmapkey)
if intStringLenmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
if postStringIndexmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
@@ -1259,7 +1242,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var mapbyteLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1273,11 +1256,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
intMapbyteLen := int(mapbyteLen)
if intMapbyteLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postbytesIndex := iNdEx + intMapbyteLen
if postbytesIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postbytesIndex > l {
return io.ErrUnexpectedEOF
@@ -1287,12 +1270,12 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
iNdEx = postbytesIndex
} else {
iNdEx = entryPreIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > postIndex {
return io.ErrUnexpectedEOF
@@ -1309,7 +1292,7 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1322,11 +1305,11 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1338,12 +1321,12 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
iNdEx = postIndex
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
@@ -1358,88 +1341,3 @@ func (m *Span) UnmarshalVT(dAtA []byte) error {
}
return nil
}
-
-func skip(dAtA []byte) (n int, err error) {
- l := len(dAtA)
- iNdEx := 0
- depth := 0
- for iNdEx < l {
- var wire uint64
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return 0, ErrIntOverflow
- }
- if iNdEx >= l {
- return 0, io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- wire |= (uint64(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- wireType := int(wire & 0x7)
- switch wireType {
- case 0:
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return 0, ErrIntOverflow
- }
- if iNdEx >= l {
- return 0, io.ErrUnexpectedEOF
- }
- iNdEx++
- if dAtA[iNdEx-1] < 0x80 {
- break
- }
- }
- case 1:
- iNdEx += 8
- case 2:
- var length int
- for shift := uint(0); ; shift += 7 {
- if shift >= 64 {
- return 0, ErrIntOverflow
- }
- if iNdEx >= l {
- return 0, io.ErrUnexpectedEOF
- }
- b := dAtA[iNdEx]
- iNdEx++
- length |= (int(b) & 0x7F) << shift
- if b < 0x80 {
- break
- }
- }
- if length < 0 {
- return 0, ErrInvalidLength
- }
- iNdEx += length
- case 3:
- depth++
- case 4:
- if depth == 0 {
- return 0, ErrUnexpectedEndOfGroup
- }
- depth--
- case 5:
- iNdEx += 4
- default:
- return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
- }
- if iNdEx < 0 {
- return 0, ErrInvalidLength
- }
- if depth == 0 {
- return iNdEx, nil
- }
- }
- return 0, io.ErrUnexpectedEOF
-}
-
-var (
- ErrInvalidLength = fmt.Errorf("proto: negative length found during unmarshaling")
- ErrIntOverflow = fmt.Errorf("proto: integer overflow")
- ErrUnexpectedEndOfGroup = fmt.Errorf("proto: unexpected end of group")
-)
diff --git a/pkg/proto/pbgo/trace/stats.pb.go b/pkg/proto/pbgo/trace/stats.pb.go
index 52d51fff5f75b2..c2dc1cfbbe86c5 100644
--- a/pkg/proto/pbgo/trace/stats.pb.go
+++ b/pkg/proto/pbgo/trace/stats.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/trace/stats.proto
@@ -138,11 +138,9 @@ type StatsPayload struct {
func (x *StatsPayload) Reset() {
*x = StatsPayload{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_stats_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_stats_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *StatsPayload) String() string {
@@ -153,7 +151,7 @@ func (*StatsPayload) ProtoMessage() {}
func (x *StatsPayload) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_stats_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -248,11 +246,9 @@ type ClientStatsPayload struct {
func (x *ClientStatsPayload) Reset() {
*x = ClientStatsPayload{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_stats_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_stats_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientStatsPayload) String() string {
@@ -263,7 +259,7 @@ func (*ClientStatsPayload) ProtoMessage() {}
func (x *ClientStatsPayload) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_stats_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -393,11 +389,9 @@ type ClientStatsBucket struct {
func (x *ClientStatsBucket) Reset() {
*x = ClientStatsBucket{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_stats_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_stats_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientStatsBucket) String() string {
@@ -408,7 +402,7 @@ func (*ClientStatsBucket) ProtoMessage() {}
func (x *ClientStatsBucket) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_stats_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -479,11 +473,9 @@ type ClientGroupedStats struct {
func (x *ClientGroupedStats) Reset() {
*x = ClientGroupedStats{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_stats_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_stats_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *ClientGroupedStats) String() string {
@@ -494,7 +486,7 @@ func (*ClientGroupedStats) ProtoMessage() {}
func (x *ClientGroupedStats) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_stats_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -740,7 +732,7 @@ func file_datadog_trace_stats_proto_rawDescGZIP() []byte {
var file_datadog_trace_stats_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_datadog_trace_stats_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_datadog_trace_stats_proto_goTypes = []interface{}{
+var file_datadog_trace_stats_proto_goTypes = []any{
(Trilean)(0), // 0: datadog.trace.Trilean
(TraceRootFlag)(0), // 1: datadog.trace.TraceRootFlag
(*StatsPayload)(nil), // 2: datadog.trace.StatsPayload
@@ -765,56 +757,6 @@ func file_datadog_trace_stats_proto_init() {
if File_datadog_trace_stats_proto != nil {
return
}
- if !protoimpl.UnsafeEnabled {
- file_datadog_trace_stats_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*StatsPayload); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_trace_stats_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ClientStatsPayload); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_trace_stats_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ClientStatsBucket); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_trace_stats_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ClientGroupedStats); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/trace/stats_gen.go b/pkg/proto/pbgo/trace/stats_gen.go
index 0747621c2d0c6c..3607062d3f2c29 100644
--- a/pkg/proto/pbgo/trace/stats_gen.go
+++ b/pkg/proto/pbgo/trace/stats_gen.go
@@ -612,9 +612,10 @@ func (z *ClientStatsBucket) DecodeMsg(dc *msgp.Reader) (err error) {
// EncodeMsg implements msgp.Encodable
func (z *ClientStatsBucket) EncodeMsg(en *msgp.Writer) (err error) {
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(4)
var zb0001Mask uint8 /* 4 bits */
+ _ = zb0001Mask
if z.Stats == nil {
zb0001Len--
zb0001Mask |= 0x4
@@ -624,64 +625,65 @@ func (z *ClientStatsBucket) EncodeMsg(en *msgp.Writer) (err error) {
if err != nil {
return
}
- if zb0001Len == 0 {
- return
- }
- // write "Start"
- err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x72, 0x74)
- if err != nil {
- return
- }
- err = en.WriteUint64(z.Start)
- if err != nil {
- err = msgp.WrapError(err, "Start")
- return
- }
- // write "Duration"
- err = en.Append(0xa8, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e)
- if err != nil {
- return
- }
- err = en.WriteUint64(z.Duration)
- if err != nil {
- err = msgp.WrapError(err, "Duration")
- return
- }
- if (zb0001Mask & 0x4) == 0 { // if not empty
- // write "Stats"
- err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // write "Start"
+ err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x72, 0x74)
if err != nil {
return
}
- err = en.WriteArrayHeader(uint32(len(z.Stats)))
+ err = en.WriteUint64(z.Start)
if err != nil {
- err = msgp.WrapError(err, "Stats")
+ err = msgp.WrapError(err, "Start")
return
}
- for za0001 := range z.Stats {
- if z.Stats[za0001] == nil {
- err = en.WriteNil()
- if err != nil {
- return
- }
- } else {
- err = z.Stats[za0001].EncodeMsg(en)
- if err != nil {
- err = msgp.WrapError(err, "Stats", za0001)
- return
+ // write "Duration"
+ err = en.Append(0xa8, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e)
+ if err != nil {
+ return
+ }
+ err = en.WriteUint64(z.Duration)
+ if err != nil {
+ err = msgp.WrapError(err, "Duration")
+ return
+ }
+ if (zb0001Mask & 0x4) == 0 { // if not omitted
+ // write "Stats"
+ err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+ if err != nil {
+ return
+ }
+ err = en.WriteArrayHeader(uint32(len(z.Stats)))
+ if err != nil {
+ err = msgp.WrapError(err, "Stats")
+ return
+ }
+ for za0001 := range z.Stats {
+ if z.Stats[za0001] == nil {
+ err = en.WriteNil()
+ if err != nil {
+ return
+ }
+ } else {
+ err = z.Stats[za0001].EncodeMsg(en)
+ if err != nil {
+ err = msgp.WrapError(err, "Stats", za0001)
+ return
+ }
}
}
}
- }
- // write "AgentTimeShift"
- err = en.Append(0xae, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74)
- if err != nil {
- return
- }
- err = en.WriteInt64(z.AgentTimeShift)
- if err != nil {
- err = msgp.WrapError(err, "AgentTimeShift")
- return
+ // write "AgentTimeShift"
+ err = en.Append(0xae, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74)
+ if err != nil {
+ return
+ }
+ err = en.WriteInt64(z.AgentTimeShift)
+ if err != nil {
+ err = msgp.WrapError(err, "AgentTimeShift")
+ return
+ }
}
return
}
@@ -689,43 +691,45 @@ func (z *ClientStatsBucket) EncodeMsg(en *msgp.Writer) (err error) {
// MarshalMsg implements msgp.Marshaler
func (z *ClientStatsBucket) MarshalMsg(b []byte) (o []byte, err error) {
o = msgp.Require(b, z.Msgsize())
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(4)
var zb0001Mask uint8 /* 4 bits */
+ _ = zb0001Mask
if z.Stats == nil {
zb0001Len--
zb0001Mask |= 0x4
}
// variable map header, size zb0001Len
o = append(o, 0x80|uint8(zb0001Len))
- if zb0001Len == 0 {
- return
- }
- // string "Start"
- o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x72, 0x74)
- o = msgp.AppendUint64(o, z.Start)
- // string "Duration"
- o = append(o, 0xa8, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e)
- o = msgp.AppendUint64(o, z.Duration)
- if (zb0001Mask & 0x4) == 0 { // if not empty
- // string "Stats"
- o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
- o = msgp.AppendArrayHeader(o, uint32(len(z.Stats)))
- for za0001 := range z.Stats {
- if z.Stats[za0001] == nil {
- o = msgp.AppendNil(o)
- } else {
- o, err = z.Stats[za0001].MarshalMsg(o)
- if err != nil {
- err = msgp.WrapError(err, "Stats", za0001)
- return
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // string "Start"
+ o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x72, 0x74)
+ o = msgp.AppendUint64(o, z.Start)
+ // string "Duration"
+ o = append(o, 0xa8, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e)
+ o = msgp.AppendUint64(o, z.Duration)
+ if (zb0001Mask & 0x4) == 0 { // if not omitted
+ // string "Stats"
+ o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+ o = msgp.AppendArrayHeader(o, uint32(len(z.Stats)))
+ for za0001 := range z.Stats {
+ if z.Stats[za0001] == nil {
+ o = msgp.AppendNil(o)
+ } else {
+ o, err = z.Stats[za0001].MarshalMsg(o)
+ if err != nil {
+ err = msgp.WrapError(err, "Stats", za0001)
+ return
+ }
}
}
}
+ // string "AgentTimeShift"
+ o = append(o, 0xae, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74)
+ o = msgp.AppendInt64(o, z.AgentTimeShift)
}
- // string "AgentTimeShift"
- o = append(o, 0xae, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x68, 0x69, 0x66, 0x74)
- o = msgp.AppendInt64(o, z.AgentTimeShift)
return
}
@@ -974,9 +978,10 @@ func (z *ClientStatsPayload) DecodeMsg(dc *msgp.Reader) (err error) {
// EncodeMsg implements msgp.Encodable
func (z *ClientStatsPayload) EncodeMsg(en *msgp.Writer) (err error) {
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(14)
var zb0001Mask uint16 /* 14 bits */
+ _ = zb0001Mask
if z.Stats == nil {
zb0001Len--
zb0001Mask |= 0x8
@@ -986,171 +991,172 @@ func (z *ClientStatsPayload) EncodeMsg(en *msgp.Writer) (err error) {
if err != nil {
return
}
- if zb0001Len == 0 {
- return
- }
- // write "Hostname"
- err = en.Append(0xa8, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
- if err != nil {
- return
- }
- err = en.WriteString(z.Hostname)
- if err != nil {
- err = msgp.WrapError(err, "Hostname")
- return
- }
- // write "Env"
- err = en.Append(0xa3, 0x45, 0x6e, 0x76)
- if err != nil {
- return
- }
- err = en.WriteString(z.Env)
- if err != nil {
- err = msgp.WrapError(err, "Env")
- return
- }
- // write "Version"
- err = en.Append(0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
- if err != nil {
- return
- }
- err = en.WriteString(z.Version)
- if err != nil {
- err = msgp.WrapError(err, "Version")
- return
- }
- if (zb0001Mask & 0x8) == 0 { // if not empty
- // write "Stats"
- err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // write "Hostname"
+ err = en.Append(0xa8, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
if err != nil {
return
}
- err = en.WriteArrayHeader(uint32(len(z.Stats)))
+ err = en.WriteString(z.Hostname)
if err != nil {
- err = msgp.WrapError(err, "Stats")
+ err = msgp.WrapError(err, "Hostname")
return
}
- for za0001 := range z.Stats {
- if z.Stats[za0001] == nil {
- err = en.WriteNil()
- if err != nil {
- return
- }
- } else {
- err = z.Stats[za0001].EncodeMsg(en)
- if err != nil {
- err = msgp.WrapError(err, "Stats", za0001)
- return
+ // write "Env"
+ err = en.Append(0xa3, 0x45, 0x6e, 0x76)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.Env)
+ if err != nil {
+ err = msgp.WrapError(err, "Env")
+ return
+ }
+ // write "Version"
+ err = en.Append(0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.Version)
+ if err != nil {
+ err = msgp.WrapError(err, "Version")
+ return
+ }
+ if (zb0001Mask & 0x8) == 0 { // if not omitted
+ // write "Stats"
+ err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+ if err != nil {
+ return
+ }
+ err = en.WriteArrayHeader(uint32(len(z.Stats)))
+ if err != nil {
+ err = msgp.WrapError(err, "Stats")
+ return
+ }
+ for za0001 := range z.Stats {
+ if z.Stats[za0001] == nil {
+ err = en.WriteNil()
+ if err != nil {
+ return
+ }
+ } else {
+ err = z.Stats[za0001].EncodeMsg(en)
+ if err != nil {
+ err = msgp.WrapError(err, "Stats", za0001)
+ return
+ }
}
}
}
- }
- // write "Lang"
- err = en.Append(0xa4, 0x4c, 0x61, 0x6e, 0x67)
- if err != nil {
- return
- }
- err = en.WriteString(z.Lang)
- if err != nil {
- err = msgp.WrapError(err, "Lang")
- return
- }
- // write "TracerVersion"
- err = en.Append(0xad, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
- if err != nil {
- return
- }
- err = en.WriteString(z.TracerVersion)
- if err != nil {
- err = msgp.WrapError(err, "TracerVersion")
- return
- }
- // write "RuntimeID"
- err = en.Append(0xa9, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x44)
- if err != nil {
- return
- }
- err = en.WriteString(z.RuntimeID)
- if err != nil {
- err = msgp.WrapError(err, "RuntimeID")
- return
- }
- // write "Sequence"
- err = en.Append(0xa8, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65)
- if err != nil {
- return
- }
- err = en.WriteUint64(z.Sequence)
- if err != nil {
- err = msgp.WrapError(err, "Sequence")
- return
- }
- // write "AgentAggregation"
- err = en.Append(0xb0, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e)
- if err != nil {
- return
- }
- err = en.WriteString(z.AgentAggregation)
- if err != nil {
- err = msgp.WrapError(err, "AgentAggregation")
- return
- }
- // write "Service"
- err = en.Append(0xa7, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65)
- if err != nil {
- return
- }
- err = en.WriteString(z.Service)
- if err != nil {
- err = msgp.WrapError(err, "Service")
- return
- }
- // write "ContainerID"
- err = en.Append(0xab, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44)
- if err != nil {
- return
- }
- err = en.WriteString(z.ContainerID)
- if err != nil {
- err = msgp.WrapError(err, "ContainerID")
- return
- }
- // write "Tags"
- err = en.Append(0xa4, 0x54, 0x61, 0x67, 0x73)
- if err != nil {
- return
- }
- err = en.WriteArrayHeader(uint32(len(z.Tags)))
- if err != nil {
- err = msgp.WrapError(err, "Tags")
- return
- }
- for za0002 := range z.Tags {
- err = en.WriteString(z.Tags[za0002])
+ // write "Lang"
+ err = en.Append(0xa4, 0x4c, 0x61, 0x6e, 0x67)
if err != nil {
- err = msgp.WrapError(err, "Tags", za0002)
return
}
- }
- // write "GitCommitSha"
- err = en.Append(0xac, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61)
- if err != nil {
- return
- }
- err = en.WriteString(z.GitCommitSha)
- if err != nil {
- err = msgp.WrapError(err, "GitCommitSha")
- return
- }
- // write "ImageTag"
- err = en.Append(0xa8, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x67)
- if err != nil {
- return
- }
- err = en.WriteString(z.ImageTag)
- if err != nil {
- err = msgp.WrapError(err, "ImageTag")
- return
+ err = en.WriteString(z.Lang)
+ if err != nil {
+ err = msgp.WrapError(err, "Lang")
+ return
+ }
+ // write "TracerVersion"
+ err = en.Append(0xad, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.TracerVersion)
+ if err != nil {
+ err = msgp.WrapError(err, "TracerVersion")
+ return
+ }
+ // write "RuntimeID"
+ err = en.Append(0xa9, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x44)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.RuntimeID)
+ if err != nil {
+ err = msgp.WrapError(err, "RuntimeID")
+ return
+ }
+ // write "Sequence"
+ err = en.Append(0xa8, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65)
+ if err != nil {
+ return
+ }
+ err = en.WriteUint64(z.Sequence)
+ if err != nil {
+ err = msgp.WrapError(err, "Sequence")
+ return
+ }
+ // write "AgentAggregation"
+ err = en.Append(0xb0, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.AgentAggregation)
+ if err != nil {
+ err = msgp.WrapError(err, "AgentAggregation")
+ return
+ }
+ // write "Service"
+ err = en.Append(0xa7, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.Service)
+ if err != nil {
+ err = msgp.WrapError(err, "Service")
+ return
+ }
+ // write "ContainerID"
+ err = en.Append(0xab, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.ContainerID)
+ if err != nil {
+ err = msgp.WrapError(err, "ContainerID")
+ return
+ }
+ // write "Tags"
+ err = en.Append(0xa4, 0x54, 0x61, 0x67, 0x73)
+ if err != nil {
+ return
+ }
+ err = en.WriteArrayHeader(uint32(len(z.Tags)))
+ if err != nil {
+ err = msgp.WrapError(err, "Tags")
+ return
+ }
+ for za0002 := range z.Tags {
+ err = en.WriteString(z.Tags[za0002])
+ if err != nil {
+ err = msgp.WrapError(err, "Tags", za0002)
+ return
+ }
+ }
+ // write "GitCommitSha"
+ err = en.Append(0xac, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.GitCommitSha)
+ if err != nil {
+ err = msgp.WrapError(err, "GitCommitSha")
+ return
+ }
+ // write "ImageTag"
+ err = en.Append(0xa8, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x67)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.ImageTag)
+ if err != nil {
+ err = msgp.WrapError(err, "ImageTag")
+ return
+ }
}
return
}
@@ -1158,76 +1164,78 @@ func (z *ClientStatsPayload) EncodeMsg(en *msgp.Writer) (err error) {
// MarshalMsg implements msgp.Marshaler
func (z *ClientStatsPayload) MarshalMsg(b []byte) (o []byte, err error) {
o = msgp.Require(b, z.Msgsize())
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(14)
var zb0001Mask uint16 /* 14 bits */
+ _ = zb0001Mask
if z.Stats == nil {
zb0001Len--
zb0001Mask |= 0x8
}
// variable map header, size zb0001Len
o = append(o, 0x80|uint8(zb0001Len))
- if zb0001Len == 0 {
- return
- }
- // string "Hostname"
- o = append(o, 0xa8, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
- o = msgp.AppendString(o, z.Hostname)
- // string "Env"
- o = append(o, 0xa3, 0x45, 0x6e, 0x76)
- o = msgp.AppendString(o, z.Env)
- // string "Version"
- o = append(o, 0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
- o = msgp.AppendString(o, z.Version)
- if (zb0001Mask & 0x8) == 0 { // if not empty
- // string "Stats"
- o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
- o = msgp.AppendArrayHeader(o, uint32(len(z.Stats)))
- for za0001 := range z.Stats {
- if z.Stats[za0001] == nil {
- o = msgp.AppendNil(o)
- } else {
- o, err = z.Stats[za0001].MarshalMsg(o)
- if err != nil {
- err = msgp.WrapError(err, "Stats", za0001)
- return
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // string "Hostname"
+ o = append(o, 0xa8, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
+ o = msgp.AppendString(o, z.Hostname)
+ // string "Env"
+ o = append(o, 0xa3, 0x45, 0x6e, 0x76)
+ o = msgp.AppendString(o, z.Env)
+ // string "Version"
+ o = append(o, 0xa7, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
+ o = msgp.AppendString(o, z.Version)
+ if (zb0001Mask & 0x8) == 0 { // if not omitted
+ // string "Stats"
+ o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+ o = msgp.AppendArrayHeader(o, uint32(len(z.Stats)))
+ for za0001 := range z.Stats {
+ if z.Stats[za0001] == nil {
+ o = msgp.AppendNil(o)
+ } else {
+ o, err = z.Stats[za0001].MarshalMsg(o)
+ if err != nil {
+ err = msgp.WrapError(err, "Stats", za0001)
+ return
+ }
}
}
}
+ // string "Lang"
+ o = append(o, 0xa4, 0x4c, 0x61, 0x6e, 0x67)
+ o = msgp.AppendString(o, z.Lang)
+ // string "TracerVersion"
+ o = append(o, 0xad, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
+ o = msgp.AppendString(o, z.TracerVersion)
+ // string "RuntimeID"
+ o = append(o, 0xa9, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x44)
+ o = msgp.AppendString(o, z.RuntimeID)
+ // string "Sequence"
+ o = append(o, 0xa8, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65)
+ o = msgp.AppendUint64(o, z.Sequence)
+ // string "AgentAggregation"
+ o = append(o, 0xb0, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e)
+ o = msgp.AppendString(o, z.AgentAggregation)
+ // string "Service"
+ o = append(o, 0xa7, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65)
+ o = msgp.AppendString(o, z.Service)
+ // string "ContainerID"
+ o = append(o, 0xab, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44)
+ o = msgp.AppendString(o, z.ContainerID)
+ // string "Tags"
+ o = append(o, 0xa4, 0x54, 0x61, 0x67, 0x73)
+ o = msgp.AppendArrayHeader(o, uint32(len(z.Tags)))
+ for za0002 := range z.Tags {
+ o = msgp.AppendString(o, z.Tags[za0002])
+ }
+ // string "GitCommitSha"
+ o = append(o, 0xac, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61)
+ o = msgp.AppendString(o, z.GitCommitSha)
+ // string "ImageTag"
+ o = append(o, 0xa8, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x67)
+ o = msgp.AppendString(o, z.ImageTag)
}
- // string "Lang"
- o = append(o, 0xa4, 0x4c, 0x61, 0x6e, 0x67)
- o = msgp.AppendString(o, z.Lang)
- // string "TracerVersion"
- o = append(o, 0xad, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
- o = msgp.AppendString(o, z.TracerVersion)
- // string "RuntimeID"
- o = append(o, 0xa9, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x44)
- o = msgp.AppendString(o, z.RuntimeID)
- // string "Sequence"
- o = append(o, 0xa8, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65)
- o = msgp.AppendUint64(o, z.Sequence)
- // string "AgentAggregation"
- o = append(o, 0xb0, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e)
- o = msgp.AppendString(o, z.AgentAggregation)
- // string "Service"
- o = append(o, 0xa7, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65)
- o = msgp.AppendString(o, z.Service)
- // string "ContainerID"
- o = append(o, 0xab, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44)
- o = msgp.AppendString(o, z.ContainerID)
- // string "Tags"
- o = append(o, 0xa4, 0x54, 0x61, 0x67, 0x73)
- o = msgp.AppendArrayHeader(o, uint32(len(z.Tags)))
- for za0002 := range z.Tags {
- o = msgp.AppendString(o, z.Tags[za0002])
- }
- // string "GitCommitSha"
- o = append(o, 0xac, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61)
- o = msgp.AppendString(o, z.GitCommitSha)
- // string "ImageTag"
- o = append(o, 0xa8, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x67)
- o = msgp.AppendString(o, z.ImageTag)
return
}
@@ -1492,9 +1500,10 @@ func (z *StatsPayload) DecodeMsg(dc *msgp.Reader) (err error) {
// EncodeMsg implements msgp.Encodable
func (z *StatsPayload) EncodeMsg(en *msgp.Writer) (err error) {
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(6)
var zb0001Mask uint8 /* 6 bits */
+ _ = zb0001Mask
if z.Stats == nil {
zb0001Len--
zb0001Mask |= 0x4
@@ -1504,84 +1513,85 @@ func (z *StatsPayload) EncodeMsg(en *msgp.Writer) (err error) {
if err != nil {
return
}
- if zb0001Len == 0 {
- return
- }
- // write "AgentHostname"
- err = en.Append(0xad, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
- if err != nil {
- return
- }
- err = en.WriteString(z.AgentHostname)
- if err != nil {
- err = msgp.WrapError(err, "AgentHostname")
- return
- }
- // write "AgentEnv"
- err = en.Append(0xa8, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x76)
- if err != nil {
- return
- }
- err = en.WriteString(z.AgentEnv)
- if err != nil {
- err = msgp.WrapError(err, "AgentEnv")
- return
- }
- if (zb0001Mask & 0x4) == 0 { // if not empty
- // write "Stats"
- err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // write "AgentHostname"
+ err = en.Append(0xad, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
if err != nil {
return
}
- err = en.WriteArrayHeader(uint32(len(z.Stats)))
+ err = en.WriteString(z.AgentHostname)
if err != nil {
- err = msgp.WrapError(err, "Stats")
+ err = msgp.WrapError(err, "AgentHostname")
return
}
- for za0001 := range z.Stats {
- if z.Stats[za0001] == nil {
- err = en.WriteNil()
- if err != nil {
- return
- }
- } else {
- err = z.Stats[za0001].EncodeMsg(en)
- if err != nil {
- err = msgp.WrapError(err, "Stats", za0001)
- return
+ // write "AgentEnv"
+ err = en.Append(0xa8, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x76)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.AgentEnv)
+ if err != nil {
+ err = msgp.WrapError(err, "AgentEnv")
+ return
+ }
+ if (zb0001Mask & 0x4) == 0 { // if not omitted
+ // write "Stats"
+ err = en.Append(0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+ if err != nil {
+ return
+ }
+ err = en.WriteArrayHeader(uint32(len(z.Stats)))
+ if err != nil {
+ err = msgp.WrapError(err, "Stats")
+ return
+ }
+ for za0001 := range z.Stats {
+ if z.Stats[za0001] == nil {
+ err = en.WriteNil()
+ if err != nil {
+ return
+ }
+ } else {
+ err = z.Stats[za0001].EncodeMsg(en)
+ if err != nil {
+ err = msgp.WrapError(err, "Stats", za0001)
+ return
+ }
}
}
}
- }
- // write "AgentVersion"
- err = en.Append(0xac, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
- if err != nil {
- return
- }
- err = en.WriteString(z.AgentVersion)
- if err != nil {
- err = msgp.WrapError(err, "AgentVersion")
- return
- }
- // write "ClientComputed"
- err = en.Append(0xae, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64)
- if err != nil {
- return
- }
- err = en.WriteBool(z.ClientComputed)
- if err != nil {
- err = msgp.WrapError(err, "ClientComputed")
- return
- }
- // write "SplitPayload"
- err = en.Append(0xac, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64)
- if err != nil {
- return
- }
- err = en.WriteBool(z.SplitPayload)
- if err != nil {
- err = msgp.WrapError(err, "SplitPayload")
- return
+ // write "AgentVersion"
+ err = en.Append(0xac, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
+ if err != nil {
+ return
+ }
+ err = en.WriteString(z.AgentVersion)
+ if err != nil {
+ err = msgp.WrapError(err, "AgentVersion")
+ return
+ }
+ // write "ClientComputed"
+ err = en.Append(0xae, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64)
+ if err != nil {
+ return
+ }
+ err = en.WriteBool(z.ClientComputed)
+ if err != nil {
+ err = msgp.WrapError(err, "ClientComputed")
+ return
+ }
+ // write "SplitPayload"
+ err = en.Append(0xac, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64)
+ if err != nil {
+ return
+ }
+ err = en.WriteBool(z.SplitPayload)
+ if err != nil {
+ err = msgp.WrapError(err, "SplitPayload")
+ return
+ }
}
return
}
@@ -1589,49 +1599,51 @@ func (z *StatsPayload) EncodeMsg(en *msgp.Writer) (err error) {
// MarshalMsg implements msgp.Marshaler
func (z *StatsPayload) MarshalMsg(b []byte) (o []byte, err error) {
o = msgp.Require(b, z.Msgsize())
- // omitempty: check for empty values
+ // check for omitted fields
zb0001Len := uint32(6)
var zb0001Mask uint8 /* 6 bits */
+ _ = zb0001Mask
if z.Stats == nil {
zb0001Len--
zb0001Mask |= 0x4
}
// variable map header, size zb0001Len
o = append(o, 0x80|uint8(zb0001Len))
- if zb0001Len == 0 {
- return
- }
- // string "AgentHostname"
- o = append(o, 0xad, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
- o = msgp.AppendString(o, z.AgentHostname)
- // string "AgentEnv"
- o = append(o, 0xa8, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x76)
- o = msgp.AppendString(o, z.AgentEnv)
- if (zb0001Mask & 0x4) == 0 { // if not empty
- // string "Stats"
- o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
- o = msgp.AppendArrayHeader(o, uint32(len(z.Stats)))
- for za0001 := range z.Stats {
- if z.Stats[za0001] == nil {
- o = msgp.AppendNil(o)
- } else {
- o, err = z.Stats[za0001].MarshalMsg(o)
- if err != nil {
- err = msgp.WrapError(err, "Stats", za0001)
- return
+
+ // skip if no fields are to be emitted
+ if zb0001Len != 0 {
+ // string "AgentHostname"
+ o = append(o, 0xad, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65)
+ o = msgp.AppendString(o, z.AgentHostname)
+ // string "AgentEnv"
+ o = append(o, 0xa8, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x76)
+ o = msgp.AppendString(o, z.AgentEnv)
+ if (zb0001Mask & 0x4) == 0 { // if not omitted
+ // string "Stats"
+ o = append(o, 0xa5, 0x53, 0x74, 0x61, 0x74, 0x73)
+ o = msgp.AppendArrayHeader(o, uint32(len(z.Stats)))
+ for za0001 := range z.Stats {
+ if z.Stats[za0001] == nil {
+ o = msgp.AppendNil(o)
+ } else {
+ o, err = z.Stats[za0001].MarshalMsg(o)
+ if err != nil {
+ err = msgp.WrapError(err, "Stats", za0001)
+ return
+ }
}
}
}
+ // string "AgentVersion"
+ o = append(o, 0xac, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
+ o = msgp.AppendString(o, z.AgentVersion)
+ // string "ClientComputed"
+ o = append(o, 0xae, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64)
+ o = msgp.AppendBool(o, z.ClientComputed)
+ // string "SplitPayload"
+ o = append(o, 0xac, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64)
+ o = msgp.AppendBool(o, z.SplitPayload)
}
- // string "AgentVersion"
- o = append(o, 0xac, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e)
- o = msgp.AppendString(o, z.AgentVersion)
- // string "ClientComputed"
- o = append(o, 0xae, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64)
- o = msgp.AppendBool(o, z.ClientComputed)
- // string "SplitPayload"
- o = append(o, 0xac, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64)
- o = msgp.AppendBool(o, z.SplitPayload)
return
}
diff --git a/pkg/proto/pbgo/trace/stats_vtproto.pb.go b/pkg/proto/pbgo/trace/stats_vtproto.pb.go
index 002bfad30e09e9..96141ab5f2164c 100644
--- a/pkg/proto/pbgo/trace/stats_vtproto.pb.go
+++ b/pkg/proto/pbgo/trace/stats_vtproto.pb.go
@@ -1,11 +1,12 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.4.0
+// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
// source: datadog/trace/stats.proto
package trace
import (
fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
io "io"
)
@@ -70,7 +71,7 @@ func (m *StatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.AgentVersion) > 0 {
i -= len(m.AgentVersion)
copy(dAtA[i:], m.AgentVersion)
- i = encodeVarint(dAtA, i, uint64(len(m.AgentVersion)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AgentVersion)))
i--
dAtA[i] = 0x22
}
@@ -81,7 +82,7 @@ func (m *StatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return 0, err
}
i -= size
- i = encodeVarint(dAtA, i, uint64(size))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x1a
}
@@ -89,14 +90,14 @@ func (m *StatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.AgentEnv) > 0 {
i -= len(m.AgentEnv)
copy(dAtA[i:], m.AgentEnv)
- i = encodeVarint(dAtA, i, uint64(len(m.AgentEnv)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AgentEnv)))
i--
dAtA[i] = 0x12
}
if len(m.AgentHostname) > 0 {
i -= len(m.AgentHostname)
copy(dAtA[i:], m.AgentHostname)
- i = encodeVarint(dAtA, i, uint64(len(m.AgentHostname)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AgentHostname)))
i--
dAtA[i] = 0xa
}
@@ -136,14 +137,14 @@ func (m *ClientStatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.ImageTag) > 0 {
i -= len(m.ImageTag)
copy(dAtA[i:], m.ImageTag)
- i = encodeVarint(dAtA, i, uint64(len(m.ImageTag)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ImageTag)))
i--
dAtA[i] = 0x72
}
if len(m.GitCommitSha) > 0 {
i -= len(m.GitCommitSha)
copy(dAtA[i:], m.GitCommitSha)
- i = encodeVarint(dAtA, i, uint64(len(m.GitCommitSha)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.GitCommitSha)))
i--
dAtA[i] = 0x6a
}
@@ -151,7 +152,7 @@ func (m *ClientStatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
for iNdEx := len(m.Tags) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.Tags[iNdEx])
copy(dAtA[i:], m.Tags[iNdEx])
- i = encodeVarint(dAtA, i, uint64(len(m.Tags[iNdEx])))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Tags[iNdEx])))
i--
dAtA[i] = 0x62
}
@@ -159,47 +160,47 @@ func (m *ClientStatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.ContainerID) > 0 {
i -= len(m.ContainerID)
copy(dAtA[i:], m.ContainerID)
- i = encodeVarint(dAtA, i, uint64(len(m.ContainerID)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ContainerID)))
i--
dAtA[i] = 0x5a
}
if len(m.Service) > 0 {
i -= len(m.Service)
copy(dAtA[i:], m.Service)
- i = encodeVarint(dAtA, i, uint64(len(m.Service)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Service)))
i--
dAtA[i] = 0x52
}
if len(m.AgentAggregation) > 0 {
i -= len(m.AgentAggregation)
copy(dAtA[i:], m.AgentAggregation)
- i = encodeVarint(dAtA, i, uint64(len(m.AgentAggregation)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AgentAggregation)))
i--
dAtA[i] = 0x4a
}
if m.Sequence != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Sequence))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Sequence))
i--
dAtA[i] = 0x40
}
if len(m.RuntimeID) > 0 {
i -= len(m.RuntimeID)
copy(dAtA[i:], m.RuntimeID)
- i = encodeVarint(dAtA, i, uint64(len(m.RuntimeID)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuntimeID)))
i--
dAtA[i] = 0x3a
}
if len(m.TracerVersion) > 0 {
i -= len(m.TracerVersion)
copy(dAtA[i:], m.TracerVersion)
- i = encodeVarint(dAtA, i, uint64(len(m.TracerVersion)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TracerVersion)))
i--
dAtA[i] = 0x32
}
if len(m.Lang) > 0 {
i -= len(m.Lang)
copy(dAtA[i:], m.Lang)
- i = encodeVarint(dAtA, i, uint64(len(m.Lang)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Lang)))
i--
dAtA[i] = 0x2a
}
@@ -210,7 +211,7 @@ func (m *ClientStatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return 0, err
}
i -= size
- i = encodeVarint(dAtA, i, uint64(size))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x22
}
@@ -218,21 +219,21 @@ func (m *ClientStatsPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.Version) > 0 {
i -= len(m.Version)
copy(dAtA[i:], m.Version)
- i = encodeVarint(dAtA, i, uint64(len(m.Version)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Version)))
i--
dAtA[i] = 0x1a
}
if len(m.Env) > 0 {
i -= len(m.Env)
copy(dAtA[i:], m.Env)
- i = encodeVarint(dAtA, i, uint64(len(m.Env)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Env)))
i--
dAtA[i] = 0x12
}
if len(m.Hostname) > 0 {
i -= len(m.Hostname)
copy(dAtA[i:], m.Hostname)
- i = encodeVarint(dAtA, i, uint64(len(m.Hostname)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Hostname)))
i--
dAtA[i] = 0xa
}
@@ -270,7 +271,7 @@ func (m *ClientStatsBucket) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
copy(dAtA[i:], m.unknownFields)
}
if m.AgentTimeShift != 0 {
- i = encodeVarint(dAtA, i, uint64(m.AgentTimeShift))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.AgentTimeShift))
i--
dAtA[i] = 0x20
}
@@ -281,18 +282,18 @@ func (m *ClientStatsBucket) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return 0, err
}
i -= size
- i = encodeVarint(dAtA, i, uint64(size))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x1a
}
}
if m.Duration != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Duration))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Duration))
i--
dAtA[i] = 0x10
}
if m.Start != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Start))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Start))
i--
dAtA[i] = 0x8
}
@@ -330,7 +331,7 @@ func (m *ClientGroupedStats) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
copy(dAtA[i:], m.unknownFields)
}
if m.IsTraceRoot != 0 {
- i = encodeVarint(dAtA, i, uint64(m.IsTraceRoot))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.IsTraceRoot))
i--
dAtA[i] = 0x1
i--
@@ -340,7 +341,7 @@ func (m *ClientGroupedStats) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
for iNdEx := len(m.PeerTags) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.PeerTags[iNdEx])
copy(dAtA[i:], m.PeerTags[iNdEx])
- i = encodeVarint(dAtA, i, uint64(len(m.PeerTags[iNdEx])))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PeerTags[iNdEx])))
i--
dAtA[i] = 0x1
i--
@@ -350,12 +351,12 @@ func (m *ClientGroupedStats) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.SpanKind) > 0 {
i -= len(m.SpanKind)
copy(dAtA[i:], m.SpanKind)
- i = encodeVarint(dAtA, i, uint64(len(m.SpanKind)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SpanKind)))
i--
dAtA[i] = 0x7a
}
if m.TopLevelHits != 0 {
- i = encodeVarint(dAtA, i, uint64(m.TopLevelHits))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.TopLevelHits))
i--
dAtA[i] = 0x68
}
@@ -372,69 +373,69 @@ func (m *ClientGroupedStats) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.ErrorSummary) > 0 {
i -= len(m.ErrorSummary)
copy(dAtA[i:], m.ErrorSummary)
- i = encodeVarint(dAtA, i, uint64(len(m.ErrorSummary)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ErrorSummary)))
i--
dAtA[i] = 0x5a
}
if len(m.OkSummary) > 0 {
i -= len(m.OkSummary)
copy(dAtA[i:], m.OkSummary)
- i = encodeVarint(dAtA, i, uint64(len(m.OkSummary)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OkSummary)))
i--
dAtA[i] = 0x52
}
if m.Duration != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Duration))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Duration))
i--
dAtA[i] = 0x48
}
if m.Errors != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Errors))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Errors))
i--
dAtA[i] = 0x40
}
if m.Hits != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Hits))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Hits))
i--
dAtA[i] = 0x38
}
if len(m.DBType) > 0 {
i -= len(m.DBType)
copy(dAtA[i:], m.DBType)
- i = encodeVarint(dAtA, i, uint64(len(m.DBType)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DBType)))
i--
dAtA[i] = 0x32
}
if len(m.Type) > 0 {
i -= len(m.Type)
copy(dAtA[i:], m.Type)
- i = encodeVarint(dAtA, i, uint64(len(m.Type)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Type)))
i--
dAtA[i] = 0x2a
}
if m.HTTPStatusCode != 0 {
- i = encodeVarint(dAtA, i, uint64(m.HTTPStatusCode))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.HTTPStatusCode))
i--
dAtA[i] = 0x20
}
if len(m.Resource) > 0 {
i -= len(m.Resource)
copy(dAtA[i:], m.Resource)
- i = encodeVarint(dAtA, i, uint64(len(m.Resource)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Resource)))
i--
dAtA[i] = 0x1a
}
if len(m.Name) > 0 {
i -= len(m.Name)
copy(dAtA[i:], m.Name)
- i = encodeVarint(dAtA, i, uint64(len(m.Name)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name)))
i--
dAtA[i] = 0x12
}
if len(m.Service) > 0 {
i -= len(m.Service)
copy(dAtA[i:], m.Service)
- i = encodeVarint(dAtA, i, uint64(len(m.Service)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Service)))
i--
dAtA[i] = 0xa
}
@@ -449,21 +450,21 @@ func (m *StatsPayload) SizeVT() (n int) {
_ = l
l = len(m.AgentHostname)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.AgentEnv)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.Stats) > 0 {
for _, e := range m.Stats {
l = e.SizeVT()
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
l = len(m.AgentVersion)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.ClientComputed {
n += 2
@@ -483,62 +484,62 @@ func (m *ClientStatsPayload) SizeVT() (n int) {
_ = l
l = len(m.Hostname)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Env)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Version)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.Stats) > 0 {
for _, e := range m.Stats {
l = e.SizeVT()
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
l = len(m.Lang)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.TracerVersion)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.RuntimeID)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.Sequence != 0 {
- n += 1 + sov(uint64(m.Sequence))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Sequence))
}
l = len(m.AgentAggregation)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Service)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.ContainerID)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.Tags) > 0 {
for _, s := range m.Tags {
l = len(s)
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
l = len(m.GitCommitSha)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.ImageTag)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
n += len(m.unknownFields)
return n
@@ -551,19 +552,19 @@ func (m *ClientStatsBucket) SizeVT() (n int) {
var l int
_ = l
if m.Start != 0 {
- n += 1 + sov(uint64(m.Start))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Start))
}
if m.Duration != 0 {
- n += 1 + sov(uint64(m.Duration))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Duration))
}
if len(m.Stats) > 0 {
for _, e := range m.Stats {
l = e.SizeVT()
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
if m.AgentTimeShift != 0 {
- n += 1 + sov(uint64(m.AgentTimeShift))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.AgentTimeShift))
}
n += len(m.unknownFields)
return n
@@ -577,62 +578,62 @@ func (m *ClientGroupedStats) SizeVT() (n int) {
_ = l
l = len(m.Service)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Name)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Resource)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.HTTPStatusCode != 0 {
- n += 1 + sov(uint64(m.HTTPStatusCode))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.HTTPStatusCode))
}
l = len(m.Type)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.DBType)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.Hits != 0 {
- n += 1 + sov(uint64(m.Hits))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Hits))
}
if m.Errors != 0 {
- n += 1 + sov(uint64(m.Errors))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Errors))
}
if m.Duration != 0 {
- n += 1 + sov(uint64(m.Duration))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Duration))
}
l = len(m.OkSummary)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.ErrorSummary)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if m.Synthetics {
n += 2
}
if m.TopLevelHits != 0 {
- n += 1 + sov(uint64(m.TopLevelHits))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.TopLevelHits))
}
l = len(m.SpanKind)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.PeerTags) > 0 {
for _, s := range m.PeerTags {
l = len(s)
- n += 2 + l + sov(uint64(l))
+ n += 2 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
if m.IsTraceRoot != 0 {
- n += 2 + sov(uint64(m.IsTraceRoot))
+ n += 2 + protohelpers.SizeOfVarint(uint64(m.IsTraceRoot))
}
n += len(m.unknownFields)
return n
@@ -646,7 +647,7 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -674,7 +675,7 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -688,11 +689,11 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -706,7 +707,7 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -720,11 +721,11 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -738,7 +739,7 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -751,11 +752,11 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -772,7 +773,7 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -786,11 +787,11 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -804,7 +805,7 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -824,7 +825,7 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -839,12 +840,12 @@ func (m *StatsPayload) UnmarshalVT(dAtA []byte) error {
m.SplitPayload = bool(v != 0)
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
@@ -867,7 +868,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -895,7 +896,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -909,11 +910,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -927,7 +928,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -941,11 +942,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -959,7 +960,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -973,11 +974,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -991,7 +992,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1004,11 +1005,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1025,7 +1026,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1039,11 +1040,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1057,7 +1058,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1071,11 +1072,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1089,7 +1090,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1103,11 +1104,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1121,7 +1122,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
m.Sequence = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1140,7 +1141,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1154,11 +1155,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1172,7 +1173,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1186,11 +1187,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1204,7 +1205,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1218,11 +1219,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1236,7 +1237,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1250,11 +1251,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1268,7 +1269,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1282,11 +1283,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1300,7 +1301,7 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1314,11 +1315,11 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1327,12 +1328,12 @@ func (m *ClientStatsPayload) UnmarshalVT(dAtA []byte) error {
iNdEx = postIndex
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
@@ -1355,7 +1356,7 @@ func (m *ClientStatsBucket) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1383,7 +1384,7 @@ func (m *ClientStatsBucket) UnmarshalVT(dAtA []byte) error {
m.Start = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1402,7 +1403,7 @@ func (m *ClientStatsBucket) UnmarshalVT(dAtA []byte) error {
m.Duration = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1421,7 +1422,7 @@ func (m *ClientStatsBucket) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1434,11 +1435,11 @@ func (m *ClientStatsBucket) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1455,7 +1456,7 @@ func (m *ClientStatsBucket) UnmarshalVT(dAtA []byte) error {
m.AgentTimeShift = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1469,12 +1470,12 @@ func (m *ClientStatsBucket) UnmarshalVT(dAtA []byte) error {
}
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
@@ -1497,7 +1498,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1525,7 +1526,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1539,11 +1540,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1557,7 +1558,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1571,11 +1572,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1589,7 +1590,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1603,11 +1604,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1621,7 +1622,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
m.HTTPStatusCode = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1640,7 +1641,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1654,11 +1655,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1672,7 +1673,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1686,11 +1687,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1704,7 +1705,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
m.Hits = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1723,7 +1724,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
m.Errors = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1742,7 +1743,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
m.Duration = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1761,7 +1762,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1774,11 +1775,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
}
if byteLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1795,7 +1796,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1808,11 +1809,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
}
if byteLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1829,7 +1830,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1849,7 +1850,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
m.TopLevelHits = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1868,7 +1869,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1882,11 +1883,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1900,7 +1901,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1914,11 +1915,11 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1932,7 +1933,7 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
m.IsTraceRoot = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1946,12 +1947,12 @@ func (m *ClientGroupedStats) UnmarshalVT(dAtA []byte) error {
}
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
diff --git a/pkg/proto/pbgo/trace/tracer_payload.pb.go b/pkg/proto/pbgo/trace/tracer_payload.pb.go
index 7e7e2b0cc278e2..0420fc5b12ca2e 100644
--- a/pkg/proto/pbgo/trace/tracer_payload.pb.go
+++ b/pkg/proto/pbgo/trace/tracer_payload.pb.go
@@ -1,6 +1,6 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
-// protoc-gen-go v1.34.0
+// protoc-gen-go v1.35.2
// protoc v5.26.1
// source: datadog/trace/tracer_payload.proto
@@ -45,11 +45,9 @@ type TraceChunk struct {
func (x *TraceChunk) Reset() {
*x = TraceChunk{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_tracer_payload_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_tracer_payload_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TraceChunk) String() string {
@@ -60,7 +58,7 @@ func (*TraceChunk) ProtoMessage() {}
func (x *TraceChunk) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_tracer_payload_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -150,11 +148,9 @@ type TracerPayload struct {
func (x *TracerPayload) Reset() {
*x = TracerPayload{}
- if protoimpl.UnsafeEnabled {
- mi := &file_datadog_trace_tracer_payload_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
+ mi := &file_datadog_trace_tracer_payload_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
}
func (x *TracerPayload) String() string {
@@ -165,7 +161,7 @@ func (*TracerPayload) ProtoMessage() {}
func (x *TracerPayload) ProtoReflect() protoreflect.Message {
mi := &file_datadog_trace_tracer_payload_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
+ if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
@@ -319,7 +315,7 @@ func file_datadog_trace_tracer_payload_proto_rawDescGZIP() []byte {
}
var file_datadog_trace_tracer_payload_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_datadog_trace_tracer_payload_proto_goTypes = []interface{}{
+var file_datadog_trace_tracer_payload_proto_goTypes = []any{
(*TraceChunk)(nil), // 0: datadog.trace.TraceChunk
(*TracerPayload)(nil), // 1: datadog.trace.TracerPayload
nil, // 2: datadog.trace.TraceChunk.TagsEntry
@@ -344,32 +340,6 @@ func file_datadog_trace_tracer_payload_proto_init() {
return
}
file_datadog_trace_span_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_datadog_trace_tracer_payload_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TraceChunk); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_datadog_trace_tracer_payload_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TracerPayload); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
diff --git a/pkg/proto/pbgo/trace/tracer_payload_vtproto.pb.go b/pkg/proto/pbgo/trace/tracer_payload_vtproto.pb.go
index b1544fa221ae23..b63a2fd37b2c2d 100644
--- a/pkg/proto/pbgo/trace/tracer_payload_vtproto.pb.go
+++ b/pkg/proto/pbgo/trace/tracer_payload_vtproto.pb.go
@@ -1,11 +1,12 @@
// Code generated by protoc-gen-go-vtproto. DO NOT EDIT.
-// protoc-gen-go-vtproto version: v0.4.0
+// protoc-gen-go-vtproto version: v0.6.1-0.20240319094008-0393e58bdf10
// source: datadog/trace/tracer_payload.proto
package trace
import (
fmt "fmt"
+ protohelpers "github.com/planetscale/vtprotobuf/protohelpers"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
io "io"
)
@@ -63,15 +64,15 @@ func (m *TraceChunk) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
baseI := i
i -= len(v)
copy(dAtA[i:], v)
- i = encodeVarint(dAtA, i, uint64(len(v)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(v)))
i--
dAtA[i] = 0x12
i -= len(k)
copy(dAtA[i:], k)
- i = encodeVarint(dAtA, i, uint64(len(k)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
i--
dAtA[i] = 0xa
- i = encodeVarint(dAtA, i, uint64(baseI-i))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
i--
dAtA[i] = 0x22
}
@@ -83,7 +84,7 @@ func (m *TraceChunk) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return 0, err
}
i -= size
- i = encodeVarint(dAtA, i, uint64(size))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x1a
}
@@ -91,12 +92,12 @@ func (m *TraceChunk) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.Origin) > 0 {
i -= len(m.Origin)
copy(dAtA[i:], m.Origin)
- i = encodeVarint(dAtA, i, uint64(len(m.Origin)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Origin)))
i--
dAtA[i] = 0x12
}
if m.Priority != 0 {
- i = encodeVarint(dAtA, i, uint64(m.Priority))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Priority))
i--
dAtA[i] = 0x8
}
@@ -136,21 +137,21 @@ func (m *TracerPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.AppVersion) > 0 {
i -= len(m.AppVersion)
copy(dAtA[i:], m.AppVersion)
- i = encodeVarint(dAtA, i, uint64(len(m.AppVersion)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.AppVersion)))
i--
dAtA[i] = 0x52
}
if len(m.Hostname) > 0 {
i -= len(m.Hostname)
copy(dAtA[i:], m.Hostname)
- i = encodeVarint(dAtA, i, uint64(len(m.Hostname)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Hostname)))
i--
dAtA[i] = 0x4a
}
if len(m.Env) > 0 {
i -= len(m.Env)
copy(dAtA[i:], m.Env)
- i = encodeVarint(dAtA, i, uint64(len(m.Env)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Env)))
i--
dAtA[i] = 0x42
}
@@ -160,15 +161,15 @@ func (m *TracerPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
baseI := i
i -= len(v)
copy(dAtA[i:], v)
- i = encodeVarint(dAtA, i, uint64(len(v)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(v)))
i--
dAtA[i] = 0x12
i -= len(k)
copy(dAtA[i:], k)
- i = encodeVarint(dAtA, i, uint64(len(k)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(k)))
i--
dAtA[i] = 0xa
- i = encodeVarint(dAtA, i, uint64(baseI-i))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(baseI-i))
i--
dAtA[i] = 0x3a
}
@@ -180,7 +181,7 @@ func (m *TracerPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
return 0, err
}
i -= size
- i = encodeVarint(dAtA, i, uint64(size))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(size))
i--
dAtA[i] = 0x32
}
@@ -188,35 +189,35 @@ func (m *TracerPayload) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
if len(m.RuntimeID) > 0 {
i -= len(m.RuntimeID)
copy(dAtA[i:], m.RuntimeID)
- i = encodeVarint(dAtA, i, uint64(len(m.RuntimeID)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RuntimeID)))
i--
dAtA[i] = 0x2a
}
if len(m.TracerVersion) > 0 {
i -= len(m.TracerVersion)
copy(dAtA[i:], m.TracerVersion)
- i = encodeVarint(dAtA, i, uint64(len(m.TracerVersion)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.TracerVersion)))
i--
dAtA[i] = 0x22
}
if len(m.LanguageVersion) > 0 {
i -= len(m.LanguageVersion)
copy(dAtA[i:], m.LanguageVersion)
- i = encodeVarint(dAtA, i, uint64(len(m.LanguageVersion)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.LanguageVersion)))
i--
dAtA[i] = 0x1a
}
if len(m.LanguageName) > 0 {
i -= len(m.LanguageName)
copy(dAtA[i:], m.LanguageName)
- i = encodeVarint(dAtA, i, uint64(len(m.LanguageName)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.LanguageName)))
i--
dAtA[i] = 0x12
}
if len(m.ContainerID) > 0 {
i -= len(m.ContainerID)
copy(dAtA[i:], m.ContainerID)
- i = encodeVarint(dAtA, i, uint64(len(m.ContainerID)))
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ContainerID)))
i--
dAtA[i] = 0xa
}
@@ -230,24 +231,24 @@ func (m *TraceChunk) SizeVT() (n int) {
var l int
_ = l
if m.Priority != 0 {
- n += 1 + sov(uint64(m.Priority))
+ n += 1 + protohelpers.SizeOfVarint(uint64(m.Priority))
}
l = len(m.Origin)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.Spans) > 0 {
for _, e := range m.Spans {
l = e.SizeVT()
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
if len(m.Tags) > 0 {
for k, v := range m.Tags {
_ = k
_ = v
- mapEntrySize := 1 + len(k) + sov(uint64(len(k))) + 1 + len(v) + sov(uint64(len(v)))
- n += mapEntrySize + 1 + sov(uint64(mapEntrySize))
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + 1 + len(v) + protohelpers.SizeOfVarint(uint64(len(v)))
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
}
}
if m.DroppedTrace {
@@ -265,49 +266,49 @@ func (m *TracerPayload) SizeVT() (n int) {
_ = l
l = len(m.ContainerID)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.LanguageName)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.LanguageVersion)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.TracerVersion)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.RuntimeID)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
if len(m.Chunks) > 0 {
for _, e := range m.Chunks {
l = e.SizeVT()
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
}
if len(m.Tags) > 0 {
for k, v := range m.Tags {
_ = k
_ = v
- mapEntrySize := 1 + len(k) + sov(uint64(len(k))) + 1 + len(v) + sov(uint64(len(v)))
- n += mapEntrySize + 1 + sov(uint64(mapEntrySize))
+ mapEntrySize := 1 + len(k) + protohelpers.SizeOfVarint(uint64(len(k))) + 1 + len(v) + protohelpers.SizeOfVarint(uint64(len(v)))
+ n += mapEntrySize + 1 + protohelpers.SizeOfVarint(uint64(mapEntrySize))
}
}
l = len(m.Env)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.Hostname)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
l = len(m.AppVersion)
if l > 0 {
- n += 1 + l + sov(uint64(l))
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
n += len(m.unknownFields)
return n
@@ -321,7 +322,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -349,7 +350,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
m.Priority = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -368,7 +369,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -382,11 +383,11 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -400,7 +401,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -413,11 +414,11 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -434,7 +435,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -447,11 +448,11 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -466,7 +467,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -483,7 +484,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var stringLenmapkey uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -497,11 +498,11 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapkey := int(stringLenmapkey)
if intStringLenmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
if postStringIndexmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
@@ -512,7 +513,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var stringLenmapvalue uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -526,11 +527,11 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapvalue := int(stringLenmapvalue)
if intStringLenmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
if postStringIndexmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
@@ -539,12 +540,12 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
iNdEx = postStringIndexmapvalue
} else {
iNdEx = entryPreIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > postIndex {
return io.ErrUnexpectedEOF
@@ -561,7 +562,7 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -576,12 +577,12 @@ func (m *TraceChunk) UnmarshalVT(dAtA []byte) error {
m.DroppedTrace = bool(v != 0)
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
@@ -604,7 +605,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -632,7 +633,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -646,11 +647,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -664,7 +665,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -678,11 +679,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -696,7 +697,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -710,11 +711,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -728,7 +729,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -742,11 +743,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -760,7 +761,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -774,11 +775,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -792,7 +793,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -805,11 +806,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -826,7 +827,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -839,11 +840,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
}
if msglen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + msglen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -858,7 +859,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -875,7 +876,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLenmapkey uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -889,11 +890,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapkey := int(stringLenmapkey)
if intStringLenmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapkey := iNdEx + intStringLenmapkey
if postStringIndexmapkey < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapkey > l {
return io.ErrUnexpectedEOF
@@ -904,7 +905,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLenmapvalue uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -918,11 +919,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLenmapvalue := int(stringLenmapvalue)
if intStringLenmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postStringIndexmapvalue := iNdEx + intStringLenmapvalue
if postStringIndexmapvalue < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postStringIndexmapvalue > l {
return io.ErrUnexpectedEOF
@@ -931,12 +932,12 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
iNdEx = postStringIndexmapvalue
} else {
iNdEx = entryPreIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > postIndex {
return io.ErrUnexpectedEOF
@@ -953,7 +954,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -967,11 +968,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -985,7 +986,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -999,11 +1000,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1017,7 +1018,7 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
- return ErrIntOverflow
+ return protohelpers.ErrIntOverflow
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
@@ -1031,11 +1032,11 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
}
intStringLen := int(stringLen)
if intStringLen < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if postIndex > l {
return io.ErrUnexpectedEOF
@@ -1044,12 +1045,12 @@ func (m *TracerPayload) UnmarshalVT(dAtA []byte) error {
iNdEx = postIndex
default:
iNdEx = preIndex
- skippy, err := skip(dAtA[iNdEx:])
+ skippy, err := protohelpers.Skip(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
- return ErrInvalidLength
+ return protohelpers.ErrInvalidLength
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
diff --git a/pkg/security/agent/client.go b/pkg/security/agent/client.go
index 81e2cf630b549f..bb0c1714bd0391 100644
--- a/pkg/security/agent/client.go
+++ b/pkg/security/agent/client.go
@@ -35,7 +35,7 @@ type SecurityModuleClientWrapper interface {
DumpProcessCache(withArgs bool, format string) (string, error)
GenerateActivityDump(request *api.ActivityDumpParams) (*api.ActivityDumpMessage, error)
ListActivityDumps() (*api.ActivityDumpListMessage, error)
- StopActivityDump(name, containerid string) (*api.ActivityDumpStopMessage, error)
+ StopActivityDump(name, container, cgroup string) (*api.ActivityDumpStopMessage, error)
GenerateEncoding(request *api.TranscodingRequestParams) (*api.TranscodingRequestMessage, error)
DumpNetworkNamespace(snapshotInterfaces bool) (*api.DumpNetworkNamespaceMessage, error)
GetConfig() (*api.SecurityConfigMessage, error)
@@ -81,10 +81,11 @@ func (c *RuntimeSecurityClient) GenerateActivityDump(request *api.ActivityDumpPa
}
// StopActivityDump stops an active dump if it exists
-func (c *RuntimeSecurityClient) StopActivityDump(name, containerid string) (*api.ActivityDumpStopMessage, error) {
+func (c *RuntimeSecurityClient) StopActivityDump(name, container, cgroup string) (*api.ActivityDumpStopMessage, error) {
return c.apiClient.StopActivityDump(context.Background(), &api.ActivityDumpStopParams{
Name: name,
- ContainerID: containerid,
+ ContainerID: container,
+ CGroupID: cgroup,
})
}
diff --git a/pkg/security/agent/mocks/security_module_client_wrapper.go b/pkg/security/agent/mocks/security_module_client_wrapper.go
index 227b6c2072121f..c31eae478f2352 100644
--- a/pkg/security/agent/mocks/security_module_client_wrapper.go
+++ b/pkg/security/agent/mocks/security_module_client_wrapper.go
@@ -463,9 +463,9 @@ func (_m *SecurityModuleClientWrapper) SaveSecurityProfile(name string, tag stri
return r0, r1
}
-// StopActivityDump provides a mock function with given fields: name, containerid
-func (_m *SecurityModuleClientWrapper) StopActivityDump(name string, containerid string) (*api.ActivityDumpStopMessage, error) {
- ret := _m.Called(name, containerid)
+// StopActivityDump provides a mock function with given fields: name, container, cgroup
+func (_m *SecurityModuleClientWrapper) StopActivityDump(name string, container string, cgroup string) (*api.ActivityDumpStopMessage, error) {
+ ret := _m.Called(name, container, cgroup)
if len(ret) == 0 {
panic("no return value specified for StopActivityDump")
@@ -473,19 +473,19 @@ func (_m *SecurityModuleClientWrapper) StopActivityDump(name string, containerid
var r0 *api.ActivityDumpStopMessage
var r1 error
- if rf, ok := ret.Get(0).(func(string, string) (*api.ActivityDumpStopMessage, error)); ok {
- return rf(name, containerid)
+ if rf, ok := ret.Get(0).(func(string, string, string) (*api.ActivityDumpStopMessage, error)); ok {
+ return rf(name, container, cgroup)
}
- if rf, ok := ret.Get(0).(func(string, string) *api.ActivityDumpStopMessage); ok {
- r0 = rf(name, containerid)
+ if rf, ok := ret.Get(0).(func(string, string, string) *api.ActivityDumpStopMessage); ok {
+ r0 = rf(name, container, cgroup)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*api.ActivityDumpStopMessage)
}
}
- if rf, ok := ret.Get(1).(func(string, string) error); ok {
- r1 = rf(name, containerid)
+ if rf, ok := ret.Get(1).(func(string, string, string) error); ok {
+ r1 = rf(name, container, cgroup)
} else {
r1 = ret.Error(1)
}
diff --git a/pkg/security/ebpf/c/include/helpers/activity_dump.h b/pkg/security/ebpf/c/include/helpers/activity_dump.h
index 82ed6834e10fb4..c0f8d246006bf9 100644
--- a/pkg/security/ebpf/c/include/helpers/activity_dump.h
+++ b/pkg/security/ebpf/c/include/helpers/activity_dump.h
@@ -53,7 +53,7 @@ __attribute__((always_inline)) struct cgroup_tracing_event_t *get_cgroup_tracing
return evt;
}
-__attribute__((always_inline)) bool reserve_traced_cgroup_spot(container_id_t cgroup, u64 now, u64 cookie, struct activity_dump_config *config) {
+__attribute__((always_inline)) bool reserve_traced_cgroup_spot(struct cgroup_context_t *cgroup, u64 now, u64 cookie, struct activity_dump_config *config) {
// insert dump config defaults
u32 defaults_key = 0;
struct activity_dump_config *defaults = bpf_map_lookup_elem(&activity_dump_config_defaults, &defaults_key);
@@ -72,7 +72,9 @@ __attribute__((always_inline)) bool reserve_traced_cgroup_spot(container_id_t cg
return false;
}
- ret = bpf_map_update_elem(&traced_cgroups, &cgroup[0], &cookie, BPF_NOEXIST);
+ struct path_key_t path_key;
+ path_key = cgroup->cgroup_file;
+ ret = bpf_map_update_elem(&traced_cgroups, &path_key, &cookie, BPF_NOEXIST);
if (ret < 0) {
// we didn't get a lock, skip this cgroup for now and go back to it later
bpf_map_delete_elem(&activity_dumps_config, &cookie);
@@ -80,15 +82,15 @@ __attribute__((always_inline)) bool reserve_traced_cgroup_spot(container_id_t cg
}
// we're tracing a new cgroup, update its wait list timeout
- bpf_map_update_elem(&cgroup_wait_list, &cgroup[0], &config->wait_list_timestamp, BPF_ANY);
+ bpf_map_update_elem(&cgroup_wait_list, &path_key, &config->wait_list_timestamp, BPF_ANY);
return true;
}
-__attribute__((always_inline)) u64 trace_new_cgroup(void *ctx, u64 now, container_id_t container_id, struct cgroup_context_t *cgroup) {
+__attribute__((always_inline)) u64 trace_new_cgroup(void *ctx, u64 now, struct container_context_t *container) {
u64 cookie = rand64();
struct activity_dump_config config = {};
- if (!reserve_traced_cgroup_spot(container_id, now, cookie, &config)) {
+ if (!reserve_traced_cgroup_spot(&container->cgroup_context, now, cookie, &config)) {
// we're already tracing too many cgroups concurrently, ignore this one for now
return 0;
}
@@ -100,35 +102,38 @@ __attribute__((always_inline)) u64 trace_new_cgroup(void *ctx, u64 now, containe
return 0;
}
- if ((cgroup->cgroup_flags & 0b111) == CGROUP_MANAGER_SYSTEMD) {
+ if ((container->cgroup_context.cgroup_flags & 0b111) == CGROUP_MANAGER_SYSTEMD) {
return 0;
}
- copy_container_id(container_id, evt->container.container_id);
- evt->container.cgroup_context = *cgroup;
+ copy_container_id(container->container_id, evt->container.container_id);
+ evt->container.cgroup_context = container->cgroup_context;
evt->cookie = cookie;
evt->config = config;
send_event_ptr(ctx, EVENT_CGROUP_TRACING, evt);
- // return cookie
return cookie;
}
+__attribute__((always_inline)) u64 is_cgroup_activity_dumps_supported(struct cgroup_context_t *cgroup) {
+ return (cgroup->cgroup_flags != 0) && ((cgroup->cgroup_flags&0b111) != CGROUP_MANAGER_SYSTEMD);
+}
+
__attribute__((always_inline)) u64 should_trace_new_process_cgroup(void *ctx, u64 now, u32 pid, struct container_context_t *container) {
// should we start tracing this cgroup ?
- container_id_t container_id;
- bpf_probe_read(&container_id, sizeof(container_id), &container->container_id[0]);
+ struct cgroup_context_t cgroup_context;
+ bpf_probe_read(&cgroup_context, sizeof(cgroup_context), &container->cgroup_context);
- if (is_cgroup_activity_dumps_enabled() && container_id[0] != 0) {
+ if (is_cgroup_activity_dumps_enabled() && is_cgroup_activity_dumps_supported(&cgroup_context)) {
// is this cgroup traced ?
- u64 *cookie = bpf_map_lookup_elem(&traced_cgroups, &container_id[0]);
+ u64 *cookie = bpf_map_lookup_elem(&traced_cgroups, &cgroup_context.cgroup_file);
if (cookie) {
u64 cookie_val = *cookie;
struct activity_dump_config *config = bpf_map_lookup_elem(&activity_dumps_config, &cookie_val);
if (config == NULL) {
// delete expired cgroup entry
- bpf_map_delete_elem(&traced_cgroups, &container_id[0]);
+ bpf_map_delete_elem(&traced_cgroups, &cgroup_context.cgroup_file);
return 0;
}
@@ -144,7 +149,7 @@ __attribute__((always_inline)) u64 should_trace_new_process_cgroup(void *ctx, u6
if (now > config->end_timestamp) {
// delete expired cgroup entry
- bpf_map_delete_elem(&traced_cgroups, &container_id[0]);
+ bpf_map_delete_elem(&traced_cgroups, &cgroup_context.cgroup_file);
// delete config
bpf_map_delete_elem(&activity_dumps_config, &cookie_val);
return 0;
@@ -156,11 +161,11 @@ __attribute__((always_inline)) u64 should_trace_new_process_cgroup(void *ctx, u6
} else {
// have we seen this cgroup before ?
- u64 *wait_timeout = bpf_map_lookup_elem(&cgroup_wait_list, &container_id[0]);
+ u64 *wait_timeout = bpf_map_lookup_elem(&cgroup_wait_list, &cgroup_context.cgroup_file);
if (wait_timeout) {
if (now > *wait_timeout) {
// delete expired wait_list entry
- bpf_map_delete_elem(&cgroup_wait_list, &container_id[0]);
+ bpf_map_delete_elem(&cgroup_wait_list, &cgroup_context.cgroup_file);
}
// this cgroup is on the wait list, do not start tracing it
@@ -168,7 +173,7 @@ __attribute__((always_inline)) u64 should_trace_new_process_cgroup(void *ctx, u6
}
// can we start tracing this cgroup ?
- u64 cookie_val = trace_new_cgroup(ctx, now, container_id, &container->cgroup_context);
+ u64 cookie_val = trace_new_cgroup(ctx, now, container);
if (cookie_val == 0) {
return 0;
}
diff --git a/pkg/security/ebpf/c/include/hooks/signal.h b/pkg/security/ebpf/c/include/hooks/signal.h
index 92dbd145d7992e..325cf249c249c7 100644
--- a/pkg/security/ebpf/c/include/hooks/signal.h
+++ b/pkg/security/ebpf/c/include/hooks/signal.h
@@ -10,18 +10,25 @@ HOOK_SYSCALL_ENTRY2(kill, int, pid, int, type) {
return 0;
}
- /* TODO: implement the event for pid equal to 0 or -1. */
- if (pid < 1) {
- return 0;
- }
-
struct syscall_cache_t syscall = {
.type = EVENT_SIGNAL,
.signal = {
- .pid = 0, // 0 in case the root ns pid resolution failed
.type = type,
},
};
+
+ if (pid < 1) {
+ /*
+ in case kill is called with pid 0 or -1 and targets multiple processes, it
+ may not go through the kill_permission callpath; but still is valuable to track
+ */
+ syscall.signal.need_target_resolution = 0;
+ syscall.signal.pid = pid;
+ } else {
+ syscall.signal.need_target_resolution = 1;
+ syscall.signal.pid = 0; // it will be resolved later on by check_kill_permission
+ }
+
cache_syscall(&syscall);
return 0;
}
@@ -29,7 +36,7 @@ HOOK_SYSCALL_ENTRY2(kill, int, pid, int, type) {
HOOK_ENTRY("check_kill_permission")
int hook_check_kill_permission(ctx_t *ctx) {
struct syscall_cache_t *syscall = peek_syscall(EVENT_SIGNAL);
- if (!syscall) {
+ if (!syscall || syscall->signal.need_target_resolution == 0) {
return 0;
}
diff --git a/pkg/security/ebpf/c/include/maps.h b/pkg/security/ebpf/c/include/maps.h
index 2019c630c6f4cc..d6ab3ceb74dfb9 100644
--- a/pkg/security/ebpf/c/include/maps.h
+++ b/pkg/security/ebpf/c/include/maps.h
@@ -29,8 +29,8 @@ BPF_ARRAY_MAP(syscall_ctx, char[MAX_SYSCALL_CTX_SIZE], MAX_SYSCALL_CTX_ENTRIES)
BPF_HASH_MAP(activity_dumps_config, u64, struct activity_dump_config, 1) // max entries will be overridden at runtime
BPF_HASH_MAP(activity_dump_config_defaults, u32, struct activity_dump_config, 1)
-BPF_HASH_MAP(traced_cgroups, container_id_t, u64, 1) // max entries will be overridden at runtime
-BPF_HASH_MAP(cgroup_wait_list, container_id_t, u64, 1) // max entries will be overridden at runtime
+BPF_HASH_MAP(traced_cgroups, struct path_key_t, u64, 1) // max entries will be overridden at runtime
+BPF_HASH_MAP(cgroup_wait_list, struct path_key_t, u64, 1) // max entries will be overridden at runtime
BPF_HASH_MAP(traced_pids, u32, u64, 8192) // max entries will be overridden at runtime
BPF_HASH_MAP(basename_approvers, struct basename_t, struct event_mask_filter_t, 255)
BPF_HASH_MAP(register_netdevice_cache, u64, struct register_netdevice_cache_t, 1024)
diff --git a/pkg/security/ebpf/c/include/structs/syscalls.h b/pkg/security/ebpf/c/include/structs/syscalls.h
index 9515fa07df56bd..47aad2b07bb9d5 100644
--- a/pkg/security/ebpf/c/include/structs/syscalls.h
+++ b/pkg/security/ebpf/c/include/structs/syscalls.h
@@ -191,6 +191,7 @@ struct syscall_cache_t {
struct {
u32 pid;
u32 type;
+ u32 need_target_resolution;
} signal;
struct {
diff --git a/pkg/security/probe/field_handlers_ebpf.go b/pkg/security/probe/field_handlers_ebpf.go
index 36acd3a33d5a22..b76b70a76b8335 100644
--- a/pkg/security/probe/field_handlers_ebpf.go
+++ b/pkg/security/probe/field_handlers_ebpf.go
@@ -20,7 +20,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/security/resolvers"
sprocess "github.com/DataDog/datadog-agent/pkg/security/resolvers/process"
"github.com/DataDog/datadog-agent/pkg/security/secl/containerutils"
- "github.com/DataDog/datadog-agent/pkg/security/seclog"
"github.com/DataDog/datadog-agent/pkg/security/secl/args"
"github.com/DataDog/datadog-agent/pkg/security/secl/model"
@@ -516,11 +515,9 @@ func (fh *EBPFFieldHandlers) ResolveCGroupID(ev *model.Event, e *model.CGroupCon
return string(entry.CGroup.CGroupID)
}
- if err := fh.resolvers.ResolveCGroup(entry, e.CGroupFile, e.CGroupFlags); err != nil {
- seclog.Debugf("Failed to resolve cgroup: %s", err)
+ if cgroupContext, err := fh.resolvers.ResolveCGroupContext(e.CGroupFile, e.CGroupFlags); err == nil {
+ *e = *cgroupContext
}
-
- e.CGroupID = entry.CGroup.CGroupID
}
}
diff --git a/pkg/security/probe/probe_ebpf.go b/pkg/security/probe/probe_ebpf.go
index ca55fb768bd5f8..f06cbe8fa45aea 100644
--- a/pkg/security/probe/probe_ebpf.go
+++ b/pkg/security/probe/probe_ebpf.go
@@ -818,7 +818,18 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) {
return
}
- p.profileManagers.activityDumpManager.HandleCGroupTracingEvent(&event.CgroupTracing)
+ if cgroupContext, err := p.Resolvers.ResolveCGroupContext(event.CgroupTracing.CGroupContext.CGroupFile, containerutils.CGroupFlags(event.CgroupTracing.CGroupContext.CGroupFlags)); err != nil {
+ seclog.Debugf("Failed to resolve cgroup: %s", err)
+ } else {
+ event.CgroupTracing.CGroupContext = *cgroupContext
+ if cgroupContext.CGroupFlags.IsContainer() {
+ containerID, _ := containerutils.FindContainerID(cgroupContext.CGroupID)
+ event.CgroupTracing.ContainerContext.ContainerID = containerID
+ }
+
+ p.profileManagers.activityDumpManager.HandleCGroupTracingEvent(&event.CgroupTracing)
+ }
+
return
case model.CgroupWriteEventType:
if _, err = event.CgroupWrite.UnmarshalBinary(data[offset:]); err != nil {
@@ -828,10 +839,21 @@ func (p *EBPFProbe) handleEvent(CPU int, data []byte) {
pce := p.Resolvers.ProcessResolver.Resolve(event.CgroupWrite.Pid, event.CgroupWrite.Pid, 0, false, newEntryCb)
if pce != nil {
- if err := p.Resolvers.ResolveCGroup(pce, event.CgroupWrite.File.PathKey, containerutils.CGroupFlags(event.CgroupWrite.CGroupFlags)); err != nil {
+ cgroupContext, err := p.Resolvers.ResolveCGroupContext(event.CgroupWrite.File.PathKey, containerutils.CGroupFlags(event.CgroupWrite.CGroupFlags))
+ if err != nil {
seclog.Debugf("Failed to resolve cgroup: %s", err)
+ } else {
+ pce.Process.CGroup = *cgroupContext
+ pce.CGroup = *cgroupContext
+
+ if cgroupContext.CGroupFlags.IsContainer() {
+ containerID, _ := containerutils.FindContainerID(cgroupContext.CGroupID)
+ pce.ContainerID = containerID
+ pce.Process.ContainerID = containerID
+ }
}
}
+
return
case model.UnshareMountNsEventType:
if _, err = event.UnshareMountNS.UnmarshalBinary(data[offset:]); err != nil {
diff --git a/pkg/security/process_list/process_list.go b/pkg/security/process_list/process_list.go
index 1fdb4a80bd70b4..64c76705a553f0 100644
--- a/pkg/security/process_list/process_list.go
+++ b/pkg/security/process_list/process_list.go
@@ -14,9 +14,8 @@ import (
"io"
"sync"
- cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model"
-
"github.com/DataDog/datadog-agent/pkg/process/procutil"
+ cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model"
"github.com/DataDog/datadog-agent/pkg/security/secl/model"
"github.com/DataDog/datadog-go/v5/statsd"
"golang.org/x/exp/slices"
diff --git a/pkg/security/process_list/process_resolver/process_resolver_test.go b/pkg/security/process_list/process_resolver/process_resolver_test.go
index 600e0c03bc8a9e..1c062c45c0f992 100644
--- a/pkg/security/process_list/process_resolver/process_resolver_test.go
+++ b/pkg/security/process_list/process_resolver/process_resolver_test.go
@@ -141,7 +141,8 @@ func isProcessOrExecPresent(pl *processlist.ProcessList, pc *ProcessResolver, ev
func TestFork1st(t *testing.T) {
pc := NewProcessResolver()
- processList := processlist.NewProcessList(cgroupModel.WorkloadSelector{Image: "*", Tag: "*"},
+ selector, _ := cgroupModel.NewWorkloadSelector("*", "*")
+ processList := processlist.NewProcessList(selector,
[]model.EventType{model.ExecEventType, model.ForkEventType, model.ExitEventType}, pc /* ,nil */, nil, nil)
stats := testStats{}
diff --git a/pkg/security/proto/api/api.pb.go b/pkg/security/proto/api/api.pb.go
index 60cc167d246f95..e8fd80f24c5c89 100644
--- a/pkg/security/proto/api/api.pb.go
+++ b/pkg/security/proto/api/api.pb.go
@@ -1594,6 +1594,7 @@ type ActivityDumpParams struct {
DifferentiateArgs bool `protobuf:"varint,2,opt,name=DifferentiateArgs,proto3" json:"DifferentiateArgs,omitempty"`
Storage *StorageRequestParams `protobuf:"bytes,3,opt,name=Storage,proto3" json:"Storage,omitempty"`
ContainerID string `protobuf:"bytes,4,opt,name=ContainerID,proto3" json:"ContainerID,omitempty"`
+ CGroupID string `protobuf:"bytes,5,opt,name=CGroupID,proto3" json:"CGroupID,omitempty"`
}
func (x *ActivityDumpParams) Reset() {
@@ -1656,6 +1657,13 @@ func (x *ActivityDumpParams) GetContainerID() string {
return ""
}
+func (x *ActivityDumpParams) GetCGroupID() string {
+ if x != nil {
+ return x.CGroupID
+ }
+ return ""
+}
+
type MetadataMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -1676,6 +1684,7 @@ type MetadataMessage struct {
Timeout string `protobuf:"bytes,12,opt,name=Timeout,proto3" json:"Timeout,omitempty"`
Size uint64 `protobuf:"varint,13,opt,name=Size,proto3" json:"Size,omitempty"`
Serialization string `protobuf:"bytes,14,opt,name=Serialization,proto3" json:"Serialization,omitempty"`
+ CGroupID string `protobuf:"bytes,15,opt,name=CGroupID,proto3" json:"CGroupID,omitempty"`
}
func (x *MetadataMessage) Reset() {
@@ -1809,6 +1818,13 @@ func (x *MetadataMessage) GetSerialization() string {
return ""
}
+func (x *MetadataMessage) GetCGroupID() string {
+ if x != nil {
+ return x.CGroupID
+ }
+ return ""
+}
+
type StorageRequestMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -2091,6 +2107,7 @@ type ActivityDumpStopParams struct {
Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"`
ContainerID string `protobuf:"bytes,2,opt,name=ContainerID,proto3" json:"ContainerID,omitempty"`
+ CGroupID string `protobuf:"bytes,3,opt,name=CGroupID,proto3" json:"CGroupID,omitempty"`
}
func (x *ActivityDumpStopParams) Reset() {
@@ -2139,6 +2156,13 @@ func (x *ActivityDumpStopParams) GetContainerID() string {
return ""
}
+func (x *ActivityDumpStopParams) GetCGroupID() string {
+ if x != nil {
+ return x.CGroupID
+ }
+ return ""
+}
+
type ActivityDumpStopMessage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -3298,7 +3322,7 @@ var file_pkg_security_proto_api_api_proto_rawDesc = []byte{
0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43,
0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
0x52, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43,
- 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb3, 0x01, 0x0a, 0x12, 0x41,
+ 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x41,
0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d,
0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x44,
@@ -3310,312 +3334,317 @@ var file_pkg_security_proto_api_api_proto_rawDesc = []byte{
0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x20,
0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x22, 0xcf, 0x03, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72,
- 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x41, 0x67, 0x65, 0x6e,
- 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x67, 0x65, 0x6e,
- 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41,
- 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x4b, 0x65,
- 0x72, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x0d, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x2c, 0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62,
- 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x4c, 0x69, 0x6e,
- 0x75, 0x78, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
- 0x0a, 0x04, 0x41, 0x72, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x72,
- 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62,
- 0x75, 0x66, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x2c, 0x0a, 0x11, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x74,
- 0x65, 0x41, 0x72, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x44, 0x69, 0x66,
- 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x41, 0x72, 0x67, 0x73, 0x12, 0x16,
- 0x0a, 0x04, 0x43, 0x6f, 0x6d, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01,
- 0x52, 0x04, 0x43, 0x6f, 0x6d, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72,
- 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18,
- 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65,
- 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d,
- 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54,
- 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12,
- 0x16, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x72,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x43, 0x6f,
- 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x69, 0x6c,
- 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xbe, 0x02,
- 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54,
- 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x54, 0x61, 0x67, 0x73, 0x12,
- 0x34, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x53, 0x74,
- 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
- 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65,
- 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x4d,
- 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72,
- 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1a, 0x0a,
- 0x08, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x08, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x53, 0x74, 0x61,
- 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41,
- 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x72, 0x65, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x18,
- 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4c, 0x69,
- 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x5f, 0x0a, 0x17, 0x41, 0x63, 0x74, 0x69,
- 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x44, 0x75, 0x6d, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
- 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x44, 0x75,
- 0x6d, 0x70, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x4e, 0x0a, 0x16, 0x41, 0x63, 0x74,
- 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x61, 0x72,
- 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f,
- 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x22, 0x2f, 0x0a, 0x17, 0x41, 0x63, 0x74,
- 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x7b, 0x0a, 0x18, 0x54, 0x72,
- 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
- 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x10, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x46, 0x69,
- 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
- 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x07,
- 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0x67, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6e, 0x73,
- 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x07, 0x53, 0x74,
- 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70,
- 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
- 0x22, 0x1a, 0x0a, 0x18, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70,
- 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x5d, 0x0a, 0x19,
- 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x44, 0x75, 0x6d,
- 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63,
- 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
- 0x65, 0x52, 0x04, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x3f, 0x0a, 0x17, 0x57,
- 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61,
- 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x61, 0x67, 0x22, 0x87, 0x01, 0x0a,
- 0x1b, 0x4c, 0x61, 0x73, 0x74, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65,
- 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09,
- 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69,
- 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x54,
- 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x73, 0x53, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x08, 0x52, 0x11, 0x49, 0x73, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
- 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
- 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x54,
- 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x54, 0x61, 0x67, 0x73, 0x22,
- 0xec, 0x01, 0x0a, 0x18, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x72, 0x65, 0x65,
- 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x11,
- 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
- 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x69,
- 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75,
- 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f,
- 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x44, 0x4e, 0x53, 0x4e, 0x6f,
- 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x53, 0x6f, 0x63, 0x6b,
- 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x10, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43,
- 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d,
- 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x41,
- 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x6e,
- 0x0a, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61,
- 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61, 0x6e, 0x6f, 0x6d, 0x61,
- 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x6c,
- 0x61, 0x73, 0x74, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x4e, 0x61, 0x6e, 0x6f, 0x12, 0x2e,
- 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f,
- 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x76, 0x65,
- 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9b,
- 0x02, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
- 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x72, 0x73,
- 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x69,
- 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f,
- 0x73, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74,
- 0x53, 0x65, 0x65, 0x6e, 0x12, 0x58, 0x0a, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79,
- 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e,
- 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74,
- 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74,
- 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e,
- 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12,
- 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61,
- 0x67, 0x73, 0x1a, 0x58, 0x0a, 0x13, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53,
- 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x61, 0x70, 0x69,
- 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
- 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa0, 0x06, 0x0a,
- 0x16, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4c, 0x6f, 0x61, 0x64, 0x65,
- 0x64, 0x49, 0x6e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x0e, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x12,
- 0x38, 0x0a, 0x17, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4b, 0x65, 0x72, 0x6e, 0x65,
- 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x17, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c,
- 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x08, 0x53, 0x65, 0x6c,
- 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x70,
- 0x69, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74,
- 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63,
- 0x74, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f,
- 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x50, 0x72, 0x6f, 0x66,
- 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x45,
- 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0d, 0x4c, 0x61, 0x73,
- 0x74, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x41, 0x6e, 0x6f, 0x6d, 0x61,
- 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x41, 0x6e, 0x6f, 0x6d,
- 0x61, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
- 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x49,
- 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x09,
- 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x53, 0x74, 0x61,
- 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
- 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x61,
- 0x64, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x4d, 0x65, 0x74,
- 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20,
- 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x54, 0x61, 0x67, 0x73, 0x12, 0x33, 0x0a,
- 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54, 0x72, 0x65, 0x65, 0x53,
- 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x53, 0x74, 0x61,
- 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x6c, 0x6f,
- 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
- 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61,
- 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f,
- 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69,
- 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
- 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f,
- 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x1a,
- 0x5e, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
- 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50,
- 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
- 0x3f, 0x0a, 0x19, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69,
- 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0c,
- 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x0c, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65,
- 0x22, 0x6b, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66,
- 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37,
- 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50,
- 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x50,
- 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x55, 0x0a,
- 0x19, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
- 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x38, 0x0a, 0x08, 0x53, 0x65,
- 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63,
- 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x53, 0x65, 0x6c, 0x65,
- 0x63, 0x74, 0x6f, 0x72, 0x22, 0x46, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
- 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x32, 0x8a, 0x0a, 0x0a,
- 0x0e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12,
- 0x3f, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x13, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
- 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01,
- 0x12, 0x57, 0x0a, 0x10, 0x44, 0x75, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43,
- 0x61, 0x63, 0x68, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x50,
- 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
- 0x44, 0x75, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x09, 0x47, 0x65, 0x74,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69,
- 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x30, 0x0a, 0x09, 0x47, 0x65,
- 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
- 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x0b, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0b,
- 0x52, 0x75, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x61, 0x70,
- 0x69, 0x2e, 0x52, 0x75, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72,
- 0x61, 0x6d, 0x73, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,
- 0x74, 0x79, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x10, 0x47, 0x65, 0x74,
- 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1b, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65,
- 0x70, 0x6f, 0x72, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69,
- 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72,
- 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00,
- 0x12, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69,
- 0x65, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x50,
- 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x20, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69,
- 0x65, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
- 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x44, 0x75, 0x6d, 0x70, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
- 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e,
- 0x44, 0x75, 0x6d, 0x70, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x73,
- 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69,
- 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65,
- 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x49,
- 0x0a, 0x0e, 0x44, 0x75, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73,
- 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x63, 0x61,
- 0x72, 0x64, 0x65, 0x72, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, 0x2e, 0x61, 0x70,
- 0x69, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x44, 0x75, 0x6d,
- 0x70, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e,
- 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x50, 0x61, 0x72, 0x61,
- 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74,
- 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x50,
- 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75,
- 0x6d, 0x70, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
+ 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x43, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0xeb, 0x03, 0x0a,
+ 0x0f, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x41, 0x67, 0x65, 0x6e, 0x74,
+ 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c,
+ 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x4b,
+ 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11,
+ 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x4c, 0x69, 0x6e, 0x75, 0x78, 0x44, 0x69,
+ 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x41, 0x72,
+ 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x41, 0x72, 0x63, 0x68, 0x12, 0x12,
+ 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x56, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11,
+ 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x41, 0x72, 0x67,
+ 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x74, 0x69, 0x61, 0x74, 0x65, 0x41, 0x72, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x04, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49,
+ 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0b, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x69,
+ 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x54, 0x69, 0x6d,
+ 0x65, 0x6f, 0x75, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01,
+ 0x28, 0x04, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x69,
+ 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0d, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a,
+ 0x0a, 0x08, 0x43, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x43, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0x79, 0x0a, 0x15, 0x53, 0x74,
+ 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,
+ 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
+ 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xbe, 0x02, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
+ 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a,
+ 0x04, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x48, 0x6f, 0x73,
+ 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x04, 0x54, 0x61, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61,
+ 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53,
+ 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a,
+ 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
+ 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65,
+ 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65,
+ 0x73, 0x12, 0x33, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54,
+ 0x72, 0x65, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
+ 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
- 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44,
- 0x75, 0x6d, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00,
- 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
- 0x44, 0x75, 0x6d, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76,
- 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d,
- 0x73, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
- 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
- 0x00, 0x12, 0x55, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72,
- 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x72, 0x61,
- 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d,
- 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41,
- 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61,
- 0x6d, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
+ 0x22, 0x5f, 0x0a, 0x17, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70,
+ 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x44,
+ 0x75, 0x6d, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x44, 0x75, 0x6d, 0x70, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x22, 0x6a, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d,
+ 0x70, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x4e,
+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49,
+ 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0x2f, 0x0a,
+ 0x17, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f,
+ 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x7b,
+ 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x41, 0x63,
+ 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75,
+ 0x6d, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74,
+ 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61,
+ 0x6d, 0x73, 0x52, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0x67, 0x0a, 0x19, 0x54,
+ 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x34,
+ 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x53, 0x74, 0x6f,
+ 0x72, 0x61, 0x67, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
- 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44,
- 0x75, 0x6d, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x22, 0x00, 0x30, 0x01, 0x12, 0x59, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x63, 0x75,
- 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69,
- 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1f, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69,
- 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12,
- 0x58, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50,
- 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63,
- 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65,
- 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63,
- 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65,
- 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x42, 0x18, 0x5a, 0x16, 0x70, 0x6b, 0x67,
- 0x2f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
- 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x22, 0x5d, 0x0a, 0x19, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a,
+ 0x04, 0x44, 0x75, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x70,
+ 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x04, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x44,
+ 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22,
+ 0x3f, 0x0a, 0x17, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63,
+ 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10,
+ 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x54, 0x61, 0x67,
+ 0x22, 0x87, 0x01, 0x0a, 0x1b, 0x4c, 0x61, 0x73, 0x74, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c,
+ 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2c, 0x0a, 0x11,
+ 0x49, 0x73, 0x53, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x49, 0x73, 0x53, 0x74, 0x61, 0x62, 0x6c,
+ 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x47, 0x0a, 0x0f, 0x49, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a,
+ 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12,
+ 0x12, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x54,
+ 0x61, 0x67, 0x73, 0x22, 0xec, 0x01, 0x0a, 0x18, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79,
+ 0x54, 0x72, 0x65, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73,
+ 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x50, 0x72, 0x6f,
+ 0x63, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26,
+ 0x0a, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x46, 0x69, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65,
+ 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x44, 0x4e, 0x53, 0x4e, 0x6f, 0x64,
+ 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x44,
+ 0x4e, 0x53, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10,
+ 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4e, 0x6f,
+ 0x64, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x72,
+ 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x0f, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x53, 0x69,
+ 0x7a, 0x65, 0x22, 0x6e, 0x0a, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x61,
+ 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x04, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x4e, 0x61,
+ 0x6e, 0x6f, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x66,
+ 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x11, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x22, 0x9b, 0x02, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6c,
+ 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08,
+ 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x58, 0x0a, 0x10, 0x65, 0x76, 0x65, 0x6e,
+ 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
+ 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x58, 0x0a, 0x13, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
+ 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+ 0x2b, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
+ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f,
+ 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+ 0x22, 0xa0, 0x06, 0x0a, 0x16, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f,
+ 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4c,
+ 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0e, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4b, 0x65, 0x72,
+ 0x6e, 0x65, 0x6c, 0x12, 0x38, 0x0a, 0x17, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4b,
+ 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x4b, 0x65,
+ 0x72, 0x6e, 0x65, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x38, 0x0a,
+ 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69,
+ 0x6c, 0x65, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d,
+ 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x4a, 0x0a,
+ 0x0d, 0x4c, 0x61, 0x73, 0x74, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x06,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x41,
+ 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x4c, 0x61, 0x73, 0x74,
+ 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x49, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61,
+ 0x70, 0x69, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x52, 0x09, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1a, 0x0a,
+ 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18,
+ 0x01, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07,
+ 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e,
+ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
+ 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x04, 0x54, 0x61, 0x67,
+ 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x54, 0x61, 0x67,
+ 0x73, 0x12, 0x33, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x54,
+ 0x72, 0x65, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
+ 0x05, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c,
+ 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x12, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x6c, 0x6f, 0x62, 0x61,
+ 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c,
+ 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x30, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50,
+ 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x72,
+ 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65,
+ 0x78, 0x74, 0x73, 0x1a, 0x5e, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x61,
+ 0x70, 0x69, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78,
+ 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+ 0x02, 0x38, 0x01, 0x22, 0x3f, 0x0a, 0x19, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50,
+ 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
+ 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43,
+ 0x61, 0x63, 0x68, 0x65, 0x22, 0x6b, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
+ 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72,
+ 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x22, 0x55, 0x0a, 0x19, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f,
+ 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x38,
+ 0x0a, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08,
+ 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x46, 0x0a, 0x1a, 0x53, 0x65, 0x63, 0x75,
+ 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x61, 0x76, 0x65, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04,
+ 0x46, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x69, 0x6c, 0x65,
+ 0x32, 0x8a, 0x0a, 0x0a, 0x0e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64,
+ 0x75, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73,
+ 0x12, 0x13, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75,
+ 0x72, 0x69, 0x74, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x22, 0x00, 0x30, 0x01, 0x12, 0x57, 0x0a, 0x10, 0x44, 0x75, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x63,
+ 0x65, 0x73, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44,
+ 0x75, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x24, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75,
+ 0x72, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x43,
+ 0x61, 0x63, 0x68, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a,
+ 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
+ 0x1a, 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x30,
+ 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x2e, 0x61, 0x70,
+ 0x69, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d,
+ 0x73, 0x1a, 0x0b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00,
+ 0x12, 0x4b, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x12,
+ 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x75, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73,
+ 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x22, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65,
+ 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
+ 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a,
+ 0x10, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53,
+ 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x22,
+ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f,
+ 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c,
+ 0x6f, 0x61, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d,
+ 0x73, 0x1a, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x6f,
+ 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x14, 0x44, 0x75, 0x6d, 0x70, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1f, 0x2e,
+ 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e,
+ 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x20,
+ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x44, 0x75, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72,
+ 0x64, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x44,
+ 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a,
+ 0x1a, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72,
+ 0x64, 0x65, 0x72, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a,
+ 0x0c, 0x44, 0x75, 0x6d, 0x70, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x17, 0x2e,
+ 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74,
+ 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x22, 0x00, 0x12, 0x50, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69,
+ 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x73, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63,
+ 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61,
+ 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76,
+ 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69,
+ 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41,
+ 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69,
+ 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x6f, 0x70, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f,
+ 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x2e, 0x61, 0x70,
+ 0x69, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x15,
+ 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53,
+ 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69,
+ 0x76, 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x61,
+ 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76,
+ 0x69, 0x74, 0x79, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x59, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73,
+ 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50,
+ 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
+ 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50,
+ 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x13, 0x53, 0x61, 0x76, 0x65, 0x53, 0x65, 0x63, 0x75, 0x72,
+ 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
+ 0x53, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1f, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65,
+ 0x53, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x42, 0x18, 0x5a,
+ 0x16, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/pkg/security/proto/api/api.proto b/pkg/security/proto/api/api.proto
index dc3e16fecb4b23..7032834f238c30 100644
--- a/pkg/security/proto/api/api.proto
+++ b/pkg/security/proto/api/api.proto
@@ -147,6 +147,7 @@ message ActivityDumpParams {
bool DifferentiateArgs = 2;
StorageRequestParams Storage = 3;
string ContainerID = 4;
+ string CGroupID = 5;
}
message MetadataMessage {
@@ -165,6 +166,7 @@ message MetadataMessage {
string Timeout = 12;
uint64 Size = 13;
string Serialization = 14;
+ string CGroupID = 15;
}
message StorageRequestMessage {
@@ -196,6 +198,7 @@ message ActivityDumpListMessage {
message ActivityDumpStopParams {
string Name = 1;
string ContainerID = 2;
+ string CGroupID = 3;
}
message ActivityDumpStopMessage {
diff --git a/pkg/security/proto/api/api_vtproto.pb.go b/pkg/security/proto/api/api_vtproto.pb.go
index 462ad4782938ca..8ebccda5994a0d 100644
--- a/pkg/security/proto/api/api_vtproto.pb.go
+++ b/pkg/security/proto/api/api_vtproto.pb.go
@@ -1468,6 +1468,13 @@ func (m *ActivityDumpParams) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if len(m.CGroupID) > 0 {
+ i -= len(m.CGroupID)
+ copy(dAtA[i:], m.CGroupID)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CGroupID)))
+ i--
+ dAtA[i] = 0x2a
+ }
if len(m.ContainerID) > 0 {
i -= len(m.ContainerID)
copy(dAtA[i:], m.ContainerID)
@@ -1535,6 +1542,13 @@ func (m *MetadataMessage) MarshalToSizedBufferVT(dAtA []byte) (int, error) {
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if len(m.CGroupID) > 0 {
+ i -= len(m.CGroupID)
+ copy(dAtA[i:], m.CGroupID)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CGroupID)))
+ i--
+ dAtA[i] = 0x7a
+ }
if len(m.Serialization) > 0 {
i -= len(m.Serialization)
copy(dAtA[i:], m.Serialization)
@@ -1927,6 +1941,13 @@ func (m *ActivityDumpStopParams) MarshalToSizedBufferVT(dAtA []byte) (int, error
i -= len(m.unknownFields)
copy(dAtA[i:], m.unknownFields)
}
+ if len(m.CGroupID) > 0 {
+ i -= len(m.CGroupID)
+ copy(dAtA[i:], m.CGroupID)
+ i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.CGroupID)))
+ i--
+ dAtA[i] = 0x1a
+ }
if len(m.ContainerID) > 0 {
i -= len(m.ContainerID)
copy(dAtA[i:], m.ContainerID)
@@ -3396,6 +3417,10 @@ func (m *ActivityDumpParams) SizeVT() (n int) {
if l > 0 {
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
+ l = len(m.CGroupID)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
n += len(m.unknownFields)
return n
}
@@ -3460,6 +3485,10 @@ func (m *MetadataMessage) SizeVT() (n int) {
if l > 0 {
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
+ l = len(m.CGroupID)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
n += len(m.unknownFields)
return n
}
@@ -3585,6 +3614,10 @@ func (m *ActivityDumpStopParams) SizeVT() (n int) {
if l > 0 {
n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
}
+ l = len(m.CGroupID)
+ if l > 0 {
+ n += 1 + l + protohelpers.SizeOfVarint(uint64(l))
+ }
n += len(m.unknownFields)
return n
}
@@ -7212,6 +7245,38 @@ func (m *ActivityDumpParams) UnmarshalVT(dAtA []byte) error {
}
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CGroupID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.CGroupID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -7686,6 +7751,38 @@ func (m *MetadataMessage) UnmarshalVT(dAtA []byte) error {
}
m.Serialization = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 15:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CGroupID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.CGroupID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
@@ -8485,6 +8582,38 @@ func (m *ActivityDumpStopParams) UnmarshalVT(dAtA []byte) error {
}
m.ContainerID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field CGroupID", wireType)
+ }
+ var stringLen uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return protohelpers.ErrIntOverflow
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ stringLen |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ intStringLen := int(stringLen)
+ if intStringLen < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ postIndex := iNdEx + intStringLen
+ if postIndex < 0 {
+ return protohelpers.ErrInvalidLength
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.CGroupID = string(dAtA[iNdEx:postIndex])
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := protohelpers.Skip(dAtA[iNdEx:])
diff --git a/pkg/security/resolvers/resolvers_ebpf.go b/pkg/security/resolvers/resolvers_ebpf.go
index 91e13925028404..b8899bbd99adf2 100644
--- a/pkg/security/resolvers/resolvers_ebpf.go
+++ b/pkg/security/resolvers/resolvers_ebpf.go
@@ -217,35 +217,25 @@ func (r *EBPFResolvers) Start(ctx context.Context) error {
return r.NamespaceResolver.Start(ctx)
}
-// ResolveCGroup resolves the path of cgroup for a process cache entry
-func (r *EBPFResolvers) ResolveCGroup(pce *model.ProcessCacheEntry, pathKey model.PathKey, cgroupFlags containerutils.CGroupFlags) error {
+// ResolveCGroupContext resolves the cgroup context from a cgroup path key
+func (r *EBPFResolvers) ResolveCGroupContext(pathKey model.PathKey, cgroupFlags containerutils.CGroupFlags) (*model.CGroupContext, error) {
path, err := r.DentryResolver.Resolve(pathKey, true)
- if err == nil && path != "" {
- cgroup := filepath.Dir(string(path))
- if cgroup == "/" {
- cgroup = path
- }
-
- cgroupFlags := containerutils.CGroupFlags(cgroupFlags)
- cgroupContext := model.CGroupContext{
- CGroupID: containerutils.CGroupID(cgroup),
- CGroupFlags: containerutils.CGroupFlags(cgroupFlags),
- CGroupFile: pathKey,
- }
+ if err != nil {
+ return nil, fmt.Errorf("failed to resolve cgroup file %v: %w", pathKey, err)
+ }
- pce.Process.CGroup = cgroupContext
- pce.CGroup = cgroupContext
+ cgroup := filepath.Dir(string(path))
+ if cgroup == "/" {
+ cgroup = path
+ }
- if cgroupFlags.IsContainer() {
- containerID, _ := containerutils.FindContainerID(cgroupContext.CGroupID)
- pce.ContainerID = containerID
- pce.Process.ContainerID = containerID
- }
- } else {
- return fmt.Errorf("failed to resolve cgroup file %v: %w", pathKey, err)
+ cgroupContext := &model.CGroupContext{
+ CGroupID: containerutils.CGroupID(cgroup),
+ CGroupFlags: containerutils.CGroupFlags(cgroupFlags),
+ CGroupFile: pathKey,
}
- return nil
+ return cgroupContext, nil
}
// Snapshot collects data on the current state of the system to populate user space and kernel space caches.
diff --git a/pkg/security/secl/model/unmarshallers_linux.go b/pkg/security/secl/model/unmarshallers_linux.go
index d6bdfb32fa825b..7c38d3127e1ba2 100644
--- a/pkg/security/secl/model/unmarshallers_linux.go
+++ b/pkg/security/secl/model/unmarshallers_linux.go
@@ -972,7 +972,7 @@ func (e *CgroupTracingEvent) UnmarshalBinary(data []byte) (int, error) {
}
cursor := read
- read, err = UnmarshalBinary(data, &e.CGroupContext)
+ read, err = UnmarshalBinary(data[cursor:], &e.CGroupContext)
if err != nil {
return 0, err
}
diff --git a/pkg/security/security_profile/activity_tree/metadata/metadata.go b/pkg/security/security_profile/activity_tree/metadata/metadata.go
index 2e9ea31a3da093..882e7fb69f5c09 100644
--- a/pkg/security/security_profile/activity_tree/metadata/metadata.go
+++ b/pkg/security/security_profile/activity_tree/metadata/metadata.go
@@ -8,7 +8,12 @@
// Package metadata holds metadata related files
package metadata
-import "time"
+import (
+ "time"
+
+ "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils"
+ "github.com/DataDog/datadog-agent/pkg/security/secl/model"
+)
// Metadata is used to provide context about the activity dump or the profile
type Metadata struct {
@@ -18,13 +23,13 @@ type Metadata struct {
LinuxDistribution string `json:"linux_distribution"`
Arch string `json:"arch"`
- Name string `json:"name"`
- ProtobufVersion string `json:"protobuf_version"`
- DifferentiateArgs bool `json:"differentiate_args"`
- ContainerID string `json:"-"`
- ContainerFlags uint64 `json:"-"`
- Start time.Time `json:"start"`
- End time.Time `json:"end"`
- Size uint64 `json:"activity_dump_size,omitempty"`
- Serialization string `json:"serialization,omitempty"`
+ Name string `json:"name"`
+ ProtobufVersion string `json:"protobuf_version"`
+ DifferentiateArgs bool `json:"differentiate_args"`
+ ContainerID containerutils.ContainerID `json:"-"`
+ CGroupContext model.CGroupContext `json:"-"`
+ Start time.Time `json:"start"`
+ End time.Time `json:"end"`
+ Size uint64 `json:"activity_dump_size,omitempty"`
+ Serialization string `json:"serialization,omitempty"`
}
diff --git a/pkg/security/security_profile/activity_tree/metadata/metadata_proto_dec_v1.go b/pkg/security/security_profile/activity_tree/metadata/metadata_proto_dec_v1.go
index 6f1f8ad0588f19..e08f483efac619 100644
--- a/pkg/security/security_profile/activity_tree/metadata/metadata_proto_dec_v1.go
+++ b/pkg/security/security_profile/activity_tree/metadata/metadata_proto_dec_v1.go
@@ -11,6 +11,7 @@ package metadata
import (
adproto "github.com/DataDog/agent-payload/v5/cws/dumpsv1"
+ "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils"
activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree"
)
@@ -30,7 +31,7 @@ func ProtoMetadataToMetadata(meta *adproto.Metadata) Metadata {
Name: meta.Name,
ProtobufVersion: meta.ProtobufVersion,
DifferentiateArgs: meta.DifferentiateArgs,
- ContainerID: meta.ContainerId,
+ ContainerID: containerutils.ContainerID(meta.ContainerId),
Start: activity_tree.ProtoDecodeTimestamp(meta.Start),
End: activity_tree.ProtoDecodeTimestamp(meta.End),
Size: meta.Size,
diff --git a/pkg/security/security_profile/activity_tree/metadata/metadata_proto_enc_v1.go b/pkg/security/security_profile/activity_tree/metadata/metadata_proto_enc_v1.go
index 2b02ef40047209..e28b2ce901c633 100644
--- a/pkg/security/security_profile/activity_tree/metadata/metadata_proto_enc_v1.go
+++ b/pkg/security/security_profile/activity_tree/metadata/metadata_proto_enc_v1.go
@@ -29,7 +29,7 @@ func ToProto(meta *Metadata) *adproto.Metadata {
Name: meta.Name,
ProtobufVersion: meta.ProtobufVersion,
DifferentiateArgs: meta.DifferentiateArgs,
- ContainerId: meta.ContainerID,
+ ContainerId: string(meta.ContainerID),
Start: activity_tree.TimestampToProto(&meta.Start),
End: activity_tree.TimestampToProto(&meta.End),
Size: meta.Size,
diff --git a/pkg/security/security_profile/dump/activity_dump.go b/pkg/security/security_profile/dump/activity_dump.go
index 80d1bb2ebe011c..4df6a218cebe33 100644
--- a/pkg/security/security_profile/dump/activity_dump.go
+++ b/pkg/security/security_profile/dump/activity_dump.go
@@ -222,11 +222,14 @@ func NewActivityDumpFromMessage(msg *api.ActivityDumpMessage) (*ActivityDump, er
Name: metadata.GetName(),
ProtobufVersion: metadata.GetProtobufVersion(),
DifferentiateArgs: metadata.GetDifferentiateArgs(),
- ContainerID: metadata.GetContainerID(),
- Start: startTime,
- End: startTime.Add(timeout),
- Size: metadata.GetSize(),
- Arch: metadata.GetArch(),
+ ContainerID: containerutils.ContainerID(metadata.GetContainerID()),
+ CGroupContext: model.CGroupContext{
+ CGroupID: containerutils.CGroupID(metadata.GetCGroupID()),
+ },
+ Start: startTime,
+ End: startTime.Add(timeout),
+ Size: metadata.GetSize(),
+ Arch: metadata.GetArch(),
}
ad.LoadConfig = NewActivityDumpLoadConfig(
[]model.EventType{},
@@ -265,14 +268,26 @@ func (ad *ActivityDump) GetWorkloadSelector() *cgroupModel.WorkloadSelector {
if ad.selector != nil && ad.selector.IsReady() {
return ad.selector
}
- imageTag := utils.GetTagValue("image_tag", ad.Tags)
- selector, err := cgroupModel.NewWorkloadSelector(utils.GetTagValue("image_name", ad.Tags), imageTag)
- if err != nil {
- return nil
+
+ var selector cgroupModel.WorkloadSelector
+ var err error
+ if ad.ContainerID != "" {
+ imageTag := utils.GetTagValue("image_tag", ad.Tags)
+ selector, err = cgroupModel.NewWorkloadSelector(utils.GetTagValue("image_name", ad.Tags), imageTag)
+ if err != nil {
+ return nil
+ }
+ } else if ad.CGroupContext.CGroupID != "" {
+ selector, err = cgroupModel.NewWorkloadSelector(utils.GetTagValue("service", ad.Tags), utils.GetTagValue("version", ad.Tags))
+ if err != nil {
+ return nil
+ }
+
}
+
ad.selector = &selector
- // Once per workload, when tags are resolved and the firs time we successfully get the selector, tag all the existing nodes
- ad.ActivityTree.TagAllNodes(imageTag)
+ // Once per workload, when tags are resolved and the first time we successfully get the selector, tag all the existing nodes
+ ad.ActivityTree.TagAllNodes(selector.Image)
return ad.selector
}
@@ -354,7 +369,7 @@ func (ad *ActivityDump) nameMatches(name string) bool {
}
// containerIDMatches returns true if the ActivityDump container ID matches the provided container ID
-func (ad *ActivityDump) containerIDMatches(containerID string) bool {
+func (ad *ActivityDump) containerIDMatches(containerID containerutils.ContainerID) bool {
return ad.Metadata.ContainerID == containerID
}
@@ -365,7 +380,13 @@ func (ad *ActivityDump) MatchesSelector(entry *model.ProcessCacheEntry) bool {
}
if len(ad.Metadata.ContainerID) > 0 {
- if !ad.containerIDMatches(string(entry.ContainerID)) {
+ if !ad.containerIDMatches(entry.ContainerID) {
+ return false
+ }
+ }
+
+ if len(ad.Metadata.CGroupContext.CGroupID) > 0 {
+ if entry.CGroup.CGroupID != ad.Metadata.CGroupContext.CGroupID {
return false
}
}
@@ -395,13 +416,13 @@ func (ad *ActivityDump) enable() error {
}
}
- if len(ad.Metadata.ContainerID) > 0 {
+ if !ad.Metadata.CGroupContext.CGroupFile.IsNull() {
// insert container ID in traced_cgroups map (it might already exist, do not update in that case)
- if err := ad.adm.tracedCgroupsMap.Update(ad.Metadata.ContainerID, ad.LoadConfigCookie, ebpf.UpdateNoExist); err != nil {
+ if err := ad.adm.tracedCgroupsMap.Update(ad.Metadata.CGroupContext.CGroupFile, ad.LoadConfigCookie, ebpf.UpdateNoExist); err != nil {
if !errors.Is(err, ebpf.ErrKeyExist) {
// delete activity dump load config
_ = ad.adm.activityDumpsConfigMap.Delete(ad.LoadConfigCookie)
- return fmt.Errorf("couldn't push activity dump container ID %s: %w", ad.Metadata.ContainerID, err)
+ return fmt.Errorf("couldn't push activity dump cgroup ID %s: %w", ad.Metadata.CGroupContext.CGroupID, err)
}
}
}
@@ -448,12 +469,10 @@ func (ad *ActivityDump) disable() error {
}
// remove container ID from kernel space
- if len(ad.Metadata.ContainerID) > 0 {
- containerIDB := make([]byte, model.ContainerIDLen)
- copy(containerIDB, ad.Metadata.ContainerID)
- err := ad.adm.tracedCgroupsMap.Delete(containerIDB)
+ if !ad.Metadata.CGroupContext.CGroupFile.IsNull() {
+ err := ad.adm.tracedCgroupsMap.Delete(ad.Metadata.CGroupContext.CGroupFile)
if err != nil && !errors.Is(err, ebpf.ErrKeyNotExist) {
- return fmt.Errorf("couldn't delete activity dump filter containerID(%s): %v", ad.Metadata.ContainerID, err)
+ return fmt.Errorf("couldn't delete activity dump filter cgroup %s: %v", ad.Metadata.CGroupContext.CGroupID, err)
}
}
return nil
@@ -575,6 +594,9 @@ func (ad *ActivityDump) getSelectorStr() string {
if len(ad.Metadata.ContainerID) > 0 {
tags = append(tags, fmt.Sprintf("container_id:%s", ad.Metadata.ContainerID))
}
+ if len(ad.Metadata.CGroupContext.CGroupID) > 0 {
+ tags = append(tags, fmt.Sprintf("cgroup_id:%s", ad.Metadata.CGroupContext.CGroupID))
+ }
if len(ad.Tags) > 0 {
for _, tag := range ad.Tags {
if !strings.HasPrefix(tag, "container_id") {
@@ -614,6 +636,8 @@ func (ad *ActivityDump) ResolveTags() error {
return ad.resolveTags()
}
+const systemdSystemDir = "/usr/lib/systemd/system"
+
// resolveTags thread unsafe version ot ResolveTags
func (ad *ActivityDump) resolveTags() error {
selector := ad.GetWorkloadSelector()
@@ -621,10 +645,26 @@ func (ad *ActivityDump) resolveTags() error {
return nil
}
- var err error
- ad.Tags, err = ad.adm.resolvers.TagsResolver.ResolveWithErr(containerutils.ContainerID(ad.Metadata.ContainerID))
- if err != nil {
- return fmt.Errorf("failed to resolve %s: %w", ad.Metadata.ContainerID, err)
+ if len(ad.Metadata.ContainerID) > 0 {
+ var err error
+ if ad.Tags, err = ad.adm.resolvers.TagsResolver.ResolveWithErr(containerutils.ContainerID(ad.Metadata.ContainerID)); err != nil {
+ return fmt.Errorf("failed to resolve %s: %w", ad.Metadata.ContainerID, err)
+ }
+ } else if len(ad.Metadata.CGroupContext.CGroupID) > 0 {
+ systemdService := filepath.Base(string(ad.Metadata.CGroupContext.CGroupID))
+ serviceVersion := ""
+ servicePath := filepath.Join(systemdSystemDir, systemdService)
+
+ if ad.adm.resolvers.SBOMResolver != nil {
+ if pkg := ad.adm.resolvers.SBOMResolver.ResolvePackage("", &model.FileEvent{PathnameStr: servicePath}); pkg != nil {
+ serviceVersion = pkg.Version
+ }
+ }
+
+ ad.Tags = []string{
+ "service:" + systemdService,
+ "version:" + serviceVersion,
+ }
}
return nil
@@ -655,7 +695,8 @@ func (ad *ActivityDump) ToSecurityActivityDumpMessage() *api.ActivityDumpMessage
Name: ad.Metadata.Name,
ProtobufVersion: ad.Metadata.ProtobufVersion,
DifferentiateArgs: ad.Metadata.DifferentiateArgs,
- ContainerID: ad.Metadata.ContainerID,
+ ContainerID: string(ad.Metadata.ContainerID),
+ CGroupID: string(ad.Metadata.CGroupContext.CGroupID),
Start: ad.Metadata.Start.Format(time.RFC822),
Timeout: ad.LoadConfig.Timeout.String(),
Size: ad.Metadata.Size,
diff --git a/pkg/security/security_profile/dump/load_controller.go b/pkg/security/security_profile/dump/load_controller.go
index 3d0148f168232b..ae8767bcfd1536 100644
--- a/pkg/security/security_profile/dump/load_controller.go
+++ b/pkg/security/security_profile/dump/load_controller.go
@@ -85,6 +85,7 @@ func (lc *ActivityDumpLoadController) PushCurrentConfig() error {
func (lc *ActivityDumpLoadController) NextPartialDump(ad *ActivityDump) *ActivityDump {
newDump := NewActivityDump(ad.adm)
newDump.Metadata.ContainerID = ad.Metadata.ContainerID
+ newDump.Metadata.CGroupContext = ad.Metadata.CGroupContext
newDump.Metadata.DifferentiateArgs = ad.Metadata.DifferentiateArgs
newDump.Tags = ad.Tags
newDump.selector = ad.selector
diff --git a/pkg/security/security_profile/dump/manager.go b/pkg/security/security_profile/dump/manager.go
index b37a2c7264f1a3..d06600ed81bca2 100644
--- a/pkg/security/security_profile/dump/manager.go
+++ b/pkg/security/security_profile/dump/manager.go
@@ -35,6 +35,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/security/resolvers"
cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model"
"github.com/DataDog/datadog-agent/pkg/security/resolvers/tags"
+ "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils"
"github.com/DataDog/datadog-agent/pkg/security/secl/model"
"github.com/DataDog/datadog-agent/pkg/security/seclog"
activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree"
@@ -70,7 +71,7 @@ type ActivityDumpManager struct {
tracedCgroupsMap *ebpf.Map
cgroupWaitList *ebpf.Map
activityDumpsConfigMap *ebpf.Map
- ignoreFromSnapshot map[string]bool
+ ignoreFromSnapshot map[model.PathKey]bool
dumpLimiter *lru.Cache[cgroupModel.WorkloadSelector, *atomic.Uint64]
workloadDenyList []cgroupModel.WorkloadSelector
@@ -148,13 +149,13 @@ func (adm *ActivityDumpManager) cleanup() {
// cleanup cgroup_wait_list map
iterator := adm.cgroupWaitList.Iterate()
- containerIDB := make([]byte, model.ContainerIDLen)
+ cgroupFile := make([]byte, model.PathKeySize)
var timestamp uint64
- for iterator.Next(&containerIDB, ×tamp) {
+ for iterator.Next(&cgroupFile, ×tamp) {
if time.Now().After(adm.resolvers.TimeResolver.ResolveMonotonicTimestamp(timestamp)) {
- if err := adm.cgroupWaitList.Delete(&containerIDB); err != nil {
- seclog.Errorf("couldn't delete cgroup_wait_list entry for (%s): %v", string(containerIDB), err)
+ if err := adm.cgroupWaitList.Delete(&cgroupFile); err != nil {
+ seclog.Errorf("couldn't delete cgroup_wait_list entry for (%v): %v", cgroupFile, err)
}
}
}
@@ -170,7 +171,7 @@ func (adm *ActivityDumpManager) getExpiredDumps() []*ActivityDump {
for _, ad := range adm.activeDumps {
if time.Now().After(ad.Metadata.End) || ad.state == Stopped {
expiredDumps = append(expiredDumps, ad)
- delete(adm.ignoreFromSnapshot, ad.Metadata.ContainerID)
+ delete(adm.ignoreFromSnapshot, ad.Metadata.CGroupContext.CGroupFile)
} else {
newDumps = append(newDumps, ad)
}
@@ -304,7 +305,7 @@ func NewActivityDumpManager(config *config.Config, statsdClient statsd.ClientInt
cgroupWaitList: cgroupWaitList,
activityDumpsConfigMap: activityDumpsConfigMap,
snapshotQueue: make(chan *ActivityDump, 100),
- ignoreFromSnapshot: make(map[string]bool),
+ ignoreFromSnapshot: make(map[model.PathKey]bool),
dumpLimiter: limiter,
workloadDenyList: denyList,
workloadDenyListHits: atomic.NewUint64(0),
@@ -360,19 +361,35 @@ func (adm *ActivityDumpManager) insertActivityDump(newDump *ActivityDump) error
for _, ad := range adm.activeDumps {
if ad.Metadata.ContainerID == newDump.Metadata.ContainerID {
// an activity dump is already active for this container ID, ignore
- return nil
+ return fmt.Errorf("dump for container %s already running", ad.Metadata.ContainerID)
}
}
}
- // enable the new dump to start collecting events from kernel space
- if err := newDump.enable(); err != nil {
- return fmt.Errorf("couldn't insert new dump: %w", err)
+ if len(newDump.Metadata.CGroupContext.CGroupID) > 0 {
+ // check if the provided container ID is new
+ for _, ad := range adm.activeDumps {
+ if ad.Metadata.CGroupContext.CGroupID == newDump.Metadata.CGroupContext.CGroupID {
+ // an activity dump is already active for this container ID, ignore
+ return fmt.Errorf("dump for cgroup %s already running", ad.Metadata.CGroupContext.CGroupID)
+ }
+ }
}
// loop through the process cache entry tree and push traced pids if necessary
pces := adm.newProcessCacheEntrySearcher(newDump)
- adm.resolvers.ProcessResolver.Walk(pces.SearchTracedProcessCacheEntry)
+ adm.resolvers.ProcessResolver.Walk(func(entry *model.ProcessCacheEntry) {
+ if !pces.ad.MatchesSelector(entry) {
+ return
+ }
+ pces.ad.Metadata.CGroupContext = entry.CGroup
+ pces.SearchTracedProcessCacheEntry(entry)
+ })
+
+ // enable the new dump to start collecting events from kernel space
+ if err := newDump.enable(); err != nil {
+ return fmt.Errorf("couldn't insert new dump: %w", err)
+ }
// Delay the activity dump snapshot to reduce the overhead on the main goroutine
select {
@@ -391,10 +408,10 @@ func (adm *ActivityDumpManager) insertActivityDump(newDump *ActivityDump) error
}
// handleDefaultDumpRequest starts dumping a new workload with the provided load configuration and the default dump configuration
-func (adm *ActivityDumpManager) startDumpWithConfig(containerID string, containerFlags, cookie uint64, loadConfig model.ActivityDumpLoadConfig) error {
+func (adm *ActivityDumpManager) startDumpWithConfig(containerID containerutils.ContainerID, cgroupContext model.CGroupContext, cookie uint64, loadConfig model.ActivityDumpLoadConfig) error {
newDump := NewActivityDump(adm, func(ad *ActivityDump) {
ad.Metadata.ContainerID = containerID
- ad.Metadata.ContainerFlags = containerFlags
+ ad.Metadata.CGroupContext = cgroupContext
ad.SetLoadConfig(cookie, loadConfig)
if adm.config.RuntimeSecurity.ActivityDumpCgroupDifferentiateArgs {
@@ -437,7 +454,7 @@ func (adm *ActivityDumpManager) HandleCGroupTracingEvent(event *model.CgroupTrac
return
}
- if err := adm.startDumpWithConfig(string(event.ContainerContext.ContainerID), uint64(event.CGroupContext.CGroupFlags), event.ConfigCookie, event.Config); err != nil {
+ if err := adm.startDumpWithConfig(event.ContainerContext.ContainerID, event.CGroupContext, event.ConfigCookie, event.Config); err != nil {
seclog.Warnf("%v", err)
}
}
@@ -497,7 +514,7 @@ workloadLoop:
}
// if we're still here, we can start tracing this workload
- if err := adm.startDumpWithConfig(string(workloads[0].ContainerID), uint64(workloads[0].CGroupFlags), utils.NewCookie(), *adm.loadController.getDefaultLoadConfig()); err != nil {
+ if err := adm.startDumpWithConfig(workloads[0].ContainerID, workloads[0].CGroupContext, utils.NewCookie(), *adm.loadController.getDefaultLoadConfig()); err != nil {
if !errors.Is(err, unix.E2BIG) {
seclog.Debugf("%v", err)
break
@@ -523,11 +540,18 @@ func (adm *ActivityDumpManager) ListActivityDumps(_ *api.ActivityDumpListParams)
// DumpActivity handles an activity dump request
func (adm *ActivityDumpManager) DumpActivity(params *api.ActivityDumpParams) (*api.ActivityDumpMessage, error) {
+ if params.GetContainerID() == "" && params.GetCGroupID() == "" {
+ errMsg := fmt.Errorf("you must specify one selector between containerID and cgroupID")
+ return &api.ActivityDumpMessage{Error: errMsg.Error()}, errMsg
+ }
+
adm.Lock()
defer adm.Unlock()
newDump := NewActivityDump(adm, func(ad *ActivityDump) {
- ad.Metadata.ContainerID = params.GetContainerID()
+ ad.Metadata.ContainerID = containerutils.ContainerID(params.GetContainerID())
+ ad.Metadata.CGroupContext.CGroupID = containerutils.CGroupID(params.GetCGroupID())
+
dumpDuration, _ := time.ParseDuration(params.Timeout)
ad.SetTimeout(dumpDuration)
@@ -560,15 +584,16 @@ func (adm *ActivityDumpManager) StopActivityDump(params *api.ActivityDumpStopPar
adm.Lock()
defer adm.Unlock()
- if params.GetName() == "" && params.GetContainerID() == "" {
- errMsg := fmt.Errorf("you must specify one selector between name and containerID")
+ if params.GetName() == "" && params.GetContainerID() == "" && params.GetCGroupID() == "" {
+ errMsg := fmt.Errorf("you must specify one selector between name, containerID and cgroupID")
return &api.ActivityDumpStopMessage{Error: errMsg.Error()}, errMsg
}
toDelete := -1
for i, d := range adm.activeDumps {
if (params.GetName() != "" && d.nameMatches(params.GetName())) ||
- (params.GetContainerID() != "" && d.containerIDMatches(params.GetContainerID())) {
+ (params.GetContainerID() != "" && d.containerIDMatches(containerutils.ContainerID(params.GetContainerID())) ||
+ (params.GetCGroupID() != "" && string(d.Metadata.CGroupContext.CGroupID) == params.GetCGroupID())) {
d.Finalize(true)
seclog.Infof("tracing stopped for [%s]", d.GetSelectorStr())
toDelete = i
@@ -593,8 +618,10 @@ func (adm *ActivityDumpManager) StopActivityDump(params *api.ActivityDumpStopPar
var errMsg error
if params.GetName() != "" {
errMsg = fmt.Errorf("the activity dump manager does not contain any ActivityDump with the following name: %s", params.GetName())
- } else /* if params.GetContainerID() != "" */ {
+ } else if params.GetContainerID() != "" {
errMsg = fmt.Errorf("the activity dump manager does not contain any ActivityDump with the following containerID: %s", params.GetContainerID())
+ } else /* if params.GetCGroupID() != "" */ {
+ errMsg = fmt.Errorf("the activity dump manager does not contain any ActivityDump with the following cgroup ID: %s", params.GetCGroupID())
}
return &api.ActivityDumpStopMessage{Error: errMsg.Error()}, errMsg
}
@@ -786,13 +813,14 @@ func (adm *ActivityDumpManager) SendStats() error {
func (adm *ActivityDumpManager) SnapshotTracedCgroups() {
var err error
var event model.CgroupTracingEvent
- containerIDB := make([]byte, model.ContainerIDLen)
+ var cgroupFile model.PathKey
+
iterator := adm.tracedCgroupsMap.Iterate()
seclog.Infof("snapshotting traced_cgroups map")
- for iterator.Next(&containerIDB, &event.ConfigCookie) {
+ for iterator.Next(&cgroupFile, &event.ConfigCookie) {
adm.Lock()
- if adm.ignoreFromSnapshot[string(containerIDB)] {
+ if adm.ignoreFromSnapshot[cgroupFile] {
adm.Unlock()
continue
}
@@ -800,15 +828,8 @@ func (adm *ActivityDumpManager) SnapshotTracedCgroups() {
if err = adm.activityDumpsConfigMap.Lookup(&event.ConfigCookie, &event.Config); err != nil {
// this config doesn't exist anymore, remove expired entries
- seclog.Errorf("config not found for (%s): %v", string(containerIDB), err)
- _ = adm.tracedCgroupsMap.Delete(containerIDB)
- continue
- }
-
- if _, err = event.ContainerContext.UnmarshalBinary(containerIDB[:]); err != nil {
- seclog.Errorf("couldn't unmarshal container ID from traced_cgroups key: %v", err)
- // remove invalid entry
- _ = adm.tracedCgroupsMap.Delete(containerIDB)
+ seclog.Errorf("config not found for (%v): %v", cgroupFile, err)
+ _ = adm.tracedCgroupsMap.Delete(cgroupFile)
continue
}
@@ -879,7 +900,7 @@ func (adm *ActivityDumpManager) triggerLoadController() {
}
// remove container ID from the map of ignored container IDs for the snapshot
- delete(adm.ignoreFromSnapshot, ad.Metadata.ContainerID)
+ delete(adm.ignoreFromSnapshot, ad.Metadata.CGroupContext.CGroupFile)
adm.Unlock()
}
}
@@ -902,7 +923,7 @@ func (adm *ActivityDumpManager) getOverweightDumps() []*ActivityDump {
if dumpSize >= int64(adm.config.RuntimeSecurity.ActivityDumpMaxDumpSize()) {
toDelete = append([]int{i}, toDelete...)
dumps = append(dumps, ad)
- adm.ignoreFromSnapshot[ad.Metadata.ContainerID] = true
+ adm.ignoreFromSnapshot[ad.Metadata.CGroupContext.CGroupFile] = true
}
}
for _, i := range toDelete {
diff --git a/pkg/security/security_profile/dump/manager_test.go b/pkg/security/security_profile/dump/manager_test.go
index f16d599230fd67..d7075b4d62f42d 100644
--- a/pkg/security/security_profile/dump/manager_test.go
+++ b/pkg/security/security_profile/dump/manager_test.go
@@ -17,6 +17,7 @@ import (
"github.com/DataDog/datadog-go/v5/statsd"
"github.com/DataDog/datadog-agent/pkg/security/config"
+ "github.com/DataDog/datadog-agent/pkg/security/secl/model"
activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree"
mtdt "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree/metadata"
)
@@ -197,7 +198,7 @@ func TestActivityDumpManager_getExpiredDumps(t *testing.T) {
adm := &ActivityDumpManager{
activeDumps: tt.fields.activeDumps,
- ignoreFromSnapshot: make(map[string]bool),
+ ignoreFromSnapshot: make(map[model.PathKey]bool),
}
expiredDumps := adm.getExpiredDumps()
@@ -474,7 +475,7 @@ func TestActivityDumpManager_getOverweightDumps(t *testing.T) {
},
},
statsdClient: &statsd.NoOpClient{},
- ignoreFromSnapshot: make(map[string]bool),
+ ignoreFromSnapshot: make(map[model.PathKey]bool),
}
compareListOfDumps(t, adm.getOverweightDumps(), tt.overweightDumps)
diff --git a/pkg/security/security_profile/tests/activity_tree_test.go b/pkg/security/security_profile/tests/activity_tree_test.go
index a814932f385fd6..7f100d75c18d13 100644
--- a/pkg/security/security_profile/tests/activity_tree_test.go
+++ b/pkg/security/security_profile/tests/activity_tree_test.go
@@ -687,7 +687,7 @@ func TestActivityTree_CreateProcessNode(t *testing.T) {
if tt == dumpTree {
dump := dump.NewEmptyActivityDump(nil)
- dump.Metadata.ContainerID = contID
+ dump.Metadata.ContainerID = containerutils.ContainerID(contID)
at = dump.ActivityTree
} else /* profileTree */ {
profile := profile.NewSecurityProfile(cgroupModel.WorkloadSelector{Image: "image", Tag: "tag"}, []model.EventType{model.ExecEventType, model.DNSEventType}, nil)
diff --git a/pkg/security/tests/activity_dumps_test.go b/pkg/security/tests/activity_dumps_test.go
index 0046251a969bd9..07189c9a8d2ba2 100644
--- a/pkg/security/tests/activity_dumps_test.go
+++ b/pkg/security/tests/activity_dumps_test.go
@@ -93,7 +93,7 @@ func TestActivityDumps(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -134,7 +134,7 @@ func TestActivityDumps(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -211,7 +211,7 @@ func TestActivityDumps(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -256,7 +256,7 @@ func TestActivityDumps(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -295,7 +295,7 @@ func TestActivityDumps(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -338,7 +338,7 @@ func TestActivityDumps(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -394,7 +394,7 @@ func TestActivityDumps(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
diff --git a/pkg/security/tests/cmdwrapper.go b/pkg/security/tests/cmdwrapper.go
index 1d25a6b4a76645..ca91fb42dd9ece 100644
--- a/pkg/security/tests/cmdwrapper.go
+++ b/pkg/security/tests/cmdwrapper.go
@@ -11,6 +11,7 @@ package tests
import (
"fmt"
"os/exec"
+ "strconv"
"strings"
"testing"
@@ -78,8 +79,10 @@ type dockerCmdWrapper struct {
executable string
mountSrc string
mountDest string
+ pid int64
containerName string
containerID string
+ cgroupID string
image string
}
@@ -101,9 +104,24 @@ func (d *dockerCmdWrapper) start() ([]byte, error) {
d.containerName = fmt.Sprintf("docker-wrapper-%s", utils.RandString(6))
cmd := exec.Command(d.executable, "run", "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined", "--rm", "--cap-add", "NET_ADMIN", "-d", "--name", d.containerName, "-v", d.mountSrc+":"+d.mountDest, d.image, "sleep", "1200")
out, err := cmd.CombinedOutput()
- if err == nil {
- d.containerID = strings.TrimSpace(string(out))
+ if err != nil {
+ return nil, err
+ }
+
+ d.containerID = strings.TrimSpace(string(out))
+
+ cmd = exec.Command(d.executable, "inspect", "--format", "{{ .State.Pid }}", d.containerID)
+ out, err = cmd.CombinedOutput()
+ if err != nil {
+ return nil, err
+ }
+
+ d.pid, _ = strconv.ParseInt(strings.TrimSpace(string(out)), 10, 64)
+
+ if d.cgroupID, err = getPIDCGroup(uint32(d.pid)); err != nil {
+ return nil, err
}
+
return out, err
}
diff --git a/pkg/security/tests/main_linux.go b/pkg/security/tests/main_linux.go
index c64b83fbc917d3..bea7537bf4f913 100644
--- a/pkg/security/tests/main_linux.go
+++ b/pkg/security/tests/main_linux.go
@@ -129,6 +129,20 @@ func SkipIfNotAvailable(t *testing.T) {
}
}
+// getPIDCGroup returns the path of the first cgroup found for a PID
+func getPIDCGroup(pid uint32) (string, error) {
+ cgroups, err := utils.GetProcControlGroups(pid, pid)
+ if err != nil {
+ return "", err
+ }
+
+ if len(cgroups) == 0 {
+ return "", fmt.Errorf("failed to find cgroup for pid %d", pid)
+ }
+
+ return cgroups[0].Path, nil
+}
+
func preTestsHook() {
if trace {
args := slices.DeleteFunc(os.Args, func(arg string) bool {
diff --git a/pkg/security/tests/main_windows.go b/pkg/security/tests/main_windows.go
index 945126ae6c59c4..4cc1f887542189 100644
--- a/pkg/security/tests/main_windows.go
+++ b/pkg/security/tests/main_windows.go
@@ -8,6 +8,13 @@
// Package tests holds tests related files
package tests
+import "errors"
+
+// getPIDCGroup returns the path of the first cgroup found for a PID
+func getPIDCGroup(pid uint32) (string, error) {
+ return "", errors.New("cgroups are not supported on Windows")
+}
+
func preTestsHook() {}
func postTestsHook() {}
diff --git a/pkg/security/tests/module_tester_linux.go b/pkg/security/tests/module_tester_linux.go
index 54d262fdf599d8..37a54cf6fee5b6 100644
--- a/pkg/security/tests/module_tester_linux.go
+++ b/pkg/security/tests/module_tester_linux.go
@@ -43,6 +43,7 @@ import (
cgroupModel "github.com/DataDog/datadog-agent/pkg/security/resolvers/cgroup/model"
rulesmodule "github.com/DataDog/datadog-agent/pkg/security/rules"
"github.com/DataDog/datadog-agent/pkg/security/rules/bundled"
+ "github.com/DataDog/datadog-agent/pkg/security/secl/containerutils"
"github.com/DataDog/datadog-agent/pkg/security/secl/model"
"github.com/DataDog/datadog-agent/pkg/security/secl/rules"
activity_tree "github.com/DataDog/datadog-agent/pkg/security/security_profile/activity_tree"
@@ -1124,7 +1125,7 @@ func checkNetworkCompatibility(tb testing.TB) {
})
}
-func (tm *testModule) StopActivityDump(name, containerID string) error {
+func (tm *testModule) StopActivityDump(name string) error {
p, ok := tm.probe.PlatformProbe.(*sprobe.EBPFProbe)
if !ok {
return errors.New("not supported")
@@ -1135,8 +1136,7 @@ func (tm *testModule) StopActivityDump(name, containerID string) error {
return errors.New("no manager")
}
params := &api.ActivityDumpStopParams{
- Name: name,
- ContainerID: containerID,
+ Name: name,
}
_, err := managers.StopActivityDump(params)
if err != nil {
@@ -1147,7 +1147,8 @@ func (tm *testModule) StopActivityDump(name, containerID string) error {
type activityDumpIdentifier struct {
Name string
- ContainerID string
+ ContainerID containerutils.ContainerID
+ CGroupID containerutils.CGroupID
Timeout string
OutputFiles []string
}
@@ -1182,7 +1183,8 @@ func (tm *testModule) ListActivityDumps() ([]*activityDumpIdentifier, error) {
dumps = append(dumps, &activityDumpIdentifier{
Name: dump.Metadata.Name,
- ContainerID: dump.Metadata.ContainerID,
+ ContainerID: containerutils.ContainerID(dump.Metadata.ContainerID),
+ CGroupID: containerutils.CGroupID(dump.Metadata.CGroupID),
Timeout: dump.Metadata.Timeout,
OutputFiles: files,
})
@@ -1252,6 +1254,7 @@ func (tm *testModule) StartADocker() (*dockerCmdWrapper, error) {
}
time.Sleep(1 * time.Second) // a quick sleep to ensure the dump has started
+
return docker, nil
}
@@ -1260,7 +1263,7 @@ func (tm *testModule) GetDumpFromDocker(dockerInstance *dockerCmdWrapper) (*acti
if err != nil {
return nil, err
}
- dump := findLearningContainerID(dumps, dockerInstance.containerID)
+ dump := findLearningContainerID(dumps, containerutils.ContainerID(dockerInstance.containerID))
if dump == nil {
return nil, errors.New("ContainerID not found on activity dump list")
}
@@ -1281,7 +1284,7 @@ func (tm *testModule) StartADockerGetDump() (*dockerCmdWrapper, *activityDumpIde
}
//nolint:deadcode,unused
-func findLearningContainerID(dumps []*activityDumpIdentifier, containerID string) *activityDumpIdentifier {
+func findLearningContainerID(dumps []*activityDumpIdentifier, containerID containerutils.ContainerID) *activityDumpIdentifier {
for _, dump := range dumps {
if dump.ContainerID == containerID {
return dump
@@ -1538,7 +1541,7 @@ func (tm *testModule) StopAllActivityDumps() error {
return nil
}
for _, dump := range dumps {
- _ = tm.StopActivityDump(dump.Name, "")
+ _ = tm.StopActivityDump(dump.Name)
}
dumps, err = tm.ListActivityDumps()
if err != nil {
diff --git a/pkg/security/tests/security_profile_test.go b/pkg/security/tests/security_profile_test.go
index 1c814ea196f5ca..01faf63d61ed53 100644
--- a/pkg/security/tests/security_profile_test.go
+++ b/pkg/security/tests/security_profile_test.go
@@ -87,7 +87,7 @@ func TestSecurityProfile(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -97,7 +97,8 @@ func TestSecurityProfile(t *testing.T) {
if sp.Metadata.Name != dump.Name {
t.Errorf("Profile name %s != %s\n", sp.Metadata.Name, dump.Name)
}
- if sp.Metadata.ContainerID != dump.ContainerID {
+ if (sp.Metadata.ContainerID != dump.ContainerID) &&
+ (sp.Metadata.CGroupContext.CGroupID != dump.CGroupID) {
t.Errorf("Profile containerID %s != %s\n", sp.Metadata.ContainerID, dump.ContainerID)
}
@@ -105,7 +106,7 @@ func TestSecurityProfile(t *testing.T) {
if ctx == nil {
t.Errorf("No profile context found!")
} else {
- if !slices.Contains(ctx.Tags, "container_id:"+dump.ContainerID) {
+ if !slices.Contains(ctx.Tags, "container_id:"+string(dump.ContainerID)) {
t.Errorf("Profile did not contains container_id tag: %v\n", ctx.Tags)
}
if !slices.Contains(ctx.Tags, "image_tag:latest") {
@@ -140,7 +141,7 @@ func TestSecurityProfile(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -179,7 +180,7 @@ func TestSecurityProfile(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -267,7 +268,7 @@ func TestAnomalyDetection(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -299,7 +300,7 @@ func TestAnomalyDetection(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -332,7 +333,7 @@ func TestAnomalyDetection(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -368,7 +369,7 @@ func TestAnomalyDetection(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -443,7 +444,7 @@ func TestAnomalyDetectionWarmup(t *testing.T) {
cmd.CombinedOutput()
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -605,7 +606,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -639,7 +640,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -669,7 +670,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -706,7 +707,7 @@ func TestSecurityProfileReinsertionPeriod(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -840,7 +841,7 @@ func TestSecurityProfileAutoSuppression(t *testing.T) {
}
})
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -981,7 +982,7 @@ func TestSecurityProfileDifferentiateArgs(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -1078,7 +1079,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) {
t.Fatal(err)
}
- dockerInstanceV1, err := test.StartADocker()
+ dockerInstanceV1, dump, err := test.StartADockerGetDump()
if err != nil {
t.Fatal(err)
}
@@ -1091,7 +1092,7 @@ func TestSecurityProfileLifeCycleExecs(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump("", dockerInstanceV1.containerID)
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -1252,7 +1253,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) {
t.Fatal(err)
}
- dockerInstanceV1, err := test.StartADocker()
+ dockerInstanceV1, dump, err := test.StartADockerGetDump()
if err != nil {
t.Fatal(err)
}
@@ -1265,7 +1266,7 @@ func TestSecurityProfileLifeCycleDNS(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump("", dockerInstanceV1.containerID)
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -1425,7 +1426,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) {
t.Fatal(err)
}
- dockerInstanceV1, err := test.StartADocker()
+ dockerInstanceV1, dump, err := test.StartADockerGetDump()
if err != nil {
t.Fatal(err)
}
@@ -1438,7 +1439,7 @@ func TestSecurityProfileLifeCycleSyscall(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events be added to the dump
- err = test.StopActivityDump("", dockerInstanceV1.containerID)
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -1614,7 +1615,7 @@ func TestSecurityProfileLifeCycleEvictionProcess(t *testing.T) {
t.Fatal(err)
}
- dockerInstanceV1, err := test.StartADocker()
+ dockerInstanceV1, dump, err := test.StartADockerGetDump()
if err != nil {
t.Fatal(err)
}
@@ -1627,7 +1628,7 @@ func TestSecurityProfileLifeCycleEvictionProcess(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump("", dockerInstanceV1.containerID)
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -1792,7 +1793,7 @@ func TestSecurityProfileLifeCycleEvictionDNS(t *testing.T) {
t.Fatal(err)
}
- dockerInstanceV1, err := test.StartADocker()
+ dockerInstanceV1, dump, err := test.StartADockerGetDump()
if err != nil {
t.Fatal(err)
}
@@ -1805,7 +1806,7 @@ func TestSecurityProfileLifeCycleEvictionDNS(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump("", dockerInstanceV1.containerID)
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -1970,7 +1971,7 @@ func TestSecurityProfileLifeCycleEvictionProcessUnstable(t *testing.T) {
t.Fatal(err)
}
- dockerInstanceV1, err := test.StartADocker()
+ dockerInstanceV1, dump, err := test.StartADockerGetDump()
if err != nil {
t.Fatal(err)
}
@@ -1983,7 +1984,7 @@ func TestSecurityProfileLifeCycleEvictionProcessUnstable(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump("", dockerInstanceV1.containerID)
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -2148,13 +2149,13 @@ func TestSecurityProfilePersistence(t *testing.T) {
}
defer test.Close()
- dockerInstance1, err := test.StartADocker()
+ dockerInstance1, dump, err := test.StartADockerGetDump()
if err != nil {
t.Fatal(err)
}
defer dockerInstance1.stop()
- err = test.StopActivityDump("", dockerInstance1.containerID)
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
diff --git a/pkg/security/tests/threat_score_test.go b/pkg/security/tests/threat_score_test.go
index 2256847bc5f867..13d11ddc524518 100644
--- a/pkg/security/tests/threat_score_test.go
+++ b/pkg/security/tests/threat_score_test.go
@@ -100,7 +100,7 @@ func TestActivityDumpsThreatScore(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -150,7 +150,7 @@ func TestActivityDumpsThreatScore(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -191,7 +191,7 @@ func TestActivityDumpsThreatScore(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
@@ -236,7 +236,7 @@ func TestActivityDumpsThreatScore(t *testing.T) {
}
time.Sleep(1 * time.Second) // a quick sleep to let events to be added to the dump
- err = test.StopActivityDump(dump.Name, "")
+ err = test.StopActivityDump(dump.Name)
if err != nil {
t.Fatal(err)
}
diff --git a/pkg/security/utils/cgroup.go b/pkg/security/utils/cgroup.go
index b4a3de192d7ded..5dbbb97c58af1b 100644
--- a/pkg/security/utils/cgroup.go
+++ b/pkg/security/utils/cgroup.go
@@ -90,9 +90,10 @@ func GetProcContainerContext(tgid, pid uint32) (containerutils.ContainerID, mode
return "", model.CGroupContext{}, err
}
- containerID, runtime := cgroups[0].GetContainerContext()
+ lastCgroup := len(cgroups) - 1
+ containerID, runtime := cgroups[lastCgroup].GetContainerContext()
cgroupContext := model.CGroupContext{
- CGroupID: containerutils.CGroupID(cgroups[0].Path),
+ CGroupID: containerutils.CGroupID(cgroups[lastCgroup].Path),
CGroupFlags: runtime,
}
diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod
index dd7f21c9fdbe97..62d3ab7c2450cd 100644
--- a/pkg/serializer/go.mod
+++ b/pkg/serializer/go.mod
@@ -79,7 +79,7 @@ require (
github.com/DataDog/datadog-agent/pkg/util/json v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/log v0.59.1
github.com/DataDog/datadog-agent/pkg/version v0.59.1
- github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0
github.com/gogo/protobuf v1.3.2
github.com/json-iterator/go v1.1.12
github.com/protocolbuffers/protoscope v0.0.0-20221109213918-8e7a6aafa2c9
diff --git a/pkg/serializer/go.sum b/pkg/serializer/go.sum
index 67815a3db8c1d2..240d357b106d45 100644
--- a/pkg/serializer/go.sum
+++ b/pkg/serializer/go.sum
@@ -4,10 +4,10 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju
github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0 h1:cXcKVEU1D0HlguR7GunnvuI70TghkarCa9DApqzMY94=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0/go.mod h1:ES00EXfyEKgUkjd93tAXCxJA6i0seeOhZoS5Cj2qzzg=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 h1:63SzQz9Ab8XJj8fQKQz6UZNBhOm8rucwzbDfwTVF6dQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0/go.mod h1:E/PY/aQ6S/N5hBPHXZRGmovs5b1BSi4RHGNcB4yP/Z0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
diff --git a/pkg/trace/api/otlp.go b/pkg/trace/api/otlp.go
index de53f14d369ec2..88491ea9052ec1 100644
--- a/pkg/trace/api/otlp.go
+++ b/pkg/trace/api/otlp.go
@@ -684,6 +684,13 @@ func resourceFromTags(meta map[string]string) string {
return m + " " + svc
}
return m
+ } else if typ := meta[semconv117.AttributeGraphqlOperationType]; typ != "" {
+ // Enrich GraphQL query resource names.
+ // See https://github.com/open-telemetry/semantic-conventions/blob/v1.29.0/docs/graphql/graphql-spans.md
+ if name := meta[semconv117.AttributeGraphqlOperationName]; name != "" {
+ return typ + " " + name
+ }
+ return typ
}
return ""
}
diff --git a/pkg/trace/api/otlp_test.go b/pkg/trace/api/otlp_test.go
index bd6377ff4612d0..0966ee75ff1e91 100644
--- a/pkg/trace/api/otlp_test.go
+++ b/pkg/trace/api/otlp_test.go
@@ -1573,6 +1573,18 @@ func TestOTLPHelpers(t *testing.T) {
meta: map[string]string{semconv.AttributeRPCMethod: "M"},
out: "M",
},
+ {
+ meta: map[string]string{"graphql.operation.name": "myQuery"},
+ out: "",
+ },
+ {
+ meta: map[string]string{"graphql.operation.type": "query"},
+ out: "query",
+ },
+ {
+ meta: map[string]string{"graphql.operation.type": "query", "graphql.operation.name": "myQuery"},
+ out: "query myQuery",
+ },
} {
assert.Equal(t, tt.out, resourceFromTags(tt.meta))
}
diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod
index 7d0666e48194e6..fa1ca487a3dc87 100644
--- a/pkg/trace/go.mod
+++ b/pkg/trace/go.mod
@@ -20,8 +20,8 @@ require (
github.com/DataDog/datadog-agent/pkg/util/log v0.59.0
github.com/DataDog/datadog-agent/pkg/util/pointer v0.59.0
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.59.0
- github.com/DataDog/datadog-go/v5 v5.5.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
+ github.com/DataDog/datadog-go/v5 v5.6.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
github.com/DataDog/sketches-go v1.4.6
github.com/Microsoft/go-winio v0.6.2
github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect
@@ -85,6 +85,7 @@ require (
github.com/outcaste-io/ristretto v0.2.3 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
github.com/pkg/errors v0.9.1 // indirect
+ github.com/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-20220216144756-c35f1ee13d7c // indirect
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
diff --git a/pkg/trace/go.sum b/pkg/trace/go.sum
index 2500f28a6512ce..4613790f7cc34e 100644
--- a/pkg/trace/go.sum
+++ b/pkg/trace/go.sum
@@ -1,11 +1,11 @@
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc=
github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4=
github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY=
@@ -129,6 +129,8 @@ github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1Gsh
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/pkg/trace/stats/oteltest/go.mod b/pkg/trace/stats/oteltest/go.mod
index b6992747ee41ba..306e0217b22ad0 100644
--- a/pkg/trace/stats/oteltest/go.mod
+++ b/pkg/trace/stats/oteltest/go.mod
@@ -6,8 +6,8 @@ require (
github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/statsprocessor v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/proto v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3
- github.com/DataDog/datadog-go/v5 v5.5.0
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0
+ github.com/DataDog/datadog-go/v5 v5.6.0
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0
github.com/google/go-cmp v0.6.0
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/collector/component/componenttest v0.115.0
@@ -59,6 +59,7 @@ require (
github.com/outcaste-io/ristretto v0.2.3 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
github.com/pkg/errors v0.9.1 // indirect
+ github.com/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-20220216144756-c35f1ee13d7c // indirect
github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect
diff --git a/pkg/trace/stats/oteltest/go.sum b/pkg/trace/stats/oteltest/go.sum
index 6d97a133216365..25a9e6fccac3c1 100644
--- a/pkg/trace/stats/oteltest/go.sum
+++ b/pkg/trace/stats/oteltest/go.sum
@@ -1,11 +1,11 @@
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc=
github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4=
github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/zstd v1.5.6 h1:LbEglqepa/ipmmQJUDnSsfvA8e8IStVcGaFWDuxvGOY=
@@ -92,6 +92,8 @@ github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1Gsh
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
diff --git a/pkg/trace/traceutil/otel_util.go b/pkg/trace/traceutil/otel_util.go
index bb3e03783c4dc4..5e645f7b6673ba 100644
--- a/pkg/trace/traceutil/otel_util.go
+++ b/pkg/trace/traceutil/otel_util.go
@@ -195,6 +195,13 @@ func GetOTelResourceV1(span ptrace.Span, res pcommon.Resource) (resName string)
// ...and service if available
resName = resName + " " + svc
}
+ } else if m := GetOTelAttrValInResAndSpanAttrs(span, res, false, semconv117.AttributeGraphqlOperationType); m != "" {
+ // Enrich GraphQL query resource names.
+ // See https://github.com/open-telemetry/semantic-conventions/blob/v1.29.0/docs/graphql/graphql-spans.md
+ resName = m
+ if name := GetOTelAttrValInResAndSpanAttrs(span, res, false, semconv117.AttributeGraphqlOperationName); name != "" {
+ resName = resName + " " + name
+ }
} else {
resName = span.Name()
}
@@ -249,6 +256,16 @@ func GetOTelResourceV2(span ptrace.Span, res pcommon.Resource) (resName string)
}
return
}
+
+ if m := GetOTelAttrValInResAndSpanAttrs(span, res, false, semconv117.AttributeGraphqlOperationType); m != "" {
+ // Enrich GraphQL query resource names.
+ // See https://github.com/open-telemetry/semantic-conventions/blob/v1.29.0/docs/graphql/graphql-spans.md
+ resName = m
+ if name := GetOTelAttrValInResAndSpanAttrs(span, res, false, semconv117.AttributeGraphqlOperationName); name != "" {
+ resName = resName + " " + name
+ }
+ return
+ }
resName = span.Name()
return
diff --git a/pkg/trace/traceutil/otel_util_test.go b/pkg/trace/traceutil/otel_util_test.go
index 9b6934caf3a7a8..201c64a0745b81 100644
--- a/pkg/trace/traceutil/otel_util_test.go
+++ b/pkg/trace/traceutil/otel_util_test.go
@@ -293,6 +293,27 @@ func TestGetOTelResource(t *testing.T) {
expectedV1: strings.Repeat("a", MaxResourceLen),
expectedV2: strings.Repeat("a", MaxResourceLen),
},
+ {
+ name: "GraphQL with no type",
+ sattrs: map[string]string{"graphql.operation.name": "myQuery"},
+ normalize: false,
+ expectedV1: "span_name",
+ expectedV2: "span_name",
+ },
+ {
+ name: "GraphQL with only type",
+ sattrs: map[string]string{"graphql.operation.type": "query"},
+ normalize: false,
+ expectedV1: "query",
+ expectedV2: "query",
+ },
+ {
+ name: "GraphQL with only type",
+ sattrs: map[string]string{"graphql.operation.type": "query", "graphql.operation.name": "myQuery"},
+ normalize: false,
+ expectedV1: "query myQuery",
+ expectedV2: "query myQuery",
+ },
} {
t.Run(tt.name, func(t *testing.T) {
span := ptrace.NewSpan()
diff --git a/pkg/util/containers/filter.go b/pkg/util/containers/filter.go
index 1e2ab52934e776..63676bc59533d5 100644
--- a/pkg/util/containers/filter.go
+++ b/pkg/util/containers/filter.go
@@ -112,6 +112,7 @@ func parseFilters(filters []string) (imageFilters, nameFilters, namespaceFilters
for _, filter := range filters {
switch {
case strings.HasPrefix(filter, imageFilterPrefix):
+ filter = preprocessImageFilter(filter)
r, err := filterToRegex(filter, imageFilterPrefix)
if err != nil {
filterErrs = append(filterErrs, err.Error())
@@ -145,6 +146,19 @@ func parseFilters(filters []string) (imageFilters, nameFilters, namespaceFilters
return imageFilters, nameFilters, namespaceFilters, filterWarnings, nil
}
+// preprocessImageFilter modifies image filters having the format `name$`, where {name} doesn't include a colon (e.g. nginx$, ^nginx$), to
+// `name:.*`.
+// This is done so that image filters can still match even if the matched image contains the tag or digest.
+func preprocessImageFilter(imageFilter string) string {
+ regexVal := strings.TrimPrefix(imageFilter, imageFilterPrefix)
+ if strings.HasSuffix(regexVal, "$") && !strings.Contains(regexVal, ":") {
+ mutatedRegexVal := regexVal[:len(regexVal)-1] + "(@sha256)?:.*"
+ return imageFilterPrefix + mutatedRegexVal
+ }
+
+ return imageFilter
+}
+
// filterToRegex checks a filter's regex
func filterToRegex(filter string, filterPrefix string) (*regexp.Regexp, error) {
pat := strings.TrimPrefix(filter, filterPrefix)
@@ -327,7 +341,16 @@ func NewAutodiscoveryFilter(ft FilterType) (*Filter, error) {
// based on the filters in the containerFilter instance. Consider also using
// Note: exclude filters are not applied to empty container names, empty
// images and empty namespaces.
+//
+// containerImage may or may not contain the image tag or image digest. (e.g. nginx:latest and nginx are both valid)
func (cf Filter) IsExcluded(annotations map[string]string, containerName, containerImage, podNamespace string) bool {
+
+ // If containerImage doesn't include the tag or digest, add a colon so that it
+ // can match image filters
+ if len(containerImage) > 0 && !strings.Contains(containerImage, ":") {
+ containerImage += ":"
+ }
+
if cf.isExcludedByAnnotation(annotations, containerName) {
return true
}
diff --git a/pkg/util/containers/filter_test.go b/pkg/util/containers/filter_test.go
index 1c1d768a4dfc05..ea33a72134f467 100644
--- a/pkg/util/containers/filter_test.go
+++ b/pkg/util/containers/filter_test.go
@@ -28,6 +28,14 @@ func TestFilter(t *testing.T) {
c ctnDef
ns string
}{
+ {
+ c: ctnDef{
+ ID: "0",
+ Name: "container-with-sha",
+ Image: "docker-dd-agent@sha256:1892862abcdef61516516",
+ },
+ ns: "default",
+ },
{
c: ctnDef{
ID: "1",
@@ -268,25 +276,33 @@ func TestFilter(t *testing.T) {
expectedIDs []string
}{
{
- expectedIDs: []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
+ expectedIDs: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
},
{
- excludeList: []string{"name:secret"},
+ excludeList: []string{"image:^docker-dd-agent$"},
expectedIDs: []string{"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
},
+ {
+ excludeList: []string{"image:^apache$"},
+ expectedIDs: []string{"0", "1", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
+ },
+ {
+ excludeList: []string{"name:secret"},
+ expectedIDs: []string{"0", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
+ },
{
excludeList: []string{"image:secret"},
- expectedIDs: []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
+ expectedIDs: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
},
{
includeList: []string{},
excludeList: []string{"image:apache", "image:alpine"},
- expectedIDs: []string{"1", "3", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
+ expectedIDs: []string{"0", "1", "3", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
},
{
includeList: []string{"name:mysql"},
excludeList: []string{"name:dd"},
- expectedIDs: []string{"3", "5", "6", "7", "8", "9", "10", "11", "12", "13", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
+ expectedIDs: []string{"0", "3", "5", "6", "7", "8", "9", "10", "11", "12", "13", "16", "17", "18", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
},
{
excludeList: []string{"kube_namespace:.*"},
@@ -295,7 +311,7 @@ func TestFilter(t *testing.T) {
},
{
excludeList: []string{"kube_namespace:bar"},
- expectedIDs: []string{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
+ expectedIDs: []string{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "19", "20", "23", "24", "25", "26", "27", "28", "29", "30", "31"},
},
{
excludeList: []string{"name:.*"},
@@ -305,7 +321,17 @@ func TestFilter(t *testing.T) {
{
excludeList: []string{"image:.*"},
includeList: []string{"image:docker-dd-agent"},
- expectedIDs: []string{"1", "30"},
+ expectedIDs: []string{"0", "1", "30"},
+ },
+ {
+ excludeList: []string{"image:.*"},
+ includeList: []string{"image:^docker-dd-agent$"},
+ expectedIDs: []string{"0", "1", "30"},
+ },
+ {
+ excludeList: []string{"image:.*"},
+ includeList: []string{"image:^docker-dd-agent$"},
+ expectedIDs: []string{"0", "1", "30"},
},
// Test kubernetes defaults
{
@@ -326,7 +352,7 @@ func TestFilter(t *testing.T) {
pauseContainerUpstream,
pauseContainerCDK,
},
- expectedIDs: []string{"1", "2", "3", "4", "5", "14", "15", "29", "30", "31"},
+ expectedIDs: []string{"0", "1", "2", "3", "4", "5", "14", "15", "29", "30", "31"},
},
} {
t.Run("", func(t *testing.T) {
@@ -624,6 +650,15 @@ func TestParseFilters(t *testing.T) {
expectedErrMsg: nil,
filterErrors: nil,
},
+ {
+ desc: "valid filters, image filter strict match without tag or digest",
+ filters: []string{"image:^nginx$", "name:xyz-.*", "kube_namespace:sandbox.*", "name:abc"},
+ imageFilters: []*regexp.Regexp{regexp.MustCompile("^nginx(@sha256)?:.*")},
+ nameFilters: []*regexp.Regexp{regexp.MustCompile("xyz-.*"), regexp.MustCompile("abc")},
+ namespaceFilters: []*regexp.Regexp{regexp.MustCompile("sandbox.*")},
+ expectedErrMsg: nil,
+ filterErrors: nil,
+ },
{
desc: "invalid regex",
filters: []string{"image:apache.*", "name:a(?=b)", "kube_namespace:sandbox.*", "name:abc"},
diff --git a/pkg/util/static_tags.go b/pkg/util/static_tags.go
index f6173daa9e4500..84589ed7e747c9 100644
--- a/pkg/util/static_tags.go
+++ b/pkg/util/static_tags.go
@@ -9,9 +9,8 @@ import (
"context"
"strings"
+ "github.com/DataDog/datadog-agent/comp/core/config"
"github.com/DataDog/datadog-agent/pkg/config/env"
- "github.com/DataDog/datadog-agent/pkg/config/model"
- pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup"
configUtils "github.com/DataDog/datadog-agent/pkg/config/utils"
"github.com/DataDog/datadog-agent/pkg/util/fargate"
"github.com/DataDog/datadog-agent/pkg/util/flavor"
@@ -24,7 +23,7 @@ import (
// included in host tags. In environments with no host metadata (such as where
// the hostname is empty), tags that would otherwise be included in host
// metadata are generated by this function.
-func GetStaticTagsSlice(ctx context.Context) []string {
+func GetStaticTagsSlice(ctx context.Context, datadogConfig config.Reader) []string {
// fargate (ECS or EKS) does not have host tags, so we need to
// add static tags to each container manually
@@ -35,7 +34,7 @@ func GetStaticTagsSlice(ctx context.Context) []string {
tags := []string{}
// DD_TAGS / DD_EXTRA_TAGS
- tags = append(tags, configUtils.GetConfiguredTags(pkgconfigsetup.Datadog(), false)...)
+ tags = append(tags, configUtils.GetConfiguredTags(datadogConfig, false)...)
// EKS Fargate specific tags
if env.IsFeaturePresent(env.EKSFargate) {
@@ -74,8 +73,8 @@ func GetStaticTagsSlice(ctx context.Context) []string {
// GetStaticTags is similar to GetStaticTagsSlice, but returning a map[string][]string containing
// : pairs for tags. Tags not matching this pattern are omitted.
-func GetStaticTags(ctx context.Context) map[string][]string {
- tags := GetStaticTagsSlice(ctx)
+func GetStaticTags(ctx context.Context, datadogConfig config.Component) map[string][]string {
+ tags := GetStaticTagsSlice(ctx, datadogConfig)
if tags == nil {
return nil
}
@@ -85,7 +84,7 @@ func GetStaticTags(ctx context.Context) map[string][]string {
// GetGlobalEnvTags is similar to GetStaticTags, but returning a map[string][]string containing
// : pairs for all global environment tags on the cluster agent. This includes:
// DD_TAGS, DD_EXTRA_TAGS, DD_CLUSTER_CHECKS_EXTRA_TAGS, and DD_ORCHESTRATOR_EXPLORER_EXTRA_TAGS
-func GetGlobalEnvTags(config model.Reader) map[string][]string {
+func GetGlobalEnvTags(config config.Reader) map[string][]string {
if flavor.GetFlavor() != flavor.ClusterAgent {
return nil
}
diff --git a/pkg/util/static_tags_test.go b/pkg/util/static_tags_test.go
index 013e79689fe945..e8fa2b33b004ee 100644
--- a/pkg/util/static_tags_test.go
+++ b/pkg/util/static_tags_test.go
@@ -26,7 +26,7 @@ func TestStaticTags(t *testing.T) {
t.Run("just tags", func(t *testing.T) {
mockConfig.SetWithoutSource("tags", []string{"some:tag", "another:tag", "nocolon"})
defer mockConfig.SetWithoutSource("tags", []string{})
- staticTags := GetStaticTags(context.Background())
+ staticTags := GetStaticTags(context.Background(), mockConfig)
assert.Equal(t, map[string][]string{
"some": {"tag"},
"another": {"tag"},
@@ -39,7 +39,7 @@ func TestStaticTags(t *testing.T) {
mockConfig.SetWithoutSource("extra_tags", []string{"extra:tag", "missingcolon"})
defer mockConfig.SetWithoutSource("tags", []string{})
defer mockConfig.SetWithoutSource("extra_tags", []string{})
- staticTags := GetStaticTags(context.Background())
+ staticTags := GetStaticTags(context.Background(), mockConfig)
assert.Equal(t, map[string][]string{
"some": {"tag"},
"extra": {"tag"},
@@ -50,7 +50,7 @@ func TestStaticTags(t *testing.T) {
t.Run("cluster name already set", func(t *testing.T) {
mockConfig.SetWithoutSource("tags", []string{"kube_cluster_name:foo"})
defer mockConfig.SetWithoutSource("tags", []string{})
- staticTags := GetStaticTags(context.Background())
+ staticTags := GetStaticTags(context.Background(), mockConfig)
assert.Equal(t, map[string][]string{
"eks_fargate_node": {"eksnode"},
"kube_cluster_name": {"foo"},
@@ -68,7 +68,7 @@ func TestStaticTagsSlice(t *testing.T) {
t.Run("just tags", func(t *testing.T) {
mockConfig.SetWithoutSource("tags", []string{"some:tag", "another:tag", "nocolon"})
defer mockConfig.SetWithoutSource("tags", []string{})
- staticTags := GetStaticTagsSlice(context.Background())
+ staticTags := GetStaticTagsSlice(context.Background(), mockConfig)
assert.ElementsMatch(t, []string{
"nocolon",
"some:tag",
@@ -82,7 +82,7 @@ func TestStaticTagsSlice(t *testing.T) {
mockConfig.SetWithoutSource("extra_tags", []string{"extra:tag", "missingcolon"})
defer mockConfig.SetWithoutSource("tags", []string{})
defer mockConfig.SetWithoutSource("extra_tags", []string{})
- staticTags := GetStaticTagsSlice(context.Background())
+ staticTags := GetStaticTagsSlice(context.Background(), mockConfig)
assert.ElementsMatch(t, []string{
"nocolon",
"missingcolon",
diff --git a/pkg/util/trivy/containerd.go b/pkg/util/trivy/containerd.go
index 94b8b7dab0f8b9..d3ed7ddf3f84cf 100644
--- a/pkg/util/trivy/containerd.go
+++ b/pkg/util/trivy/containerd.go
@@ -3,7 +3,7 @@
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2016-present Datadog, Inc.
-//go:build trivy
+//go:build trivy && containerd
package trivy
diff --git a/pkg/util/trivy/overlayfs.go b/pkg/util/trivy/overlayfs.go
index 8c5a73cf8e3ea4..f1f8e243983ccb 100644
--- a/pkg/util/trivy/overlayfs.go
+++ b/pkg/util/trivy/overlayfs.go
@@ -23,7 +23,7 @@ import (
// whiteoutCharDev is defined as zero and is not const only for testing as it
// is not allowed to mknod a 0/0 char dev in userns.
-var whiteoutCharDev uint64 = 0 //nolint:revive
+var whiteoutCharDev uint64 // = 0
var whiteout *fs.DirEntry
diff --git a/pkg/util/trivy/trivy.go b/pkg/util/trivy/trivy.go
index 07a15d58d93ac5..e78690f98ab6bf 100644
--- a/pkg/util/trivy/trivy.go
+++ b/pkg/util/trivy/trivy.go
@@ -19,16 +19,13 @@ import (
"sort"
"strings"
"sync"
- "time"
"github.com/containerd/containerd/mount"
- "github.com/containerd/containerd/namespaces"
"github.com/DataDog/datadog-agent/comp/core/config"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
"github.com/DataDog/datadog-agent/pkg/config/env"
"github.com/DataDog/datadog-agent/pkg/sbom"
- cutil "github.com/DataDog/datadog-agent/pkg/util/containerd"
containersimage "github.com/DataDog/datadog-agent/pkg/util/containers/image"
"github.com/DataDog/datadog-agent/pkg/util/crio"
"github.com/DataDog/datadog-agent/pkg/util/log"
@@ -48,9 +45,6 @@ import (
"github.com/aquasecurity/trivy/pkg/scanner/ospkg"
"github.com/aquasecurity/trivy/pkg/types"
"github.com/aquasecurity/trivy/pkg/vulnerability"
- "github.com/containerd/containerd"
- "github.com/containerd/containerd/leases"
- "github.com/containerd/errdefs"
"github.com/docker/docker/client"
// This is required to load sqlite based RPM databases
@@ -58,8 +52,6 @@ import (
)
const (
- cleanupTimeout = 30 * time.Second
-
OSAnalyzers = "os" // OSAnalyzers defines an OS analyzer
LanguagesAnalyzers = "languages" // LanguagesAnalyzers defines a language analyzer
SecretAnalyzers = "secret" // SecretAnalyzers defines a secret analyzer
@@ -70,9 +62,6 @@ const (
TypeImageConfigSecret = "image-config-secret" // TypeImageConfigSecret defines a history-dockerfile analyzer
)
-// ContainerdAccessor is a function that should return a containerd client
-type ContainerdAccessor func() (cutil.ContainerdItf, error)
-
// collectorConfig allows to pass configuration
type collectorConfig struct {
clearCacheOnClose bool
@@ -317,94 +306,6 @@ func (c *Collector) scanOverlayFS(ctx context.Context, layers []string, imgMeta
return report, nil
}
-// ScanContainerdImageFromSnapshotter scans containerd image directly from the snapshotter
-func (c *Collector) ScanContainerdImageFromSnapshotter(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, img containerd.Image, client cutil.ContainerdItf, scanOptions sbom.ScanOptions) (sbom.Report, error) {
- // Computing duration of containerd lease
- deadline, _ := ctx.Deadline()
- expiration := deadline.Sub(time.Now().Add(cleanupTimeout))
- clClient := client.RawClient()
- imageID := imgMeta.ID
-
- mounts, err := client.Mounts(ctx, expiration, imgMeta.Namespace, img)
- if err != nil {
- return nil, fmt.Errorf("unable to get mounts for image %s, err: %w", imgMeta.ID, err)
- }
-
- layers := extractLayersFromOverlayFSMounts(mounts)
- if len(layers) == 0 {
- return nil, fmt.Errorf("unable to extract layers from overlayfs mounts %+v for image %s", mounts, imgMeta.ID)
- }
-
- ctx = namespaces.WithNamespace(ctx, imgMeta.Namespace)
- // Adding a lease to cleanup dandling snaphots at expiration
- ctx, done, err := clClient.WithLease(ctx,
- leases.WithID(imageID),
- leases.WithExpiration(expiration),
- leases.WithLabels(map[string]string{
- "containerd.io/gc.ref.snapshot." + containerd.DefaultSnapshotter: imageID,
- }),
- )
- if err != nil && !errdefs.IsAlreadyExists(err) {
- return nil, fmt.Errorf("unable to get a lease, err: %w", err)
- }
-
- report, err := c.scanOverlayFS(ctx, layers, imgMeta, scanOptions)
-
- if err := done(ctx); err != nil {
- log.Warnf("Unable to cancel containerd lease with id: %s, err: %v", imageID, err)
- }
-
- return report, err
-}
-
-// ScanContainerdImage scans containerd image by exporting it and scanning the tarball
-func (c *Collector) ScanContainerdImage(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, img containerd.Image, client cutil.ContainerdItf, scanOptions sbom.ScanOptions) (sbom.Report, error) {
- fanalImage, cleanup, err := convertContainerdImage(ctx, client.RawClient(), imgMeta, img)
- if cleanup != nil {
- defer cleanup()
- }
- if err != nil {
- return nil, fmt.Errorf("unable to convert containerd image, err: %w", err)
- }
-
- return c.scanImage(ctx, fanalImage, imgMeta, scanOptions)
-}
-
-// ScanContainerdImageFromFilesystem scans containerd image from file-system
-func (c *Collector) ScanContainerdImageFromFilesystem(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, img containerd.Image, client cutil.ContainerdItf, scanOptions sbom.ScanOptions) (sbom.Report, error) {
- //nolint:gosimple // TODO(CINT) Fix go simple linte
- imagePath, err := os.MkdirTemp(os.TempDir(), fmt.Sprintf("containerd-image-*"))
- if err != nil {
- return nil, fmt.Errorf("unable to create temp dir, err: %w", err)
- }
- defer func() {
- err := os.RemoveAll(imagePath)
- if err != nil {
- log.Errorf("Unable to remove temp dir: %s, err: %v", imagePath, err)
- }
- }()
-
- // Computing duration of containerd lease
- deadline, _ := ctx.Deadline()
- expiration := deadline.Sub(time.Now().Add(cleanupTimeout))
-
- cleanUp, err := client.MountImage(ctx, expiration, imgMeta.Namespace, img, imagePath)
- if err != nil {
- return nil, fmt.Errorf("unable to mount containerd image, err: %w", err)
- }
-
- defer func() {
- cleanUpContext, cleanUpContextCancel := context.WithTimeout(context.Background(), cleanupTimeout)
- err := cleanUp(cleanUpContext)
- cleanUpContextCancel()
- if err != nil {
- log.Errorf("Unable to clean up mounted image, err: %v", err)
- }
- }()
-
- return c.scanFilesystem(ctx, os.DirFS("/"), imagePath, imgMeta, scanOptions)
-}
-
// ScanCRIOImageFromOverlayFS scans the CRI-O image layers using OverlayFS.
func (c *Collector) ScanCRIOImageFromOverlayFS(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, client crio.Client, scanOptions sbom.ScanOptions) (sbom.Report, error) {
lowerDirs, err := client.GetCRIOImageLayers(imgMeta)
diff --git a/pkg/util/trivy/trivy_containerd.go b/pkg/util/trivy/trivy_containerd.go
new file mode 100644
index 00000000000000..bd036354c514d9
--- /dev/null
+++ b/pkg/util/trivy/trivy_containerd.go
@@ -0,0 +1,119 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2016-present Datadog, Inc.
+
+//go:build trivy && containerd
+
+// Package trivy holds the scan components
+package trivy
+
+import (
+ "context"
+ "fmt"
+ "os"
+ "time"
+
+ workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/pkg/sbom"
+ cutil "github.com/DataDog/datadog-agent/pkg/util/containerd"
+ "github.com/DataDog/datadog-agent/pkg/util/log"
+ "github.com/containerd/containerd"
+ "github.com/containerd/containerd/leases"
+ "github.com/containerd/containerd/namespaces"
+ "github.com/containerd/errdefs"
+)
+
+const (
+ cleanupTimeout = 30 * time.Second
+)
+
+// ContainerdAccessor is a function that should return a containerd client
+type ContainerdAccessor func() (cutil.ContainerdItf, error)
+
+// ScanContainerdImageFromSnapshotter scans containerd image directly from the snapshotter
+func (c *Collector) ScanContainerdImageFromSnapshotter(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, img containerd.Image, client cutil.ContainerdItf, scanOptions sbom.ScanOptions) (sbom.Report, error) {
+ // Computing duration of containerd lease
+ deadline, _ := ctx.Deadline()
+ expiration := deadline.Sub(time.Now().Add(cleanupTimeout))
+ clClient := client.RawClient()
+ imageID := imgMeta.ID
+
+ mounts, err := client.Mounts(ctx, expiration, imgMeta.Namespace, img)
+ if err != nil {
+ return nil, fmt.Errorf("unable to get mounts for image %s, err: %w", imgMeta.ID, err)
+ }
+
+ layers := extractLayersFromOverlayFSMounts(mounts)
+ if len(layers) == 0 {
+ return nil, fmt.Errorf("unable to extract layers from overlayfs mounts %+v for image %s", mounts, imgMeta.ID)
+ }
+
+ ctx = namespaces.WithNamespace(ctx, imgMeta.Namespace)
+ // Adding a lease to cleanup dandling snaphots at expiration
+ ctx, done, err := clClient.WithLease(ctx,
+ leases.WithID(imageID),
+ leases.WithExpiration(expiration),
+ leases.WithLabels(map[string]string{
+ "containerd.io/gc.ref.snapshot." + containerd.DefaultSnapshotter: imageID,
+ }),
+ )
+ if err != nil && !errdefs.IsAlreadyExists(err) {
+ return nil, fmt.Errorf("unable to get a lease, err: %w", err)
+ }
+
+ report, err := c.scanOverlayFS(ctx, layers, imgMeta, scanOptions)
+
+ if err := done(ctx); err != nil {
+ log.Warnf("Unable to cancel containerd lease with id: %s, err: %v", imageID, err)
+ }
+
+ return report, err
+}
+
+// ScanContainerdImage scans containerd image by exporting it and scanning the tarball
+func (c *Collector) ScanContainerdImage(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, img containerd.Image, client cutil.ContainerdItf, scanOptions sbom.ScanOptions) (sbom.Report, error) {
+ fanalImage, cleanup, err := convertContainerdImage(ctx, client.RawClient(), imgMeta, img)
+ if cleanup != nil {
+ defer cleanup()
+ }
+ if err != nil {
+ return nil, fmt.Errorf("unable to convert containerd image, err: %w", err)
+ }
+
+ return c.scanImage(ctx, fanalImage, imgMeta, scanOptions)
+}
+
+// ScanContainerdImageFromFilesystem scans containerd image from file-system
+func (c *Collector) ScanContainerdImageFromFilesystem(ctx context.Context, imgMeta *workloadmeta.ContainerImageMetadata, img containerd.Image, client cutil.ContainerdItf, scanOptions sbom.ScanOptions) (sbom.Report, error) {
+ imagePath, err := os.MkdirTemp("", "containerd-image-*")
+ if err != nil {
+ return nil, fmt.Errorf("unable to create temp dir, err: %w", err)
+ }
+ defer func() {
+ err := os.RemoveAll(imagePath)
+ if err != nil {
+ log.Errorf("Unable to remove temp dir: %s, err: %v", imagePath, err)
+ }
+ }()
+
+ // Computing duration of containerd lease
+ deadline, _ := ctx.Deadline()
+ expiration := deadline.Sub(time.Now().Add(cleanupTimeout))
+
+ cleanUp, err := client.MountImage(ctx, expiration, imgMeta.Namespace, img, imagePath)
+ if err != nil {
+ return nil, fmt.Errorf("unable to mount containerd image, err: %w", err)
+ }
+
+ defer func() {
+ cleanUpContext, cleanUpContextCancel := context.WithTimeout(context.Background(), cleanupTimeout)
+ err := cleanUp(cleanUpContext)
+ cleanUpContextCancel()
+ if err != nil {
+ log.Errorf("Unable to clean up mounted image, err: %v", err)
+ }
+ }()
+
+ return c.scanFilesystem(ctx, os.DirFS("/"), imagePath, imgMeta, scanOptions)
+}
diff --git a/releasenotes/notes/Update-gstatus-binary-bbd8cd907bd974c3.yaml b/releasenotes/notes/Update-gstatus-binary-bbd8cd907bd974c3.yaml
new file mode 100644
index 00000000000000..8c62e4b4b2c874
--- /dev/null
+++ b/releasenotes/notes/Update-gstatus-binary-bbd8cd907bd974c3.yaml
@@ -0,0 +1,11 @@
+# Each section from every release note are combined when the
+# CHANGELOG.rst is rendered. So the text needs to be worded so that
+# it does not depend on any information only available in another
+# section. This may mean repeating some details, but each section
+# must be readable independently of the other.
+#
+# Each section note must be formatted as reStructuredText.
+---
+fixes:
+ - |
+ Upgrade `gstatus` binary to version 1.0.9 to work with newer version of GlusterFS.
diff --git a/releasenotes/notes/agent-flare-sestatus-5820cfc79ec91d1f.yaml b/releasenotes/notes/agent-flare-sestatus-5820cfc79ec91d1f.yaml
new file mode 100644
index 00000000000000..e7bac3330c728b
--- /dev/null
+++ b/releasenotes/notes/agent-flare-sestatus-5820cfc79ec91d1f.yaml
@@ -0,0 +1,11 @@
+# Each section from every release note are combined when the
+# CHANGELOG.rst is rendered. So the text needs to be worded so that
+# it does not depend on any information only available in another
+# section. This may mean repeating some details, but each section
+# must be readable independently of the other.
+#
+# Each section note must be formatted as reStructuredText.
+---
+enhancements:
+ - |
+ Added the output of ``sestatus`` into the Agent flare. This information will appear in ``system-probe/selinux_sestatus.log``.
diff --git a/releasenotes/notes/make_image_filters_consistent-14fd44a352723e50.yaml b/releasenotes/notes/make_image_filters_consistent-14fd44a352723e50.yaml
new file mode 100644
index 00000000000000..d0b292f5f2267f
--- /dev/null
+++ b/releasenotes/notes/make_image_filters_consistent-14fd44a352723e50.yaml
@@ -0,0 +1,16 @@
+# Each section from every release note are combined when the
+# CHANGELOG.rst is rendered. So the text needs to be worded so that
+# it does not depend on any information only available in another
+# section. This may mean repeating some details, but each section
+# must be readable independently of the other.
+#
+# Each section note must be formatted as reStructuredText.
+---
+fixes:
+ - |
+ Fixes consistency issue with container image filters.
+ Depending on the Agent configuration, filters were sometimes behaving differently
+ for metrics and logs. For example, an image filter that worked for excluding logs
+ didn't work when used to exclude metrics, and vice versa.
+ The exclusion logic is now consistent between metrics and logs.
+
diff --git a/releasenotes/notes/otel-graphql-resource-e31ae2262b52a873.yaml b/releasenotes/notes/otel-graphql-resource-e31ae2262b52a873.yaml
new file mode 100644
index 00000000000000..8962c355b585a7
--- /dev/null
+++ b/releasenotes/notes/otel-graphql-resource-e31ae2262b52a873.yaml
@@ -0,0 +1,11 @@
+# Each section from every release note are combined when the
+# CHANGELOG.rst is rendered. So the text needs to be worded so that
+# it does not depend on any information only available in another
+# section. This may mean repeating some details, but each section
+# must be readable independently of the other.
+#
+# Each section note must be formatted as reStructuredText.
+---
+enhancements:
+ - |
+ For OpenTelemetry GraphQL request spans, the span resource name is now the GraphQL operation type and name.
diff --git a/tasks/issue.py b/tasks/issue.py
index 4cd05c97abcdc9..4615d39716dae7 100644
--- a/tasks/issue.py
+++ b/tasks/issue.py
@@ -25,9 +25,7 @@ def assign_owner(_, issue_id, dry_run=False):
from slack_sdk import WebClient
client = WebClient(os.environ['SLACK_API_TOKEN'])
- channel = next(
- (chan for team, chan in GITHUB_SLACK_MAP.items() if owner.lower() in team), '#agent-ask-anything'
- )
+ channel = next((chan for team, chan in GITHUB_SLACK_MAP.items() if owner.lower() in team), '#agent-devx-help')
message = f':githubstatus_partial_outage: *New Community Issue*\n{issue.title} <{issue.html_url}|{gh.repo.name}#{issue_id}>\n'
if channel == '#agent-ask-anything':
message += "The CI bot failed to assign this issue to a team.\nPlease assign it manually."
diff --git a/tasks/libs/common/git.py b/tasks/libs/common/git.py
index a8287c8ed56829..ead8909a0ec49e 100644
--- a/tasks/libs/common/git.py
+++ b/tasks/libs/common/git.py
@@ -1,9 +1,11 @@
from __future__ import annotations
import os
+import sys
import subprocess
import tempfile
from contextlib import contextmanager
+from time import sleep
from typing import TYPE_CHECKING
from invoke import Context
@@ -162,29 +164,45 @@ def check_base_branch(branch, release_version):
return branch == get_default_branch() or branch == release_version.branch()
-def try_git_command(ctx, git_command, github_action=False):
- """
- Try a git command that should be retried (after user confirmation) if it fails.
+def try_git_command(ctx, git_command, non_interactive_retries=2, non_interactive_delay=5):
+ """Try a git command that should be retried (after user confirmation) if it fails.
Primarily useful for commands which can fail if commit signing fails: we don't want the
whole workflow to fail if that happens, we want to retry.
+
+ Args:
+ ctx: The invoke context.
+ git_command: The git command to run.
+ non_interactive_retries: The number of times to retry the command if it fails when running non-interactively.
+ non_interactive_delay: The delay in seconds to retry the command if it fails when running non-interactively.
"""
do_retry = True
+ n_retries = 0
+ interactive = sys.stdin.isatty()
while do_retry:
res = ctx.run(git_command, warn=True)
if res.exited is None or res.exited > 0:
- print(
- color_message(
- f"Failed to run \"{git_command}\" (did the commit/tag signing operation fail?)",
- "orange",
+ if interactive:
+ print(
+ color_message(
+ f"Failed to run \"{git_command}\" (did the commit/tag signing operation fail?)",
+ "orange",
+ )
+ )
+ do_retry = yes_no_question("Do you want to retry this operation?", color="orange", default=True)
+ else:
+ # Non interactive, retry in `non_interactive_delay` seconds if we haven't reached the limit
+ n_retries += 1
+ if n_retries > non_interactive_retries:
+ print(f'{color_message("Error", Color.RED)}: Failed to run git command', file=sys.stderr)
+ return False
+
+ print(
+ f'{color_message("Warning", Color.ORANGE)}: Retrying git command in {non_interactive_delay}s',
+ file=sys.stderr,
)
- )
- do_retry = (
- False
- if github_action
- else yes_no_question("Do you want to retry this operation?", color="orange", default=True)
- )
+ sleep(non_interactive_delay)
continue
return True
diff --git a/tasks/libs/common/worktree.py b/tasks/libs/common/worktree.py
index e8c9d740f07bca..17e5db4abfc976 100644
--- a/tasks/libs/common/worktree.py
+++ b/tasks/libs/common/worktree.py
@@ -9,7 +9,7 @@
from contextlib import contextmanager
from pathlib import Path
-from invoke.exceptions import Exit
+from invoke.exceptions import Exit, UnexpectedExit
from tasks.libs.common.color import Color, color_message
from tasks.libs.common.git import get_current_branch
@@ -49,7 +49,18 @@ def init_env(ctx, branch: str | None = None):
f"git -C '{WORKTREE_DIRECTORY}' rev-parse --abbrev-ref HEAD", hide=True
).stdout.strip()
if worktree_branch != branch:
- ctx.run(f"git -C '{WORKTREE_DIRECTORY}' checkout '{branch}'", hide=True)
+ for retry in range(2):
+ try:
+ ctx.run(f"git -C '{WORKTREE_DIRECTORY}' checkout '{branch}'", hide=True)
+ except UnexpectedExit as e:
+ if retry == 1:
+ raise e
+ else:
+ print(
+ f'{color_message("Warning", Color.ORANGE)}: Git branch not found in the local worktree folder, fetching repository',
+ file=sys.stderr,
+ )
+ ctx.run(f"git -C '{WORKTREE_DIRECTORY}' fetch", hide=True)
if not os.environ.get("AGENT_WORKTREE_NO_PULL"):
ctx.run(f"git -C '{WORKTREE_DIRECTORY}' pull", hide=True)
diff --git a/tasks/libs/package/size.py b/tasks/libs/package/size.py
index dad67823d32233..4743dfcd906dea 100644
--- a/tasks/libs/package/size.py
+++ b/tasks/libs/package/size.py
@@ -7,7 +7,7 @@
from tasks.libs.common.constants import ORIGIN_CATEGORY, ORIGIN_PRODUCT, ORIGIN_SERVICE
from tasks.libs.common.git import get_default_branch
from tasks.libs.common.utils import get_metric_origin
-from tasks.libs.package.utils import get_package_path
+from tasks.libs.package.utils import find_package
DEBIAN_OS = "debian"
CENTOS_OS = "centos"
@@ -158,33 +158,23 @@ def compute_package_size_metrics(
return series
-def compare(ctx, package_sizes, ancestor, arch, flavor, os_name, threshold):
+def compare(ctx, package_sizes, ancestor, pkg_size):
"""
- Compare (or update) a package size with the ancestor package size.
+ Compare (or update, when on main branch) a package size with the ancestor package size.
"""
- if os_name == 'suse':
- dir = os.environ['OMNIBUS_PACKAGE_DIR_SUSE']
- path = f'{dir}/{flavor}-7*{arch}.rpm'
- else:
- dir = os.environ['OMNIBUS_PACKAGE_DIR']
- separator = '_' if os_name == 'deb' else '-'
- path = f'{dir}/{flavor}{separator}7*{arch}.{os_name}'
- package_size = _get_uncompressed_size(ctx, get_package_path(path), os_name)
+ current_size = _get_uncompressed_size(ctx, find_package(pkg_size.path()), pkg_size.os)
if os.environ['CI_COMMIT_REF_NAME'] == get_default_branch():
- package_sizes[ancestor][arch][flavor][os_name] = package_size
+ # On main, ancestor is the current commit, so we set the current value
+ package_sizes[ancestor][pkg_size.arch][pkg_size.flavor][pkg_size.os] = current_size
return
- previous_size = package_sizes[ancestor][arch][flavor][os_name]
- diff = package_size - previous_size
-
- message = f"{flavor}-{arch}-{os_name} size {mb(package_size)} is OK: {mb(diff)} diff with previous {mb(previous_size)} (max: {mb(threshold)})"
+ previous_size = package_sizes[ancestor][pkg_size.arch][pkg_size.flavor][pkg_size.os]
+ pkg_size.compare(current_size, previous_size)
- if diff > threshold:
- emoji = "❌"
- print(color_message(message.replace('OK', 'too large'), Color.RED), file=sys.stderr)
+ if pkg_size.ko():
+ print(color_message(pkg_size.log(), Color.RED), file=sys.stderr)
else:
- emoji = "✅" if diff <= 0 else "⚠️"
- print(message)
- return f"|{flavor}-{arch}-{os_name}|{mb(diff)}|{emoji}|{mb(package_size)}|{mb(previous_size)}|{mb(threshold)}|"
+ print(pkg_size.log())
+ return pkg_size
def mb(value):
diff --git a/tasks/libs/package/utils.py b/tasks/libs/package/utils.py
index 298901732c33ee..ec8363fcfa134a 100644
--- a/tasks/libs/package/utils.py
+++ b/tasks/libs/package/utils.py
@@ -1,5 +1,6 @@
import glob
import json
+import os
from invoke import Exit, UnexpectedExit
@@ -11,7 +12,67 @@
PACKAGE_SIZE_S3_CI_BUCKET_URL = "s3://dd-ci-artefacts-build-stable/datadog-agent/package_size"
-def get_package_path(glob_pattern):
+class PackageSize:
+ def __init__(self, arch, flavor, os_name, threshold):
+ self.arch = arch
+ self.flavor = flavor
+ self.os = os_name
+ self.size = 0
+ self.ancestor_size = 0
+ self.diff = 0
+ self.threshold = threshold
+ self.emoji = "✅"
+
+ @property
+ def name(self):
+ return f"{self.flavor}-{self.arch}-{self.os}"
+
+ def arch_name(self):
+ if self.arch in ["x86_64", "amd64"]:
+ return "amd"
+ return "arm"
+
+ def ko(self):
+ return self.diff > self.threshold
+
+ def path(self):
+ if self.os == 'suse':
+ dir = os.environ['OMNIBUS_PACKAGE_DIR_SUSE']
+ return f'{dir}/{self.flavor}-7*{self.arch}.rpm'
+ else:
+ dir = os.environ['OMNIBUS_PACKAGE_DIR']
+ separator = '_' if self.os == 'deb' else '-'
+ return f'{dir}/{self.flavor}{separator}7*{self.arch}.{self.os}'
+
+ def compare(self, size, ancestor_size):
+ self.size = size
+ self.ancestor_size = ancestor_size
+ self.diff = self.size - self.ancestor_size
+ if self.ko():
+ self.emoji = "❌"
+ elif self.diff > 0:
+ self.emoji = "⚠️"
+
+ @staticmethod
+ def mb(value):
+ return f"{value / 1000000:.2f}MB"
+
+ def log(self):
+ return f"{self.emoji} - {self.name} size {self.mb(self.size)}: {self.mb(self.diff)} diff[{self.diff}] with previous {self.mb(self.ancestor_size)} (max: {self.mb(self.threshold)})"
+
+ def markdown(self):
+ elements = (
+ self.name,
+ self.mb(self.diff),
+ self.emoji,
+ self.mb(self.size),
+ self.mb(self.ancestor_size),
+ self.mb(self.threshold),
+ )
+ return f'|{"|".join(map(str, elements))}|'
+
+
+def find_package(glob_pattern):
package_paths = glob.glob(glob_pattern)
if len(package_paths) > 1:
raise Exit(code=1, message=color_message(f"Too many files matching {glob_pattern}: {package_paths}", "red"))
@@ -103,4 +164,4 @@ def display_message(ctx, ancestor, rows, decision):
## Decision
{decision}
"""
- pr_commenter(ctx, title="Package size comparison", body=message)
+ pr_commenter(ctx, title="Uncompressed package size comparison", body=message)
diff --git a/tasks/omnibus.py b/tasks/omnibus.py
index b93fea751c17d0..aa467171f9e18c 100644
--- a/tasks/omnibus.py
+++ b/tasks/omnibus.py
@@ -285,7 +285,7 @@ def build(
if use_remote_cache:
cache_state = None
cache_key = omnibus_compute_cache_key(ctx)
- git_cache_url = f"s3://{os.environ['S3_OMNIBUS_CACHE_BUCKET']}/builds/{cache_key}/{remote_cache_name}"
+ git_cache_url = f"s3://{os.environ['S3_OMNIBUS_GIT_CACHE_BUCKET']}/{cache_key}/{remote_cache_name}"
bundle_dir = tempfile.TemporaryDirectory()
bundle_path = os.path.join(bundle_dir.name, 'omnibus-git-cache-bundle')
with timed(quiet=True) as durations['Restoring omnibus cache']:
diff --git a/tasks/package.py b/tasks/package.py
index 307624be2f2f22..f2d49130152dcc 100644
--- a/tasks/package.py
+++ b/tasks/package.py
@@ -14,9 +14,10 @@
compute_package_size_metrics,
)
from tasks.libs.package.utils import (
+ PackageSize,
display_message,
+ find_package,
get_ancestor,
- get_package_path,
list_packages,
retrieve_package_sizes,
upload_package_sizes,
@@ -33,26 +34,29 @@ def check_size(ctx, filename: str = 'package_sizes.json', dry_run: bool = False)
if ancestor in package_sizes:
# The test already ran on this commit
return
- package_sizes[ancestor] = PACKAGE_SIZE_TEMPLATE
+ package_sizes[ancestor] = PACKAGE_SIZE_TEMPLATE.copy()
package_sizes[ancestor]['timestamp'] = int(datetime.now().timestamp())
# Check size of packages
print(
color_message(f"Checking package sizes from {os.environ['CI_COMMIT_REF_NAME']} against {ancestor}", Color.BLUE)
)
- size_table = ""
+ size_table = []
for package_info in list_packages(PACKAGE_SIZE_TEMPLATE):
- size_table += f"{compare(ctx, package_sizes, ancestor, *package_info)}\n"
+ pkg_size = PackageSize(*package_info)
+ size_table.append(compare(ctx, package_sizes, ancestor, pkg_size))
if on_main:
upload_package_sizes(ctx, package_sizes, filename, distant=not dry_run)
else:
- if "❌" in size_table:
+ size_table.sort(key=lambda x: (-x.diff, x.flavor, x.arch_name()))
+ size_message = "".join(f"{pkg_size.markdown()}\n" for pkg_size in size_table)
+ if "❌" in size_message:
decision = "❌ Failed"
- elif "⚠️" in size_table:
+ elif "⚠️" in size_message:
decision = "⚠️ Warning"
else:
decision = "✅ Passed"
- display_message(ctx, ancestor, size_table, decision)
+ display_message(ctx, ancestor, size_message, decision)
if "Failed" in decision:
raise Exit(code=1)
@@ -62,11 +66,11 @@ def compare_size(ctx, new_package, stable_package, package_type, last_stable, th
mb = 1000000
if package_type.endswith('deb'):
- new_package_size = _get_deb_uncompressed_size(ctx, get_package_path(new_package))
- stable_package_size = _get_deb_uncompressed_size(ctx, get_package_path(stable_package))
+ new_package_size = _get_deb_uncompressed_size(ctx, find_package(new_package))
+ stable_package_size = _get_deb_uncompressed_size(ctx, find_package(stable_package))
else:
- new_package_size = _get_rpm_uncompressed_size(ctx, get_package_path(new_package))
- stable_package_size = _get_rpm_uncompressed_size(ctx, get_package_path(stable_package))
+ new_package_size = _get_rpm_uncompressed_size(ctx, find_package(new_package))
+ stable_package_size = _get_rpm_uncompressed_size(ctx, find_package(stable_package))
threshold = int(threshold)
diff --git a/tasks/release.py b/tasks/release.py
index bf8af7a89f4415..0aebb3e183d11c 100644
--- a/tasks/release.py
+++ b/tasks/release.py
@@ -85,16 +85,21 @@
BACKPORT_LABEL_COLOR = "5319e7"
-def deduce_and_ask_version(ctx, branch, as_str=True, trust=False) -> str | Version:
+def deduce_version(ctx, branch, as_str=True, trust=False) -> str | Version:
release_version = get_next_version_from_branch(ctx, branch, as_str=as_str)
- if trust:
- return release_version
+ print(
+ f'{color_message("Info", Color.BLUE)}: Version {release_version} deduced from branch {branch}', file=sys.stderr
+ )
- if not os.isatty(sys.stdin.fileno()) or yes_no_question(
- f'Version {release_version} deduced from branch {branch}. Is this the version you want to use?',
- color="orange",
- default=False,
+ if (
+ trust
+ or not os.isatty(sys.stdin.fileno())
+ or yes_no_question(
+ 'Is this the version you want to use?',
+ color="orange",
+ default=False,
+ )
):
return release_version
@@ -171,7 +176,7 @@ def update_modules(ctx, release_branch=None, version=None, trust=False):
assert release_branch or version
- agent_version = version or deduce_and_ask_version(ctx, release_branch, trust=trust)
+ agent_version = version or deduce_version(ctx, release_branch, trust=trust)
with agent_context(ctx, release_branch, skip_checkout=release_branch is None):
modules = get_default_modules()
@@ -236,7 +241,7 @@ def tag_modules(
assert release_branch or version
- agent_version = version or deduce_and_ask_version(ctx, release_branch, trust=trust)
+ agent_version = version or deduce_version(ctx, release_branch, trust=trust)
tags = []
with agent_context(ctx, release_branch, skip_checkout=release_branch is None):
@@ -275,7 +280,7 @@ def tag_version(
assert release_branch or version
- agent_version = version or deduce_and_ask_version(ctx, release_branch, trust=trust)
+ agent_version = version or deduce_version(ctx, release_branch, trust=trust)
# Always tag the main module
force_option = __get_force_option(force)
@@ -469,12 +474,6 @@ def create_rc(ctx, release_branch, patch_version=False, upstream="origin", slack
# Step 1: Update release entries
print(color_message("Updating release entries", "bold"))
new_version = next_rc_version(ctx, major_version, patch_version)
- if not github_action and not yes_no_question(
- f'Do you want to create release candidate with:\n- new version: {new_version}\n- new highest version: {new_highest_version}\n- new final version: {new_final_version}?',
- color="bold",
- default=False,
- ):
- raise Exit(color_message("Aborting.", "red"), code=1)
update_release_json(new_version, new_final_version)
@@ -1265,7 +1264,7 @@ def create_github_release(ctx, release_branch, draft=True):
)
notes = []
- version = deduce_and_ask_version(ctx, release_branch)
+ version = deduce_version(ctx, release_branch)
with agent_context(ctx, release_branch):
for section, filename in sections:
diff --git a/tasks/unit_tests/omnibus_tests.py b/tasks/unit_tests/omnibus_tests.py
index cf22abaf2623d4..4886304f2ea7af 100644
--- a/tasks/unit_tests/omnibus_tests.py
+++ b/tasks/unit_tests/omnibus_tests.py
@@ -40,7 +40,7 @@ def _run_calls_to_string(mock_calls):
'CI_PROJECT_DIR': '',
'CI_PIPELINE_ID': '',
'RELEASE_VERSION_7': 'nightly',
- 'S3_OMNIBUS_CACHE_BUCKET': 'omnibus-cache',
+ 'S3_OMNIBUS_GIT_CACHE_BUCKET': 'omnibus-cache',
'API_KEY_ORG2': 'api-key',
'AGENT_API_KEY_ORG2': 'agent-api-key',
},
@@ -89,7 +89,7 @@ def test_successful_cache_hit(self):
self.assertRunLines(
[
# We copied the cache from remote cache
- r'aws s3 cp (\S* )?s3://omnibus-cache/builds/\w+/slug \S+/omnibus-git-cache-bundle',
+ r'aws s3 cp (\S* )?s3://omnibus-cache/\w+/slug \S+/omnibus-git-cache-bundle',
# We cloned the repo
r'git clone --mirror /\S+/omnibus-git-cache-bundle omnibus-git-cache/opt/datadog-agent',
# We listed the tags to get current cache state
@@ -104,7 +104,7 @@ def test_successful_cache_hit(self):
commands = _run_calls_to_string(self.mock_ctx.run.mock_calls)
lines = [
r'git -C omnibus-git-cache/opt/datadog-agent bundle create /\S+/omnibus-git-cache-bundle --tags',
- r'aws s3 cp (\S* )?/\S+/omnibus-git-cache-bundle s3://omnibus-cache/builds/\w+/slug',
+ r'aws s3 cp (\S* )?/\S+/omnibus-git-cache-bundle s3://omnibus-cache/\w+/slug',
]
for line in lines:
self.assertIsNone(re.search(line, commands))
@@ -112,7 +112,7 @@ def test_successful_cache_hit(self):
def test_cache_miss(self):
self.mock_ctx.set_result_for(
'run',
- re.compile(r'aws s3 cp (\S* )?s3://omnibus-cache/builds/\S* /\S+/omnibus-git-cache-bundle'),
+ re.compile(r'aws s3 cp (\S* )?s3://omnibus-cache/\S* /\S+/omnibus-git-cache-bundle'),
Result(exited=1),
)
self.mock_ctx.set_result_for(
@@ -147,7 +147,7 @@ def test_cache_miss(self):
r'git -C omnibus-git-cache/opt/datadog-agent tag -l',
# And we created and uploaded the new cache
r'git -C omnibus-git-cache/opt/datadog-agent bundle create /\S+/omnibus-git-cache-bundle --tags',
- r'aws s3 cp (\S* )?/\S+/omnibus-git-cache-bundle s3://omnibus-cache/builds/\w+/slug',
+ r'aws s3 cp (\S* )?/\S+/omnibus-git-cache-bundle s3://omnibus-cache/\w+/slug',
],
)
diff --git a/tasks/unit_tests/package_lib_tests.py b/tasks/unit_tests/package_lib_tests.py
index 57816701fd07c6..984e4cc4f871c9 100644
--- a/tasks/unit_tests/package_lib_tests.py
+++ b/tasks/unit_tests/package_lib_tests.py
@@ -6,13 +6,12 @@
from invoke import MockContext, Result
from tasks.libs.package.size import (
- PACKAGE_SIZE_TEMPLATE,
SCANNED_BINARIES,
_get_uncompressed_size,
compare,
compute_package_size_metrics,
)
-from tasks.libs.package.utils import get_ancestor, list_packages
+from tasks.libs.package.utils import PackageSize, get_ancestor, list_packages
class TestProduceSizeStats(unittest.TestCase):
@@ -167,6 +166,28 @@ def test_get_suse_uncompressed_size(self):
self.assertEqual(_get_uncompressed_size(c, flavor, 'suse'), 69)
+class TestPackageSizeMethods(unittest.TestCase):
+ def test_markdown_row(self):
+ size = PackageSize("amd64", "datadog-agent", "deb", 70000000)
+ size.compare(67000000, 68000000)
+ self.assertEqual("|datadog-agent-amd64-deb|-1.00MB|✅|67.00MB|68.00MB|70.00MB|", size.markdown())
+
+ @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR': 'root'})
+ def test_path_deb(self):
+ size = PackageSize("amd64", "datadog-agent", "deb", 70000000)
+ self.assertEqual("root/datadog-agent_7*amd64.deb", size.path())
+
+ @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR': 'root'})
+ def test_path_rpm(self):
+ size = PackageSize("x86_64", "datadog-agent", "rpm", 70000000)
+ self.assertEqual("root/datadog-agent-7*x86_64.rpm", size.path())
+
+ @patch.dict('os.environ', {'OMNIBUS_PACKAGE_DIR_SUSE': 'rout'})
+ def test_path_suse(self):
+ size = PackageSize("x86_64", "datadog-agent", "suse", 70000000)
+ self.assertEqual("rout/datadog-agent-7*x86_64.rpm", size.path())
+
+
class TestCompare(unittest.TestCase):
package_sizes = {}
pkg_root = 'tasks/unit_tests/testdata/packages'
@@ -181,6 +202,7 @@ def setUp(self) -> None:
@patch('builtins.print')
def test_on_main(self, mock_print):
flavor, arch, os_name = 'datadog-heroku-agent', 'amd64', 'deb'
+ s = PackageSize(arch, flavor, os_name, 2001)
c = MockContext(
run={
'git merge-base HEAD origin/main': Result('12345'),
@@ -189,9 +211,9 @@ def test_on_main(self, mock_print):
),
}
)
- self.package_sizes['12345'] = PACKAGE_SIZE_TEMPLATE
+ self.package_sizes['12345'] = {arch: {flavor: {os_name: 70000000}}}
self.assertEqual(self.package_sizes['12345'][arch][flavor][os_name], 70000000)
- res = compare(c, self.package_sizes, '12345', arch, flavor, os_name, 2001)
+ res = compare(c, self.package_sizes, '12345', s)
self.assertIsNone(res)
self.assertEqual(self.package_sizes['12345'][arch][flavor][os_name], 43008)
mock_print.assert_not_called()
@@ -203,16 +225,17 @@ def test_on_main(self, mock_print):
@patch('builtins.print')
def test_on_branch_warning(self, mock_print):
flavor, arch, os_name = 'datadog-agent', 'aarch64', 'suse'
+ s = PackageSize(arch, flavor, os_name, 70000000)
c = MockContext(
run={
'git merge-base HEAD origin/main': Result('25'),
f"rpm -qip {self.pkg_root}/{flavor}-7.{arch}.rpm | grep Size | cut -d : -f 2 | xargs": Result(69000000),
}
)
- res = compare(c, self.package_sizes, '25', arch, flavor, os_name, 70000000)
- self.assertEqual(res, "|datadog-agent-aarch64-suse|1.00MB|⚠️|69.00MB|68.00MB|70.00MB|")
+ res = compare(c, self.package_sizes, '25', s)
+ self.assertEqual(res.markdown(), "|datadog-agent-aarch64-suse|1.00MB|⚠️|69.00MB|68.00MB|70.00MB|")
mock_print.assert_called_with(
- f"{flavor}-{arch}-{os_name} size 69.00MB is OK: 1.00MB diff with previous 68.00MB (max: 70.00MB)"
+ f"⚠️ - {flavor}-{arch}-{os_name} size 69.00MB: 1.00MB diff[1000000] with previous 68.00MB (max: 70.00MB)"
)
@patch.dict(
@@ -221,6 +244,7 @@ def test_on_branch_warning(self, mock_print):
@patch('builtins.print')
def test_on_branch_ok_rpm(self, mock_print):
flavor, arch, os_name = 'datadog-iot-agent', 'x86_64', 'rpm'
+ s = PackageSize(arch, flavor, os_name, 70000000)
c = MockContext(
run={
'git merge-base HEAD origin/main': Result('25'),
@@ -229,10 +253,10 @@ def test_on_branch_ok_rpm(self, mock_print):
),
}
)
- res = compare(c, self.package_sizes, '25', arch, flavor, os_name, 70000000)
- self.assertEqual(res, "|datadog-iot-agent-x86_64-rpm|-9.00MB|✅|69.00MB|78.00MB|70.00MB|")
+ res = compare(c, self.package_sizes, '25', s)
+ self.assertEqual(res.markdown(), "|datadog-iot-agent-x86_64-rpm|-9.00MB|✅|69.00MB|78.00MB|70.00MB|")
mock_print.assert_called_with(
- f"{flavor}-{arch}-{os_name} size 69.00MB is OK: -9.00MB diff with previous 78.00MB (max: 70.00MB)"
+ f"✅ - {flavor}-{arch}-{os_name} size 69.00MB: -9.00MB diff[-9000000] with previous 78.00MB (max: 70.00MB)"
)
@patch.dict(
@@ -242,6 +266,7 @@ def test_on_branch_ok_rpm(self, mock_print):
@patch('builtins.print')
def test_on_branch_ko(self, mock_print):
flavor, arch, os_name = 'datadog-agent', 'aarch64', 'suse'
+ s = PackageSize(arch, flavor, os_name, 70000000)
c = MockContext(
run={
'git merge-base HEAD origin/main': Result('25'),
@@ -250,9 +275,9 @@ def test_on_branch_ko(self, mock_print):
),
}
)
- res = compare(c, self.package_sizes, '25', arch, flavor, os_name, 70000000)
- self.assertEqual(res, "|datadog-agent-aarch64-suse|71.00MB|❌|139.00MB|68.00MB|70.00MB|")
+ res = compare(c, self.package_sizes, '25', s)
+ self.assertEqual(res.markdown(), "|datadog-agent-aarch64-suse|71.00MB|❌|139.00MB|68.00MB|70.00MB|")
mock_print.assert_called_with(
- "\x1b[91mdatadog-agent-aarch64-suse size 139.00MB is too large: 71.00MB diff with previous 68.00MB (max: 70.00MB)\x1b[0m",
+ "\x1b[91m❌ - datadog-agent-aarch64-suse size 139.00MB: 71.00MB diff[71000000] with previous 68.00MB (max: 70.00MB)\x1b[0m",
file=sys.stderr,
)
diff --git a/tasks/unit_tests/package_tests.py b/tasks/unit_tests/package_tests.py
index b1698695b8e5e1..1c7e0c47dc2496 100644
--- a/tasks/unit_tests/package_tests.py
+++ b/tasks/unit_tests/package_tests.py
@@ -16,19 +16,25 @@ class TestCheckSize(unittest.TestCase):
'CI_COMMIT_REF_NAME': 'pikachu',
},
)
- @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent'))
- @patch('tasks.package.display_message', new=MagicMock())
- def test_dev_branch_ko(self):
+ @patch('tasks.libs.package.size.find_package', new=MagicMock(return_value='datadog-agent'))
+ @patch('tasks.package.display_message')
+ def test_dev_branch_ko(self, display_mock):
flavor = 'datadog-agent'
c = MockContext(
run={
'git merge-base HEAD origin/main': Result('25'),
f"dpkg-deb --info {flavor} | grep Installed-Size | cut -d : -f 2 | xargs": Result(42),
- f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(69000000),
+ f"rpm -qip {flavor} | grep Size | cut -d : -f 2 | xargs": Result(141000000),
}
)
with self.assertRaises(Exit):
check_size(c, filename='tasks/unit_tests/testdata/package_sizes_real.json', dry_run=True)
+ display_mock.assert_called_with(
+ c,
+ '12345',
+ '|datadog-dogstatsd-x86_64-rpm|131.00MB|❌|141.00MB|10.00MB|10.00MB|\n|datadog-dogstatsd-x86_64-suse|131.00MB|❌|141.00MB|10.00MB|10.00MB|\n|datadog-iot-agent-x86_64-rpm|131.00MB|❌|141.00MB|10.00MB|10.00MB|\n|datadog-iot-agent-x86_64-suse|131.00MB|❌|141.00MB|10.00MB|10.00MB|\n|datadog-iot-agent-aarch64-rpm|131.00MB|❌|141.00MB|10.00MB|10.00MB|\n|datadog-agent-x86_64-rpm|1.00MB|⚠️|141.00MB|140.00MB|140.00MB|\n|datadog-agent-x86_64-suse|1.00MB|⚠️|141.00MB|140.00MB|140.00MB|\n|datadog-agent-aarch64-rpm|1.00MB|⚠️|141.00MB|140.00MB|140.00MB|\n|datadog-dogstatsd-amd64-deb|-9.96MB|✅|0.04MB|10.00MB|10.00MB|\n|datadog-dogstatsd-arm64-deb|-9.96MB|✅|0.04MB|10.00MB|10.00MB|\n|datadog-iot-agent-amd64-deb|-9.96MB|✅|0.04MB|10.00MB|10.00MB|\n|datadog-iot-agent-arm64-deb|-9.96MB|✅|0.04MB|10.00MB|10.00MB|\n|datadog-heroku-agent-amd64-deb|-69.96MB|✅|0.04MB|70.00MB|70.00MB|\n|datadog-agent-amd64-deb|-139.96MB|✅|0.04MB|140.00MB|140.00MB|\n|datadog-agent-arm64-deb|-139.96MB|✅|0.04MB|140.00MB|140.00MB|\n',
+ '❌ Failed',
+ )
@patch('builtins.print')
@patch.dict(
@@ -39,7 +45,7 @@ def test_dev_branch_ko(self):
'CI_COMMIT_REF_NAME': 'pikachu',
},
)
- @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent'))
+ @patch('tasks.libs.package.size.find_package', new=MagicMock(return_value='datadog-agent'))
@patch('tasks.package.display_message', new=MagicMock())
@patch('tasks.package.upload_package_sizes')
def test_dev_branch_ok(self, upload_mock, print_mock):
@@ -64,7 +70,7 @@ def test_dev_branch_ok(self, upload_mock, print_mock):
'CI_COMMIT_REF_NAME': 'main',
},
)
- @patch('tasks.libs.package.size.get_package_path', new=MagicMock(return_value='datadog-agent'))
+ @patch('tasks.libs.package.size.find_package', new=MagicMock(return_value='datadog-agent'))
@patch('tasks.package.display_message', new=MagicMock())
def test_main_branch_ok(self):
flavor = 'datadog-agent'
diff --git a/tasks/winbuildscripts/common.ps1 b/tasks/winbuildscripts/common.ps1
index 35ef863d57535e..d1e51fc5b2b1d7 100644
--- a/tasks/winbuildscripts/common.ps1
+++ b/tasks/winbuildscripts/common.ps1
@@ -42,6 +42,23 @@ function Exit-BuildRoot() {
Pop-Location -StackName AgentBuildRoot
}
+<#
+.SYNOPSIS
+Sets the current directory to the root of the repository.
+#>
+function Enter-RepoRoot() {
+ # Expected PSScriptRoot: datadog-agent\tasks\winbuildscripts\
+ Push-Location "$PSScriptRoot\..\.." -ErrorAction Stop -StackName AgentRepoRoot | Out-Null
+}
+
+<#
+.SYNOPSIS
+Leaves the repository root directory and returns to the original working directory.
+#>
+function Exit-RepoRoot() {
+ Pop-Location -StackName AgentRepoRoot
+}
+
<#
.SYNOPSIS
Expands the Go module cache from an archive file.
@@ -209,6 +226,8 @@ function Invoke-BuildScript {
if ($BuildOutOfSource) {
Enter-BuildRoot
+ } else {
+ Enter-RepoRoot
}
Expand-ModCache -modcache modcache
@@ -234,9 +253,11 @@ function Invoke-BuildScript {
# This finally block is executed regardless of whether the try block completes successfully, throws an exception,
# or uses `exit` to terminate the script.
+ # Restore the original working directory
if ($BuildOutOfSource) {
- # Restore the original working directory
Exit-BuildRoot
+ } else {
+ Exit-RepoRoot
}
}
}
diff --git a/test/fakeintake/client/client.go b/test/fakeintake/client/client.go
index 6890eb51cc6a8b..83a767596e6890 100644
--- a/test/fakeintake/client/client.go
+++ b/test/fakeintake/client/client.go
@@ -775,9 +775,6 @@ func (c *Client) get(route string) ([]byte, error) {
var body []byte
err := backoff.Retry(func() error {
tmpResp, err := http.Get(fmt.Sprintf("%s/%s", c.fakeIntakeURL, route))
- if err, ok := err.(net.Error); ok && err.Timeout() {
- panic(fmt.Sprintf("fakeintake call timed out: %v", err))
- }
if err != nil {
return err
}
@@ -812,6 +809,9 @@ func (c *Client) get(route string) ([]byte, error) {
body, err = io.ReadAll(tmpResp.Body)
return err
}, backoff.WithMaxRetries(backoff.NewConstantBackOff(5*time.Second), 4))
+ if err, ok := err.(net.Error); ok && err.Timeout() {
+ panic(fmt.Sprintf("fakeintake call timed out: %v", err))
+ }
return body, err
}
diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod
index 4dd9e30ab4a7da..eeb575694baa4d 100644
--- a/test/fakeintake/go.mod
+++ b/test/fakeintake/go.mod
@@ -45,6 +45,7 @@ require (
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/ncruces/go-strftime v0.1.9 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
+ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_model v0.6.1 // indirect
github.com/prometheus/common v0.60.1 // indirect
diff --git a/test/fakeintake/go.sum b/test/fakeintake/go.sum
index 5eac49258c5fa6..c9e0f74e8772b1 100644
--- a/test/fakeintake/go.sum
+++ b/test/fakeintake/go.sum
@@ -60,6 +60,8 @@ github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY=
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod
index b24309be06e283..008a6b32a4753e 100644
--- a/test/new-e2e/go.mod
+++ b/test/new-e2e/go.mod
@@ -52,7 +52,7 @@ require (
github.com/DataDog/datadog-agent/pkg/version v0.59.1
github.com/DataDog/datadog-agent/test/fakeintake v0.56.0-rc.3
github.com/DataDog/datadog-api-client-go v1.16.0
- github.com/DataDog/datadog-api-client-go/v2 v2.31.0
+ github.com/DataDog/datadog-api-client-go/v2 v2.33.0
// Are you bumping github.com/DataDog/test-infra-definitions ?
// You should bump `TEST_INFRA_DEFINITIONS_BUILDIMAGES` in `.gitlab/common/test_infra_version.yml`
// `TEST_INFRA_DEFINITIONS_BUILDIMAGES` matches the commit sha in the module version
@@ -62,16 +62,16 @@ require (
github.com/aws/aws-sdk-go-v2 v1.32.5
github.com/aws/aws-sdk-go-v2/config v1.28.5
github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0
- github.com/aws/aws-sdk-go-v2/service/eks v1.44.1
- github.com/aws/aws-sdk-go-v2/service/ssm v1.50.7
+ github.com/aws/aws-sdk-go-v2/service/eks v1.51.0
+ github.com/aws/aws-sdk-go-v2/service/ssm v1.55.2
github.com/cenkalti/backoff v2.2.1+incompatible
- github.com/docker/cli v27.1.1+incompatible
- github.com/docker/docker v27.3.1+incompatible
+ github.com/docker/cli v27.4.0+incompatible
+ github.com/docker/docker v27.4.0+incompatible
github.com/fatih/color v1.18.0
github.com/google/uuid v1.6.0
github.com/kr/pretty v0.3.1
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c
- github.com/pkg/sftp v1.13.6
+ github.com/pkg/sftp v1.13.7
github.com/pulumi/pulumi-aws/sdk/v6 v6.56.1
github.com/pulumi/pulumi-awsx/sdk/v2 v2.16.1
github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.18.3
@@ -84,8 +84,8 @@ require (
golang.org/x/term v0.27.0
gopkg.in/yaml.v2 v2.4.0
gopkg.in/zorkian/go-datadog-api.v2 v2.30.0
- k8s.io/api v0.31.3
- k8s.io/apimachinery v0.31.3
+ k8s.io/api v0.31.4
+ k8s.io/apimachinery v0.31.4
k8s.io/cli-runtime v0.31.2
k8s.io/client-go v0.31.3
k8s.io/kubectl v0.31.2
@@ -115,14 +115,13 @@ require (
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.24 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect
- github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.19 // indirect
+ github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 // indirect
github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 // indirect
github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.0 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 // indirect
- github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.0 // indirect
- github.com/aws/aws-sdk-go-v2/service/s3 v1.65.0
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.24.6 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.33.1 // indirect
@@ -134,7 +133,6 @@ require (
github.com/charmbracelet/bubbles v0.18.0 // indirect
github.com/charmbracelet/bubbletea v0.25.0 // indirect
github.com/charmbracelet/lipgloss v0.10.0 // indirect
- github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cloudflare/circl v1.3.7 // indirect
github.com/containerd/console v1.0.4 // indirect
github.com/containerd/log v0.1.0 // indirect
@@ -284,16 +282,18 @@ require (
require (
github.com/DataDog/datadog-agent/comp/core/tagger/types v0.0.0-00010101000000-000000000000
github.com/DataDog/datadog-agent/pkg/trace v0.56.0-rc.3
- github.com/DataDog/datadog-go/v5 v5.5.0
+ github.com/DataDog/datadog-go/v5 v5.6.0
github.com/aws/aws-sdk-go v1.55.5
- github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6
+ github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0
+ github.com/aws/session-manager-plugin v0.0.0-20241119210807-82dc72922492
github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c
- github.com/hairyhenderson/go-codeowners v0.5.0
+ github.com/hairyhenderson/go-codeowners v0.7.0
)
require (
github.com/DataDog/datadog-agent/comp/core/tagger/utils v0.59.0 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
+ github.com/cheggaaa/pb v1.0.29 // indirect
github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect
github.com/creack/pty v1.1.20 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
@@ -302,6 +302,7 @@ require (
github.com/moby/docker-image-spec v1.3.1 // indirect
github.com/onsi/ginkgo/v2 v2.20.2 // indirect
github.com/onsi/gomega v1.34.1 // indirect
+ github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pulumi/pulumi-azure-native-sdk/authorization/v2 v2.73.1 // indirect
github.com/pulumi/pulumi-azure-native-sdk/compute/v2 v2.73.1 // indirect
github.com/pulumi/pulumi-azure-native-sdk/containerservice/v2 v2.73.1 // indirect
diff --git a/test/new-e2e/go.sum b/test/new-e2e/go.sum
index 762f7309695c45..cbbd971dd8ac31 100644
--- a/test/new-e2e/go.sum
+++ b/test/new-e2e/go.sum
@@ -11,10 +11,10 @@ github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytlju
github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc=
github.com/DataDog/datadog-api-client-go v1.16.0 h1:5jOZv1m98criCvYTa3qpW8Hzv301nbZX3K9yJtwGyWY=
github.com/DataDog/datadog-api-client-go v1.16.0/go.mod h1:PgrP2ABuJWL3Auw2iEkemAJ/r72ghG4DQQmb5sgnKW4=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0 h1:OI6kDnJeQmkjfGzxmP0XUQUxMD4tp6oAPXnnJ4VpgUM=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49 h1:EbzDX8HPk5uE2FsJYxD74QmMw0/3CqSKhEr6teh0ncQ=
github.com/DataDog/mmh3 v0.0.0-20210722141835-012dc69a9e49/go.mod h1:SvsjzyJlSg0rKsqYgdcFxeEVflx3ZNAyFfkUHP0TxXg=
github.com/DataDog/test-infra-definitions v0.0.0-20241211124138-9c7c5005ca28 h1:LaZgAke+RN4wBKNl+R10ewdtKe/C2MJCbp9ozXKlLP8=
@@ -68,36 +68,36 @@ github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24 h1:N1zsICrQglfzaBnrfM
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.24/go.mod h1:dCn9HbJ8+K31i8IQ8EWmWj0EiIk0+vKiHNMxTTYveAg=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ=
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.19 h1:FKdiFzTxlTRO71p0C7VrLbkkdW8qfMKF5+ej6bTmkT0=
-github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.19/go.mod h1:abO3pCj7WLQPTllnSeYImqFfkGrmJV0JovWo/gqT5N0=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21 h1:7edmS3VOBDhK00b/MwGtGglCm7hhwNYnjJs/PgFdMQE=
+github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.21/go.mod h1:Q9o5h4HoIWG8XfzxqiuK/CGUbepCJ8uTlaE3bAbxytQ=
github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0 h1:k97fGog9Tl0woxTiSIHN14Qs5ehqK6GXejUwkhJYyL0=
github.com/aws/aws-sdk-go-v2/service/ec2 v1.190.0/go.mod h1:mzj8EEjIHSN2oZRXiw1Dd+uB4HZTl7hC8nBzX9IZMWw=
github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2 h1:VDQaVwGOokbd3VUbHF+wupiffdrbAZPdQnr5XZMJqrs=
github.com/aws/aws-sdk-go-v2/service/ecr v1.36.2/go.mod h1:lvUlMghKYmSxSfv0vU7pdU/8jSY+s0zpG8xXhaGKCw0=
github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4 h1:CTkPGE8fiElvLtYWl/U+Eu5+1fVXiZbJUjyVCRSRgxk=
github.com/aws/aws-sdk-go-v2/service/ecs v1.47.4/go.mod h1:sMFLFhL27cKYa/eQYZp4asvIwHsnJWrAzTUpy9AQdnU=
-github.com/aws/aws-sdk-go-v2/service/eks v1.44.1 h1:onUAzZXDsyXzyrmOGw/9p8Csl1NZkTDEs4URZ8covUY=
-github.com/aws/aws-sdk-go-v2/service/eks v1.44.1/go.mod h1:dg9l/W4hXygeRNydRB4LWKY/MwHJhfUomGJUBwI29Dw=
+github.com/aws/aws-sdk-go-v2/service/eks v1.51.0 h1:BYyB+byjQ7oyupe3v+YjTp1yfmfNEwChYA2naCc85xI=
+github.com/aws/aws-sdk-go-v2/service/eks v1.51.0/go.mod h1:oaPCqTzAe8C5RQZJGRD4RENcV7A4n99uGxbD4rULbNg=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1 h1:iXtILhvDxB6kPvEXgsDhGaZCSC6LQET5ZHSdJozeI0Y=
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.1/go.mod h1:9nu0fVANtYiAePIBh2/pFUSwtJ402hLnp854CNoDOeE=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.0 h1:FQNWhRuSq8QwW74GtU0MrveNhZbqvHsA4dkA9w8fTDQ=
-github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.0/go.mod h1:j/zZ3zmWfGCK91K73YsfHP53BSTLSjL/y6YN39XbBLM=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2 h1:4FMHqLfk0efmTqhXVRL5xYRqlEBNBiRI7N6w4jsEdd4=
+github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.4.2/go.mod h1:LWoqeWlK9OZeJxsROW2RqrSPvQHKTpp69r/iDjwsSaw=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5 h1:wtpJ4zcwrSbwhECWQoI/g6WM9zqCcSpHDJIWSbMLOu4=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.5/go.mod h1:qu/W9HXQbbQ4+1+JcZp0ZNPV31ym537ZJN+fiS7Ti8E=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.0 h1:1NKXS8XfhMM0bg5wVYa/eOH8AM2f6JijugbKEyQFTIg=
-github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.0/go.mod h1:ph931DUfVfgrhZR7py9olSvHCiRpvaGxNvlWBcXxFds=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.65.0 h1:2dSm7frMrw2tdJ0QvyccQNJyPGaP24dyDgZ6h1QJMGU=
-github.com/aws/aws-sdk-go-v2/service/s3 v1.65.0/go.mod h1:4XSVpw66upN8wND3JZA29eXl2NOZvfFVq7DIP6xvfuQ=
-github.com/aws/aws-sdk-go-v2/service/ssm v1.50.7 h1:GkRsyFS9MmX/ybCvOncmp1A4XYn75v0x/ReWnIUao6E=
-github.com/aws/aws-sdk-go-v2/service/ssm v1.50.7/go.mod h1:oBlt+H2x16bM5mSUNhmzIR2BWWnMsLUa1Qqs5auS1Bs=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2 h1:t7iUP9+4wdc5lt3E41huP+GvQZJD38WLsgVp4iOtAjg=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.2/go.mod h1:/niFCtmuQNxqx9v8WAPq5qh7EH25U4BF6tjoyq9bObM=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0 h1:xA6XhTF7PE89BCNHJbQi8VvPzcgMtmGC5dr8S8N7lHk=
+github.com/aws/aws-sdk-go-v2/service/s3 v1.66.0/go.mod h1:cB6oAuus7YXRZhWCc1wIwPywwZ1XwweNp2TVAEGYeB8=
+github.com/aws/aws-sdk-go-v2/service/ssm v1.55.2 h1:z6Pq4+jtKlhK4wWJGHRGwMLGjC1HZwAO3KJr/Na0tSU=
+github.com/aws/aws-sdk-go-v2/service/ssm v1.55.2/go.mod h1:DSmu/VZzpQlAubWBbAvNpt+S4k/XweglJi4XaDGyvQk=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.6 h1:3zu537oLmsPfDMyjnUS2g+F2vITgy5pB74tHI+JBNoM=
github.com/aws/aws-sdk-go-v2/service/sso v1.24.6/go.mod h1:WJSZH2ZvepM6t6jwu4w/Z45Eoi75lPN7DcydSRtJg6Y=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5 h1:K0OQAsDywb0ltlFrZm0JHPY3yZp/S9OaoLU33S7vPS8=
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.5/go.mod h1:ORITg+fyuMoeiQFiVGoqB3OydVTLkClw/ljbblMq6Cc=
github.com/aws/aws-sdk-go-v2/service/sts v1.33.1 h1:6SZUVRQNvExYlMLbHdlKB48x0fLbc2iVROyaNEwBHbU=
github.com/aws/aws-sdk-go-v2/service/sts v1.33.1/go.mod h1:GqWyYCwLXnlUB1lOAXQyNSPqPLQJvmo8J0DWBzp9mtg=
-github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6 h1:iQc6pdTje/w3D3vrocVIvcosNVQGjoGxqBgPpwG28BY=
-github.com/aws/session-manager-plugin v0.0.0-20241010233726-61cf1288c7c6/go.mod h1:7n17tunRPUsniNBu5Ja9C7WwJWTdOzaLqr/H0Ns3uuI=
+github.com/aws/session-manager-plugin v0.0.0-20241119210807-82dc72922492 h1:Ihams/fjKo4iWwM313ng2gCJWoetsL7ZQkXhOTmVUq4=
+github.com/aws/session-manager-plugin v0.0.0-20241119210807-82dc72922492/go.mod h1:7n17tunRPUsniNBu5Ja9C7WwJWTdOzaLqr/H0Ns3uuI=
github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro=
github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
@@ -153,10 +153,10 @@ github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5Qvfr
github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E=
github.com/djherbis/times v1.6.0 h1:w2ctJ92J8fBvWPxugmXIv7Nz7Q3iDMKNx9v5ocVH20c=
github.com/djherbis/times v1.6.0/go.mod h1:gOHeRAz2h+VJNZ5Gmc/o7iD9k4wW7NMVqieYCY99oc0=
-github.com/docker/cli v27.1.1+incompatible h1:goaZxOqs4QKxznZjjBWKONQci/MywhtRv2oNn0GkeZE=
-github.com/docker/cli v27.1.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/docker v27.3.1+incompatible h1:KttF0XoteNTicmUtBO0L2tP+J7FGRFTjaEF4k6WdhfI=
-github.com/docker/docker v27.3.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
+github.com/docker/cli v27.4.0+incompatible h1:/nJzWkcI1MDMN+U+px/YXnQWJqnu4J+QKGTfD6ptiTc=
+github.com/docker/cli v27.4.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/docker v27.4.0+incompatible h1:I9z7sQ5qyzO0BfAb9IMOawRkAGxhYsidKiTMcm0DU+A=
+github.com/docker/docker v27.4.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c=
github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc=
github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
@@ -259,8 +259,8 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 h1:ad0vkEBuk23VJzZR9nkLVG0YAoN
github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0/go.mod h1:igFoXX2ELCW06bol23DWPB5BEWfZISOzSP5K2sbLea0=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU=
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
-github.com/hairyhenderson/go-codeowners v0.5.0 h1:dpQB+hVHiRc2VVvc2BHxkuM+tmu9Qej/as3apqUbsWc=
-github.com/hairyhenderson/go-codeowners v0.5.0/go.mod h1:R3uW1OQXEj2Gu6/OvZ7bt6hr0qdkLvUWPiqNaWnexpo=
+github.com/hairyhenderson/go-codeowners v0.7.0 h1:s0W4wF8bdsBEjTWzwzSlsatSthWtTAF2xLgo4a4RwAo=
+github.com/hairyhenderson/go-codeowners v0.7.0/go.mod h1:wUlNgQ3QjqC4z8DnM5nnCYVq/icpqXJyJOukKx5U8/Q=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
@@ -381,10 +381,12 @@ github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFz
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo=
-github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
+github.com/pkg/sftp v1.13.7 h1:uv+I3nNJvlKZIQGSr8JVQLNHFU9YhhNpvC14Y6KgmSM=
+github.com/pkg/sftp v1.13.7/go.mod h1:KMKI0t3T6hfA+lTR/ssZdunHo+uwq7ghoN09/FSu3DY=
github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk=
github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
@@ -558,7 +560,7 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
+golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -573,6 +575,7 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -590,7 +593,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
+golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -605,6 +609,7 @@ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -630,19 +635,26 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
-golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
+golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
+golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0=
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg=
@@ -659,6 +671,7 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -713,10 +726,10 @@ gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8=
-k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE=
-k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4=
-k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
+k8s.io/api v0.31.4 h1:I2QNzitPVsPeLQvexMEsj945QumYraqv9m74isPDKhM=
+k8s.io/api v0.31.4/go.mod h1:d+7vgXLvmcdT1BCo79VEgJxHHryww3V5np2OYTr6jdw=
+k8s.io/apimachinery v0.31.4 h1:8xjE2C4CzhYVm9DGf60yohpNUh5AEBnPxCryPBECmlM=
+k8s.io/apimachinery v0.31.4/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo=
k8s.io/cli-runtime v0.31.2 h1:7FQt4C4Xnqx8V1GJqymInK0FFsoC+fAZtbLqgXYVOLQ=
k8s.io/cli-runtime v0.31.2/go.mod h1:XROyicf+G7rQ6FQJMbeDV9jqxzkWXTYD6Uxd15noe0Q=
k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4=
diff --git a/test/new-e2e/tests/gpu/gpu_test.go b/test/new-e2e/tests/gpu/gpu_test.go
index 74b1229437a46c..0c71a1fe7f74cd 100644
--- a/test/new-e2e/tests/gpu/gpu_test.go
+++ b/test/new-e2e/tests/gpu/gpu_test.go
@@ -3,6 +3,7 @@
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2024-present Datadog, Inc.
+// Package gpu contains e2e tests for the GPU monitoring module
package gpu
import (
@@ -14,18 +15,13 @@ import (
"testing"
"time"
- "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2"
"github.com/stretchr/testify/assert"
"github.com/DataDog/datadog-agent/pkg/util/testutil/flake"
"github.com/DataDog/datadog-agent/test/fakeintake/client"
- "github.com/DataDog/test-infra-definitions/components/datadog/agentparams"
- "github.com/DataDog/test-infra-definitions/components/os"
-
"github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e"
"github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments"
- awshost "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host"
"github.com/DataDog/datadog-agent/test/new-e2e/pkg/utils/e2e/client/agentclient"
)
@@ -34,63 +30,35 @@ var imageTag = flag.String("image-tag", "main", "Docker image tag to use")
type gpuSuite struct {
e2e.BaseSuite[environments.Host]
- imageTag string
containerNameCounter int
}
-const defaultGpuCheckConfig = `
-init_config:
- min_collection_interval: 5
-
-instances:
- - {}
-`
-
-const defaultSysprobeConfig = `
-gpu_monitoring:
- enabled: true
-`
-
const vectorAddDockerImg = "ghcr.io/datadog/apps-cuda-basic"
-const gpuEnabledAMI = "ami-0f71e237bb2ba34be" // Ubuntu 22.04 with GPU drivers
+
+func dockerImageName() string {
+ return fmt.Sprintf("%s:%s", vectorAddDockerImg, *imageTag)
+}
// TestGPUSuite runs tests for the VM interface to ensure its implementation is correct.
// Not to be run in parallel, as some tests wait until the checks are available.
func TestGPUSuite(t *testing.T) {
- provisioner := awshost.Provisioner(
- awshost.WithEC2InstanceOptions(
- ec2.WithInstanceType("g4dn.xlarge"),
- ec2.WithAMI(gpuEnabledAMI, os.Ubuntu2204, os.AMD64Arch),
- ),
- awshost.WithAgentOptions(
- agentparams.WithIntegration("gpu.d", defaultGpuCheckConfig),
- agentparams.WithSystemProbeConfig(defaultSysprobeConfig),
- ),
- awshost.WithDocker(),
- )
+ provParams := getDefaultProvisionerParams()
+
+ // Append our vectorAdd image for testing
+ provParams.dockerImages = append(provParams.dockerImages, dockerImageName())
+
+ provisioner := gpuInstanceProvisioner(provParams)
suiteParams := []e2e.SuiteOption{e2e.WithProvisioner(provisioner)}
if *devMode {
suiteParams = append(suiteParams, e2e.WithDevMode())
}
- suite := &gpuSuite{
- imageTag: *imageTag,
- }
+ suite := &gpuSuite{}
e2e.Run(t, suite, suiteParams...)
}
-func (v *gpuSuite) SetupSuite() {
- v.BaseSuite.SetupSuite()
-
- v.Env().RemoteHost.MustExecute(fmt.Sprintf("docker pull %s", v.dockerImageName()))
-}
-
-func (v *gpuSuite) dockerImageName() string {
- return fmt.Sprintf("%s:%s", vectorAddDockerImg, v.imageTag)
-}
-
// TODO: Extract this to common package? service_discovery uses it too
type checkStatus struct {
CheckID string `json:"CheckID"`
@@ -118,7 +86,7 @@ func (v *gpuSuite) runCudaDockerWorkload() string {
containerName := fmt.Sprintf("cuda-basic-%d", v.containerNameCounter)
v.containerNameCounter++
- cmd := fmt.Sprintf("docker run --gpus all --name %s %s %s %d %d %d", containerName, v.dockerImageName(), binary, vectorSize, numLoops, waitTimeSeconds)
+ cmd := fmt.Sprintf("docker run --gpus all --name %s %s %s %d %d %d", containerName, dockerImageName(), binary, vectorSize, numLoops, waitTimeSeconds)
out, err := v.Env().RemoteHost.Execute(cmd)
v.Require().NoError(err)
v.Require().NotEmpty(out)
diff --git a/test/new-e2e/tests/gpu/provisioner.go b/test/new-e2e/tests/gpu/provisioner.go
new file mode 100644
index 00000000000000..ee552dcca7d8d8
--- /dev/null
+++ b/test/new-e2e/tests/gpu/provisioner.go
@@ -0,0 +1,237 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2024-present Datadog, Inc.
+
+package gpu
+
+import (
+ "fmt"
+ "strconv"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+
+ "github.com/DataDog/test-infra-definitions/common/utils"
+ "github.com/DataDog/test-infra-definitions/components/command"
+ "github.com/DataDog/test-infra-definitions/components/datadog/agent"
+ "github.com/DataDog/test-infra-definitions/components/datadog/agentparams"
+ "github.com/DataDog/test-infra-definitions/components/docker"
+ "github.com/DataDog/test-infra-definitions/components/os"
+ "github.com/DataDog/test-infra-definitions/components/remote"
+ "github.com/DataDog/test-infra-definitions/resources/aws"
+ "github.com/DataDog/test-infra-definitions/scenarios/aws/ec2"
+ "github.com/DataDog/test-infra-definitions/scenarios/aws/fakeintake"
+
+ "github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e"
+ "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments"
+)
+
+// gpuEnabledAMI is an AMI that has GPU drivers pre-installed. In this case it's
+// an Ubuntu 22.04 with NVIDIA drivers
+const gpuEnabledAMI = "ami-0f71e237bb2ba34be"
+
+// gpuInstanceType is the instance type to use. By default we use g4dn.xlarge,
+// which is the cheapest GPU instance type
+const gpuInstanceType = "g4dn.xlarge"
+
+// nvidiaPCIVendorID is the PCI vendor ID for NVIDIA GPUs, used to identify the
+// GPU devices with lspci
+const nvidiaPCIVendorID = "10de"
+
+// cudaSanityCheckImage is a Docker image that contains a CUDA sample to
+// validate the GPU setup with the default CUDA installation. Note that the CUDA
+// version in this image must be equal or less than the one installed in the
+// AMI.
+const cudaSanityCheckImage = "669783387624.dkr.ecr.us-east-1.amazonaws.com/dockerhub/nvidia/cuda:12.6.3-base-ubuntu22.04"
+
+// nvidiaSMIValidationCmd is a command that checks if the nvidia-smi command is
+// available and can list the GPUs
+const nvidiaSMIValidationCmd = "nvidia-smi -L | grep GPU"
+
+// validationCommandMarker is a command that can be appended to all validation commands
+// to identify them in the output, which can be useful to later force retries. Retries
+// are controlled in test/new-e2e/pkg/utils/infra/retriable_errors.go, and the way to
+// identify them are based on the pulumi logs. This command will be echoed to the output
+// and can be used to identify the validation commands.
+const validationCommandMarker = "echo 'gpu-validation-command'"
+
+const defaultGpuCheckConfig = `
+init_config:
+ min_collection_interval: 5
+
+instances:
+ - {}
+`
+
+const defaultSysprobeConfig = `
+gpu_monitoring:
+ enabled: true
+`
+
+type provisionerParams struct {
+ agentOptions []agentparams.Option
+ ami string
+ amiOS os.Descriptor
+ instanceType string
+ dockerImages []string
+}
+
+func getDefaultProvisionerParams() *provisionerParams {
+ return &provisionerParams{
+ agentOptions: []agentparams.Option{
+ agentparams.WithIntegration("gpu.d", defaultGpuCheckConfig),
+ agentparams.WithSystemProbeConfig(defaultSysprobeConfig),
+ },
+ ami: gpuEnabledAMI,
+ amiOS: os.Ubuntu2204,
+ instanceType: gpuInstanceType,
+ dockerImages: []string{cudaSanityCheckImage},
+ }
+}
+
+func gpuInstanceProvisioner(params *provisionerParams) e2e.Provisioner {
+ return e2e.NewTypedPulumiProvisioner[environments.Host]("gpu", func(ctx *pulumi.Context, env *environments.Host) error {
+ name := "gpuvm"
+ awsEnv, err := aws.NewEnvironment(ctx)
+ if err != nil {
+ return err
+ }
+
+ // Create the EC2 instance
+ host, err := ec2.NewVM(awsEnv, name,
+ ec2.WithInstanceType(params.instanceType),
+ ec2.WithAMI(params.ami, params.amiOS, os.AMD64Arch),
+ )
+ if err != nil {
+ return err
+ }
+ err = host.Export(ctx, &env.RemoteHost.HostOutput)
+ if err != nil {
+ return err
+ }
+
+ // Create the fakeintake instance
+ fakeIntake, err := fakeintake.NewECSFargateInstance(awsEnv, name)
+ if err != nil {
+ return err
+ }
+ err = fakeIntake.Export(ctx, &env.FakeIntake.FakeintakeOutput)
+ if err != nil {
+ return err
+ }
+
+ // install the ECR credentials helper
+ // required to get pipeline agent images or other internally hosted images
+ installEcrCredsHelperCmd, err := ec2.InstallECRCredentialsHelper(awsEnv, host)
+ if err != nil {
+ return err
+ }
+
+ // Validate GPU devices
+ validateGPUDevicesCmd, err := validateGPUDevices(awsEnv, host)
+ if err != nil {
+ return err
+ }
+
+ // Install Docker (only after GPU devices are validated and the ECR credentials helper is installed)
+ dockerManager, err := docker.NewManager(&awsEnv, host, utils.PulumiDependsOn(installEcrCredsHelperCmd))
+ if err != nil {
+ return err
+ }
+
+ // Pull all the docker images required for the tests
+ dockerPullCmds, err := downloadDockerImages(awsEnv, host, params.dockerImages, dockerManager)
+ if err != nil {
+ return err
+ }
+
+ // Validate that Docker can run CUDA samples
+ dockerCudaDeps := append(dockerPullCmds, validateGPUDevicesCmd...)
+ err = validateDockerCuda(awsEnv, host, dockerCudaDeps...)
+ if err != nil {
+ return err
+ }
+
+ // Combine agent options from the parameters with the fakeintake and docker dependencies
+ params.agentOptions = append(params.agentOptions,
+ agentparams.WithFakeintake(fakeIntake),
+ agentparams.WithPulumiResourceOptions(utils.PulumiDependsOn(dockerManager)), // Depend on Docker to avoid apt lock issues
+ )
+
+ // Set updater to nil as we're not using it
+ env.Updater = nil
+
+ // Install the agent
+ agent, err := agent.NewHostAgent(&awsEnv, host, params.agentOptions...)
+ if err != nil {
+ return err
+ }
+
+ err = agent.Export(ctx, &env.Agent.HostAgentOutput)
+ if err != nil {
+ return err
+ }
+
+ return nil
+ }, nil)
+}
+
+// validateGPUDevices checks that there are GPU devices present and accesible
+func validateGPUDevices(e aws.Environment, vm *remote.Host) ([]pulumi.Resource, error) {
+ commands := map[string]string{
+ "pci": fmt.Sprintf("lspci -d %s:: | grep NVIDIA", nvidiaPCIVendorID),
+ "driver": "lsmod | grep nvidia",
+ "nvidia": "nvidia-smi -L | grep GPU",
+ }
+
+ var cmds []pulumi.Resource
+
+ for name, cmd := range commands {
+ c, err := vm.OS.Runner().Command(
+ e.CommonNamer().ResourceName("gpu-validate", name),
+ &command.Args{
+ Create: pulumi.Sprintf("%s && %s", validationCommandMarker, cmd),
+ Sudo: false,
+ },
+ )
+ if err != nil {
+ return nil, err
+ }
+ cmds = append(cmds, c)
+ }
+
+ return cmds, nil
+}
+
+func downloadDockerImages(e aws.Environment, vm *remote.Host, images []string, dependsOn ...pulumi.Resource) ([]pulumi.Resource, error) {
+ var cmds []pulumi.Resource
+
+ for i, image := range images {
+ cmd, err := vm.OS.Runner().Command(
+ e.CommonNamer().ResourceName("docker-pull", strconv.Itoa(i)),
+ &command.Args{
+ Create: pulumi.Sprintf("docker pull %s", image),
+ },
+ utils.PulumiDependsOn(dependsOn...),
+ )
+ if err != nil {
+ return nil, err
+ }
+
+ cmds = append(cmds, cmd)
+ }
+
+ return cmds, nil
+}
+
+func validateDockerCuda(e aws.Environment, vm *remote.Host, dependsOn ...pulumi.Resource) error {
+ _, err := vm.OS.Runner().Command(
+ e.CommonNamer().ResourceName("docker-cuda-validate"),
+ &command.Args{
+ Create: pulumi.Sprintf("%s && docker run --gpus all --rm %s bash -c \"%s\"", validationCommandMarker, cudaSanityCheckImage, nvidiaSMIValidationCmd),
+ },
+ utils.PulumiDependsOn(dependsOn...),
+ )
+
+ return err
+}
diff --git a/test/new-e2e/tests/ha-agent/haagent_test.go b/test/new-e2e/tests/ha-agent/haagent_test.go
index 2dc700bec2be8a..cc173d2da7bae3 100644
--- a/test/new-e2e/tests/ha-agent/haagent_test.go
+++ b/test/new-e2e/tests/ha-agent/haagent_test.go
@@ -44,21 +44,6 @@ log_level: debug
func (s *haAgentTestSuite) TestHaAgentRunningMetrics() {
fakeClient := s.Env().FakeIntake.Client()
- s.EventuallyWithT(func(c *assert.CollectT) {
- s.T().Log("try assert datadog.agent.running metric")
- metrics, err := fakeClient.FilterMetrics("datadog.agent.running")
- require.NoError(c, err)
- assert.NotEmpty(c, metrics)
- for _, metric := range metrics {
- s.T().Logf(" datadog.agent.running metric tags: %+v", metric.Tags)
- }
-
- tags := []string{"agent_group:test-group01"}
- metrics, err = fakeClient.FilterMetrics("datadog.agent.running", fakeintakeclient.WithTags[*aggregator.MetricSeries](tags))
- require.NoError(c, err)
- assert.NotEmpty(c, metrics)
- }, 5*time.Minute, 3*time.Second)
-
s.EventuallyWithT(func(c *assert.CollectT) {
s.T().Log("try assert datadog.agent.ha_agent.running metric")
metrics, err := fakeClient.FilterMetrics("datadog.agent.ha_agent.running")
@@ -68,7 +53,7 @@ func (s *haAgentTestSuite) TestHaAgentRunningMetrics() {
s.T().Logf(" datadog.agent.ha_agent.running metric tags: %+v", metric.Tags)
}
- tags := []string{"agent_group:test-group01", "agent_state:unknown"}
+ tags := []string{"agent_state:unknown"}
metrics, err = fakeClient.FilterMetrics("datadog.agent.ha_agent.running", fakeintakeclient.WithTags[*aggregator.MetricSeries](tags))
require.NoError(c, err)
assert.NotEmpty(c, metrics)
diff --git a/test/new-e2e/tests/installer/script/databricks_test.go b/test/new-e2e/tests/installer/script/databricks_test.go
index 7195da6805295e..b6f038ab968037 100644
--- a/test/new-e2e/tests/installer/script/databricks_test.go
+++ b/test/new-e2e/tests/installer/script/databricks_test.go
@@ -12,6 +12,12 @@ import (
e2eos "github.com/DataDog/test-infra-definitions/components/os"
)
+const (
+ databricksAgentVersion = "7.58.2-1"
+ databricksApmInjectVersion = "0.26.0"
+ databricksApmLibraryJavaVersion = "1.42.2"
+)
+
type installScriptDatabricksSuite struct {
installerScriptBaseSuite
url string
@@ -29,17 +35,28 @@ func testDatabricksScript(os e2eos.Descriptor, arch e2eos.Architecture) installe
func (s *installScriptDatabricksSuite) TestDatabricksWorkerInstallScript() {
s.RunInstallScript(s.url)
state := s.host.State()
- state.AssertDirExists("/opt/datadog-packages/datadog-agent/7.57.2-1", 0755, "dd-agent", "dd-agent")
- state.AssertSymlinkExists("/opt/datadog-packages/datadog-agent/stable", "/opt/datadog-packages/datadog-agent/7.57.2-1", "root", "root")
+ agentPath := fmt.Sprintf("/opt/datadog-packages/datadog-agent/%s", databricksAgentVersion)
+ state.AssertDirExists(agentPath, 0755, "dd-agent", "dd-agent")
+ state.AssertSymlinkExists("/opt/datadog-packages/datadog-agent/stable", agentPath, "root", "root")
+
+ state.AssertFileExists("/etc/datadog-agent/datadog.yaml", 0640, "dd-agent", "dd-agent")
}
func (s *installScriptDatabricksSuite) TestDatabricksDriverInstallScript() {
s.RunInstallScript(s.url, "DB_IS_DRIVER=TRUE")
state := s.host.State()
- state.AssertDirExists("/opt/datadog-packages/datadog-agent/7.57.2-1", 0755, "dd-agent", "dd-agent")
- state.AssertSymlinkExists("/opt/datadog-packages/datadog-agent/stable", "/opt/datadog-packages/datadog-agent/7.57.2-1", "root", "root")
- state.AssertDirExists("/opt/datadog-packages/datadog-apm-inject/0.21.0", 0755, "root", "root")
- state.AssertSymlinkExists("/opt/datadog-packages/datadog-apm-inject/stable", "/opt/datadog-packages/datadog-apm-inject/0.21.0", "root", "root")
- state.AssertDirExists("/opt/datadog-packages/datadog-apm-library-java/1.41.1", 0755, "root", "root")
- state.AssertSymlinkExists("/opt/datadog-packages/datadog-apm-library-java/stable", "/opt/datadog-packages/datadog-apm-library-java/1.41.1", "root", "root")
+ agentPath := fmt.Sprintf("/opt/datadog-packages/datadog-agent/%s", databricksAgentVersion)
+ javaPath := fmt.Sprintf("/opt/datadog-packages/datadog-apm-library-java/%s", databricksApmLibraryJavaVersion)
+ injectPath := fmt.Sprintf("/opt/datadog-packages/datadog-apm-inject/%s", databricksApmInjectVersion)
+
+ state.AssertDirExists(agentPath, 0755, "dd-agent", "dd-agent")
+ state.AssertSymlinkExists("/opt/datadog-packages/datadog-agent/stable", agentPath, "root", "root")
+ state.AssertDirExists(injectPath, 0755, "root", "root")
+ state.AssertSymlinkExists("/opt/datadog-packages/datadog-apm-inject/stable", injectPath, "root", "root")
+ state.AssertDirExists(javaPath, 0755, "root", "root")
+ state.AssertSymlinkExists("/opt/datadog-packages/datadog-apm-library-java/stable", javaPath, "root", "root")
+
+ state.AssertFileExists("/etc/datadog-agent/datadog.yaml", 0640, "dd-agent", "dd-agent")
+ state.AssertFileExists("/etc/datadog-agent/conf.d/spark.d/databricks.yaml", 0644, "dd-agent", "dd-agent")
+ state.AssertFileExists("/etc/datadog-agent/inject/tracer.yaml", 0644, "root", "root")
}
diff --git a/test/new-e2e/tests/installer/unix/package_definitions.go b/test/new-e2e/tests/installer/unix/package_definitions.go
index 2f7c2d15057ddc..78c5ac64fd75b8 100644
--- a/test/new-e2e/tests/installer/unix/package_definitions.go
+++ b/test/new-e2e/tests/installer/unix/package_definitions.go
@@ -67,8 +67,8 @@ func WithAlias(alias string) PackageOption {
// PackagesConfig is the list of known packages configuration for testing
var PackagesConfig = []TestPackageConfig{
- {Name: "datadog-installer", Version: fmt.Sprintf("pipeline-%v", os.Getenv("E2E_PIPELINE_ID")), Registry: "669783387624.dkr.ecr.us-east-1.amazonaws.com", Auth: "ecr"},
- {Name: "datadog-agent", Alias: "agent-package", Version: fmt.Sprintf("pipeline-%v", os.Getenv("E2E_PIPELINE_ID")), Registry: "669783387624.dkr.ecr.us-east-1.amazonaws.com", Auth: "ecr"},
+ {Name: "datadog-installer", Version: fmt.Sprintf("pipeline-%v", os.Getenv("E2E_PIPELINE_ID")), Registry: "installtesting.datad0g.com"},
+ {Name: "datadog-agent", Alias: "agent-package", Version: fmt.Sprintf("pipeline-%v", os.Getenv("E2E_PIPELINE_ID")), Registry: "installtesting.datad0g.com"},
{Name: "datadog-apm-inject", Version: "latest"},
{Name: "datadog-apm-library-java", Version: "latest"},
{Name: "datadog-apm-library-ruby", Version: "latest"},
diff --git a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go
index 74d3b888cab582..6230ef741410c1 100644
--- a/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go
+++ b/test/new-e2e/tests/installer/unix/upgrade_scenario_test.go
@@ -404,6 +404,10 @@ func (s *upgradeScenarioSuite) TestConfigUpgradeSuccessful() {
s.host.WaitForFileExists(true, "/opt/datadog-packages/run/installer.sock")
state := s.host.State()
+ // Assert setup successful
+ state.AssertDirExists("/etc/datadog-agent/managed", 0755, "root", "root")
+ state.AssertDirExists("/etc/datadog-agent/managed/datadog-apm-libraries", 0755, "root", "root")
+ state.AssertDirExists("/etc/datadog-agent/managed/datadog-agent", 0755, "root", "root")
state.AssertSymlinkExists("/etc/datadog-agent/managed/datadog-agent/stable", "/etc/datadog-agent/managed/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d", "root", "root")
// Verify metadata
state.AssertFileExists("/etc/datadog-agent/managed/datadog-agent/e94406c45ae766b7d34d2793e4759b9c4d15ed5d5e2b7f73ce1bf0e6836f728d/policy.metadata", 0440, "dd-agent", "dd-agent")
diff --git a/test/new-e2e/tests/windows/domain-test/domain_test.go b/test/new-e2e/tests/windows/domain-test/domain_test.go
index 698d45fd0c1383..134dc68d306831 100644
--- a/test/new-e2e/tests/windows/domain-test/domain_test.go
+++ b/test/new-e2e/tests/windows/domain-test/domain_test.go
@@ -7,21 +7,24 @@ package domain
import (
"fmt"
- awsHostWindows "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host/windows"
- "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows"
- "github.com/DataDog/test-infra-definitions/components/activedirectory"
"path/filepath"
"reflect"
"testing"
"time"
+ "github.com/DataDog/test-infra-definitions/components/activedirectory"
+
+ awsHostWindows "github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments/aws/host/windows"
+ "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows"
+
+ "github.com/stretchr/testify/assert"
+
"github.com/DataDog/datadog-agent/test/new-e2e/pkg/e2e"
"github.com/DataDog/datadog-agent/test/new-e2e/pkg/environments"
platformCommon "github.com/DataDog/datadog-agent/test/new-e2e/tests/agent-platform/common"
windowsCommon "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows/common"
windowsAgent "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows/common/agent"
- "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows/install-test"
- "github.com/stretchr/testify/assert"
+ installtest "github.com/DataDog/datadog-agent/test/new-e2e/tests/windows/install-test"
)
const (
@@ -32,8 +35,9 @@ const (
func TestInstallsOnDomainController(t *testing.T) {
suites := []e2e.Suite[environments.WindowsHost]{
- &testInstallSuite{},
+ &testBasicInstallSuite{},
&testUpgradeSuite{},
+ &testInstallUserSyntaxSuite{},
}
for _, suite := range suites {
@@ -53,12 +57,12 @@ type testInstallSuite struct {
windows.BaseAgentInstallerSuite[environments.WindowsHost]
}
-func (suite *testInstallSuite) TestGivenDomainUserCanInstallAgent() {
+func (suite *testInstallSuite) testGivenDomainUserCanInstallAgent(username string) {
host := suite.Env().RemoteHost
_, err := suite.InstallAgent(host,
windowsAgent.WithPackage(suite.AgentPackage),
- windowsAgent.WithAgentUser(fmt.Sprintf("%s\\%s", TestDomain, TestUser)),
+ windowsAgent.WithAgentUser(username),
windowsAgent.WithAgentUserPassword(fmt.Sprintf("\"%s\"", TestPassword)),
windowsAgent.WithValidAPIKey(),
windowsAgent.WithFakeIntake(suite.Env().FakeIntake),
@@ -81,6 +85,22 @@ func (suite *testInstallSuite) TestGivenDomainUserCanInstallAgent() {
}, 5*time.Minute, 10*time.Second)
}
+type testBasicInstallSuite struct {
+ testInstallSuite
+}
+
+func (suite *testBasicInstallSuite) TestGivenDomainUserCanInstallAgent() {
+ suite.testGivenDomainUserCanInstallAgent(fmt.Sprintf("%s\\%s", TestDomain, TestUser))
+}
+
+type testInstallUserSyntaxSuite struct {
+ testInstallSuite
+}
+
+func (suite *testInstallUserSyntaxSuite) TestGivenDomainUserCanInstallAgent() {
+ suite.testGivenDomainUserCanInstallAgent(fmt.Sprintf("%s@%s", TestUser, TestDomain))
+}
+
type testUpgradeSuite struct {
windows.BaseAgentInstallerSuite[environments.WindowsHost]
}
diff --git a/test/otel/go.mod b/test/otel/go.mod
index 61cea6579311ff..fd0d05c30abe47 100644
--- a/test/otel/go.mod
+++ b/test/otel/go.mod
@@ -111,8 +111,8 @@ require (
)
require (
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 // indirect
github.com/hashicorp/go-version v1.7.0 // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
go.opentelemetry.io/collector/featuregate v1.21.0 // indirect
@@ -174,13 +174,13 @@ require (
github.com/DataDog/datadog-agent/pkg/util/system/socket v0.59.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.59.1 // indirect
github.com/DataDog/datadog-agent/pkg/version v0.59.1 // indirect
- github.com/DataDog/datadog-api-client-go/v2 v2.31.0 // indirect
- github.com/DataDog/datadog-go/v5 v5.5.0 // indirect
+ github.com/DataDog/datadog-api-client-go/v2 v2.33.0 // indirect
+ github.com/DataDog/datadog-go/v5 v5.6.0 // indirect
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 // indirect
github.com/DataDog/go-sqllexer v0.0.17 // indirect
github.com/DataDog/go-tuf v1.1.0-0.5.2 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 // indirect
- github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 // indirect
+ github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 // indirect
github.com/DataDog/sketches-go v1.4.6 // indirect
github.com/DataDog/viper v1.14.0 // indirect
github.com/DataDog/zstd v1.5.6 // indirect
@@ -235,12 +235,12 @@ require (
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest v0.115.0 // indirect
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/outcaste-io/ristretto v0.2.3 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // 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-20220216144756-c35f1ee13d7c // indirect
github.com/prometheus/client_golang v1.20.5 // indirect
diff --git a/test/otel/go.sum b/test/otel/go.sum
index a50f250b894a65..270aa7b8122483 100644
--- a/test/otel/go.sum
+++ b/test/otel/go.sum
@@ -2,28 +2,28 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/DataDog/agent-payload/v5 v5.0.138 h1:Wg7hmWuoLC/o0X3zZ+uGcfRHPyaytljudgSY9O59zjc=
github.com/DataDog/agent-payload/v5 v5.0.138/go.mod h1:lxh9lb5xYrBXjblpIWYUi4deJqVbkIfkjwesi5nskDc=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0 h1:JfJhYlHfLzvauI8u6h23smTooWYe6quNhhg9gpTszWY=
-github.com/DataDog/datadog-api-client-go/v2 v2.31.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
-github.com/DataDog/datadog-go/v5 v5.5.0 h1:G5KHeB8pWBNXT4Jtw0zAkhdxEAWSpWH00geHI6LDrKU=
-github.com/DataDog/datadog-go/v5 v5.5.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0 h1:OI6kDnJeQmkjfGzxmP0XUQUxMD4tp6oAPXnnJ4VpgUM=
+github.com/DataDog/datadog-api-client-go/v2 v2.33.0/go.mod h1:d3tOEgUd2kfsr9uuHQdY+nXrWp4uikgTgVCPdKNK30U=
+github.com/DataDog/datadog-go/v5 v5.6.0 h1:2oCLxjF/4htd55piM75baflj/KoE6VYS7alEUqFvRDw=
+github.com/DataDog/datadog-go/v5 v5.6.0/go.mod h1:K9kcYBlxkcPP8tvvjZZKs/m1edNAUFzBbdpTUKfCsuw=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42 h1:RoH7VLzTnxHEugRPIgnGlxwDFszFGI7b3WZZUtWuPRM=
github.com/DataDog/dd-sensitive-data-scanner/sds-go/go v0.0.0-20240816154533-f7f9beb53a42/go.mod h1:TX7CTOQ3LbQjfAi4SwqUoR5gY1zfUk7VRBDTuArjaDc=
github.com/DataDog/go-sqllexer v0.0.17 h1:u47fJAVg/+5DA74ZW3w0Qu+3qXHd3GtnA8ZBYixdPrM=
github.com/DataDog/go-sqllexer v0.0.17/go.mod h1:KwkYhpFEVIq+BfobkTC1vfqm4gTi65skV/DpDBXtexc=
github.com/DataDog/go-tuf v1.1.0-0.5.2 h1:4CagiIekonLSfL8GMHRHcHudo1fQnxELS9g4tiAupQ4=
github.com/DataDog/go-tuf v1.1.0-0.5.2/go.mod h1:zBcq6f654iVqmkk8n2Cx81E1JnNTMOAx1UEO/wZR+P0=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0 h1:U+p1i7+upWb4qOIOOvjS/92iMUGlSzEC1tRxVo0Lg8Y=
-github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.21.0/go.mod h1:dOjp1lg4jwYyIbpnqW+DoOV8qD+70C+lgpINFvUqasQ=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0 h1:VS4NTqwczwezMVvI6A7xYR3ugPmMUJ4FcdFrsdnZI2I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.21.0/go.mod h1:66XlN7QpQKqIvw8e2UbCXV5X8wGnEw851nT9BjJ75dY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0 h1:hgbTFS6SkqbzOiWSfP58dZ/Jpjlmv6dpD4+V4LDHm2Q=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.21.0/go.mod h1:dvIWN9pA2zWNTw5rhDWZgzZnhcfpH++d+8d1SWW6xkY=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0 h1:XD9Kd+baO66+tfbdanOFSMGEfwWfnrn/IxG/Dc5bv5I=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.21.0/go.mod h1:9ByLz9jISc176DzjIdaRfRKwaitqF8ie6RTvfP8Aufo=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0 h1:8nW8jfcCIWzxWrpI31C0QYoOjTaUGp6USCwiRbP5Fp4=
-github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.21.0/go.mod h1:wuatEozcLYinJ0WYf0MlVTFtTzEmf+qyJet0H9foVAs=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0 h1:/Dp1WBvekdusS9Tw9pLE7RG04eluNktQ29arLS4SpGM=
-github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.21.0/go.mod h1:asNuwNy1O2HbadkcZVuqmFGonfEzXS/SBvOo8V1MJvQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0 h1:r1Dx2cRHCBWkVluSZA41i4eoI/nOGbcrrZdkqWjoFCc=
+github.com/DataDog/opentelemetry-mapping-go/pkg/inframetadata v0.22.0/go.mod h1:+/dkO8ZiMa8rfm4SmtTF6qPUdBbBcvsWWKaO4xPKAIk=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0 h1:cXcKVEU1D0HlguR7GunnvuI70TghkarCa9DApqzMY94=
+github.com/DataDog/opentelemetry-mapping-go/pkg/internal/sketchtest v0.22.0/go.mod h1:ES00EXfyEKgUkjd93tAXCxJA6i0seeOhZoS5Cj2qzzg=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0 h1:yfk2cF8Bx98fSFpGrehEHh1FRqewfxcCTAbUDt5r3F8=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/attributes v0.22.0/go.mod h1:9qzpnBSxSOnKzbF/uHket3SSlQihQHix/ZRC2nZUUYQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0 h1:Zqj8YUZ/ualUhM8GDCQX6xKnUJKEiG0eYdFGWmIDG30=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/logs v0.22.0/go.mod h1:lpr4q6g2TB0BHeLHaz/XleKm8YXQjuxiQEb9Q9HXXE0=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0 h1:w9+ngZDYUMLW+GSRA8x1DvVbuMR+cwlGb8VLwZfgBGs=
+github.com/DataDog/opentelemetry-mapping-go/pkg/otlp/metrics v0.22.0/go.mod h1:UsfqLgiD6Sjhpjkg+YzAd+TdKUZ2m6ZZ8t+tEkLNTMA=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0 h1:63SzQz9Ab8XJj8fQKQz6UZNBhOm8rucwzbDfwTVF6dQ=
+github.com/DataDog/opentelemetry-mapping-go/pkg/quantile v0.22.0/go.mod h1:E/PY/aQ6S/N5hBPHXZRGmovs5b1BSi4RHGNcB4yP/Z0=
github.com/DataDog/sketches-go v1.4.6 h1:acd5fb+QdUzGrosfNLwrIhqyrbMORpvBy7mE+vHlT3I=
github.com/DataDog/sketches-go v1.4.6/go.mod h1:7Y8GN8Jf66DLyDhc94zuWA3uHEt/7ttt8jHOBWWrSOg=
github.com/DataDog/viper v1.14.0 h1:dIjTe/uJiah+QFqFZ+MXeqgmUvWhg37l37ZxFWxr3is=
@@ -269,6 +269,8 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=