diff --git a/.bazelrc b/.bazelrc
index d162f9d9e7f4..ca3c89fd3428 100644
--- a/.bazelrc
+++ b/.bazelrc
@@ -17,9 +17,16 @@ common --@rules_python//python/config_settings:bootstrap_impl=script # https://g
common --check_direct_dependencies=error # Escalate any bypassed `bazel_dep` to a resolution failure
common --enable_platform_specific_config # Supported OS identifiers are linux, macos, windows, freebsd, and openbsd
common --experimental_disk_cache_gc_max_size=5G # Cap applied whenever --disk_cache is also set, no-op otherwise
+common --experimental_strict_repo_env # Do not leak uncontrolled environment variables into repository rules
common --experimental_ui_max_stdouterr_bytes=1073741819 # why?
common --http_timeout_scaling=3.0 # At least one attempt reaches 30s (3,6,12,24,30,30,30,30) instead of only 10s (1,2,4,8,10,10,10,10)
-common --incompatible_strict_action_env # Do not leak local environment variables into the build context
+common --repo_env=DEPLOY_AGENT # Keep in sync with env_vars in MODULE.bazel
+common --repo_env=FORCED_PACKAGE_COMPRESSION_LEVEL # Keep in sync with env_vars in MODULE.bazel
+common --repo_env=GOCACHE # https://pkg.go.dev/cmd/go#hdr-Build_and_test_caching
+common --repo_env=GOMODCACHE # https://wiki.archlinux.org/title/XDG_Base_Directory#Partial
+common --repo_env=PACKAGE_VERSION # Keep in sync with env_vars in MODULE.bazel
+common --repo_env=SIGN_MAC # Keep in sync with env_vars in MODULE.bazel
+common --repo_env=XDG_CACHE_HOME # https://wiki.archlinux.org/title/XDG_Base_Directory
common --skip_incompatible_explicit_targets # Let target_compatible_with skip rather than fail
common --test_output=errors # Print test errors to console output instead of only capturing them in buried test.log
common --verbose_failures
@@ -44,10 +51,12 @@ common:windows --strategy=standalone # Valid values are: [dynamic_worker, standa
# rules_python 1.9.0 transitions enable_runfiles to `true` for every py_ target on Windows. Pre-setting it here makes
# that transition a no-op, so Bazel deduplicates python_win and avoids 2 concurrent MSBuild racing on shared resources.
common:windows --enable_runfiles
-# Neither repo_env nor shell_executable affect action keys. It can be both an advantage and a disadvantage.
-# For instance, if we need to have some special behavior in bash we can add it, however, in some cases
-# it may lead to cache poisoning.
common:windows --repo_env=BAZEL_SH=C:/tools/msys64/usr/bin/bash.exe # for https://github.com/bazelbuild/bazel/pull/26927
+common:windows --repo_env=PIP_CACHE_DIR # https://pip.pypa.io/en/stable/topics/caching/#default-paths
+common:windows --repo_env=SYSTEMDRIVE # needed by vswhere to locate the VS installer instance database
+common:windows --repo_env=SYSTEMROOT # used by COM to load system DLLs, needed by vswhere
+common:windows --repo_env=USERPROFILE # used by MSYS2 bash to emulate HOME, needed by git to fetch repositories
+common:windows --repo_env=VSTUDIO_ROOT # visual_studio(path_variable) in MODULE.bazel
common:windows --shell_executable=C:/tools/msys64/usr/bin/bash.exe
# Remote cache config --------------------------------------------------------------------------------------------------
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index e278c882aeed..9cb1b8642f2d 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -636,7 +636,6 @@
/pkg/logs/client @DataDog/agent-log-pipelines
/pkg/logs/diagnostic @DataDog/agent-log-pipelines
/pkg/logs/message @DataDog/agent-log-pipelines
-/pkg/logs/pipeline @DataDog/agent-log-pipelines
/pkg/logs/processor @DataDog/agent-log-pipelines
/pkg/logs/sender @DataDog/agent-log-pipelines
/pkg/process/ @DataDog/container-experiences
diff --git a/.gitignore b/.gitignore
index 6847ef605c4f..49c6e5d7feb1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -88,7 +88,7 @@ auth_token
/test/e2e/scripts/setup-instance/ignition.json
/test/e2e/containers/fake_datadog/venv/
/e2e-output
-/pkg/logs/pipeline/registry.json
+/comp/logs-library/pipeline/registry.json
# local copy of device signing cert
platform.pk8
@@ -215,7 +215,7 @@ test/new-e2e/system-probe/test-runner/test-runner
test/new-e2e/start-microvms
# trace-agent generates install.json files during tests
-pkg/serverless/trace/install.json
+pkg/serverless/trace/**/install.json
# Files used for eBPF complexity analysis
ebpf-calculator
diff --git a/.golangci.yml b/.golangci.yml
index f5a558d1e58d..d1f0a80d73cc 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -151,6 +151,8 @@ linters:
- "!**/comp/forwarder/defaultforwarder/blocked_endpoints.go"
- "!**/comp/forwarder/defaultforwarder/default_forwarder.go"
- "!**/comp/forwarder/eventplatform/eventplatformimpl/epforwarder.go"
+ - "!**/comp/logs-library/pipeline/provider.go"
+ - "!**/comp/logs-library/pipeline/provider_test.go"
- "!**/comp/logs/agent/agentimpl/agent_test.go"
- "!**/comp/logs/agent/agentimpl/analyze_logs_init.go"
- "!**/comp/logs/agent/agentimpl/serverless.go"
diff --git a/BUILD.bazel b/BUILD.bazel
index 6a912e05ac41..641bba868abd 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -45,17 +45,17 @@ ALL_BUILD_TAGS = [
# gazelle:exclude comp/autoscaling
# gazelle:exclude comp/checks
# gazelle:exclude comp/collector
-# gazelle:exclude comp/connectivitychecker
+# gazelle:exclude comp/connectivitychecker/checker
+# gazelle:exclude comp/connectivitychecker/fx
+# gazelle:exclude comp/connectivitychecker/impl
# gazelle:exclude comp/core/autodiscovery
# gazelle:exclude comp/core/agenttelemetry/fx
# gazelle:exclude comp/core/agenttelemetry/impl
-# gazelle:exclude comp/core/config
# gazelle:exclude comp/core/configstream
# gazelle:exclude comp/core/configsync
# gazelle:exclude comp/core/diagnose
# gazelle:exclude comp/core/flare/flareimpl
# gazelle:exclude comp/core/flare/helpers
-# gazelle:exclude comp/core/fxinstrumentation
# gazelle:exclude comp/core/gui
# gazelle:exclude comp/core/healthprobe
# gazelle:exclude comp/core/hostname/hostnameimpl
@@ -67,7 +67,6 @@ ALL_BUILD_TAGS = [
# gazelle:exclude comp/core/ipc/impl
# gazelle:exclude comp/core/ipc/impl-none
# gazelle:exclude comp/core/ipc/mock
-# gazelle:exclude comp/core/log
# gazelle:exclude comp/core/log/fx
# gazelle:exclude comp/core/log/fx-systemprobe
# gazelle:exclude comp/core/log/fx-trace
@@ -75,14 +74,11 @@ ALL_BUILD_TAGS = [
# gazelle:exclude comp/core/log/impl-systemprobe
# gazelle:exclude comp/core/log/impl-trace
# gazelle:exclude comp/core/log/rust
-# gazelle:exclude comp/core/lsof
-# gazelle:exclude comp/core/pid
# gazelle:exclude comp/core/profiler
# gazelle:exclude comp/core/remoteagent
# gazelle:exclude comp/core/remoteagentregistry
# gazelle:exclude comp/core/secrets/fx
# gazelle:exclude comp/core/secrets/fx-noop
-# gazelle:exclude comp/core/secrets/impl
# gazelle:exclude comp/core/settings
# gazelle:exclude comp/core/status/statusimpl
# gazelle:exclude comp/core/sysprobeconfig
@@ -104,21 +100,26 @@ ALL_BUILD_TAGS = [
# gazelle:exclude comp/core/tagger/k8s_metadata
# gazelle:exclude comp/core/tagger/kubetags
# gazelle:exclude comp/core/tagger/mock
-# gazelle:exclude comp/core/tagger/proto
# gazelle:exclude comp/core/tagger/server
-# gazelle:exclude comp/core/tagger/taglist
# gazelle:exclude comp/core/tagger/tagstore
# gazelle:exclude comp/core/workloadfilter
# gazelle:exclude comp/core/workloadmeta
# gazelle:exclude comp/core/workloadmeta
-# gazelle:exclude comp/dataobs
+# gazelle:exclude comp/dataobs/queryactions/fx
+# gazelle:exclude comp/dataobs/queryactions/impl
# gazelle:exclude comp/dogstatsd
-# gazelle:exclude comp/etw
+# gazelle:exclude comp/etw/impl
# gazelle:exclude comp/filterlist
-# gazelle:exclude comp/fleetstatus
+# gazelle:exclude comp/fleetstatus/fx
+# gazelle:exclude comp/fleetstatus/impl
# gazelle:exclude comp/forwarder
-# gazelle:exclude comp/haagent
-# gazelle:exclude comp/healthplatform
+# gazelle:exclude comp/haagent/fx
+# gazelle:exclude comp/haagent/helpers
+# gazelle:exclude comp/haagent/impl
+# gazelle:exclude comp/haagent/mock
+# gazelle:exclude comp/healthplatform/fx
+# gazelle:exclude comp/healthplatform/impl
+# gazelle:exclude comp/healthplatform/mock
# gazelle:exclude comp/host-profiler/collector
# gazelle:exclude comp/host-profiler/flare
# gazelle:exclude comp/host-profiler/oom
@@ -128,24 +129,27 @@ ALL_BUILD_TAGS = [
# gazelle:exclude comp/host-profiler/symboluploader/symbol
# gazelle:exclude comp/host-profiler/symboluploader/symbolcopier
# gazelle:exclude comp/host-profiler/version
-# gazelle:exclude comp/languagedetection
-# gazelle:exclude comp/logonduration
+# gazelle:exclude comp/languagedetection/client/fx
+# gazelle:exclude comp/languagedetection/client/impl
+# gazelle:exclude comp/languagedetection/client/mock
+# gazelle:exclude comp/logonduration/fx
+# gazelle:exclude comp/logonduration/impl
# gazelle:exclude comp/logs
# gazelle:exclude comp/logs-library
# gazelle:exclude comp/metadata
# gazelle:exclude comp/ndmtmp
-# gazelle:exclude comp/netflow/common
# gazelle:exclude comp/netflow/config
# gazelle:exclude comp/netflow/flowaggregator
-# gazelle:exclude comp/netflow/format
# gazelle:exclude comp/netflow/goflowlib
# gazelle:exclude comp/netflow/portrollup
# gazelle:exclude comp/netflow/server
# gazelle:exclude comp/netflow/testutil
# gazelle:exclude comp/netflow/topn
-# gazelle:exclude comp/networkdeviceconfig
+# gazelle:exclude comp/networkdeviceconfig/fx
+# gazelle:exclude comp/networkdeviceconfig/impl
# gazelle:exclude comp/networkpath
-# gazelle:exclude comp/notableevents
+# gazelle:exclude comp/notableevents/fx
+# gazelle:exclude comp/notableevents/impl
# gazelle:exclude comp/otelcol/collector
# gazelle:exclude comp/otelcol/collector-contrib/fx
# gazelle:exclude comp/otelcol/collector-contrib/impl
@@ -163,19 +167,30 @@ ALL_BUILD_TAGS = [
# gazelle:exclude comp/otelcol/otlp
# gazelle:exclude comp/otelcol/status/fx
# gazelle:exclude comp/otelcol/status/impl
-# gazelle:exclude comp/privateactionrunner
+# gazelle:exclude comp/privateactionrunner/fx
+# gazelle:exclude comp/privateactionrunner/impl
+# gazelle:exclude comp/privateactionrunner/status
# gazelle:exclude comp/process
# gazelle:exclude comp/publishermetadatacache
-# gazelle:exclude comp/rdnsquerier
+# gazelle:exclude comp/rdnsquerier/fx
+# gazelle:exclude comp/rdnsquerier/fx-mock
+# gazelle:exclude comp/rdnsquerier/fx-none
+# gazelle:exclude comp/rdnsquerier/impl
+# gazelle:exclude comp/rdnsquerier/impl-none
+# gazelle:exclude comp/rdnsquerier/mock
# gazelle:exclude comp/remote-config
# gazelle:exclude comp/serializer
# gazelle:exclude comp/snmpscan
-# gazelle:exclude comp/snmpscanmanager
+# gazelle:exclude comp/snmpscanmanager/fx
+# gazelle:exclude comp/snmpscanmanager/impl
+# gazelle:exclude comp/snmpscanmanager/mock
# gazelle:exclude comp/snmptraps
-# gazelle:exclude comp/softwareinventory
+# gazelle:exclude comp/softwareinventory/fx
+# gazelle:exclude comp/softwareinventory/impl
# gazelle:exclude comp/syntheticstestscheduler
# gazelle:exclude comp/systray
-# gazelle:exclude comp/trace-telemetry
+# gazelle:exclude comp/trace-telemetry/fx
+# gazelle:exclude comp/trace-telemetry/impl
# gazelle:exclude comp/trace/agent/fx
# gazelle:exclude comp/trace/agent/fx-mock
# gazelle:exclude comp/trace/agent/impl
@@ -185,7 +200,18 @@ ALL_BUILD_TAGS = [
# gazelle:exclude comp/trace/etwtracer
# gazelle:exclude comp/trace/payload-modifier
# gazelle:exclude comp/trace/status
-# gazelle:exclude comp/updater
+# gazelle:exclude comp/workloadselection/fx
+# gazelle:exclude comp/workloadselection/impl
+# gazelle:exclude comp/updater/daemonchecker/fx
+# gazelle:exclude comp/updater/daemonchecker/mock
+# gazelle:exclude comp/updater/localapi
+# gazelle:exclude comp/updater/localapiclient
+# gazelle:exclude comp/updater/ssistatus/fx
+# gazelle:exclude comp/updater/ssistatus/impl
+# gazelle:exclude comp/updater/telemetry/fx
+# gazelle:exclude comp/updater/telemetry/impl
+# gazelle:exclude comp/updater/telemetry/mock
+# gazelle:exclude comp/updater/updater
# gazelle:exclude comp/workloadselection
# gazelle:exclude internal/remote-agent
# gazelle:exclude internal/third_party
@@ -315,7 +341,6 @@ ALL_BUILD_TAGS = [
# gazelle:exclude pkg/opentelemetry-mapping-go/inframetadata
# gazelle:exclude pkg/orchestrator/config
# gazelle:exclude pkg/persistentcache
-# gazelle:exclude pkg/pidfile
# gazelle:exclude pkg/privateactionrunner
# gazelle:exclude pkg/privileged-logs
# gazelle:exclude pkg/process/checks
@@ -382,7 +407,6 @@ ALL_BUILD_TAGS = [
# gazelle:exclude pkg/system-probe
# gazelle:exclude pkg/trace/agent
# gazelle:exclude pkg/trace/api
-# gazelle:exclude pkg/trace/config
# gazelle:exclude pkg/trace/containertags
# gazelle:exclude pkg/trace/event
# gazelle:exclude pkg/trace/filters
@@ -391,16 +415,11 @@ ALL_BUILD_TAGS = [
# gazelle:exclude pkg/trace/payload
# gazelle:exclude pkg/trace/pb
# gazelle:exclude pkg/trace/remoteconfighandler
-# gazelle:exclude pkg/trace/sampler
-# gazelle:exclude pkg/trace/semantics
-# gazelle:exclude pkg/trace/stats
# gazelle:exclude pkg/trace/telemetry
# gazelle:exclude pkg/trace/teststatsd
# gazelle:exclude pkg/trace/testutil
# gazelle:exclude pkg/trace/timing
# gazelle:exclude pkg/trace/transform
-# gazelle:exclude pkg/trace/version
-# gazelle:exclude pkg/trace/watchdog
# gazelle:exclude pkg/trace/writer
# gazelle:exclude pkg/util/cloudproviders
# gazelle:exclude pkg/util/clusteragent
diff --git a/MODULE.bazel b/MODULE.bazel
index 6281581f42eb..b39b5e5a28c2 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -9,6 +9,7 @@ env_vars(
name = "agent_volatile",
# Each variable needs a justification. Every time you use one, the
# target using it is potentially uncachable.
+ # ⚠️ Keep in sync with the `--repo_env=` entries in .bazelrc
variables = [
# This gets set by omnibus builds in many cases. It's used in the script
# to set things like compression, so we'll mimic that for now.
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
index 6e7d93cf3e01..fc231e1c35cf 100644
--- a/MODULE.bazel.lock
+++ b/MODULE.bazel.lock
@@ -408,8 +408,8 @@
"usagesDigest": "CKsn1dtme4oztWA0td45Tt6oCZK6MZnpIocVVZK14sU=",
"recordedInputs": [
"FILE:@@//.bazelversion 59b003a1f3465ae6084432329f8265e860cbaac0bd4a92a4f3ea6b979a6eed66",
- "FILE:@@//tools/bazel d41ee01add2b1855b32212c5f9fc6481336c132c39da8c56195dc21c2325e8b9",
- "FILE:@@//tools/bazel.bat b016bc9a1d6cb93baa5a81eedc8710ea0170aec283bcb3ca176b06ee336f4be1",
+ "FILE:@@//tools/bazel 1dae499bda6b507adc6a400d1118c997b363267f2b697bb16452e87023d95f55",
+ "FILE:@@//tools/bazel.bat 24c80eecf763cf0f70ef5919413247b8e3dbc9eecd41dd63bc21f7c461b8a010",
"FILE:@@//tools/bazelisk.md 184864dc41f9cd398f786ba7c7cd858942d19daa792203e0b18a1a3bfaf372f0"
],
"generatedRepoSpecs": {}
diff --git a/bazel/rules/ebpf/ebpf.bzl b/bazel/rules/ebpf/ebpf.bzl
index db140bf413de..ef921e5ed064 100644
--- a/bazel/rules/ebpf/ebpf.bzl
+++ b/bazel/rules/ebpf/ebpf.bzl
@@ -42,6 +42,7 @@ _PREBUILT_FLAGS = [
_CORE_FLAGS = [
"-DCOMPILE_CORE",
"-g",
+ "-fdebug-compilation-dir=.",
]
def _get_arch_flags(target_arch):
diff --git a/bazel/rules/ebpf/runtime_compilation.bzl b/bazel/rules/ebpf/runtime_compilation.bzl
index 1f1df956d9c6..1917722c0b08 100644
--- a/bazel/rules/ebpf/runtime_compilation.bzl
+++ b/bazel/rules/ebpf/runtime_compilation.bzl
@@ -10,6 +10,8 @@ load("@bazel_lib//lib:run_binary.bzl", "run_binary")
load("@bazel_lib//lib:write_source_files.bzl", "write_source_file")
def _runtime_compilation_bundle_impl(name, visibility, src_c, out_name, include_dirs, header_deps, out_go_file):
+ _LINUX_ONLY = ["@platforms//os:linux"]
+
flat_name = "{}_flat".format(name)
run_binary(
name = flat_name,
@@ -21,6 +23,7 @@ def _runtime_compilation_bundle_impl(name, visibility, src_c, out_name, include_
"$(location {})".format(src_c),
"$@",
] + include_dirs,
+ target_compatible_with = _LINUX_ONLY,
)
raw_name = "{}_raw".format(name)
@@ -34,6 +37,7 @@ def _runtime_compilation_bundle_impl(name, visibility, src_c, out_name, include_
"$@",
"runtime",
],
+ target_compatible_with = _LINUX_ONLY,
)
# The integrity tool uses runtime.Caller(0) to detect whether its output
@@ -48,6 +52,7 @@ def _runtime_compilation_bundle_impl(name, visibility, src_c, out_name, include_
outs = ["{}/{}.go".format(name, out_name)],
cmd = "sed -e '/^import \"github.com\\/DataDog\\/datadog-agent\\/pkg\\/ebpf\\/bytecode\\/runtime\"/d' -e 's/runtime\\.newAsset/newAsset/g' $< > $@",
visibility = visibility,
+ target_compatible_with = _LINUX_ONLY,
)
if out_go_file:
diff --git a/bazel/rules/go_fast/repo.bzl b/bazel/rules/go_fast/repo.bzl
index e1d4b1c14cbc..7536db7342ec 100644
--- a/bazel/rules/go_fast/repo.bzl
+++ b/bazel/rules/go_fast/repo.bzl
@@ -22,7 +22,7 @@ def _impl(rctx):
repo_utils.execute_checked(
rctx,
arguments = [go, "build", "-overlay", "overlay.json", "-o", out, "cmd/go"],
- environment = {"GOPATH": None, "GOROOT": str(sdk), "GOWORK": "off"},
+ environment = {"GOROOT": str(sdk), "GOWORK": "off"},
op = "build {}".format(out),
)
rctx.file(
diff --git a/bazel/rules/go_sdk_overrides/repo.bzl b/bazel/rules/go_sdk_overrides/repo.bzl
index 0e2f9409c9a4..b438115ed49b 100644
--- a/bazel/rules/go_sdk_overrides/repo.bzl
+++ b/bazel/rules/go_sdk_overrides/repo.bzl
@@ -19,7 +19,7 @@ def _impl(rctx):
rctx,
op = "gopatch {}".format(p),
arguments = [go, "-C", rctx.path(rctx.attr._gopatch).dirname, "run", ".", "-p", p, rctx.path(".")],
- environment = {"GOPATH": None, "GOROOT": None, "GOWORK": "off"},
+ environment = {"GOWORK": "off"},
)
else:
rctx.patch(p, strip = 1)
diff --git a/bazel/rules/replace_prefix.sh b/bazel/rules/replace_prefix.sh
index 7ad84980b411..538521bb26a2 100755
--- a/bazel/rules/replace_prefix.sh
+++ b/bazel/rules/replace_prefix.sh
@@ -25,7 +25,7 @@ fi
patch_text_file() {
f="$1"
- sed -ibak -e "s|^prefix=.*|prefix=$PREFIX|" -e "s|##PREFIX##|$PREFIX|" -e "s|\${EXT_BUILD_DEPS}|$PREFIX|" "$f" && rm -f "${f}bak"
+ sed -ibak -e "s|^prefix=.*|prefix=$PREFIX|" -e "s|##PREFIX##|$PREFIX|g" -e "s|\${EXT_BUILD_DEPS}|$PREFIX|g" "$f" && rm -f "${f}bak"
}
for f in "$@"; do
@@ -40,7 +40,7 @@ for f in "$@"; do
fi
case $f in
- *.pc)
+ *.pc | *.py)
patch_text_file "$f"
;;
*)
diff --git a/bazel/rules/visual_studio.bzl b/bazel/rules/visual_studio.bzl
index c363a94c0e70..41664cf28152 100644
--- a/bazel/rules/visual_studio.bzl
+++ b/bazel/rules/visual_studio.bzl
@@ -1,6 +1,8 @@
"""Wrapping Visual Studio and MSBuild to let Bazel track it.
"""
+load("@rules_python//python/private:repo_utils.bzl", "repo_utils") # buildifier: disable=bzl-visibility
+
def _visual_studio_impl(ctx):
# vswhere is a tool that lets us inspect existing Visual Studio installations
ctx.report_progress("Download vswhere.exe")
@@ -63,18 +65,19 @@ alias(
def _get_vs_property(ctx, install_path, property):
"""Query a property of a VS installation using vswhere"""
- result = ctx.execute([
- ctx.path("vswhere.exe"),
- "-nologo",
- "-nocolor",
- "-property",
- property,
- "-path",
- install_path,
- ])
- if result.return_code:
- fail("Failed to query property '%s' for '%s': %s" % property, install_path, result.stderr)
-
+ result = repo_utils.execute_checked(
+ ctx,
+ op = "vswhere -property {} for {}".format(property, install_path),
+ arguments = [
+ ctx.path("vswhere.exe"),
+ "-nologo",
+ "-nocolor",
+ "-property",
+ property,
+ "-path",
+ install_path,
+ ],
+ )
return result.stdout.strip()
visual_studio = repository_rule(
diff --git a/cmd/agent/install_script.sh b/cmd/agent/install_script.sh
index 13c03826fea3..16addaae319b 100755
--- a/cmd/agent/install_script.sh
+++ b/cmd/agent/install_script.sh
@@ -107,7 +107,7 @@ Troubleshooting and basic usage information for the %s are available at:
fi
case $site in
- *"ddog-gov.com"| *"ddog-gov.mil")
+ *"ddog-gov.com")
fallback_msg
exit 1;
;;
diff --git a/cmd/agent/subcommands/analyzelogs/command.go b/cmd/agent/subcommands/analyzelogs/command.go
index 5ccb9613e967..27eb0f50daea 100644
--- a/cmd/agent/subcommands/analyzelogs/command.go
+++ b/cmd/agent/subcommands/analyzelogs/command.go
@@ -35,11 +35,11 @@ import (
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
"github.com/DataDog/datadog-agent/comp/core/workloadmeta/defaults"
workloadmetafx "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/agentimpl"
pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/processor"
"github.com/DataDog/datadog-agent/pkg/logs/schedulers/ad"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
diff --git a/cmd/otel-agent/config/agent_config.go b/cmd/otel-agent/config/agent_config.go
index 068e92f9c17d..2b02a994639d 100644
--- a/cmd/otel-agent/config/agent_config.go
+++ b/cmd/otel-agent/config/agent_config.go
@@ -15,6 +15,8 @@ import (
"strings"
delegatedauthnooptypes "github.com/DataDog/datadog-agent/comp/core/delegatedauth/noop-impl/types"
+ secretsimpl "github.com/DataDog/datadog-agent/comp/core/secrets/impl"
+ noopsimpl "github.com/DataDog/datadog-agent/comp/core/telemetry/noopsimpl"
datadogconfig "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog/config"
ddfg "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/datadog/featuregates"
"go.opentelemetry.io/collector/confmap"
@@ -236,8 +238,11 @@ func NewConfigComponent(ctx context.Context, ddCfg string, uris []string) (confi
// env vars are silently ignored.
pkgconfigsetup.LoadProxyFromEnv(pkgconfig)
- // Apply dogtelextension config only in standalone mode. In connected mode
- // the core agent owns these settings; we must not override them here.
+ // Apply dogtelextension config and resolve ENC[] secrets only in standalone
+ // mode. In connected mode the core agent owns both settings and secret
+ // resolution; the otel-agent receives already-resolved values via IPC config
+ // sync, so running a local resolver here would fail for backends that are
+ // only accessible to the core agent process.
if pkgconfig.GetBool("otel_standalone") {
extcfg, err := getDogtelExtensionConfig(cfg)
if err != nil {
@@ -319,6 +324,17 @@ func NewConfigComponent(ctx context.Context, ddCfg string, uris []string) (confi
pkgconfig.Set("kubernetes_https_kubelet_port", extcfg.KubernetesHTTPSKubeletPort, pkgconfigmodel.SourceFile)
}
}
+
+ // Resolve ENC[] secrets after dogtelextension config is applied so that
+ // secret_backend_command set via extensions.dogtel is visible here.
+ // Check both secret_backend_command (custom script) and secret_backend_type
+ // (native backend via secret-generic-connector, e.g. aws.secrets, k8s.secrets).
+ if pkgconfig.GetString("secret_backend_command") != "" || pkgconfig.GetString("secret_backend_type") != "" {
+ secretResolver := secretsimpl.NewEnabledResolver(noopsimpl.GetCompatComponent())
+ if resolveErr := pkgconfigsetup.ResolveSecrets(pkgconfig, secretResolver, "agent_config"); resolveErr != nil {
+ return nil, fmt.Errorf("failed to resolve secrets: %w", resolveErr)
+ }
+ }
}
return pkgconfig, nil
diff --git a/cmd/otel-agent/config/agent_config_test.go b/cmd/otel-agent/config/agent_config_test.go
index 817fec0b4b98..5b030c8bf2ff 100644
--- a/cmd/otel-agent/config/agent_config_test.go
+++ b/cmd/otel-agent/config/agent_config_test.go
@@ -7,14 +7,18 @@ package config
import (
"context"
+ "fmt"
"io/fs"
"os"
+ "path/filepath"
+ "runtime"
"testing"
"go.opentelemetry.io/collector/confmap"
"go.opentelemetry.io/collector/featuregate"
configmock "github.com/DataDog/datadog-agent/pkg/config/mock"
+ "github.com/DataDog/datadog-agent/pkg/util/defaultpaths"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -788,6 +792,175 @@ func TestGetDogtelExtensionConfig_SingleNamedDogtelEntry(t *testing.T) {
assert.Equal(t, "myhost", extcfg.Hostname)
}
+// TestSecretsResolutionViaEnvVar verifies that ENC[] handles in DD_HOSTNAME (and
+// other DD_* env vars) are resolved by the real secrets backend in standalone mode.
+func (suite *ConfigTestSuite) TestSecretsResolutionViaEnvVar() {
+ if runtime.GOOS == "windows" {
+ suite.T().Skip("shell secret backend script not applicable on Windows")
+ }
+ t := suite.T()
+
+ // Write a minimal secret backend script: ignore stdin, return a fixed value.
+ scriptDir := t.TempDir()
+ scriptPath := filepath.Join(scriptDir, "secret_backend.sh")
+ script := "#!/bin/sh\necho '{\"hostname_secret\": {\"value\": \"resolved-hostname-from-secret\"}}'\n"
+ require.NoError(t, os.WriteFile(scriptPath, []byte(script), 0700)) //nolint:gosec
+
+ t.Setenv("DD_OTEL_STANDALONE", "true")
+ t.Setenv("DD_HOSTNAME", "ENC[hostname_secret]")
+ t.Setenv("DD_SECRET_BACKEND_COMMAND", scriptPath)
+
+ c, err := NewConfigComponent(context.Background(), "", []string{"testdata/config_default.yaml"})
+ require.NoError(t, err)
+
+ assert.Equal(t, "resolved-hostname-from-secret", c.GetString("hostname"),
+ "ENC[hostname_secret] should be resolved to the script's output value; "+
+ "raw value would indicate secrets resolution was skipped in NewConfigComponent")
+}
+
+// TestSecretsNotResolvedInConnectedMode verifies that ENC[] handles are NOT
+// resolved locally when otel_standalone is false (connected mode). In connected
+// mode the core agent owns secret resolution and the otel-agent must not attempt
+// to run a local backend — doing so would fail for backends that are only
+// accessible to the core agent and abort otel-agent startup.
+func (suite *ConfigTestSuite) TestSecretsNotResolvedInConnectedMode() {
+ if runtime.GOOS == "windows" {
+ suite.T().Skip("shell secret backend script not applicable on Windows")
+ }
+ t := suite.T()
+
+ // Provide a working script so the test would resolve if the gate opened.
+ scriptDir := t.TempDir()
+ scriptPath := filepath.Join(scriptDir, "secret_backend.sh")
+ script := "#!/bin/sh\necho '{\"hostname_secret\": {\"value\": \"resolved-hostname-from-secret\"}}'\n"
+ require.NoError(t, os.WriteFile(scriptPath, []byte(script), 0700)) //nolint:gosec
+
+ // Connected mode (DD_OTEL_STANDALONE not set / false).
+ t.Setenv("DD_HOSTNAME", "ENC[hostname_secret]")
+ t.Setenv("DD_SECRET_BACKEND_COMMAND", scriptPath)
+
+ c, err := NewConfigComponent(context.Background(), "", []string{"testdata/config_default.yaml"})
+ require.NoError(t, err, "NewConfigComponent must not error in connected mode even when a secret backend is configured")
+
+ assert.Equal(t, "ENC[hostname_secret]", c.GetString("hostname"),
+ "ENC[] handle must remain unresolved in connected mode; "+
+ "the core agent resolves secrets and the otel-agent must not run a local backend")
+}
+
+// TestSecretBackendTypeGate verifies that secret_backend_type alone (without
+// secret_backend_command) opens the resolution gate in NewConfigComponent.
+// When no ENC[] handles are present in the config, the resolver exits early
+// before invoking any subprocess, so this test runs without the embedded
+// secret-generic-connector binary.
+func (suite *ConfigTestSuite) TestSecretBackendTypeGate() {
+ t := suite.T()
+ t.Setenv("DD_OTEL_STANDALONE", "true")
+ t.Setenv("DD_SECRET_BACKEND_TYPE", "file.json")
+
+ c, err := NewConfigComponent(context.Background(), "", []string{"testdata/config_default.yaml"})
+ require.NoError(t, err)
+
+ assert.Equal(t, "file.json", c.GetString("secret_backend_type"),
+ "secret_backend_type should be propagated to the agent config")
+}
+
+// TestSecretsResolutionViaBackendType verifies end-to-end ENC[] resolution when
+// secret_backend_type is configured instead of secret_backend_command. The test
+// uses the file.json native backend (secret-generic-connector) and is skipped if
+// the embedded binary has not been built.
+//
+// DD_SECRET_BACKEND_CONFIG cannot be supplied as an env var because viper does not
+// expand map types from a single env string; instead, secret_backend_config is
+// written to a temporary datadog.yaml and passed as the ddCfg argument.
+func (suite *ConfigTestSuite) TestSecretsResolutionViaBackendType() {
+ if runtime.GOOS == "windows" {
+ suite.T().Skip("file.json backend test not applicable on Windows")
+ }
+ t := suite.T()
+
+ // Skip when the embedded secret-generic-connector binary has not been built.
+ binPath := filepath.Join(defaultpaths.GetEmbeddedBinPath(), "secret-generic-connector")
+ if _, statErr := os.Stat(binPath); statErr != nil {
+ t.Skipf("secret-generic-connector not found at %s; skipping native backend test", binPath)
+ }
+
+ // Create a flat JSON secrets file: handle → resolved value.
+ secretsDir := t.TempDir()
+ secretsFile := filepath.Join(secretsDir, "secrets.json")
+ require.NoError(t, os.WriteFile(secretsFile,
+ []byte(`{"hostname_secret": "resolved-hostname-from-secret"}`), 0644))
+
+ t.Setenv("DD_OTEL_STANDALONE", "true")
+ t.Setenv("DD_HOSTNAME", "ENC[hostname_secret]")
+ t.Setenv("DD_SECRET_BACKEND_TYPE", "file.json")
+
+ // Write a minimal datadog.yaml that supplies secret_backend_config.file_path.
+ ddCfgDir := t.TempDir()
+ ddCfgPath := filepath.Join(ddCfgDir, "datadog.yaml")
+ ddCfg := fmt.Sprintf("secret_backend_config:\n file_path: %q\n", secretsFile)
+ require.NoError(t, os.WriteFile(ddCfgPath, []byte(ddCfg), 0644))
+
+ c, err := NewConfigComponent(context.Background(), ddCfgPath, []string{"testdata/config_default.yaml"})
+ require.NoError(t, err)
+
+ assert.Equal(t, "resolved-hostname-from-secret", c.GetString("hostname"),
+ "ENC[hostname_secret] should be resolved via the file.json native backend; "+
+ "raw value would indicate the secret_backend_type gate was skipped")
+}
+
+// TestSecretsResolutionViaDogtelExtension verifies that ENC[] handles in DD_HOSTNAME
+// (and other DD_* env vars) are resolved when secret_backend_command is configured
+// via extensions.dogtel in the OTel config rather than via DD_SECRET_BACKEND_COMMAND.
+// This guards against the regression where the secret resolution block ran before the
+// dogtelextension config was applied, leaving ENC[] values unresolved because
+// secret_backend_command was still empty at resolution time.
+func (suite *ConfigTestSuite) TestSecretsResolutionViaDogtelExtension() {
+ if runtime.GOOS == "windows" {
+ suite.T().Skip("shell secret backend script not applicable on Windows")
+ }
+ t := suite.T()
+
+ scriptDir := t.TempDir()
+ scriptPath := filepath.Join(scriptDir, "secret_backend.sh")
+ script := "#!/bin/sh\necho '{\"hostname_secret\": {\"value\": \"resolved-hostname-from-secret\"}}'\n"
+ require.NoError(t, os.WriteFile(scriptPath, []byte(script), 0700)) //nolint:gosec
+
+ t.Setenv("DD_OTEL_STANDALONE", "true")
+ t.Setenv("DD_HOSTNAME", "ENC[hostname_secret]")
+
+ otelCfgDir := t.TempDir()
+ otelCfgPath := filepath.Join(otelCfgDir, "otel-config.yaml")
+ otelCfg := fmt.Sprintf(`extensions:
+ dogtel:
+ secret_backend_command: %q
+receivers:
+ otlp:
+ protocols:
+ grpc:
+exporters:
+ datadog:
+ api:
+ key: TESTKEY
+service:
+ extensions: [dogtel]
+ pipelines:
+ traces:
+ receivers: [otlp]
+ exporters: [datadog]
+`, scriptPath)
+ require.NoError(t, os.WriteFile(otelCfgPath, []byte(otelCfg), 0644))
+
+ c, err := NewConfigComponent(context.Background(), "", []string{otelCfgPath})
+ require.NoError(t, err)
+
+ assert.Equal(t, scriptPath, c.GetString("secret_backend_command"),
+ "secret_backend_command should be set from dogtelextension config")
+
+ assert.Equal(t, "resolved-hostname-from-secret", c.GetString("hostname"),
+ "ENC[hostname_secret] in DD_HOSTNAME should be resolved via the secret backend "+
+ "configured in dogtelextension")
+}
+
// TestSuite runs the CalculatorTestSuite
func TestSuite(t *testing.T) {
suite.Run(t, new(ConfigTestSuite))
diff --git a/cmd/serverless-init/cloudservice/cloudrun_jobs.go b/cmd/serverless-init/cloudservice/cloudrun_jobs.go
index 191de7fc5538..f318198f7a70 100644
--- a/cmd/serverless-init/cloudservice/cloudrun_jobs.go
+++ b/cmd/serverless-init/cloudservice/cloudrun_jobs.go
@@ -18,6 +18,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/metrics"
pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace"
serverlessMetrics "github.com/DataDog/datadog-agent/pkg/serverless/metrics"
+ "github.com/DataDog/datadog-agent/pkg/trace/traceutil"
"github.com/DataDog/datadog-agent/pkg/util/log"
)
@@ -207,6 +208,7 @@ func (c *CloudRunJobs) initJobSpan() {
c.startTime.UnixNano(),
tags,
)
+ traceutil.SetMeasured(c.jobSpan, true)
}
// setSpanModifier sets up the span modifier to reparent user spans under the job span
diff --git a/cmd/serverless-init/cloudservice/cloudrun_jobs_test.go b/cmd/serverless-init/cloudservice/cloudrun_jobs_test.go
index ee3ed16f4214..6d2a7a85aaf1 100644
--- a/cmd/serverless-init/cloudservice/cloudrun_jobs_test.go
+++ b/cmd/serverless-init/cloudservice/cloudrun_jobs_test.go
@@ -226,6 +226,8 @@ func TestCloudRunJobsSpanCreation(t *testing.T) {
assert.Equal(t, uint64(0), jobs.jobSpan.ParentID)
assert.NotNil(t, jobs.jobSpan.Meta)
assert.Equal(t, "cloudrunjobs", jobs.jobSpan.Meta["origin"])
+ // Verify _dd.measured=1 is set for stats computation
+ assert.Equal(t, float64(1), jobs.jobSpan.Metrics["_dd.measured"])
}
}
diff --git a/cmd/serverless-init/main.go b/cmd/serverless-init/main.go
index 2deb89946589..deef6862b1e1 100644
--- a/cmd/serverless-init/main.go
+++ b/cmd/serverless-init/main.go
@@ -109,7 +109,8 @@ func run(secretComp secrets.Component, delegatedAuthComp delegatedauth.Component
err := modeConf.Runner(logConfig)
// Defers are LIFO. We want to run the cloud service shutdown logic before last flush.
- defer lastFlush(logConfig.FlushTimeout, metricAgent, tracingCtx.TraceAgent, logsAgent)
+ defer lastFlush(logConfig.FlushTimeout, metricAgent, logsAgent)
+ defer tracingCtx.TraceAgent.Stop() // synchronous: drains traces, flushes stats, sends to network
defer func() {
cloudService.Shutdown(*metricAgent, enhancedMetricsEnabled, err) // submits task.ended metric
@@ -327,12 +328,11 @@ func flushMetricsAgent(metricAgent *metrics.ServerlessMetricAgent) {
}
}
-func lastFlush(flushTimeout time.Duration, metricAgent serverless.FlushableAgent, traceAgent serverless.FlushableAgent, logsAgent logsAgent.ServerlessLogsAgent) bool {
+func lastFlush(flushTimeout time.Duration, metricAgent serverless.FlushableAgent, logsAgent logsAgent.ServerlessLogsAgent) bool {
hasTimeout := atomic.NewInt32(0)
wg := &sync.WaitGroup{}
- wg.Add(3)
+ wg.Add(2)
go flushAndWait(flushTimeout, wg, metricAgent, hasTimeout)
- go flushAndWait(flushTimeout, wg, traceAgent, hasTimeout)
childCtx, cancel := context.WithTimeout(context.Background(), flushTimeout)
defer cancel()
go func(wg *sync.WaitGroup, ctx context.Context) {
diff --git a/cmd/serverless-init/main_test.go b/cmd/serverless-init/main_test.go
index f7a8ab764ee4..c63497aadb92 100644
--- a/cmd/serverless-init/main_test.go
+++ b/cmd/serverless-init/main_test.go
@@ -82,20 +82,18 @@ func (tfa *TestFlushableAgent) Flush() {
func TestFlushSuccess(t *testing.T) {
metricAgent := &TestFlushableAgent{}
- traceAgent := &TestFlushableAgent{}
mockLogsAgent := agentimpl.NewMockServerlessLogsAgent()
- lastFlush(100*time.Millisecond, metricAgent, traceAgent, mockLogsAgent)
+ lastFlush(100*time.Millisecond, metricAgent, mockLogsAgent)
assert.Equal(t, true, metricAgent.hasBeenCalled)
assert.Equal(t, true, mockLogsAgent.DidFlush())
}
func TestFlushTimeout(t *testing.T) {
metricAgent := &TestTimeoutFlushableAgent{}
- traceAgent := &TestTimeoutFlushableAgent{}
mockLogsAgent := agentimpl.NewMockServerlessLogsAgent()
mockLogsAgent.SetFlushDelay(time.Hour)
- lastFlush(100*time.Millisecond, metricAgent, traceAgent, mockLogsAgent)
+ lastFlush(100*time.Millisecond, metricAgent, mockLogsAgent)
assert.Equal(t, false, metricAgent.hasBeenCalled)
assert.Equal(t, false, mockLogsAgent.DidFlush())
}
diff --git a/cmd/serverless-init/trace/trace.go b/cmd/serverless-init/trace/trace.go
index 793c5c46d06a..d3400adc8947 100644
--- a/cmd/serverless-init/trace/trace.go
+++ b/cmd/serverless-init/trace/trace.go
@@ -12,6 +12,7 @@ import (
pb "github.com/DataDog/datadog-agent/pkg/proto/pbgo/trace"
"github.com/DataDog/datadog-agent/pkg/trace/api"
"github.com/DataDog/datadog-agent/pkg/trace/info"
+ "github.com/DataDog/datadog-agent/pkg/trace/sampler"
"github.com/DataDog/datadog-agent/pkg/util/log"
)
@@ -51,7 +52,7 @@ func SubmitSpan(span *pb.Span, origin string, traceAgent Processor) {
traceChunk := &pb.TraceChunk{
Origin: origin,
- Priority: int32(1),
+ Priority: int32(sampler.PriorityUserKeep),
Spans: []*pb.Span{span},
}
diff --git a/cmd/serverless-init/trace/trace_test.go b/cmd/serverless-init/trace/trace_test.go
index c831d9021600..7a706086545f 100644
--- a/cmd/serverless-init/trace/trace_test.go
+++ b/cmd/serverless-init/trace/trace_test.go
@@ -12,6 +12,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/DataDog/datadog-agent/pkg/trace/api"
+ "github.com/DataDog/datadog-agent/pkg/trace/sampler"
)
// mockProcessor is a mock implementation of the Processor interface for testing
@@ -92,7 +93,7 @@ func TestSubmitSpanWithValidProcessor(t *testing.T) {
chunk := mockAgent.lastPayload.TracerPayload.Chunks[0]
assert.Equal(t, "test-origin", chunk.Origin)
- assert.Equal(t, int32(1), chunk.Priority)
+ assert.Equal(t, int32(sampler.PriorityUserKeep), chunk.Priority)
assert.Len(t, chunk.Spans, 1)
assert.Equal(t, span, chunk.Spans[0])
}
diff --git a/cmd/system-probe/modules/eventmonitor.go b/cmd/system-probe/modules/eventmonitor.go
index db88928f9b69..bbd4a8465ce2 100644
--- a/cmd/system-probe/modules/eventmonitor.go
+++ b/cmd/system-probe/modules/eventmonitor.go
@@ -66,14 +66,35 @@ func createEventMonitorModule(_ *sysconfigtypes.Config, deps module.FactoryDepen
return nil, module.ErrNotEnabled
}
- if secconfig.RuntimeSecurity.IsRuntimeEnabled() {
- cws, err := secmodule.NewCWSConsumer(evm, secconfig.RuntimeSecurity, deps.WMeta, deps.FilterStore, secmoduleOpts, deps.Compression, deps.Ipc, hostname, deps.Secrets)
+ cwsEnabled := secconfig.RuntimeSecurity.IsRuntimeEnabled()
+ runtimeUsageEnabled := secconfig.RuntimeSecurity.SBOMResolverEnabled
+
+ if cwsEnabled || runtimeUsageEnabled {
+ stopChan := make(chan struct{})
+
+ cmdServer, err := secmodule.NewCommandServer(secconfig.RuntimeSecurity)
if err != nil {
return nil, err
}
- evm.RegisterEventConsumer(cws)
- evm.SetCWSStatusProvider(cws)
- log.Info("event monitoring cws consumer initialized")
+
+ if cwsEnabled {
+ cws, err := secmodule.NewCWSConsumer(cmdServer, evm, secconfig.RuntimeSecurity, deps.WMeta, deps.FilterStore, secmoduleOpts, deps.Compression, deps.Ipc, hostname, deps.Secrets)
+ if err != nil {
+ return nil, err
+ }
+ evm.RegisterEventConsumer(cws)
+ evm.SetCWSStatusProvider(cws)
+ log.Info("event monitoring cws consumer initialized")
+ }
+
+ if runtimeUsageEnabled {
+ usage, err := secmodule.NewUsageConsumer(cmdServer, evm, secconfig.RuntimeSecurity, stopChan)
+ if err != nil {
+ return nil, err
+ }
+ evm.RegisterEventConsumer(usage)
+ log.Info("event monitoring usage consumer initialized")
+ }
}
netconfig := netconfig.New()
diff --git a/comp/api/api/def/go.mod b/comp/api/api/def/go.mod
index 836b4745fd29..5cf2a4f6a7e8 100644
--- a/comp/api/api/def/go.mod
+++ b/comp/api/api/def/go.mod
@@ -113,7 +113,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/connectivitychecker/def/BUILD.bazel b/comp/connectivitychecker/def/BUILD.bazel
new file mode 100644
index 000000000000..414c0b487cc0
--- /dev/null
+++ b/comp/connectivitychecker/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/connectivitychecker/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/core/agenttelemetry/def/go.mod b/comp/core/agenttelemetry/def/go.mod
index ad0e81937936..d1d37d996f97 100644
--- a/comp/core/agenttelemetry/def/go.mod
+++ b/comp/core/agenttelemetry/def/go.mod
@@ -122,7 +122,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/agenttelemetry/fx/go.mod b/comp/core/agenttelemetry/fx/go.mod
index d8b8a5e4ed36..c67245b32812 100644
--- a/comp/core/agenttelemetry/fx/go.mod
+++ b/comp/core/agenttelemetry/fx/go.mod
@@ -210,7 +210,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/agenttelemetry/impl/agenttelemetry_test.go b/comp/core/agenttelemetry/impl/agenttelemetry_test.go
index 4d08adeb7091..5c56665b84e0 100644
--- a/comp/core/agenttelemetry/impl/agenttelemetry_test.go
+++ b/comp/core/agenttelemetry/impl/agenttelemetry_test.go
@@ -440,14 +440,6 @@ agent_telemetry:
`
a := getTestAtel(t, nil, c, nil, nil, nil)
assert.False(t, a.enabled)
-
- c2 := `
-site: "ddog-gov.mil"
-agent_telemetry:
- enabled: true
-`
- a2 := getTestAtel(t, nil, c2, nil, nil, nil)
- assert.False(t, a2.enabled)
}
func TestDisableIfLongGovCloud(t *testing.T) {
@@ -458,14 +450,6 @@ agent_telemetry:
`
a := getTestAtel(t, nil, c, nil, nil, nil)
assert.False(t, a.enabled)
-
- c2 := `
-site: "xxxx99.ddog-gov.mil"
-agent_telemetry:
- enabled: true
-`
- a2 := getTestAtel(t, nil, c2, nil, nil, nil)
- assert.False(t, a2.enabled)
}
func TestEnableIfNotGovCloud(t *testing.T) {
diff --git a/comp/core/agenttelemetry/impl/go.mod b/comp/core/agenttelemetry/impl/go.mod
index d2f2a449ff09..1013c3e0b49f 100644
--- a/comp/core/agenttelemetry/impl/go.mod
+++ b/comp/core/agenttelemetry/impl/go.mod
@@ -214,7 +214,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/config/BUILD.bazel b/comp/core/config/BUILD.bazel
new file mode 100644
index 000000000000..0ac38a39decd
--- /dev/null
+++ b/comp/core/config/BUILD.bazel
@@ -0,0 +1,52 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "config",
+ srcs = [
+ "component.go",
+ "config.go",
+ "config_mock.go",
+ "params.go",
+ "params_darwin.go",
+ "params_freebsd.go",
+ "params_nix.go",
+ "params_windows.go",
+ "setup.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/config",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/core/delegatedauth/def",
+ "//comp/core/delegatedauth/noop-impl/types",
+ "//comp/core/flare/types",
+ "//comp/core/secrets/def",
+ "//comp/core/secrets/noop-impl/types",
+ "//pkg/config/mock",
+ "//pkg/config/model",
+ "//pkg/config/setup",
+ "//pkg/util/defaultpaths",
+ "//pkg/util/fxutil",
+ "@org_uber_go_fx//:fx",
+ ] + select({
+ "@rules_go//go/platform:windows": [
+ "//pkg/util/winutil",
+ ],
+ "//conditions:default": [],
+ }),
+)
+
+go_test(
+ name = "config_test",
+ srcs = [
+ "config_test.go",
+ "params_test.go",
+ ],
+ embed = [":config"],
+ gotags = ["test"], # keep
+ deps = [
+ "//pkg/config/model",
+ "//pkg/util/defaultpaths",
+ "@com_github_stretchr_testify//assert",
+ "@com_github_stretchr_testify//require",
+ ],
+)
diff --git a/comp/core/config/go.mod b/comp/core/config/go.mod
index c60930e26aa5..d4de28911320 100644
--- a/comp/core/config/go.mod
+++ b/comp/core/config/go.mod
@@ -180,7 +180,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/core/configsync/go.mod b/comp/core/configsync/go.mod
index 8fd51ff6262a..1277c81600e4 100644
--- a/comp/core/configsync/go.mod
+++ b/comp/core/configsync/go.mod
@@ -200,7 +200,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/core/delegatedauth/api/cloudauth/aws/go.mod b/comp/core/delegatedauth/api/cloudauth/aws/go.mod
index 738e2b8c81e9..e85ed9251b71 100644
--- a/comp/core/delegatedauth/api/cloudauth/aws/go.mod
+++ b/comp/core/delegatedauth/api/cloudauth/aws/go.mod
@@ -13,7 +13,7 @@ require (
)
require (
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -170,7 +170,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources
diff --git a/comp/core/delegatedauth/api/delegated_auth.go b/comp/core/delegatedauth/api/delegated_auth.go
index 6466df44a622..889339609067 100644
--- a/comp/core/delegatedauth/api/delegated_auth.go
+++ b/comp/core/delegatedauth/api/delegated_auth.go
@@ -40,7 +40,7 @@ const (
// domainURLRegexp matches and captures known Datadog domains with optional protocol and trailing characters
// Captures: protocol (optional), subdomain (ignored), regional prefix + base domain, trailing dot (optional)
// Examples: https://agent.datad0g.com., http://metrics.us1.datadoghq.com, agent.ddog-gov.com
-var domainURLRegexp = regexp.MustCompile(`^(?:https?://)?[^./]+\.((?:[a-z]{2,}\d{1,2}\.)?)(?:(datadoghq|datad0g)\.(com|eu)|(ddog-gov\.(?:com|mil)))(\.)?\/?$`)
+var domainURLRegexp = regexp.MustCompile(`^(?:https?://)?[^./]+\.((?:[a-z]{2,}\d{1,2}\.)?)(?:(datadoghq|datad0g)\.(com|eu)|(ddog-gov\.com))(\.)?\/?$`)
// getAPIDomain transforms intake/metrics endpoints (e.g., agent.datad0g.com) to API endpoints (e.g., app.datad0g.com)
// for known Datadog domains. This ensures API operations use the correct subdomain.
diff --git a/comp/core/delegatedauth/api/delegated_auth_test.go b/comp/core/delegatedauth/api/delegated_auth_test.go
index 9b49be74bcea..72e220fd6ea8 100644
--- a/comp/core/delegatedauth/api/delegated_auth_test.go
+++ b/comp/core/delegatedauth/api/delegated_auth_test.go
@@ -192,21 +192,11 @@ func TestGetAPIDomain(t *testing.T) {
endpoint: "https://agent.ddog-gov.com",
want: "https://api.ddog-gov.com",
},
- {
- name: "gov cloud mil domain",
- endpoint: "https://agent.ddog-gov.mil",
- want: "https://api.ddog-gov.mil",
- },
{
name: "gov cloud domain with trailing dot",
endpoint: "https://agent.ddog-gov.com.",
want: "https://api.ddog-gov.com.",
},
- {
- name: "gov cloud mil domain with trailing dot",
- endpoint: "https://agent.ddog-gov.mil.",
- want: "https://api.ddog-gov.mil.",
- },
// Unknown/custom domains (should pass through unchanged)
{
name: "custom domain unchanged",
diff --git a/comp/core/delegatedauth/go.mod b/comp/core/delegatedauth/go.mod
index 9b5c04ae64d5..f4d9c7150675 100644
--- a/comp/core/delegatedauth/go.mod
+++ b/comp/core/delegatedauth/go.mod
@@ -18,7 +18,7 @@ require (
)
require (
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
@@ -186,7 +186,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/core/flare/builder/go.mod b/comp/core/flare/builder/go.mod
index 27f377ff9e14..cc60436d8e34 100644
--- a/comp/core/flare/builder/go.mod
+++ b/comp/core/flare/builder/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/flare/types/go.mod b/comp/core/flare/types/go.mod
index acdf896e66b8..cd81f7dd8e0e 100644
--- a/comp/core/flare/types/go.mod
+++ b/comp/core/flare/types/go.mod
@@ -116,7 +116,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/fxinstrumentation/def/BUILD.bazel b/comp/core/fxinstrumentation/def/BUILD.bazel
new file mode 100644
index 000000000000..ef0f2f3cccaf
--- /dev/null
+++ b/comp/core/fxinstrumentation/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/fxinstrumentation/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/core/fxinstrumentation/fx/BUILD.bazel b/comp/core/fxinstrumentation/fx/BUILD.bazel
new file mode 100644
index 000000000000..e080e3b06f79
--- /dev/null
+++ b/comp/core/fxinstrumentation/fx/BUILD.bazel
@@ -0,0 +1 @@
+# gazelle:exclude
diff --git a/comp/core/fxinstrumentation/impl/BUILD.bazel b/comp/core/fxinstrumentation/impl/BUILD.bazel
new file mode 100644
index 000000000000..b560e3d0370c
--- /dev/null
+++ b/comp/core/fxinstrumentation/impl/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "impl",
+ srcs = ["doc.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/fxinstrumentation/impl",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/core/hostname/hostnameinterface/go.mod b/comp/core/hostname/hostnameinterface/go.mod
index 374208e5d5cd..7840656207c5 100644
--- a/comp/core/hostname/hostnameinterface/go.mod
+++ b/comp/core/hostname/hostnameinterface/go.mod
@@ -123,7 +123,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/ipc/def/go.mod b/comp/core/ipc/def/go.mod
index 833d386eccde..4b8c411c2c75 100644
--- a/comp/core/ipc/def/go.mod
+++ b/comp/core/ipc/def/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/ipc/httphelpers/go.mod b/comp/core/ipc/httphelpers/go.mod
index 95fcbe874119..a899beef9b00 100644
--- a/comp/core/ipc/httphelpers/go.mod
+++ b/comp/core/ipc/httphelpers/go.mod
@@ -189,7 +189,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/ipc/impl/go.mod b/comp/core/ipc/impl/go.mod
index d3da70963493..9e7f1defdf47 100644
--- a/comp/core/ipc/impl/go.mod
+++ b/comp/core/ipc/impl/go.mod
@@ -189,7 +189,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/ipc/mock/go.mod b/comp/core/ipc/mock/go.mod
index 7f349d3c71c6..5c9cc5ca4248 100644
--- a/comp/core/ipc/mock/go.mod
+++ b/comp/core/ipc/mock/go.mod
@@ -187,7 +187,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/log/def/go.mod b/comp/core/log/def/go.mod
index 30f107fe29d5..a126a712f0f6 100644
--- a/comp/core/log/def/go.mod
+++ b/comp/core/log/def/go.mod
@@ -113,7 +113,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/log/fx/go.mod b/comp/core/log/fx/go.mod
index 2870394b2d80..cd646ca64618 100644
--- a/comp/core/log/fx/go.mod
+++ b/comp/core/log/fx/go.mod
@@ -184,7 +184,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/log/impl-trace/go.mod b/comp/core/log/impl-trace/go.mod
index 856886999153..50e63fd579ef 100644
--- a/comp/core/log/impl-trace/go.mod
+++ b/comp/core/log/impl-trace/go.mod
@@ -187,7 +187,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/log/impl/go.mod b/comp/core/log/impl/go.mod
index 2370e37d2663..e0fd84063310 100644
--- a/comp/core/log/impl/go.mod
+++ b/comp/core/log/impl/go.mod
@@ -183,7 +183,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/log/mock/go.mod b/comp/core/log/mock/go.mod
index 073fe0d59f20..7de79d17d34b 100644
--- a/comp/core/log/mock/go.mod
+++ b/comp/core/log/mock/go.mod
@@ -115,7 +115,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/lsof/def/BUILD.bazel b/comp/core/lsof/def/BUILD.bazel
new file mode 100644
index 000000000000..25723c178e62
--- /dev/null
+++ b/comp/core/lsof/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/lsof/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/core/lsof/fx/BUILD.bazel b/comp/core/lsof/fx/BUILD.bazel
new file mode 100644
index 000000000000..ecb4b55b964b
--- /dev/null
+++ b/comp/core/lsof/fx/BUILD.bazel
@@ -0,0 +1,13 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "fx",
+ srcs = ["fx.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/lsof/fx",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/core/lsof/def",
+ "//comp/core/lsof/impl",
+ "//pkg/util/fxutil",
+ ],
+)
diff --git a/comp/core/lsof/impl/BUILD.bazel b/comp/core/lsof/impl/BUILD.bazel
new file mode 100644
index 000000000000..6a547413e190
--- /dev/null
+++ b/comp/core/lsof/impl/BUILD.bazel
@@ -0,0 +1,14 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "impl",
+ srcs = ["lsof.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/lsof/impl",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/core/flare/types",
+ "//comp/core/lsof/def",
+ "//pkg/util/flavor",
+ "//pkg/util/lsof",
+ ],
+)
diff --git a/comp/core/lsof/mock/BUILD.bazel b/comp/core/lsof/mock/BUILD.bazel
new file mode 100644
index 000000000000..a39e84b6295a
--- /dev/null
+++ b/comp/core/lsof/mock/BUILD.bazel
@@ -0,0 +1,9 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "mock",
+ srcs = ["mock.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/lsof/mock",
+ visibility = ["//visibility:public"],
+ deps = ["//comp/core/lsof/def"],
+)
diff --git a/comp/core/pid/def/BUILD.bazel b/comp/core/pid/def/BUILD.bazel
new file mode 100644
index 000000000000..69d8534c183d
--- /dev/null
+++ b/comp/core/pid/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/pid/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/core/pid/fx/BUILD.bazel b/comp/core/pid/fx/BUILD.bazel
new file mode 100644
index 000000000000..d94bfe054cda
--- /dev/null
+++ b/comp/core/pid/fx/BUILD.bazel
@@ -0,0 +1,12 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "fx",
+ srcs = ["fx.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/pid/fx",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/core/pid/impl",
+ "//pkg/util/fxutil",
+ ],
+)
diff --git a/comp/core/pid/impl/BUILD.bazel b/comp/core/pid/impl/BUILD.bazel
new file mode 100644
index 000000000000..d8a6571cbfff
--- /dev/null
+++ b/comp/core/pid/impl/BUILD.bazel
@@ -0,0 +1,14 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "impl",
+ srcs = ["pid.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/pid/impl",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/core/log/def",
+ "//comp/core/pid/def",
+ "//comp/def",
+ "//pkg/pidfile",
+ ],
+)
diff --git a/comp/core/pid/mock/BUILD.bazel b/comp/core/pid/mock/BUILD.bazel
new file mode 100644
index 000000000000..d2ad2f49ef88
--- /dev/null
+++ b/comp/core/pid/mock/BUILD.bazel
@@ -0,0 +1,9 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "mock",
+ srcs = ["mock.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/pid/mock",
+ visibility = ["//visibility:public"],
+ deps = ["//comp/core/pid/def"],
+)
diff --git a/comp/core/secrets/def/go.mod b/comp/core/secrets/def/go.mod
index fde09bda3cae..4c5c6f5f2402 100644
--- a/comp/core/secrets/def/go.mod
+++ b/comp/core/secrets/def/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/secrets/fx/go.mod b/comp/core/secrets/fx/go.mod
index 637b99ae89a5..53f7bc1b7723 100644
--- a/comp/core/secrets/fx/go.mod
+++ b/comp/core/secrets/fx/go.mod
@@ -14,7 +14,7 @@ require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
github.com/DataDog/datadog-agent/comp/core/flare/builder v0.68.3 // indirect
github.com/DataDog/datadog-agent/comp/core/flare/types v0.68.3 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.70.0 // indirect
github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/comp/core/telemetry v0.68.3 // indirect
@@ -201,7 +201,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/secrets/impl/BUILD.bazel b/comp/core/secrets/impl/BUILD.bazel
new file mode 100644
index 000000000000..3e2b365f4dea
--- /dev/null
+++ b/comp/core/secrets/impl/BUILD.bazel
@@ -0,0 +1,74 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "impl",
+ srcs = [
+ "exec_nix.go",
+ "exec_windows.go",
+ "fetch_secret.go",
+ "info_nix.go",
+ "info_windows.go",
+ "permissions_details.go",
+ "rotating_ndrecords.go",
+ "secrets.go",
+ ],
+ embedsrcs = [
+ "status_templates/info.tmpl",
+ "status_templates/infoHTML.tmpl",
+ "status_templates/refresh.tmpl",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/secrets/impl",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/api/api/def",
+ "//comp/core/flare/types",
+ "//comp/core/secrets/def",
+ "//comp/core/secrets/utils",
+ "//comp/core/status",
+ "//comp/core/telemetry",
+ "//pkg/config/env",
+ "//pkg/template/text",
+ "//pkg/util/defaultpaths",
+ "//pkg/util/filesystem",
+ "//pkg/util/log",
+ "//pkg/util/scrubber",
+ "@com_github_benbjohnson_clock//:clock",
+ "@com_github_json_iterator_go//:go",
+ "@in_yaml_go_yaml_v2//:yaml",
+ "@org_golang_x_exp//maps",
+ ] + select({
+ "@rules_go//go/platform:windows": [
+ "//pkg/util/winutil",
+ "@org_golang_x_sys//windows",
+ "@org_golang_x_sys//windows/svc/mgr",
+ ],
+ "//conditions:default": [],
+ }),
+)
+
+go_test(
+ name = "impl_test",
+ srcs = [
+ "fetch_secret_test.go",
+ "fetch_secret_windows_test.go",
+ "info_nix_test.go",
+ "info_windows_test.go",
+ "rotating_ndrecords_test.go",
+ "secrets_test.go",
+ "status_test.go",
+ ],
+ data = ["//comp/core/secrets/impl/test/src/test_command"], # keep
+ embed = [":impl"],
+ gotags = ["test"], # keep
+ deps = [
+ "//comp/core/secrets/def",
+ "//comp/core/telemetry",
+ "//comp/core/telemetry/noopsimpl",
+ "//comp/core/telemetry/telemetryimpl",
+ "//pkg/util/filesystem",
+ "//pkg/util/testutil",
+ "@com_github_benbjohnson_clock//:clock",
+ "@com_github_stretchr_testify//assert",
+ "@com_github_stretchr_testify//require",
+ ],
+)
diff --git a/comp/core/secrets/impl/fetch_secret_test.go b/comp/core/secrets/impl/fetch_secret_test.go
index 9be373595361..b68ab9982b50 100644
--- a/comp/core/secrets/impl/fetch_secret_test.go
+++ b/comp/core/secrets/impl/fetch_secret_test.go
@@ -79,6 +79,26 @@ func copyFileToBuildDir(t *testing.T, inFile, targetDir string) {
// getBackendCommandBinary compiles a binary from source, then sets the proper
// permissions on it
func getBackendCommandBinary(t *testing.T) (string, func()) {
+ // Under Bazel, use the pre-built go_binary from data deps instead of compiling at runtime.
+ // Copy to a temp dir so we can fix permissions (Bazel runfiles are world-readable).
+ if testSrcDir := os.Getenv("TEST_SRCDIR"); testSrcDir != "" {
+ binName := "test_command"
+ if runtime.GOOS == "windows" {
+ binName += ".exe"
+ }
+ srcBin := filepath.Join(testSrcDir, os.Getenv("TEST_WORKSPACE"),
+ "comp/core/secrets/impl/test/src/test_command/test_command_", binName)
+ require.FileExists(t, srcBin, "pre-built test_command binary not found in runfiles")
+
+ tmpDir := t.TempDir()
+ dstBin := filepath.Join(tmpDir, binName)
+ data, err := os.ReadFile(srcBin)
+ require.NoError(t, err)
+ require.NoError(t, os.WriteFile(dstBin, data, 0700))
+ filesystem.SetCorrectRight(dstBin)
+ return dstBin, func() {}
+ }
+
platform := fmt.Sprintf("%s_%s", runtime.GOOS, runtime.GOARCH)
// create a temp directory to build the command in
diff --git a/comp/core/secrets/impl/go.mod b/comp/core/secrets/impl/go.mod
index 4980986e5882..82d06e0521c8 100644
--- a/comp/core/secrets/impl/go.mod
+++ b/comp/core/secrets/impl/go.mod
@@ -5,7 +5,7 @@ go 1.25.0
require (
github.com/DataDog/datadog-agent/comp/api/api/def v0.68.3
github.com/DataDog/datadog-agent/comp/core/flare/types v0.68.3
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1
github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.70.0
github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5
github.com/DataDog/datadog-agent/comp/core/telemetry v0.68.3
@@ -201,7 +201,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/secrets/impl/secrets.go b/comp/core/secrets/impl/secrets.go
index cf29c898c39b..33eb39743a3e 100644
--- a/comp/core/secrets/impl/secrets.go
+++ b/comp/core/secrets/impl/secrets.go
@@ -153,6 +153,14 @@ func newEnabledSecretResolver(telemetry telemetry.Component) *secretResolver {
}
}
+// NewEnabledResolver creates a new secrets resolver that uses the real secrets
+// backend without the FX dependency graph. The telemetry component is used only
+// for internal metrics; pass noopsimpl.GetCompatComponent() when Prometheus
+// metrics are not needed (e.g. for one-shot config resolution before FX starts).
+func NewEnabledResolver(t telemetry.Component) secrets.Component {
+ return newEnabledSecretResolver(t)
+}
+
// NewComponent returns the implementation for the secrets component
func NewComponent(deps Requires) Provides {
resolver := newEnabledSecretResolver(deps.Telemetry)
diff --git a/comp/core/secrets/impl/test/src/test_command/BUILD.bazel b/comp/core/secrets/impl/test/src/test_command/BUILD.bazel
new file mode 100644
index 000000000000..c83a8f54a57a
--- /dev/null
+++ b/comp/core/secrets/impl/test/src/test_command/BUILD.bazel
@@ -0,0 +1,14 @@
+load("@rules_go//go:def.bzl", "go_binary", "go_library")
+
+go_library(
+ name = "test_command_lib",
+ srcs = ["main.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/secrets/impl/test/src/test_command",
+ visibility = ["//visibility:private"],
+)
+
+go_binary(
+ name = "test_command",
+ embed = [":test_command_lib"],
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/core/secrets/mock/go.mod b/comp/core/secrets/mock/go.mod
index 7266c80589bd..7f407d32a711 100644
--- a/comp/core/secrets/mock/go.mod
+++ b/comp/core/secrets/mock/go.mod
@@ -109,7 +109,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/secrets/noop-impl/go.mod b/comp/core/secrets/noop-impl/go.mod
index eaf9865d8cfe..7e531afcd050 100644
--- a/comp/core/secrets/noop-impl/go.mod
+++ b/comp/core/secrets/noop-impl/go.mod
@@ -124,7 +124,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/secrets/utils/go.mod b/comp/core/secrets/utils/go.mod
index e8461df734a5..72f639791097 100644
--- a/comp/core/secrets/utils/go.mod
+++ b/comp/core/secrets/utils/go.mod
@@ -116,7 +116,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/status/go.mod b/comp/core/status/go.mod
index c0cad8758619..657bd39e4bff 100644
--- a/comp/core/status/go.mod
+++ b/comp/core/status/go.mod
@@ -127,7 +127,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/core/status/statusimpl/go.mod b/comp/core/status/statusimpl/go.mod
index a1a259a8e782..538ffa0ae9c0 100644
--- a/comp/core/status/statusimpl/go.mod
+++ b/comp/core/status/statusimpl/go.mod
@@ -191,7 +191,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/def/go.mod b/comp/core/tagger/def/go.mod
index 366092a561b0..d2d50542959b 100644
--- a/comp/core/tagger/def/go.mod
+++ b/comp/core/tagger/def/go.mod
@@ -188,7 +188,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/fx-remote/go.mod b/comp/core/tagger/fx-remote/go.mod
index 677a9a92efd1..fdb32ede7bbf 100644
--- a/comp/core/tagger/fx-remote/go.mod
+++ b/comp/core/tagger/fx-remote/go.mod
@@ -239,7 +239,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/generic_store/go.mod b/comp/core/tagger/generic_store/go.mod
index 98e410432ca1..5118b9e7bcae 100644
--- a/comp/core/tagger/generic_store/go.mod
+++ b/comp/core/tagger/generic_store/go.mod
@@ -115,7 +115,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/impl-remote/go.mod b/comp/core/tagger/impl-remote/go.mod
index 9e1c95fa23af..05b1c6f34929 100644
--- a/comp/core/tagger/impl-remote/go.mod
+++ b/comp/core/tagger/impl-remote/go.mod
@@ -246,7 +246,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/origindetection/go.mod b/comp/core/tagger/origindetection/go.mod
index 41b8727efbb8..ec62d78c36f7 100644
--- a/comp/core/tagger/origindetection/go.mod
+++ b/comp/core/tagger/origindetection/go.mod
@@ -113,7 +113,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/proto/BUILD.bazel b/comp/core/tagger/proto/BUILD.bazel
new file mode 100644
index 000000000000..727b219bc6fa
--- /dev/null
+++ b/comp/core/tagger/proto/BUILD.bazel
@@ -0,0 +1,14 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "proto",
+ srcs = ["proto.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/tagger/proto",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/core/tagger/types",
+ "//pkg/proto/pbgo/core",
+ "@org_golang_google_grpc//codes",
+ "@org_golang_google_grpc//status",
+ ],
+)
diff --git a/comp/core/tagger/subscriber/go.mod b/comp/core/tagger/subscriber/go.mod
index f3766a57aa87..5e31c465e85c 100644
--- a/comp/core/tagger/subscriber/go.mod
+++ b/comp/core/tagger/subscriber/go.mod
@@ -144,7 +144,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/taglist/BUILD.bazel b/comp/core/tagger/taglist/BUILD.bazel
new file mode 100644
index 000000000000..3484cff565fd
--- /dev/null
+++ b/comp/core/tagger/taglist/BUILD.bazel
@@ -0,0 +1,16 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "taglist",
+ srcs = ["taglist.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/core/tagger/taglist",
+ visibility = ["//visibility:public"],
+ deps = ["//pkg/config/setup"],
+)
+
+go_test(
+ name = "taglist_test",
+ srcs = ["taglist_test.go"],
+ embed = [":taglist"],
+ deps = ["@com_github_stretchr_testify//require"],
+)
diff --git a/comp/core/tagger/tags/go.mod b/comp/core/tagger/tags/go.mod
index cb1fae936303..fe811f2537f4 100644
--- a/comp/core/tagger/tags/go.mod
+++ b/comp/core/tagger/tags/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/telemetry/go.mod b/comp/core/tagger/telemetry/go.mod
index ef33c0a430ec..737d85e175ef 100644
--- a/comp/core/tagger/telemetry/go.mod
+++ b/comp/core/tagger/telemetry/go.mod
@@ -121,7 +121,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/types/go.mod b/comp/core/tagger/types/go.mod
index 1f417678961f..2190dc95c08d 100644
--- a/comp/core/tagger/types/go.mod
+++ b/comp/core/tagger/types/go.mod
@@ -115,7 +115,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/tagger/utils/go.mod b/comp/core/tagger/utils/go.mod
index 2007e2384aed..7121b8246785 100644
--- a/comp/core/tagger/utils/go.mod
+++ b/comp/core/tagger/utils/go.mod
@@ -113,7 +113,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/core/telemetry/go.mod b/comp/core/telemetry/go.mod
index 4d337b6ccd17..7f87ab5a9fb9 100644
--- a/comp/core/telemetry/go.mod
+++ b/comp/core/telemetry/go.mod
@@ -133,7 +133,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/dataobs/queryactions/def/BUILD.bazel b/comp/dataobs/queryactions/def/BUILD.bazel
new file mode 100644
index 000000000000..56ad90a230c2
--- /dev/null
+++ b/comp/dataobs/queryactions/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/dataobs/queryactions/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/def/go.mod b/comp/def/go.mod
index a08b4576e12e..848f07677f26 100644
--- a/comp/def/go.mod
+++ b/comp/def/go.mod
@@ -113,7 +113,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/comp/etw/BUILD.bazel b/comp/etw/BUILD.bazel
new file mode 100644
index 000000000000..f91e1c43bfd0
--- /dev/null
+++ b/comp/etw/BUILD.bazel
@@ -0,0 +1,16 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "etw",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/etw",
+ tags = ["test"],
+ target_compatible_with = ["@platforms//os:windows"],
+ visibility = ["//visibility:public"],
+ deps = select({
+ "@rules_go//go/platform:windows": [
+ "@org_golang_x_sys//windows",
+ ],
+ "//conditions:default": [],
+ }),
+)
diff --git a/comp/fleetstatus/def/BUILD.bazel b/comp/fleetstatus/def/BUILD.bazel
new file mode 100644
index 000000000000..0402f96fa762
--- /dev/null
+++ b/comp/fleetstatus/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/fleetstatus/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/forwarder/defaultforwarder/forwarder_health.go b/comp/forwarder/defaultforwarder/forwarder_health.go
index 41d736e1a001..dc884e8eb3b8 100644
--- a/comp/forwarder/defaultforwarder/forwarder_health.go
+++ b/comp/forwarder/defaultforwarder/forwarder_health.go
@@ -46,7 +46,7 @@ var (
// domainURLRegexp determines if an URL belongs to Datadog or not. If the URL belongs to Datadog it's prefixed
// with 'api.' (see computeDomainURLAPIKeyMap).
- domainURLRegexp = regexp.MustCompile(`([a-z]{2,}\d{1,2}\.)?(datadoghq\.[a-z]+|ddog-gov\.(com|mil))\.?$`)
+ domainURLRegexp = regexp.MustCompile(`([a-z]{2,}\d{1,2}\.)?(datadoghq\.[a-z]+|ddog-gov\.com)\.?$`)
)
func init() {
diff --git a/comp/forwarder/defaultforwarder/forwarder_health_test.go b/comp/forwarder/defaultforwarder/forwarder_health_test.go
index 774927c37026..9b05fc4904d6 100644
--- a/comp/forwarder/defaultforwarder/forwarder_health_test.go
+++ b/comp/forwarder/defaultforwarder/forwarder_health_test.go
@@ -76,7 +76,6 @@ func TestComputeDomainsURL(t *testing.T) {
"https://app.ddog-gov.com": {utils.NewAPIKeys("path", "api_key9")},
"https://custom.ddog-gov.com": {utils.NewAPIKeys("path", "api_key10")},
"https://app.xxxx99.ddog-gov.com": {utils.NewAPIKeys("path", "api_key11")},
- "https://app.xxxx99.ddog-gov.mil": {utils.NewAPIKeys("path", "api_key12")},
}
expectedMap := map[string][]string{
@@ -89,7 +88,6 @@ func TestComputeDomainsURL(t *testing.T) {
"https://app.myproxy.com": {"api_key8"},
"https://api.ddog-gov.com": {"api_key9", "api_key10"},
"https://api.xxxx99.ddog-gov.com": {"api_key11"},
- "https://api.xxxx99.ddog-gov.mil": {"api_key12"},
}
// just sort the expected map for easy comparison
diff --git a/comp/forwarder/defaultforwarder/go.mod b/comp/forwarder/defaultforwarder/go.mod
index b25c1e474412..1b5204edb1c6 100644
--- a/comp/forwarder/defaultforwarder/go.mod
+++ b/comp/forwarder/defaultforwarder/go.mod
@@ -213,7 +213,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/forwarder/orchestrator/orchestratorinterface/go.mod b/comp/forwarder/orchestrator/orchestratorinterface/go.mod
index 46d4a164b13e..3d963dd51b76 100644
--- a/comp/forwarder/orchestrator/orchestratorinterface/go.mod
+++ b/comp/forwarder/orchestrator/orchestratorinterface/go.mod
@@ -212,7 +212,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/haagent/def/BUILD.bazel b/comp/haagent/def/BUILD.bazel
new file mode 100644
index 000000000000..11e815a16b61
--- /dev/null
+++ b/comp/haagent/def/BUILD.bazel
@@ -0,0 +1,11 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = [
+ "component.go",
+ "state.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/comp/haagent/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/healthplatform/def/BUILD.bazel b/comp/healthplatform/def/BUILD.bazel
new file mode 100644
index 000000000000..2df8fb1cd56b
--- /dev/null
+++ b/comp/healthplatform/def/BUILD.bazel
@@ -0,0 +1,9 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/healthplatform/def",
+ visibility = ["//visibility:public"],
+ deps = ["@com_github_datadog_agent_payload_v5//healthplatform"],
+)
diff --git a/comp/languagedetection/client/def/BUILD.bazel b/comp/languagedetection/client/def/BUILD.bazel
new file mode 100644
index 000000000000..b8732db1a938
--- /dev/null
+++ b/comp/languagedetection/client/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/languagedetection/client/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/logonduration/def/BUILD.bazel b/comp/logonduration/def/BUILD.bazel
new file mode 100644
index 000000000000..cec8482a37b6
--- /dev/null
+++ b/comp/logonduration/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/logonduration/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/logs-library/go.mod b/comp/logs-library/go.mod
index 19273875911b..28fd26fd7d10 100644
--- a/comp/logs-library/go.mod
+++ b/comp/logs-library/go.mod
@@ -3,33 +3,124 @@ module github.com/DataDog/datadog-agent/comp/logs-library
go 1.25.0
require (
+ github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.61.0
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1
+ github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260211235139-a5361978c2b6
+ github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0
+ github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.64.0-devel
+ github.com/DataDog/datadog-agent/pkg/config/mock v0.70.0
+ github.com/DataDog/datadog-agent/pkg/config/model v0.77.2
+ github.com/DataDog/datadog-agent/pkg/config/setup v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/client v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
+ github.com/DataDog/datadog-agent/pkg/logs/metrics v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/processor v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/sender v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.61.0
github.com/DataDog/datadog-agent/pkg/status/health v0.77.0-devel.0.20260211235139-a5361978c2b6
+ github.com/DataDog/datadog-agent/pkg/util/compression v0.56.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/fxutil v0.77.0-devel.0.20260211235139-a5361978c2b6
- github.com/DataDog/datadog-agent/pkg/util/log v0.0.0-00010101000000-000000000000
+ github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5
+ github.com/DataDog/datadog-agent/pkg/util/startstop v0.61.0
github.com/stretchr/testify v1.11.1
+ go.uber.org/atomic v1.11.0
go.uber.org/fx v1.24.0
)
require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
- github.com/DataDog/datadog-agent/comp/def v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/template v0.64.1 // indirect
+ github.com/DataDog/agent-payload/v5 v5.0.189 // indirect
+ github.com/DataDog/datadog-agent/comp/api/api/def v0.72.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/config v0.64.0-devel // indirect
+ github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
+ github.com/DataDog/datadog-agent/comp/core/flare/builder v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/comp/core/flare/types v0.72.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5 // indirect
+ github.com/DataDog/datadog-agent/comp/core/telemetry v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect
+ github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/create v0.70.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/env v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/helper v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.64.1 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/structure v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.64.1 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/utils v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.72.2 // indirect
+ github.com/DataDog/datadog-agent/pkg/fips v0.0.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/logs/types v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/pkg/telemetry v0.64.1 // indirect
+ github.com/DataDog/datadog-agent/pkg/template v0.65.1 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/backoff v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect
+ github.com/DataDog/datadog-agent/pkg/util/executable v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/filesystem v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/flavor v0.0.0-00010101000000-000000000000 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/http v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/util/option v0.64.0-devel // indirect
- github.com/DataDog/datadog-agent/pkg/util/scrubber v0.64.1 // indirect
- github.com/DataDog/datadog-agent/pkg/version v0.62.3 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/pointer v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/statstracker v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/system v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/winutil v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/version v0.72.2 // indirect
+ github.com/DataDog/viper v1.15.1 // indirect
+ github.com/DataDog/zstd v1.5.7 // indirect
+ github.com/Microsoft/go-winio v0.6.2 // indirect
+ github.com/benbjohnson/clock v1.3.5 // indirect
+ github.com/beorn7/perks v1.0.1 // indirect
+ github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
+ github.com/dustin/go-humanize v1.0.1 // indirect
+ github.com/ebitengine/purego v0.10.0 // indirect
+ github.com/fatih/color v1.18.0 // indirect
+ github.com/fsnotify/fsnotify v1.9.0 // indirect
+ github.com/go-ole/go-ole v1.3.0 // indirect
+ github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
+ github.com/gofrs/flock v0.13.0 // indirect
+ github.com/gogo/protobuf v1.3.2 // indirect
+ github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
+ github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 // indirect
+ github.com/magiconair/properties v1.8.10 // indirect
+ github.com/mattn/go-colorable v0.1.14 // indirect
+ github.com/mattn/go-isatty v0.0.20 // indirect
+ github.com/mdlayher/socket v0.5.1 // indirect
+ github.com/mdlayher/vsock v1.2.1 // indirect
+ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+ github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
+ github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
+ github.com/prometheus/client_golang v1.23.2 // indirect
+ github.com/prometheus/client_model v0.6.2 // indirect
+ github.com/prometheus/common v0.67.5 // indirect
+ github.com/prometheus/procfs v0.20.1 // indirect
+ github.com/shirou/gopsutil/v4 v4.26.3 // indirect
+ github.com/spf13/cast v1.10.0 // indirect
github.com/spf13/cobra v1.10.2 // indirect
+ github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/pflag v1.0.10 // indirect
- go.uber.org/atomic v1.11.0 // indirect
+ github.com/tklauser/go-sysconf v0.3.16 // indirect
+ github.com/tklauser/numcpus v0.11.0 // indirect
+ github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.uber.org/dig v1.19.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
+ go.yaml.in/yaml/v2 v2.4.3 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
+ golang.org/x/net v0.53.0 // indirect
+ golang.org/x/sync v0.20.0 // indirect
golang.org/x/sys v0.43.0 // indirect
+ golang.org/x/text v0.36.0 // indirect
golang.org/x/time v0.15.0 // indirect
+ google.golang.org/protobuf v1.36.11 // indirect
)
// This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually
@@ -131,7 +222,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/comp/logs-library/go.sum b/comp/logs-library/go.sum
index acb4286770e8..2bbf196d371e 100644
--- a/comp/logs-library/go.sum
+++ b/comp/logs-library/go.sum
@@ -1,24 +1,126 @@
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/DataDog/agent-payload/v5 v5.0.189 h1:94lYK0BdRhKbpY4mcfTCMr4+R8OMnIK6We9AnJvNTZY=
+github.com/DataDog/agent-payload/v5 v5.0.189/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M=
+github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs=
+github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw=
+github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE=
+github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
+github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
+github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
+github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o=
+github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
+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=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
+github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
+github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU=
+github.com/ebitengine/purego v0.10.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
+github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
+github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
+github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
+github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
+github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
+github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
+github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
+github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
+github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=
+github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
+github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw=
+github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0=
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
+github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
+github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE=
+github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
+github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
+github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIiZhtifTV5OUqqiP82UAl0h87xj/l9k=
+github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg=
+github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE=
+github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
+github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
+github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
+github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
+github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos=
+github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ=
+github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ=
+github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
+github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU=
+github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
+github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
+github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
+github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
+github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
+github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4=
+github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw=
+github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc=
+github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/shirou/gopsutil/v4 v4.26.3 h1:2ESdQt90yU3oXF/CdOlRCJxrP+Am1aBYubTMTfxJ1qc=
+github.com/shirou/gopsutil/v4 v4.26.3/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ=
+github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
+github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
+github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
+github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
+github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
+github.com/tklauser/go-sysconf v0.3.16 h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYICU0nA=
+github.com/tklauser/go-sysconf v0.3.16/go.mod h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI=
+github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw=
+github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
+github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4=
@@ -31,14 +133,56 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
+go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
+go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
+golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
+golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+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.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
+golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/pkg/logs/pipeline/mock/mock.go b/comp/logs-library/pipeline/mock/mock.go
similarity index 95%
rename from pkg/logs/pipeline/mock/mock.go
rename to comp/logs-library/pipeline/mock/mock.go
index 8d0c9d3a8e11..d5977b7b0857 100644
--- a/pkg/logs/pipeline/mock/mock.go
+++ b/comp/logs-library/pipeline/mock/mock.go
@@ -9,9 +9,9 @@ package mock
import (
"context"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/message"
"github.com/DataDog/datadog-agent/pkg/logs/metrics"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
)
// mockProvider mocks pipeline providing logic
diff --git a/pkg/logs/pipeline/pipeline.go b/comp/logs-library/pipeline/pipeline.go
similarity index 100%
rename from pkg/logs/pipeline/pipeline.go
rename to comp/logs-library/pipeline/pipeline.go
diff --git a/pkg/logs/pipeline/processor_only_provider.go b/comp/logs-library/pipeline/processor_only_provider.go
similarity index 100%
rename from pkg/logs/pipeline/processor_only_provider.go
rename to comp/logs-library/pipeline/processor_only_provider.go
diff --git a/pkg/logs/pipeline/provider.go b/comp/logs-library/pipeline/provider.go
similarity index 100%
rename from pkg/logs/pipeline/provider.go
rename to comp/logs-library/pipeline/provider.go
diff --git a/pkg/logs/pipeline/provider_failover_integration_test.go b/comp/logs-library/pipeline/provider_failover_integration_test.go
similarity index 100%
rename from pkg/logs/pipeline/provider_failover_integration_test.go
rename to comp/logs-library/pipeline/provider_failover_integration_test.go
diff --git a/pkg/logs/pipeline/provider_failover_test.go b/comp/logs-library/pipeline/provider_failover_test.go
similarity index 100%
rename from pkg/logs/pipeline/provider_failover_test.go
rename to comp/logs-library/pipeline/provider_failover_test.go
diff --git a/pkg/logs/pipeline/provider_test.go b/comp/logs-library/pipeline/provider_test.go
similarity index 100%
rename from pkg/logs/pipeline/provider_test.go
rename to comp/logs-library/pipeline/provider_test.go
diff --git a/comp/logs/agent/agentimpl/agent.go b/comp/logs/agent/agentimpl/agent.go
index 8aecf841bab7..6b1baedffe3c 100644
--- a/comp/logs/agent/agentimpl/agent.go
+++ b/comp/logs/agent/agentimpl/agent.go
@@ -27,6 +27,7 @@ import (
statusComponent "github.com/DataDog/datadog-agent/comp/core/status"
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
flareController "github.com/DataDog/datadog-agent/comp/logs/agent/flare"
@@ -40,7 +41,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/logs/diagnostic"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
"github.com/DataDog/datadog-agent/pkg/logs/metrics"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/schedulers"
"github.com/DataDog/datadog-agent/pkg/logs/service"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
diff --git a/comp/logs/agent/agentimpl/agent_core_init.go b/comp/logs/agent/agentimpl/agent_core_init.go
index f1a722da723f..2ec2fa4db3d4 100644
--- a/comp/logs/agent/agentimpl/agent_core_init.go
+++ b/comp/logs/agent/agentimpl/agent_core_init.go
@@ -13,6 +13,7 @@ import (
"github.com/spf13/afero"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def"
"github.com/DataDog/datadog-agent/pkg/config/model"
@@ -27,7 +28,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/logs/launchers/listener"
"github.com/DataDog/datadog-agent/pkg/logs/launchers/windowsevent"
"github.com/DataDog/datadog-agent/pkg/logs/metrics"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/schedulers"
"github.com/DataDog/datadog-agent/pkg/logs/tailers/file"
"github.com/DataDog/datadog-agent/pkg/logs/types"
diff --git a/comp/logs/agent/agentimpl/agent_serverless_init.go b/comp/logs/agent/agentimpl/agent_serverless_init.go
index 7ab6842be82d..d0fa754f2a31 100644
--- a/comp/logs/agent/agentimpl/agent_serverless_init.go
+++ b/comp/logs/agent/agentimpl/agent_serverless_init.go
@@ -11,6 +11,7 @@ import (
"time"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def"
"github.com/DataDog/datadog-agent/pkg/config/model"
@@ -19,7 +20,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
"github.com/DataDog/datadog-agent/pkg/logs/launchers/channel"
filelauncher "github.com/DataDog/datadog-agent/pkg/logs/launchers/file"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/schedulers"
"github.com/DataDog/datadog-agent/pkg/logs/tailers/file"
"github.com/DataDog/datadog-agent/pkg/logs/types"
diff --git a/comp/logs/agent/agentimpl/analyze_logs_init.go b/comp/logs/agent/agentimpl/analyze_logs_init.go
index 04e5a48cc267..b00ed17ca8ee 100644
--- a/comp/logs/agent/agentimpl/analyze_logs_init.go
+++ b/comp/logs/agent/agentimpl/analyze_logs_init.go
@@ -11,6 +11,7 @@ import (
"time"
configComponent "github.com/DataDog/datadog-agent/comp/core/config"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/comp/logs/agent/flare"
auditornoop "github.com/DataDog/datadog-agent/comp/logs/auditor/impl-none"
@@ -18,7 +19,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
filelauncher "github.com/DataDog/datadog-agent/pkg/logs/launchers/file"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
"github.com/DataDog/datadog-agent/pkg/logs/tailers/file"
diff --git a/comp/logs/agent/agentimpl/mock.go b/comp/logs/agent/agentimpl/mock.go
index 3dc2c5b4361b..ef9d16d74177 100644
--- a/comp/logs/agent/agentimpl/mock.go
+++ b/comp/logs/agent/agentimpl/mock.go
@@ -13,9 +13,9 @@ import (
"go.uber.org/fx"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent"
"github.com/DataDog/datadog-agent/pkg/logs/diagnostic"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/schedulers"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/util/fxutil"
diff --git a/comp/logs/agent/component.go b/comp/logs/agent/component.go
index 390cb0c91ab1..7366f6dfec93 100644
--- a/comp/logs/agent/component.go
+++ b/comp/logs/agent/component.go
@@ -9,8 +9,8 @@ package agent
import (
"context"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/diagnostic"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/schedulers"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
)
diff --git a/comp/logs/agent/config/go.mod b/comp/logs/agent/config/go.mod
index 817f8268419b..82dd671841d8 100644
--- a/comp/logs/agent/config/go.mod
+++ b/comp/logs/agent/config/go.mod
@@ -185,7 +185,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/netflow/common/BUILD.bazel b/comp/netflow/common/BUILD.bazel
new file mode 100644
index 000000000000..09791e4cc1b3
--- /dev/null
+++ b/comp/netflow/common/BUILD.bazel
@@ -0,0 +1,26 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "common",
+ srcs = [
+ "constants.go",
+ "flow.go",
+ "flowtype.go",
+ "flush.go",
+ "utils.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/comp/netflow/common",
+ visibility = ["//visibility:public"],
+ deps = ["@com_github_netsampler_goflow2//pb"],
+)
+
+go_test(
+ name = "common_test",
+ srcs = [
+ "flow_test.go",
+ "flowtype_test.go",
+ "utils_test.go",
+ ],
+ embed = [":common"],
+ deps = ["@com_github_stretchr_testify//assert"],
+)
diff --git a/comp/netflow/format/BUILD.bazel b/comp/netflow/format/BUILD.bazel
new file mode 100644
index 000000000000..be09b5e94b9a
--- /dev/null
+++ b/comp/netflow/format/BUILD.bazel
@@ -0,0 +1,34 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "format",
+ srcs = [
+ "cidr.go",
+ "direction.go",
+ "doc.go",
+ "ether_type.go",
+ "ip_addr.go",
+ "ip_protocol.go",
+ "mac.go",
+ "port.go",
+ "tcp_flags.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/comp/netflow/format",
+ visibility = ["//visibility:public"],
+)
+
+go_test(
+ name = "format_test",
+ srcs = [
+ "cidr_test.go",
+ "direction_test.go",
+ "ether_type_test.go",
+ "ip_addr_test.go",
+ "ip_protocol_test.go",
+ "mac_test.go",
+ "port_test.go",
+ "tcp_flags_test.go",
+ ],
+ embed = [":format"],
+ deps = ["@com_github_stretchr_testify//assert"],
+)
diff --git a/comp/netflow/payload/go.mod b/comp/netflow/payload/go.mod
index 2e2927436634..44fb7a9a53cd 100644
--- a/comp/netflow/payload/go.mod
+++ b/comp/netflow/payload/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/networkdeviceconfig/def/BUILD.bazel b/comp/networkdeviceconfig/def/BUILD.bazel
new file mode 100644
index 000000000000..e322c1c42889
--- /dev/null
+++ b/comp/networkdeviceconfig/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/networkdeviceconfig/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/networkdeviceconfig/mock/BUILD.bazel b/comp/networkdeviceconfig/mock/BUILD.bazel
new file mode 100644
index 000000000000..b5a7715b8a8f
--- /dev/null
+++ b/comp/networkdeviceconfig/mock/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "mock",
+ srcs = ["mock.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/networkdeviceconfig/mock",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/notableevents/def/BUILD.bazel b/comp/notableevents/def/BUILD.bazel
new file mode 100644
index 000000000000..7b34643d0304
--- /dev/null
+++ b/comp/notableevents/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/notableevents/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/otelcol/collector-contrib/def/go.mod b/comp/otelcol/collector-contrib/def/go.mod
index 13b759fd2cce..cf21ca956c63 100644
--- a/comp/otelcol/collector-contrib/def/go.mod
+++ b/comp/otelcol/collector-contrib/def/go.mod
@@ -230,7 +230,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/collector-contrib/impl/go.mod b/comp/otelcol/collector-contrib/impl/go.mod
index aedb03257b7c..b8687f46879e 100644
--- a/comp/otelcol/collector-contrib/impl/go.mod
+++ b/comp/otelcol/collector-contrib/impl/go.mod
@@ -654,7 +654,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/converter/def/go.mod b/comp/otelcol/converter/def/go.mod
index 739f841cb4f1..93e11606ff43 100644
--- a/comp/otelcol/converter/def/go.mod
+++ b/comp/otelcol/converter/def/go.mod
@@ -122,7 +122,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/converter/impl/go.mod b/comp/otelcol/converter/impl/go.mod
index 53564d62399a..e8f1e1536eeb 100644
--- a/comp/otelcol/converter/impl/go.mod
+++ b/comp/otelcol/converter/impl/go.mod
@@ -199,7 +199,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/ddflareextension/def/go.mod b/comp/otelcol/ddflareextension/def/go.mod
index 34ee467419d5..c87715f4880a 100644
--- a/comp/otelcol/ddflareextension/def/go.mod
+++ b/comp/otelcol/ddflareextension/def/go.mod
@@ -125,7 +125,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/ddflareextension/impl/go.mod b/comp/otelcol/ddflareextension/impl/go.mod
index b7cc150a3f9b..96f632362dc1 100644
--- a/comp/otelcol/ddflareextension/impl/go.mod
+++ b/comp/otelcol/ddflareextension/impl/go.mod
@@ -166,7 +166,6 @@ require (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12 // indirect
github.com/DataDog/datadog-agent/pkg/logs/metrics v0.64.0-rc.12 // indirect
- github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/logs/processor v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/logs/sender v0.64.0-rc.12 // indirect
github.com/DataDog/datadog-agent/pkg/logs/sources v0.64.0-rc.12 // indirect
@@ -631,7 +630,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/ddflareextension/types/go.mod b/comp/otelcol/ddflareextension/types/go.mod
index 1c7c6739ee97..a236304f2e36 100644
--- a/comp/otelcol/ddflareextension/types/go.mod
+++ b/comp/otelcol/ddflareextension/types/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/ddprofilingextension/def/go.mod b/comp/otelcol/ddprofilingextension/def/go.mod
index 90e7f0f45cae..ea1a7bbc754d 100644
--- a/comp/otelcol/ddprofilingextension/def/go.mod
+++ b/comp/otelcol/ddprofilingextension/def/go.mod
@@ -125,7 +125,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/ddprofilingextension/impl/go.mod b/comp/otelcol/ddprofilingextension/impl/go.mod
index 17c9094888fc..2d10f4fbe481 100644
--- a/comp/otelcol/ddprofilingextension/impl/go.mod
+++ b/comp/otelcol/ddprofilingextension/impl/go.mod
@@ -375,7 +375,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/logsagentpipeline/component.go b/comp/otelcol/logsagentpipeline/component.go
index c815f33ae168..9e76ba721138 100644
--- a/comp/otelcol/logsagentpipeline/component.go
+++ b/comp/otelcol/logsagentpipeline/component.go
@@ -9,7 +9,7 @@ package logsagentpipeline
import (
"context"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
)
// team: opentelemetry-agent
diff --git a/comp/otelcol/logsagentpipeline/go.mod b/comp/otelcol/logsagentpipeline/go.mod
index 65ff34e0c582..bfd08ac81b68 100644
--- a/comp/otelcol/logsagentpipeline/go.mod
+++ b/comp/otelcol/logsagentpipeline/go.mod
@@ -2,8 +2,6 @@ module github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline
go 1.25.0
-require github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.64.0-rc.3
-
require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
@@ -18,7 +16,6 @@ require (
github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/comp/core/telemetry v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect
- github.com/DataDog/datadog-agent/comp/logs-library v0.0.0-00010101000000-000000000000 // indirect
github.com/DataDog/datadog-agent/comp/logs/agent/config v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.64.0-rc.3 // indirect
@@ -47,17 +44,17 @@ require (
github.com/DataDog/datadog-agent/pkg/logs/types v0.71.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/telemetry v0.64.1 // indirect
github.com/DataDog/datadog-agent/pkg/template v0.65.1 // indirect
- github.com/DataDog/datadog-agent/pkg/util/backoff v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/backoff v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/compression v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/executable v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/filesystem v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/fxutil v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect
- github.com/DataDog/datadog-agent/pkg/util/http v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/http v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/pkg/util/option v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/pointer v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5 // indirect
- github.com/DataDog/datadog-agent/pkg/util/startstop v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/startstop v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/statstracker v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/system v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.64.0-rc.3 // indirect
@@ -117,6 +114,10 @@ require (
google.golang.org/protobuf v1.36.11 // indirect
)
+require github.com/DataDog/datadog-agent/comp/logs-library v0.0.0-00010101000000-000000000000
+
+require github.com/DataDog/datadog-agent/comp/core/config v0.64.0-rc.3 // indirect
+
// This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually
replace (
@@ -216,7 +217,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go
index 865d718a2830..218a257de01e 100644
--- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go
+++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/agent.go
@@ -15,6 +15,7 @@ import (
"github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface"
log "github.com/DataDog/datadog-agent/comp/core/log/def"
secretsnoopimpl "github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline"
compression "github.com/DataDog/datadog-agent/comp/serializer/logscompression/def"
@@ -22,7 +23,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/logs/client"
"github.com/DataDog/datadog-agent/pkg/logs/client/http"
"github.com/DataDog/datadog-agent/pkg/logs/diagnostic"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sender"
"github.com/DataDog/datadog-agent/pkg/util/option"
"github.com/DataDog/datadog-agent/pkg/util/startstop"
diff --git a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod
index cf10171104ab..fd7ff20bbc49 100644
--- a/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod
+++ b/comp/otelcol/logsagentpipeline/logsagentpipelineimpl/go.mod
@@ -8,8 +8,9 @@ require (
github.com/DataDog/datadog-agent/comp/core/log/def v0.64.0-rc.3
github.com/DataDog/datadog-agent/comp/core/log/mock v0.64.0-devel
github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260211235139-a5361978c2b6
+ github.com/DataDog/datadog-agent/comp/logs-library v0.0.0-00010101000000-000000000000
github.com/DataDog/datadog-agent/comp/logs/agent/config v0.64.0-rc.3
- github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.61.0
+ github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.0.0-00010101000000-000000000000
github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/config/mock v0.70.0
github.com/DataDog/datadog-agent/pkg/config/model v0.77.2
@@ -17,13 +18,12 @@ require (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
github.com/DataDog/datadog-agent/pkg/logs/metrics v0.64.0-rc.3
- github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/logs/sender v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/logs/sources v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/fxutil v0.77.0-devel.0.20260211235139-a5361978c2b6
github.com/DataDog/datadog-agent/pkg/util/option v0.64.0-rc.3
- github.com/DataDog/datadog-agent/pkg/util/startstop v0.61.0
+ github.com/DataDog/datadog-agent/pkg/util/startstop v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/util/testutil v0.59.0
github.com/stretchr/testify v1.11.1
go.uber.org/fx v1.24.0
@@ -42,7 +42,6 @@ require (
github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/comp/core/telemetry v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect
- github.com/DataDog/datadog-agent/comp/logs-library v0.0.0-00010101000000-000000000000 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -61,13 +60,13 @@ require (
github.com/DataDog/datadog-agent/pkg/logs/types v0.71.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/telemetry v0.64.1 // indirect
github.com/DataDog/datadog-agent/pkg/template v0.65.1 // indirect
- github.com/DataDog/datadog-agent/pkg/util/backoff v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/backoff v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/compression v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect
github.com/DataDog/datadog-agent/pkg/util/executable v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/filesystem v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/flavor v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/pkg/util/http v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/http v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/pkg/util/pointer v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5 // indirect
@@ -227,7 +226,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod
index 57bae285be94..0eff84bd2f2b 100644
--- a/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod
+++ b/comp/otelcol/otlp/components/exporter/datadogexporter/go.mod
@@ -4,6 +4,7 @@ go 1.25.0
require (
github.com/DataDog/datadog-agent/comp/core/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a
+ github.com/DataDog/datadog-agent/comp/logs-library v0.0.0-00010101000000-000000000000
github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline v0.64.0-rc.3
github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter v0.64.0-devel.0.20250218192636-64fdfe7ec366
github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter v0.59.0-rc.6
@@ -13,7 +14,6 @@ require (
github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
github.com/DataDog/datadog-agent/pkg/logs/metrics v0.64.0-rc.3
- github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/pkg/proto v0.77.0-devel.0.20260213154712-e02b9359151a
@@ -68,7 +68,6 @@ require (
github.com/DataDog/datadog-agent/comp/def v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
- github.com/DataDog/datadog-agent/comp/logs-library v0.0.0-00010101000000-000000000000 // indirect
github.com/DataDog/datadog-agent/comp/logs/agent/config v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/comp/serializer/metricscompression v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
@@ -133,7 +132,7 @@ require (
github.com/DataDog/datadog-agent/pkg/util/quantile v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/util/sort v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
- github.com/DataDog/datadog-agent/pkg/util/startstop v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/startstop v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/statstracker v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/system v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
@@ -365,7 +364,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources
diff --git a/comp/otelcol/otlp/components/exporter/datadogexporter/host_metadata_test.go b/comp/otelcol/otlp/components/exporter/datadogexporter/host_metadata_test.go
index 6068944546f8..0ab78b2c18fa 100644
--- a/comp/otelcol/otlp/components/exporter/datadogexporter/host_metadata_test.go
+++ b/comp/otelcol/otlp/components/exporter/datadogexporter/host_metadata_test.go
@@ -15,6 +15,7 @@ import (
"testing"
"time"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline"
"github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter"
"github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient"
@@ -22,7 +23,6 @@ import (
implgzip "github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip"
"github.com/DataDog/datadog-agent/pkg/logs/message"
"github.com/DataDog/datadog-agent/pkg/logs/metrics"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata/payload"
pkgagent "github.com/DataDog/datadog-agent/pkg/trace/agent"
"github.com/DataDog/datadog-agent/pkg/trace/config"
diff --git a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod
index e3c4e2477482..8efd3e5b0673 100644
--- a/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod
+++ b/comp/otelcol/otlp/components/exporter/logsagentexporter/go.mod
@@ -8,7 +8,7 @@ require (
github.com/DataDog/datadog-agent/comp/core/telemetry v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/comp/logs/agent/config v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.77.0-devel.0.20260213154712-e02b9359151a
- github.com/DataDog/datadog-agent/pkg/logs/message v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0
github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes v0.77.0-devel.0.20260213154712-e02b9359151a
@@ -299,7 +299,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources
diff --git a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod
index 9cb0abb4fb96..474c55952d5e 100644
--- a/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod
+++ b/comp/otelcol/otlp/components/exporter/serializerexporter/go.mod
@@ -61,6 +61,7 @@ require (
github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect
github.com/DataDog/datadog-agent/pkg/util/flavor v0.70.0 // indirect
+ github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/benbjohnson/clock v1.3.5 // indirect
github.com/mdlayher/socket v0.5.1 // indirect
github.com/mdlayher/vsock v1.2.1 // indirect
@@ -120,7 +121,6 @@ require (
github.com/DataDog/viper v1.15.1 // indirect
github.com/DataDog/zstd v1.5.7 // indirect
github.com/DataDog/zstd_0 v0.0.0-20210310093942-586c1286621f // indirect
- github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
@@ -324,7 +324,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources
diff --git a/comp/otelcol/otlp/components/metricsclient/go.mod b/comp/otelcol/otlp/components/metricsclient/go.mod
index 8c4a88e8eb36..e9e712c203b2 100644
--- a/comp/otelcol/otlp/components/metricsclient/go.mod
+++ b/comp/otelcol/otlp/components/metricsclient/go.mod
@@ -127,7 +127,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../pkg/logs/sources
diff --git a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod
index 87594bd86b61..7a3c3e72551d 100644
--- a/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod
+++ b/comp/otelcol/otlp/components/processor/infraattributesprocessor/go.mod
@@ -283,7 +283,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources
diff --git a/comp/otelcol/otlp/testutil/go.mod b/comp/otelcol/otlp/testutil/go.mod
index aaf408ef8769..e81d0d32fba3 100644
--- a/comp/otelcol/otlp/testutil/go.mod
+++ b/comp/otelcol/otlp/testutil/go.mod
@@ -185,7 +185,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/status/def/go.mod b/comp/otelcol/status/def/go.mod
index 21d64decb778..a03f9f888323 100644
--- a/comp/otelcol/status/def/go.mod
+++ b/comp/otelcol/status/def/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/otelcol/status/impl/go.mod b/comp/otelcol/status/impl/go.mod
index 2e7aad9a43c6..cac9701298e9 100644
--- a/comp/otelcol/status/impl/go.mod
+++ b/comp/otelcol/status/impl/go.mod
@@ -212,7 +212,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/privateactionrunner/def/BUILD.bazel b/comp/privateactionrunner/def/BUILD.bazel
new file mode 100644
index 000000000000..78eec4d3a493
--- /dev/null
+++ b/comp/privateactionrunner/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/privateactionrunner/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/privateactionrunner/def/component.go b/comp/privateactionrunner/def/component.go
index 0276a96e1208..63eecb43d140 100644
--- a/comp/privateactionrunner/def/component.go
+++ b/comp/privateactionrunner/def/component.go
@@ -21,9 +21,10 @@ var ErrNotEnabled = errors.New("private action runner is not enabled")
// Duplicated from pkg/config/setup/privateactionrunner.go because comp/
// packages cannot import pkg/config/setup (depguard rule).
const (
- PAREnabled = "private_action_runner.enabled"
- PARSelfEnroll = "private_action_runner.self_enroll"
- PARPrivateKey = "private_action_runner.private_key"
- PARUrn = "private_action_runner.urn"
- PARActionsAllowlist = "private_action_runner.actions_allowlist"
+ PAREnabled = "private_action_runner.enabled"
+ PARSelfEnroll = "private_action_runner.self_enroll"
+ PARPrivateKey = "private_action_runner.private_key"
+ PARUrn = "private_action_runner.urn"
+ PARActionsAllowlist = "private_action_runner.actions_allowlist"
+ PARDefaultActionsEnabled = "private_action_runner.default_actions_enabled"
)
diff --git a/comp/privateactionrunner/status/statusimpl/status.go b/comp/privateactionrunner/status/statusimpl/status.go
index 4f86cde00b86..871715424eca 100644
--- a/comp/privateactionrunner/status/statusimpl/status.go
+++ b/comp/privateactionrunner/status/statusimpl/status.go
@@ -16,6 +16,8 @@ import (
"github.com/DataDog/datadog-agent/comp/core/config"
"github.com/DataDog/datadog-agent/comp/core/status"
par "github.com/DataDog/datadog-agent/comp/privateactionrunner/def"
+ parconfig "github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/config"
+ "github.com/DataDog/datadog-agent/pkg/util/flavor"
"github.com/DataDog/datadog-agent/pkg/util/fxutil"
)
@@ -97,7 +99,17 @@ func (s statusProvider) populateStatus(stats map[string]interface{}) {
}
parStatus["URN"] = urn
parStatus["SelfEnroll"] = s.config.GetBool(par.PARSelfEnroll)
- parStatus["ActionsAllowlist"] = strings.Join(s.config.GetStringSlice(par.PARActionsAllowlist), ", ")
+ defaultActionsEnabled := s.config.GetBool(par.PARDefaultActionsEnabled)
+ parStatus["DefaultActionsEnabled"] = defaultActionsEnabled
+ allowlist := s.config.GetStringSlice(par.PARActionsAllowlist)
+ if defaultActionsEnabled {
+ if flavor.GetFlavor() == flavor.ClusterAgent {
+ allowlist = append(allowlist, parconfig.DefaultClusterAgentActionFQNs...)
+ } else {
+ allowlist = append(allowlist, parconfig.DefaultActionFQNs...)
+ }
+ }
+ parStatus["ActionsAllowlist"] = strings.Join(allowlist, ", ")
}
stats["privateActionRunnerStatus"] = parStatus
diff --git a/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunner.tmpl b/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunner.tmpl
index 4e0ca3839e44..4d2ca5d29e27 100644
--- a/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunner.tmpl
+++ b/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunner.tmpl
@@ -3,6 +3,7 @@
{{- if .Enabled }}
URN: {{ .URN }}
Self Enroll: {{ .SelfEnroll }}
+ Default Actions Enabled: {{ .DefaultActionsEnabled }}
Actions Allowlist: {{- if .ActionsAllowlist }} {{ .ActionsAllowlist }}{{else}} (none){{end}}
{{- end }}
{{- end }}
diff --git a/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunnerHTML.tmpl b/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunnerHTML.tmpl
index 976b77cccf72..f619e2518383 100644
--- a/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunnerHTML.tmpl
+++ b/comp/privateactionrunner/status/statusimpl/status_templates/privateactionrunnerHTML.tmpl
@@ -6,6 +6,7 @@
{{- if .Enabled }}
URN: {{ .URN }}
Self Enroll: {{ .SelfEnroll }}
+ Default Actions Enabled: {{ .DefaultActionsEnabled }}
Actions Allowlist: {{- if .ActionsAllowlist }} {{ .ActionsAllowlist }}{{else}} (none){{end}}
{{- end }}
diff --git a/comp/privateactionrunner/status/statusimpl/status_test.go b/comp/privateactionrunner/status/statusimpl/status_test.go
index a1d189e5ee48..0d1b1b77c049 100644
--- a/comp/privateactionrunner/status/statusimpl/status_test.go
+++ b/comp/privateactionrunner/status/statusimpl/status_test.go
@@ -13,14 +13,19 @@ import (
"github.com/stretchr/testify/require"
"github.com/DataDog/datadog-agent/comp/core/config"
+ "github.com/DataDog/datadog-agent/pkg/util/flavor"
)
func TestStatusEnabled(t *testing.T) {
+ flavor.SetFlavor(flavor.ClusterAgent)
+ defer flavor.SetFlavor(flavor.DefaultAgent)
+
configComponent := config.NewMock(t)
configComponent.SetWithoutSource("private_action_runner.enabled", true)
configComponent.SetWithoutSource("private_action_runner.urn", "urn:datadog:action-runner:abcdef123456")
configComponent.SetWithoutSource("private_action_runner.self_enroll", true)
configComponent.SetWithoutSource("private_action_runner.actions_allowlist", []string{"com.datadoghq.http.request"})
+ configComponent.SetWithoutSource("private_action_runner.default_actions_enabled", true)
provider := statusProvider{config: configComponent}
@@ -34,7 +39,10 @@ func TestStatusEnabled(t *testing.T) {
assert.Equal(t, true, parStats["Enabled"])
assert.Equal(t, true, parStats["SelfEnroll"])
+ assert.Equal(t, true, parStats["DefaultActionsEnabled"])
assert.Equal(t, "urn:datadog:action-runner:abcdef123456", parStats["URN"])
+ assert.Contains(t, parStats["ActionsAllowlist"], "com.datadoghq.http.request")
+ assert.Contains(t, parStats["ActionsAllowlist"], "com.datadoghq.kubernetes.core.getPod")
})
t.Run("Text", func(t *testing.T) {
@@ -45,6 +53,8 @@ func TestStatusEnabled(t *testing.T) {
output := b.String()
assert.Contains(t, output, "Enabled")
assert.Contains(t, output, "123456")
+ assert.Contains(t, output, "Default Actions Enabled: true")
+ assert.Contains(t, output, "com.datadoghq.kubernetes.core.getPod")
})
t.Run("HTML", func(t *testing.T) {
@@ -55,6 +65,8 @@ func TestStatusEnabled(t *testing.T) {
output := b.String()
assert.Contains(t, output, "Enabled")
assert.Contains(t, output, "123456")
+ assert.Contains(t, output, "Default Actions Enabled: true")
+ assert.Contains(t, output, "com.datadoghq.kubernetes.core.getPod")
})
}
diff --git a/comp/rdnsquerier/def/BUILD.bazel b/comp/rdnsquerier/def/BUILD.bazel
new file mode 100644
index 000000000000..a0fc7edc8bb9
--- /dev/null
+++ b/comp/rdnsquerier/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/rdnsquerier/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/serializer/logscompression/go.mod b/comp/serializer/logscompression/go.mod
index 132ddbf4d7a0..4f2bbe918841 100644
--- a/comp/serializer/logscompression/go.mod
+++ b/comp/serializer/logscompression/go.mod
@@ -183,7 +183,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/serializer/metricscompression/go.mod b/comp/serializer/metricscompression/go.mod
index 223c9a464594..31c0cb60e045 100644
--- a/comp/serializer/metricscompression/go.mod
+++ b/comp/serializer/metricscompression/go.mod
@@ -183,7 +183,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/comp/snmpscanmanager/def/BUILD.bazel b/comp/snmpscanmanager/def/BUILD.bazel
new file mode 100644
index 000000000000..32ca6492bf71
--- /dev/null
+++ b/comp/snmpscanmanager/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/snmpscanmanager/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/snmptraps/listener/impl/listener_test.go b/comp/snmptraps/listener/impl/listener_test.go
index 568ad8e489d6..4207f23386e1 100644
--- a/comp/snmptraps/listener/impl/listener_test.go
+++ b/comp/snmptraps/listener/impl/listener_test.go
@@ -54,9 +54,8 @@ func listenerTestSetup(t *testing.T, conf *config.TrapsConfig) *services {
}
func TestListenV1GenericTrap(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
- config := &config.TrapsConfig{Port: serverPort, CommunityStrings: []string{"public"}, Namespace: "totoro"}
+ port := ndmtestutils.UniqueTestPort(t.Name())
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", CommunityStrings: []string{"public"}, Namespace: "totoro"}
s := listenerTestSetup(t, config)
sendTestV1GenericTrap(t, s.Config.Get(), "public")
@@ -67,9 +66,8 @@ func TestListenV1GenericTrap(t *testing.T) {
}
func TestServerV1SpecificTrap(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
- config := &config.TrapsConfig{Port: serverPort, CommunityStrings: []string{"public"}}
+ port := ndmtestutils.UniqueTestPort(t.Name())
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", CommunityStrings: []string{"public"}}
s := listenerTestSetup(t, config)
sendTestV1SpecificTrap(t, config, "public")
@@ -80,9 +78,8 @@ func TestServerV1SpecificTrap(t *testing.T) {
}
func TestServerV2(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
- config := &config.TrapsConfig{Port: serverPort, CommunityStrings: []string{"public"}}
+ port := ndmtestutils.UniqueTestPort(t.Name())
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", CommunityStrings: []string{"public"}}
s := listenerTestSetup(t, config)
sendTestV2Trap(t, config, "public")
@@ -93,9 +90,8 @@ func TestServerV2(t *testing.T) {
}
func TestServerV2BadCredentials(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
- config := &config.TrapsConfig{Port: serverPort, CommunityStrings: []string{"public"}, Namespace: "totoro"}
+ port := ndmtestutils.UniqueTestPort(t.Name())
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", CommunityStrings: []string{"public"}, Namespace: "totoro"}
s := listenerTestSetup(t, config)
sendTestV2Trap(t, config, "wrong-community")
@@ -107,10 +103,9 @@ func TestServerV2BadCredentials(t *testing.T) {
}
func TestServerV3(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
+ port := ndmtestutils.UniqueTestPort(t.Name())
userV3 := config.UserV3{Username: "user", AuthKey: "password", AuthProtocol: "sha", PrivKey: "password", PrivProtocol: "aes"}
- config := &config.TrapsConfig{Port: serverPort, Users: []config.UserV3{userV3}}
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", Users: []config.UserV3{userV3}}
s := listenerTestSetup(t, config)
sendTestV3Trap(t, config, gosnmp.AuthPriv, &gosnmp.UsmSecurityParameters{
@@ -184,10 +179,9 @@ func TestServerV3MultipleCredentials(t *testing.T) {
},
},
}
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
+ port := ndmtestutils.UniqueTestPort(t.Name())
- config := &config.TrapsConfig{Port: serverPort, Users: users}
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", Users: users}
s := listenerTestSetup(t, config)
for _, test := range tests {
@@ -199,9 +193,8 @@ func TestServerV3MultipleCredentials(t *testing.T) {
}
func TestServerV3BadCredentialsWithMultipleUsers(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
- config := &config.TrapsConfig{Port: serverPort, Users: users}
+ port := ndmtestutils.UniqueTestPort(t.Name())
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", Users: users}
s := listenerTestSetup(t, config)
sendTestV3Trap(t, config, gosnmp.AuthPriv, &gosnmp.UsmSecurityParameters{
@@ -216,10 +209,9 @@ func TestServerV3BadCredentialsWithMultipleUsers(t *testing.T) {
}
func TestServerV3BadCredentials(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
+ port := ndmtestutils.UniqueTestPort(t.Name())
userV3 := config.UserV3{Username: "user", AuthKey: "password", AuthProtocol: "sha", PrivKey: "password", PrivProtocol: "aes"}
- config := &config.TrapsConfig{Port: serverPort, Users: []config.UserV3{userV3}}
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", Users: []config.UserV3{userV3}}
s := listenerTestSetup(t, config)
sendTestV3Trap(t, config, gosnmp.AuthPriv, &gosnmp.UsmSecurityParameters{
@@ -234,9 +226,8 @@ func TestServerV3BadCredentials(t *testing.T) {
}
func TestListenerTrapsReceivedTelemetry(t *testing.T) {
- serverPort, err := ndmtestutils.GetFreePort()
- require.NoError(t, err)
- config := &config.TrapsConfig{Port: serverPort, CommunityStrings: []string{"public"}, Namespace: "totoro"}
+ port := ndmtestutils.UniqueTestPort(t.Name())
+ config := &config.TrapsConfig{Port: port, BindHost: "127.0.0.1", CommunityStrings: []string{"public"}, Namespace: "totoro"}
s := listenerTestSetup(t, config)
sendTestV1GenericTrap(t, config, "public")
diff --git a/comp/snmptraps/server/serverimpl/server_test.go b/comp/snmptraps/server/serverimpl/server_test.go
index 314954ff59ca..21a24e6cd234 100644
--- a/comp/snmptraps/server/serverimpl/server_test.go
+++ b/comp/snmptraps/server/serverimpl/server_test.go
@@ -8,10 +8,8 @@
package serverimpl
import (
- "hash/fnv"
"os"
"path/filepath"
- "strings"
"testing"
"github.com/stretchr/testify/assert"
@@ -21,18 +19,10 @@ import (
"github.com/DataDog/datadog-agent/comp/core/config"
"github.com/DataDog/datadog-agent/comp/snmptraps/senderhelper"
"github.com/DataDog/datadog-agent/comp/snmptraps/server"
+ ndmtestutils "github.com/DataDog/datadog-agent/pkg/networkdevice/testutils"
"github.com/DataDog/datadog-agent/pkg/util/fxutil"
)
-// uniqueTestPort returns a deterministic high-range UDP port derived from inputs,
-// reducing the chance of collisions across concurrent tests without TOCTOU races.
-func uniqueTestPort(keys ...string) uint16 {
- h := fnv.New32a()
- h.Write([]byte(strings.Join(keys, "|")))
- // Choose from 62000-63999 (typically outside Linux default ephemeral range)
- return uint16(62000 + (h.Sum32() % 2000))
-}
-
func TestServer(t *testing.T) {
confdPath, err := os.MkdirTemp("", "trapsdb")
require.NoError(t, err)
@@ -43,7 +33,7 @@ func TestServer(t *testing.T) {
require.NoError(t, os.Mkdir(tdb, 0777))
require.NoError(t, os.WriteFile(filepath.Join(tdb, "foo.json"), []byte{}, 0666))
// Pick a deterministic port specific to this test run to avoid collisions
- port := uniqueTestPort(t.Name(), confdPath)
+ port := ndmtestutils.UniqueTestPort(t.Name(), confdPath)
server := fxutil.Test[server.Component](t,
senderhelper.Opts,
fx.Provide(func(t testing.TB) config.Component {
@@ -66,7 +56,7 @@ func TestNonBlockingFailure(t *testing.T) {
confdPath, err := os.MkdirTemp("", "trapsdb")
require.NoError(t, err)
defer os.RemoveAll(confdPath)
- port := uniqueTestPort(t.Name(), confdPath)
+ port := ndmtestutils.UniqueTestPort(t.Name(), confdPath)
server := fxutil.Test[server.Component](t,
senderhelper.Opts,
fx.Provide(func(t testing.TB) config.Component {
diff --git a/comp/softwareinventory/def/BUILD.bazel b/comp/softwareinventory/def/BUILD.bazel
new file mode 100644
index 000000000000..a766d273a2cf
--- /dev/null
+++ b/comp/softwareinventory/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/softwareinventory/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/trace-telemetry/def/BUILD.bazel b/comp/trace-telemetry/def/BUILD.bazel
new file mode 100644
index 000000000000..232be606d9a8
--- /dev/null
+++ b/comp/trace-telemetry/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/trace-telemetry/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/trace/agent/def/go.mod b/comp/trace/agent/def/go.mod
index c838f1257b61..ae58b8e8de1a 100644
--- a/comp/trace/agent/def/go.mod
+++ b/comp/trace/agent/def/go.mod
@@ -133,7 +133,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/trace/compression/def/go.mod b/comp/trace/compression/def/go.mod
index 64bd2773f48e..e69bda638552 100644
--- a/comp/trace/compression/def/go.mod
+++ b/comp/trace/compression/def/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/trace/compression/impl-gzip/go.mod b/comp/trace/compression/impl-gzip/go.mod
index 5309d29121cd..6ed463235f7b 100644
--- a/comp/trace/compression/impl-gzip/go.mod
+++ b/comp/trace/compression/impl-gzip/go.mod
@@ -103,7 +103,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/trace/compression/impl-zstd/go.mod b/comp/trace/compression/impl-zstd/go.mod
index f0843ef696f7..cda3ff8a2f32 100644
--- a/comp/trace/compression/impl-zstd/go.mod
+++ b/comp/trace/compression/impl-zstd/go.mod
@@ -106,7 +106,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/comp/updater/BUILD.bazel b/comp/updater/BUILD.bazel
new file mode 100644
index 000000000000..83021f8aceda
--- /dev/null
+++ b/comp/updater/BUILD.bazel
@@ -0,0 +1,3 @@
+# gazelle:ignore
+# bundle.go is part of an unmigrated module; ignore this directory to prevent
+# Gazelle from generating targets that pull unmigrated external-repo deps.
diff --git a/comp/updater/daemonchecker/def/BUILD.bazel b/comp/updater/daemonchecker/def/BUILD.bazel
new file mode 100644
index 000000000000..9644250b0a1c
--- /dev/null
+++ b/comp/updater/daemonchecker/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/updater/daemonchecker/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/updater/daemonchecker/impl/BUILD.bazel b/comp/updater/daemonchecker/impl/BUILD.bazel
new file mode 100644
index 000000000000..545a35e30d66
--- /dev/null
+++ b/comp/updater/daemonchecker/impl/BUILD.bazel
@@ -0,0 +1,66 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "impl",
+ srcs = [
+ "daemon_checker_unix.go",
+ "daemon_checker_windows.go",
+ "daemonchecker.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/comp/updater/daemonchecker/impl",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/updater/daemonchecker/def",
+ ] + select({
+ "@rules_go//go/platform:aix": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:android": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:darwin": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:dragonfly": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:freebsd": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:illumos": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:ios": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:js": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:linux": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:netbsd": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:openbsd": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:osx": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:plan9": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:qnx": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:solaris": [
+ "//pkg/fleet/installer/paths",
+ ],
+ "@rules_go//go/platform:windows": [
+ "//pkg/util/winutil",
+ "@org_golang_x_sys//windows",
+ ],
+ "//conditions:default": [],
+ }),
+)
diff --git a/comp/updater/ssistatus/def/BUILD.bazel b/comp/updater/ssistatus/def/BUILD.bazel
new file mode 100644
index 000000000000..91cb00377727
--- /dev/null
+++ b/comp/updater/ssistatus/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/updater/ssistatus/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/updater/telemetry/def/BUILD.bazel b/comp/updater/telemetry/def/BUILD.bazel
new file mode 100644
index 000000000000..2fa03bba22ce
--- /dev/null
+++ b/comp/updater/telemetry/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/updater/telemetry/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/comp/workloadselection/def/BUILD.bazel b/comp/workloadselection/def/BUILD.bazel
new file mode 100644
index 000000000000..11387e789d52
--- /dev/null
+++ b/comp/workloadselection/def/BUILD.bazel
@@ -0,0 +1,8 @@
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "def",
+ srcs = ["component.go"],
+ importpath = "github.com/DataDog/datadog-agent/comp/workloadselection/def",
+ visibility = ["//visibility:public"],
+)
diff --git a/deps/cpython.BUILD.bazel b/deps/cpython.BUILD.bazel
index c8bf69701ab2..fc745b8000cf 100644
--- a/deps/cpython.BUILD.bazel
+++ b/deps/cpython.BUILD.bazel
@@ -271,8 +271,14 @@ configure_make(
# However, in our case, that means using tools that are stored in the build sandbox, so they aren't
# usable when building an extension, causing all builds to fail.
# fix_sysconfigdata.py strips sandbox-absolute paths from known tool entries (leaving just the
- # basename so they can be found on PATH) and clears build flags that are Bazel-specific.
- postfix_script = "$(execpath @python_3_12//:python3) $(execpath @@//deps/cpython:fix_sysconfigdata.py) $$INSTALLDIR/lib/python{version}/_sysconfigdata__*.py".format(
+ # basename so they can be found on PATH), clears build flags that are Bazel-specific, and replaces
+ # sandbox paths with their install-prefix-relative equivalents.
+ postfix_script = """
+ $(execpath @python_3_12//:python3) $(execpath @@//deps/cpython:fix_sysconfigdata.py) \
+ --install-prefix "##PREFIX##" \
+ --sandbox-prefix "$$BUILD_TMPDIR/$$INSTALL_PREFIX" \
+ $$INSTALLDIR/lib/python{version}/_sysconfigdata__*.py
+ """.format(
version = VERSION_STR,
),
)
diff --git a/deps/cpython/BUILD.bazel b/deps/cpython/BUILD.bazel
index 6308fe2f046c..d1fac8a929f7 100644
--- a/deps/cpython/BUILD.bazel
+++ b/deps/cpython/BUILD.bazel
@@ -1,3 +1,18 @@
"""Package delimiter."""
+load("@rules_python//python:py_library.bzl", "py_library")
+load("@rules_python//python:py_test.bzl", "py_test")
+
exports_files(["fix_sysconfigdata.py"])
+
+py_library(
+ name = "fix_sysconfigdata_lib",
+ srcs = ["fix_sysconfigdata.py"],
+ imports = ["."],
+)
+
+py_test(
+ name = "fix_sysconfigdata_test",
+ srcs = ["fix_sysconfigdata_test.py"],
+ deps = [":fix_sysconfigdata_lib"],
+)
diff --git a/deps/cpython/fix_sysconfigdata.py b/deps/cpython/fix_sysconfigdata.py
index fd27a9a2bcc4..3f1424221186 100644
--- a/deps/cpython/fix_sysconfigdata.py
+++ b/deps/cpython/fix_sysconfigdata.py
@@ -1,8 +1,10 @@
"""Fix sandbox-absolute tool paths in Python's _sysconfigdata__*.py.
-Replaces tool paths recorded by CPython's build system with just the
-tool's basename (stripping Bazel sandbox prefixes), and clears build
-flags that are meaningless outside of Bazel.
+- Replaces tool paths recorded by CPython's build system with just the
+tool's basename (stripping Bazel sandbox prefixes)
+- Completely clears a set of predetermined fields
+- Replaces known sandbox paths as well as paths with references to execroot (bazel-out)
+ to use a predetermined replacement prefix.
The resulting file will lose original formatting and comments, but this
is acceptable given the file's usage.
@@ -34,6 +36,9 @@
]
)
+# Subdirectory suffixes we can confidently map to the same suffix under the install prefix.
+_KNOWN_SUFFIXES = frozenset(["lib", "lib64", "include"])
+
# Regexp to split into alternating path candidates and other tokens
# Needs to account for paths being preceded by `=` or quotes.
_PATH_SPLITTER_RE = re.compile(r"""(/[^\s='"]+)""")
@@ -44,17 +49,40 @@ def _fix_tool_path(segment):
return basename if basename in TOOL_BASENAMES else segment
-def _fix_value(key, value):
+def _fix_bazel_out_path(segment, install_prefix):
+ """Best-effort: collapse bazel-out sandbox paths to the install prefix.
+
+ Paths containing bazel-out are Bazel build artefacts that don't exist at
+ install time. If the path ends with a known suffix (lib, include, ...) we
+ keep that suffix; otherwise we map the whole path to the install prefix.
+ """
+ if "bazel-out" not in segment:
+ return segment
+ basename = os.path.basename(segment)
+ if basename in _KNOWN_SUFFIXES:
+ return install_prefix + "/" + basename
+ return install_prefix
+
+
+def _fix_value(key, value, install_prefix, sandbox_prefix):
if key in FLAGS_TO_CLEAR:
return ""
if isinstance(value, str):
- parts = _PATH_SPLITTER_RE.split(value)
- # The split leaves path-candidates (non-separators) at odd-indexed positions
- return "".join(_fix_tool_path(p) if i % 2 == 1 else p for i, p in enumerate(parts))
+ # Fix tool paths to only refer to base names.
+ # The RE-based split leaves path-candidates (non-separators) at odd-indexed positions.
+ result = "".join(_fix_tool_path(p) if i % 2 == 1 else p for i, p in enumerate(_PATH_SPLITTER_RE.split(value)))
+ # Replace known sandbox install prefix with the real install prefix.
+ result = result.replace(sandbox_prefix, install_prefix)
+ # Collapse remaining bazel-out paths to the install prefix.
+ result = "".join(
+ _fix_bazel_out_path(p, install_prefix) if i % 2 == 1 else p
+ for i, p in enumerate(_PATH_SPLITTER_RE.split(result))
+ )
+ return result
return value
-def fix_file(path):
+def fix_file(path, install_prefix, sandbox_prefix):
with open(path) as f:
source = f.read()
@@ -67,7 +95,7 @@ def fix_file(path):
isinstance(t, ast.Name) and t.id == "build_time_vars" for t in node.targets
):
build_time_vars = ast.literal_eval(node.value)
- fixed = {k: _fix_value(k, v) for k, v in build_time_vars.items()}
+ fixed = {k: _fix_value(k, v, install_prefix, sandbox_prefix) for k, v in build_time_vars.items()}
node.value = ast.Dict(
keys=[ast.Constant(value=k) for k in fixed],
values=[ast.Constant(value=v) for v in fixed.values()],
@@ -82,10 +110,22 @@ def fix_file(path):
def main():
parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument(
+ "--install-prefix",
+ metavar="DIR",
+ required=True,
+ help="Install prefix to substitute for sandbox paths (e.g. ##PREFIX##)",
+ )
+ parser.add_argument(
+ "--sandbox-prefix",
+ metavar="DIR",
+ required=True,
+ help="Bazel sandbox install root",
+ )
parser.add_argument("files", nargs="+", metavar="FILE", help="_sysconfigdata__*.py file(s) to fix")
args = parser.parse_args()
for path in args.files:
- fix_file(path)
+ fix_file(path, install_prefix=args.install_prefix, sandbox_prefix=args.sandbox_prefix)
if __name__ == "__main__":
diff --git a/deps/cpython/fix_sysconfigdata_test.py b/deps/cpython/fix_sysconfigdata_test.py
new file mode 100644
index 000000000000..12bcff6004fb
--- /dev/null
+++ b/deps/cpython/fix_sysconfigdata_test.py
@@ -0,0 +1,82 @@
+"""Tests for fix_sysconfigdata.py."""
+
+import importlib.util
+import os
+import tempfile
+import textwrap
+import unittest
+
+import fix_sysconfigdata
+
+# The sandbox install prefix used in the fixture below, matching what
+# $BUILD_TMPDIR/$INSTALL_PREFIX would expand to during the Bazel build.
+_SANDBOX_PREFIX = "/execroot/_main/bazel-out/arch/bin/external/+repo+cpython/python_unix.build_tmpdir/python_unix"
+
+# A minimal _sysconfigdata__*.py fixture that exercises the fix-up rules.
+# Paths under _SANDBOX_PREFIX represent fields recorded relative to the Python install root
+_FIXTURE = textwrap.dedent(f"""\
+ build_time_vars = {{
+ "CC": "/execroot/_main/external/+toolchain/bin/gcc",
+ "AR": "/execroot/_main/external/+toolchain/bin/ar",
+ "CFLAGS": "-O2 -nostdinc -isystem /execroot/_main/sysroot/include",
+ "LDFLAGS": "-Wl,-rpath,/bazel-out/k8-opt/bin",
+ "LDSHARED": "/execroot/_main/bin/gcc -shared -Wl,-z,relro -B/execroot/_main/bin -L/bazel-out/k8-opt/lib",
+ "CONFIGURED_CC": "--cc=/execroot/_main/bin/gcc -O2",
+ "CONFIG_ARGS": " '--enable-ipv6' 'LDFLAGS=-Wl,-rpath,/execroot/_main/lib'",
+ "PY_CFLAGS": "-isystem/execroot/_main/external/gcc_toolchain/lib/gcc/aarch64-unknown-linux-gnu/12.3.0/include -O2",
+ "VERSION": "3.13.0",
+ "LIBDIR": "{_SANDBOX_PREFIX}/lib",
+ "INCLUDEPY": "{_SANDBOX_PREFIX}/include/python3.13",
+ "prefix": "{_SANDBOX_PREFIX}",
+ }}
+""")
+
+_PREFIX = "##PREFIX##"
+
+
+def _load_fixed(path):
+ """Import a patched sysconfigdata file and return its build_time_vars."""
+ # https://docs.python.org/3/library/importlib.html#importing-a-source-file-directly
+ spec = importlib.util.spec_from_file_location("_sysconfigdata_test", path)
+ mod = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(mod)
+ return mod.build_time_vars
+
+
+class TestFixSysconfigdata(unittest.TestCase):
+ def test_fix_file(self):
+ with tempfile.TemporaryDirectory() as tmpdir:
+ path = os.path.join(tmpdir, "_sysconfigdata__test.py")
+ with open(path, "w") as f:
+ f.write(_FIXTURE)
+ fix_sysconfigdata.fix_file(path, install_prefix=_PREFIX, sandbox_prefix=_SANDBOX_PREFIX)
+ build_time_vars = _load_fixed(path)
+
+ # Pure install-dir paths are rewritten using the placeholder prefix
+ self.assertEqual(build_time_vars["LIBDIR"], _PREFIX + "/lib")
+ self.assertEqual(build_time_vars["INCLUDEPY"], _PREFIX + "/include/python3.13")
+ self.assertEqual(build_time_vars["prefix"], _PREFIX)
+
+ # FLAGS_TO_CLEAR: wiped entirely
+ self.assertEqual(build_time_vars["CFLAGS"], "")
+ self.assertEqual(build_time_vars["LDFLAGS"], "")
+
+ # Tool paths reduced to basename (via _fix_tool_path)
+ self.assertEqual(build_time_vars["CC"], "gcc")
+ self.assertEqual(build_time_vars["AR"], "ar")
+
+ # --flag=/path/to/tool: the '=' boundary is respected so
+ # the flag prefix is preserved and only the path portion is replaced.
+ self.assertEqual(build_time_vars["CONFIGURED_CC"], "--cc=gcc -O2")
+
+ # Non-string values pass through unchanged
+ self.assertEqual(build_time_vars["VERSION"], "3.13.0")
+
+ # bazel-out paths in LDSHARED are collapsed:
+ # -L/bazel-out/k8-opt/lib -> -L##PREFIX##/lib (known suffix)
+ # -B/execroot/... is not bazel-out so left alone
+ self.assertEqual(build_time_vars["LDSHARED"], "gcc -shared -Wl,-z,relro -B/execroot/_main/bin -L##PREFIX##/lib")
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/deps/go.MODULE.bazel b/deps/go.MODULE.bazel
index 2acaea0a3639..ec95c2923724 100644
--- a/deps/go.MODULE.bazel
+++ b/deps/go.MODULE.bazel
@@ -92,6 +92,7 @@ use_repo(
"com_github_datadog_datadog_agent_comp_core_log_mock",
"com_github_datadog_datadog_agent_comp_core_secrets_def",
"com_github_datadog_datadog_agent_comp_core_secrets_fx",
+ "com_github_datadog_datadog_agent_comp_core_secrets_impl",
"com_github_datadog_datadog_agent_comp_core_secrets_mock",
"com_github_datadog_datadog_agent_comp_core_secrets_noop_impl",
"com_github_datadog_datadog_agent_comp_core_secrets_utils",
@@ -165,7 +166,6 @@ use_repo(
"com_github_datadog_datadog_agent_pkg_logs_diagnostic",
"com_github_datadog_datadog_agent_pkg_logs_message",
"com_github_datadog_datadog_agent_pkg_logs_metrics",
- "com_github_datadog_datadog_agent_pkg_logs_pipeline",
"com_github_datadog_datadog_agent_pkg_logs_processor",
"com_github_datadog_datadog_agent_pkg_logs_sender",
"com_github_datadog_datadog_agent_pkg_logs_sources",
@@ -515,6 +515,7 @@ use_repo(
"org_go4_intern",
"org_go4_mem",
"org_go4_netipx",
+ "org_golang_google_genproto_googleapis_rpc",
"org_golang_google_grpc",
"org_golang_google_grpc_cmd_protoc_gen_go_grpc",
"org_golang_google_grpc_examples",
diff --git a/deps/openssl/0002-OSSL_PARAM_BLD_push_octet_allow_NULL_buffer.patch b/deps/openssl/0002-OSSL_PARAM_BLD_push_octet_allow_NULL_buffer.patch
new file mode 100644
index 000000000000..25ce9d8b5b99
--- /dev/null
+++ b/deps/openssl/0002-OSSL_PARAM_BLD_push_octet_allow_NULL_buffer.patch
@@ -0,0 +1,109 @@
+From 03ce2eed20ebb9d4c17190e7219d4b87a7d8246d Mon Sep 17 00:00:00 2001
+From: Tomas Mraz
+Date: Wed, 8 Apr 2026 17:38:51 +0200
+Subject: [PATCH 1/2] OSSL_PARAM_BLD_push_octet_*(): Allow NULL buffer with 0
+ bsize
+
+Fixes #30728
+---
+ crypto/param_build.c | 6 +++---
+ test/param_build_test.c | 10 ++++++++++
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/crypto/param_build.c b/crypto/param_build.c
+index d4ada8f767ebe..c268730db271c 100644
+--- a/crypto/param_build.c
++++ b/crypto/param_build.c
+@@ -345,7 +345,7 @@ int OSSL_PARAM_BLD_push_utf8_ptr(OSSL_PARAM_BLD *bld, const char *key,
+ {
+ OSSL_PARAM_BLD_DEF *pd;
+
+- if (bld == NULL || key == NULL) {
++ if (bld == NULL || key == NULL || buf == NULL) {
+ ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
+ return 0;
+ }
+@@ -365,7 +365,7 @@ int OSSL_PARAM_BLD_push_octet_string(OSSL_PARAM_BLD *bld, const char *key,
+ OSSL_PARAM_BLD_DEF *pd;
+ int secure;
+
+- if (bld == NULL || key == NULL || buf == NULL) {
++ if (bld == NULL || key == NULL || (buf == NULL && bsize != 0)) {
+ ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
+ return 0;
+ }
+@@ -383,7 +383,7 @@ int OSSL_PARAM_BLD_push_octet_ptr(OSSL_PARAM_BLD *bld, const char *key,
+ {
+ OSSL_PARAM_BLD_DEF *pd;
+
+- if (bld == NULL || key == NULL) {
++ if (bld == NULL || key == NULL || (buf == NULL && bsize != 0)) {
+ ERR_raise(ERR_LIB_CRYPTO, ERR_R_PASSED_NULL_PARAMETER);
+ return 0;
+ }
+diff --git a/test/param_build_test.c b/test/param_build_test.c
+index 3b90a5e829ccc..afd1563aa74e3 100644
+--- a/test/param_build_test.c
++++ b/test/param_build_test.c
+@@ -117,8 +117,12 @@ static int template_public_test(int tstid)
+ || !TEST_true(OSSL_PARAM_BLD_push_BN(bld, "negativebignumber", nbn))
+ || !TEST_true(OSSL_PARAM_BLD_push_utf8_string(bld, "utf8_s", "foo",
+ sizeof("foo")))
++ || !TEST_true(OSSL_PARAM_BLD_push_octet_string(bld, "octet_s", NULL,
++ 0))
+ || !TEST_true(OSSL_PARAM_BLD_push_utf8_ptr(bld, "utf8_p", "bar-boom",
+ 0))
++ || !TEST_true(OSSL_PARAM_BLD_push_octet_ptr(bld, "octet_p", NULL,
++ 0))
+ || !TEST_true(OSSL_PARAM_BLD_push_int(bld, "i", -6))
+ || !TEST_ptr(params_blt = OSSL_PARAM_BLD_to_param(bld)))
+ goto err;
+@@ -189,10 +193,16 @@ static int template_public_test(int tstid)
+ || !TEST_str_eq(p->data, "foo")
+ || !TEST_true(OSSL_PARAM_get_utf8_string(p, &utf, 0))
+ || !TEST_str_eq(utf, "foo")
++ /* Check NULL octet string */
++ || !TEST_ptr(p = OSSL_PARAM_locate(params, "octet_s"))
++ || !TEST_ptr_null(p->data)
+ /* Check UTF8 pointer */
+ || !TEST_ptr(p = OSSL_PARAM_locate(params, "utf8_p"))
+ || !TEST_true(OSSL_PARAM_get_utf8_ptr(p, &cutf))
+ || !TEST_str_eq(cutf, "bar-boom")
++ /* Check NULL octet ptr */
++ || !TEST_ptr(p = OSSL_PARAM_locate(params, "octet_p"))
++ || !TEST_ptr_null(p->data)
+ /* Check BN (zero BN becomes unsigned integer) */
+ || !TEST_ptr(p = OSSL_PARAM_locate(params, "zeronumber"))
+ || !TEST_str_eq(p->key, "zeronumber")
+
+From 26776ce371bb338b98a52cf80c145aee4fb97ff3 Mon Sep 17 00:00:00 2001
+From: Tomas Mraz
+Date: Thu, 9 Apr 2026 11:02:30 +0200
+Subject: [PATCH 2/2] fixup! OSSL_PARAM_BLD_push_octet_*(): Allow NULL buffer
+ with 0 bsize
+
+---
+ test/param_build_test.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/test/param_build_test.c b/test/param_build_test.c
+index afd1563aa74e3..bac0afcb34410 100644
+--- a/test/param_build_test.c
++++ b/test/param_build_test.c
+@@ -195,14 +195,14 @@ static int template_public_test(int tstid)
+ || !TEST_str_eq(utf, "foo")
+ /* Check NULL octet string */
+ || !TEST_ptr(p = OSSL_PARAM_locate(params, "octet_s"))
+- || !TEST_ptr_null(p->data)
++ || !TEST_size_t_eq(p->data_size, 0)
+ /* Check UTF8 pointer */
+ || !TEST_ptr(p = OSSL_PARAM_locate(params, "utf8_p"))
+ || !TEST_true(OSSL_PARAM_get_utf8_ptr(p, &cutf))
+ || !TEST_str_eq(cutf, "bar-boom")
+ /* Check NULL octet ptr */
+ || !TEST_ptr(p = OSSL_PARAM_locate(params, "octet_p"))
+- || !TEST_ptr_null(p->data)
++ || !TEST_size_t_eq(p->data_size, 0)
+ /* Check BN (zero BN becomes unsigned integer) */
+ || !TEST_ptr(p = OSSL_PARAM_locate(params, "zeronumber"))
+ || !TEST_str_eq(p->key, "zeronumber")
diff --git a/deps/openssl/version.bzl b/deps/openssl/version.bzl
index c78a3badd7d5..b5821d3abdfa 100644
--- a/deps/openssl/version.bzl
+++ b/deps/openssl/version.bzl
@@ -1 +1 @@
-OPENSSL_VERSION = "3.5.5"
+OPENSSL_VERSION = "3.5.6"
diff --git a/deps/repos.MODULE.bazel b/deps/repos.MODULE.bazel
index c3b095a7b8d7..57d43fad5183 100644
--- a/deps/repos.MODULE.bazel
+++ b/deps/repos.MODULE.bazel
@@ -113,12 +113,13 @@ http_archive(
patch_strip = 1,
patches = [
"//deps/openssl:0001-Set-the-install-name-to-use-rpath-instead-of-absolut.patch",
+ "//deps/openssl:0002-OSSL_PARAM_BLD_push_octet_allow_NULL_buffer.patch",
],
- sha256 = "b28c91532a8b65a1f983b4c28b7488174e4a01008e29ce8e69bd789f28bc2a89",
- strip_prefix = "openssl-3.5.5",
+ sha256 = "deae7c80cba99c4b4f940ecadb3c3338b13cb77418409238e57d7f31f2a3b736",
+ strip_prefix = "openssl-3.5.6",
urls = [
- "https://dd-agent-omnibus.s3.amazonaws.com/bazel/openssl-3.5.5.tar.gz",
- "https://www.openssl.org/source/openssl-3.5.5.tar.gz",
+ "https://dd-agent-omnibus.s3.amazonaws.com/bazel/openssl-3.5.6.tar.gz",
+ "https://www.openssl.org/source/openssl-3.5.6.tar.gz",
],
)
diff --git a/go.mod b/go.mod
index eadc94f19a00..10c708649ea3 100644
--- a/go.mod
+++ b/go.mod
@@ -183,7 +183,7 @@ require (
github.com/Masterminds/sprig/v3 v3.3.0
github.com/Microsoft/go-winio v0.6.2
github.com/Microsoft/hcsshim v0.13.0
- github.com/NVIDIA/go-nvml v0.12.9-0
+ github.com/NVIDIA/go-nvml v0.13.0-1.0.20260414000254-c617db04ef8e
github.com/ProtonMail/go-crypto v1.3.0
github.com/acobaugh/osrelease v0.1.0
github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b
@@ -471,7 +471,7 @@ require (
github.com/Code-Hex/go-generics-cache v1.5.1 // indirect
github.com/DataDog/aptly v1.5.3 // indirect
github.com/DataDog/datadog-agent/comp/core/agenttelemetry/impl v0.0.0 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/impl v0.70.0 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/impl v0.70.0
github.com/DataDog/datadog-agent/comp/core/secrets/utils v0.72.0-devel
github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
@@ -967,7 +967,6 @@ require (
github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor v0.59.0
github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000
- github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/logs/processor v0.64.0-rc.3
github.com/DataDog/datadog-agent/pkg/process/util/api v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/pkg/serializer v0.77.0-devel.0.20260213154712-e02b9359151a
@@ -977,7 +976,7 @@ require (
github.com/DataDog/datadog-agent/pkg/trace/traceutil v0.77.0-devel.0.20260213154712-e02b9359151a
github.com/DataDog/datadog-agent/pkg/util/kubernetes/apiserver/common/namespace v0.77.0-devel.0.20260211235139-a5361978c2b6
github.com/DataDog/ddtrivy v0.0.0-20260115083325-07614fb0b8d5
- github.com/DataDog/rshell v0.0.9
+ github.com/DataDog/rshell v0.0.10
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.41.0
github.com/aws/aws-sdk-go-v2/service/ssm v1.64.4
github.com/aymerick/raymond v2.0.2+incompatible
@@ -1365,7 +1364,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ./pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ./pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ./pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ./pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ./pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ./pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ./pkg/logs/sources
diff --git a/go.sum b/go.sum
index 78eeef79566c..2009d1b7eaeb 100644
--- a/go.sum
+++ b/go.sum
@@ -238,8 +238,8 @@ github.com/DataDog/opentelemetry-collector-contrib/extension/datadogextension v0
github.com/DataDog/opentelemetry-collector-contrib/extension/datadogextension v0.147.1-0.20260319095942-6b90e15b61ca/go.mod h1:X2RsZAzB4956LB2UFWcz6GG9MF3X/paAZtIEnzmkL4c=
github.com/DataDog/opentelemetry-ebpf-profiler v0.0.0-20260317195537-817b91eb7dd4 h1:9+K8vjF7sQSLjVJporNyv6nw46cMg/Q8ogxbBZmrf+A=
github.com/DataDog/opentelemetry-ebpf-profiler v0.0.0-20260317195537-817b91eb7dd4/go.mod h1:KEBv+q78RzBcDPNFm1WB0V0za14gY95E/Atp3dJZ/8M=
-github.com/DataDog/rshell v0.0.9 h1:HS38O5aVK43ctHkTFm5RGTZA1JCP5oDxcD5O97NnoSc=
-github.com/DataDog/rshell v0.0.9/go.mod h1:e6IP68xHScumYqM/9dT9y5H41EmStHDVEyCZKv5mEt4=
+github.com/DataDog/rshell v0.0.10 h1:1jFuWzxxBNCv4tec1Rn1yZJrj9p3ZK7sRZEaHdxUk0Q=
+github.com/DataDog/rshell v0.0.10/go.mod h1:e6IP68xHScumYqM/9dT9y5H41EmStHDVEyCZKv5mEt4=
github.com/DataDog/sketches-go v1.4.8 h1:pFk9BNn+Rzv8IMIoPUttoOpOr3bJOqU3P6EP5wK+Lv8=
github.com/DataDog/sketches-go v1.4.8/go.mod h1:a/wjRUqzqtGS8qRHRPDCs4EAQfmvPDZGDlMIF5mxXOE=
github.com/DataDog/trivy v0.0.0-20260407220859-6cf8ddc1826c h1:oiwmRrkRVblZBI3SFVEnrwxkQ28W7nmwwI/VHgex0ZU=
@@ -286,8 +286,8 @@ github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERo
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/Microsoft/hcsshim v0.13.0 h1:/BcXOiS6Qi7N9XqUcv27vkIuVOkBEcWstd2pMlWSeaA=
github.com/Microsoft/hcsshim v0.13.0/go.mod h1:9KWJ/8DgU+QzYGupX4tzMhRQE8h6w90lH6HAaclpEok=
-github.com/NVIDIA/go-nvml v0.12.9-0 h1:e344UK8ZkeMeeLkdQtRhmXRxNf+u532LDZPGMtkdus0=
-github.com/NVIDIA/go-nvml v0.12.9-0/go.mod h1:+KNA7c7gIBH7SKSJ1ntlwkfN80zdx8ovl4hrK3LmPt4=
+github.com/NVIDIA/go-nvml v0.13.0-1.0.20260414000254-c617db04ef8e h1:sjzPY7aEDyVlahN7HBVKBdfNKXypJHND424iuUW0HGs=
+github.com/NVIDIA/go-nvml v0.13.0-1.0.20260414000254-c617db04ef8e/go.mod h1:ahi2psRYoa+wYUBIrZPRO+wJs9lcvMhxSSkjjvsJJNQ=
github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I=
github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c=
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw=
diff --git a/go.work b/go.work
index 063d5bb9f2e8..55c6e9887dfc 100644
--- a/go.work
+++ b/go.work
@@ -111,7 +111,6 @@ use (
pkg/logs/diagnostic
pkg/logs/message
pkg/logs/metrics
- pkg/logs/pipeline
pkg/logs/processor
pkg/logs/sender
pkg/logs/sources
diff --git a/modules.yml b/modules.yml
index d36ef53d949a..53332d441480 100644
--- a/modules.yml
+++ b/modules.yml
@@ -224,8 +224,6 @@ modules:
used_by_otel: true
pkg/logs/metrics:
used_by_otel: true
- pkg/logs/pipeline:
- used_by_otel: true
pkg/logs/processor:
used_by_otel: true
pkg/logs/sender:
diff --git a/omnibus/config/software/openssl3.rb b/omnibus/config/software/openssl3.rb
index 0945461873d1..aada37d04375 100644
--- a/omnibus/config/software/openssl3.rb
+++ b/omnibus/config/software/openssl3.rb
@@ -18,7 +18,7 @@
skip_transitive_dependency_licensing true
-default_version "3.5.5"
+default_version "3.5.6"
relative_path "openssl-#{version}"
diff --git a/omnibus/config/software/python3.rb b/omnibus/config/software/python3.rb
index 7316219350bd..9b2e16a9c5ca 100644
--- a/omnibus/config/software/python3.rb
+++ b/omnibus/config/software/python3.rb
@@ -34,8 +34,9 @@
sh_ext = if linux_target? then "so" else "dylib" end
command_on_repo_root "bazelisk run --//:install_dir=#{install_dir} -- //bazel/rules:replace_prefix --prefix '#{install_dir}/embedded'" \
" #{install_dir}/embedded/lib/libpython3.*#{sh_ext}" \
- " #{install_dir}/embedded/lib/python3.13/lib-dynload/*.so" \
- " #{install_dir}/embedded/bin/python3*"
+ " #{install_dir}/embedded/lib/python3.*/lib-dynload/*.so" \
+ " #{install_dir}/embedded/bin/python3*" \
+ " #{install_dir}/embedded/lib/python3.*/_sysconfigdata__*.py"
python = "#{install_dir}/embedded/bin/python3"
else
command_on_repo_root "bazelisk run #{flavor_flag} --//:install_dir=#{install_dir} -- @cpython//:install --destdir=#{install_dir}"
diff --git a/pkg/aggregator/ckey/go.mod b/pkg/aggregator/ckey/go.mod
index eb5ed37158ef..47102596ec15 100644
--- a/pkg/aggregator/ckey/go.mod
+++ b/pkg/aggregator/ckey/go.mod
@@ -115,7 +115,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/api/go.mod b/pkg/api/go.mod
index 36ee58a2e700..9ae816780a6a 100644
--- a/pkg/api/go.mod
+++ b/pkg/api/go.mod
@@ -19,7 +19,7 @@ require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -171,7 +171,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/collector/check/defaults/go.mod b/pkg/collector/check/defaults/go.mod
index 5570fdbf7fdb..dc42d37383b4 100644
--- a/pkg/collector/check/defaults/go.mod
+++ b/pkg/collector/check/defaults/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/collector/python/containers.go b/pkg/collector/python/containers.go
index 68b097c45f05..acb518756b1c 100644
--- a/pkg/collector/python/containers.go
+++ b/pkg/collector/python/containers.go
@@ -14,7 +14,8 @@ import (
/*
#include
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#cgo windows LDFLAGS: -ldatadog-agent-rtloader -lstdc++ -static
*/
import "C"
diff --git a/pkg/collector/python/datadog_agent.go b/pkg/collector/python/datadog_agent.go
index 95ea79bc00de..82a0b4aee756 100644
--- a/pkg/collector/python/datadog_agent.go
+++ b/pkg/collector/python/datadog_agent.go
@@ -31,7 +31,8 @@ import (
)
/*
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#cgo windows LDFLAGS: -ldatadog-agent-rtloader -lstdc++ -static
#include "datadog_agent_rtloader.h"
diff --git a/pkg/collector/python/init.go b/pkg/collector/python/init.go
index 3742a54d9184..583aace4b8dd 100644
--- a/pkg/collector/python/init.go
+++ b/pkg/collector/python/init.go
@@ -34,7 +34,10 @@ import (
)
/*
-#cgo !windows LDFLAGS: -L${SRCDIR}/../../../rtloader/build/rtloader -ldatadog-agent-rtloader -ldl
+// On AIX, Go's CGO requires shared libraries to be wrapped in .a archives.
+// libdatadog-agent-rtloader.a is built from the .so file using "ar -X64 -r".
+#cgo aix LDFLAGS: -L${SRCDIR}/../../../rtloader/build/rtloader -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -L${SRCDIR}/../../../rtloader/build/rtloader -ldatadog-agent-rtloader -ldl
#cgo windows LDFLAGS: -L${SRCDIR}/../../../rtloader/build/rtloader -ldatadog-agent-rtloader -lstdc++ -static
#cgo CFLAGS: -I "${SRCDIR}/../../../rtloader/include" -I "${SRCDIR}/../../../rtloader/common"
diff --git a/pkg/collector/python/init_nix.go b/pkg/collector/python/init_nix.go
index c9170fceb9ff..d3fda27b51ec 100644
--- a/pkg/collector/python/init_nix.go
+++ b/pkg/collector/python/init_nix.go
@@ -16,7 +16,8 @@ import (
)
/*
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#include
#include
diff --git a/pkg/collector/python/kubeutil.go b/pkg/collector/python/kubeutil.go
index f3d81277ce53..6f47cb712140 100644
--- a/pkg/collector/python/kubeutil.go
+++ b/pkg/collector/python/kubeutil.go
@@ -20,7 +20,8 @@ import (
/*
#include
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#cgo windows LDFLAGS: -ldatadog-agent-rtloader -lstdc++ -static
*/
import "C"
diff --git a/pkg/collector/python/memory.go b/pkg/collector/python/memory.go
index 8f95ad1d5f9f..2fe133c8c6bf 100644
--- a/pkg/collector/python/memory.go
+++ b/pkg/collector/python/memory.go
@@ -18,7 +18,8 @@ import (
)
/*
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#cgo windows LDFLAGS: -ldatadog-agent-rtloader -lstdc++ -static
#if defined(__linux__) || defined(_WIN32)
diff --git a/pkg/collector/python/no_kubeutil.go b/pkg/collector/python/no_kubeutil.go
index 66432f8be25c..475c7ee9f68a 100644
--- a/pkg/collector/python/no_kubeutil.go
+++ b/pkg/collector/python/no_kubeutil.go
@@ -9,7 +9,8 @@ package python
/*
#include
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#cgo windows LDFLAGS: -ldatadog-agent-rtloader -lstdc++ -static
*/
import "C"
diff --git a/pkg/collector/python/python_aix.go b/pkg/collector/python/python_aix.go
new file mode 100644
index 000000000000..204bdb5a89cc
--- /dev/null
+++ b/pkg/collector/python/python_aix.go
@@ -0,0 +1,73 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2016-present Datadog, Inc.
+
+//go:build aix && python
+
+package python
+
+// Force libpython.so into the agent binary's XCOFF startup-load chain.
+//
+// Background
+// ----------
+// Python C extension modules (lib-dynload/_decimal.so, etc.) carry Python API
+// symbols (PyArg_ParseTuple, PyBool_FromLong, …) with no explicit library
+// dependency in their XCOFF loader section (IMPid = "."). On AIX, such
+// unresolved symbols are looked up in the process-global symbol table, which
+// is populated only by libraries that appear in the XCOFF startup-load chain
+// (i.e. in the XCOFF loader section of the main executable or its startup-
+// linked dependencies).
+//
+// Without this file, libpython.so is loaded only via dlopen, transitively
+// through libdatadog-agent-three.so when rtloader initialises Python. A
+// dlopen-loaded library does NOT add its symbols to the global symbol table.
+// As a result every Python C extension fails with:
+//
+// ImportError: Symbol PyXxx is not exported from dependent module agent.
+//
+// Fix
+// ---
+// The init() function below calls C.Py_IsInitialized() once at process startup.
+// Go's CGO layer sees this Go→C call and emits a //go:cgo_import_dynamic
+// directive that places libpython.a(shr_64.o) in the agent binary's XCOFF
+// loader section. Consequently libpython.so is loaded at process startup,
+// before any Python C extension module is imported, and all Python API
+// symbols enter the global symbol table where the extension modules can find them.
+//
+// Note: a C-internal reference (static void* holding &Py_IsInitialized) is NOT
+// sufficient — Go's linker only generates XCOFF import entries for symbols that
+// are called from the Go side through CGO. A direct Go→C call is required.
+//
+// Py_IsInitialized() returns 0 when called here (Python not yet started) and
+// has no side effects — it is a safe, idempotent read of an internal flag.
+//
+// Part 2 — Exporting Python API symbols from the agent binary
+// The -bE:python.exp flag (passed via CGO_LDFLAGS at build time, NOT via
+// #cgo LDFLAGS which would be rejected by Go's CGO security filter) causes the
+// linker to add all Python API symbols to the agent binary's own EXP
+// (export) table. Extension modules have Python API symbols with IMPid="."
+// in their XCOFF, meaning "find in the main program's EXP table". Without
+// -bE, those symbols are not exported from the agent and every extension fails:
+//
+// ImportError: Symbol PyXxx is not exported from dependent module agent.
+//
+// With -bE:python.exp, the agent exports the symbols and extensions load cleanly.
+
+/*
+#cgo LDFLAGS: -L${SRCDIR}/../../../embedded/lib -lpython3
+
+// Forward declaration — we do not include Python.h to avoid pulling in
+// the entire CPython header tree; Py_IsInitialized has a stable ABI.
+extern int Py_IsInitialized(void);
+*/
+import "C"
+
+func init() {
+ // Call Py_IsInitialized() to create a live Go→C reference. This forces
+ // the CGO linker to emit a //go:cgo_import_dynamic for Py_IsInitialized,
+ // placing libpython.a(shr_64.o) in the XCOFF startup-load chain.
+ // Python is not yet started here so the call always returns 0; we discard
+ // the result. There are no side effects.
+ _ = C.Py_IsInitialized()
+}
diff --git a/pkg/collector/python/tagger.go b/pkg/collector/python/tagger.go
index 92354171fdac..9a074aed6fee 100644
--- a/pkg/collector/python/tagger.go
+++ b/pkg/collector/python/tagger.go
@@ -16,7 +16,8 @@ import (
)
/*
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#cgo windows LDFLAGS: -ldatadog-agent-rtloader -lstdc++ -static
#include "datadog_agent_rtloader.h"
diff --git a/pkg/collector/python/util.go b/pkg/collector/python/util.go
index 14be3f6d065c..9a27c0f405c0 100644
--- a/pkg/collector/python/util.go
+++ b/pkg/collector/python/util.go
@@ -9,7 +9,8 @@ package python
/*
#include
-#cgo !windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo !aix,!windows LDFLAGS: -ldatadog-agent-rtloader -ldl
+#cgo aix LDFLAGS: -ldl
#cgo windows LDFLAGS: -ldatadog-agent-rtloader -lstdc++ -static
*/
import "C"
diff --git a/pkg/compliance/reporter.go b/pkg/compliance/reporter.go
index d2be07f5523e..2a061663f975 100644
--- a/pkg/compliance/reporter.go
+++ b/pkg/compliance/reporter.go
@@ -11,6 +11,7 @@ import (
"time"
secrets "github.com/DataDog/datadog-agent/comp/core/secrets/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
logscompression "github.com/DataDog/datadog-agent/comp/serializer/logscompression/def"
pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup"
@@ -18,7 +19,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/logs/client"
"github.com/DataDog/datadog-agent/pkg/logs/diagnostic"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sender"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/security/common"
diff --git a/pkg/config/basic/go.mod b/pkg/config/basic/go.mod
index 561a9146fd45..242fd1cfe8a8 100644
--- a/pkg/config/basic/go.mod
+++ b/pkg/config/basic/go.mod
@@ -113,7 +113,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/buildschema/go.mod b/pkg/config/buildschema/go.mod
index 53105bffae64..ca38c8484469 100644
--- a/pkg/config/buildschema/go.mod
+++ b/pkg/config/buildschema/go.mod
@@ -103,7 +103,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/config_template.yaml b/pkg/config/config_template.yaml
index 6785da2c4697..f238682479fb 100644
--- a/pkg/config/config_template.yaml
+++ b/pkg/config/config_template.yaml
@@ -4951,6 +4951,14 @@ api_key:
# - com.datadoghq.script.runPredefinedPowershellScript # on Windows
# - com.datadoghq.script.runPredefinedScript # on Linux and Darwin
+# # @param default_actions_enabled - boolean - optional - default: true
+# # @env DD_PRIVATE_ACTION_RUNNER_DEFAULT_ACTIONS_ENABLED - boolean - optional - default: true
+# # When true, a set of default actions are automatically
+# # allowed without needing to be listed in actions_allowlist.
+# # Set to false to disable these default actions.
+#
+# default_actions_enabled: true
+
# # @param http_timeout_seconds - integer - optional - default: 30
# # @env DD_PRIVATE_ACTION_RUNNER_HTTP_TIMEOUT_SECONDS - integer - optional - default: 30
# # Maximum time in seconds for HTTP actions before timing out. Must be > 1.
diff --git a/pkg/config/create/go.mod b/pkg/config/create/go.mod
index 1b1bbf000ff2..ecbcbd975766 100644
--- a/pkg/config/create/go.mod
+++ b/pkg/config/create/go.mod
@@ -137,7 +137,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/env/go.mod b/pkg/config/env/go.mod
index d6e9d2a8e16a..f12f15e537e8 100644
--- a/pkg/config/env/go.mod
+++ b/pkg/config/env/go.mod
@@ -140,7 +140,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/helper/go.mod b/pkg/config/helper/go.mod
index 81528c63ca0b..340a23f0410f 100644
--- a/pkg/config/helper/go.mod
+++ b/pkg/config/helper/go.mod
@@ -133,7 +133,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/mock/go.mod b/pkg/config/mock/go.mod
index 9566c5f5c2b7..ea367987858d 100644
--- a/pkg/config/mock/go.mod
+++ b/pkg/config/mock/go.mod
@@ -13,7 +13,7 @@ require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -165,7 +165,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/model/go.mod b/pkg/config/model/go.mod
index e058c9c4b6b4..9d572d0d494c 100644
--- a/pkg/config/model/go.mod
+++ b/pkg/config/model/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/nodetreemodel/go.mod b/pkg/config/nodetreemodel/go.mod
index e8ff02d5c65c..fc3432af5e7a 100644
--- a/pkg/config/nodetreemodel/go.mod
+++ b/pkg/config/nodetreemodel/go.mod
@@ -137,7 +137,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/remote/go.mod b/pkg/config/remote/go.mod
index 16a21531a1bb..850fe6e6ca7b 100644
--- a/pkg/config/remote/go.mod
+++ b/pkg/config/remote/go.mod
@@ -37,6 +37,7 @@ require (
github.com/DataDog/datadog-agent/pkg/telemetry v0.72.0-rc.5 // indirect
github.com/DataDog/datadog-agent/pkg/template v0.65.1 // indirect
github.com/DataDog/datadog-agent/pkg/util/fxutil v0.73.0-rc.5 // indirect
+ github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
@@ -83,7 +84,6 @@ require (
github.com/DataDog/datadog-agent/pkg/util/winutil v0.72.0-rc.5 // indirect
github.com/DataDog/datadog-agent/pkg/version v0.72.2
github.com/DataDog/viper v1.15.1 // indirect
- github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/ebitengine/purego v0.10.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
@@ -232,7 +232,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/remote/meta/meta.go b/pkg/config/remote/meta/meta.go
index 115656283911..e7a06a36faba 100644
--- a/pkg/config/remote/meta/meta.go
+++ b/pkg/config/remote/meta/meta.go
@@ -51,11 +51,6 @@ func NewEmbeddedRoot(embeddedRoot []byte) EmbeddedRoot {
}
}
-func isGovSite(site string) bool {
- return site == "ddog-gov.com" || site == "ddog-gov.mil" ||
- strings.HasSuffix(site, ".ddog-gov.com") || strings.HasSuffix(site, ".ddog-gov.mil")
-}
-
// RootsDirector returns all the roots of the director repo
func RootsDirector(site string, directorRootOverride string) EmbeddedRoot {
if directorRootOverride != "" {
@@ -64,7 +59,7 @@ func RootsDirector(site string, directorRootOverride string) EmbeddedRoot {
if site == "datad0g.com" {
return NewEmbeddedRoot(stagingRootDirector)
- } else if isGovSite(site) {
+ } else if site == "ddog-gov.com" || strings.HasSuffix(site, ".ddog-gov.com") {
return NewEmbeddedRoot(govRootDirector)
}
return NewEmbeddedRoot(prodRootDirector)
@@ -79,7 +74,7 @@ func RootsConfig(site string, configRootOverride string) EmbeddedRoot {
if site == "datad0g.com" {
return NewEmbeddedRoot(stagingRootConfig)
- } else if isGovSite(site) {
+ } else if site == "ddog-gov.com" || strings.HasSuffix(site, ".ddog-gov.com") {
return NewEmbeddedRoot(govRootConfig)
}
return NewEmbeddedRoot(prodRootConfig)
diff --git a/pkg/config/remote/meta/meta_test.go b/pkg/config/remote/meta/meta_test.go
index f39dac3c3aca..910846d1747e 100644
--- a/pkg/config/remote/meta/meta_test.go
+++ b/pkg/config/remote/meta/meta_test.go
@@ -47,75 +47,6 @@ func TestParseGovTUFVersion(t *testing.T) {
require.Greater(t, v, uint64(0))
}
-func TestIsGovSite(t *testing.T) {
- tests := []struct {
- site string
- expected bool
- }{
- {"ddog-gov.com", true},
- {"ddog-gov.mil", true},
- {"foo.ddog-gov.com", true},
- {"foo.ddog-gov.mil", true},
- {"sub.foo.ddog-gov.com", true},
- {"sub.foo.ddog-gov.mil", true},
- {"datadoghq.com", false},
- {"datad0g.com", false},
- {"", false},
- {"ddog-gov.org", false},
- }
- for _, tc := range tests {
- t.Run(tc.site, func(t *testing.T) {
- require.Equal(t, tc.expected, isGovSite(tc.site))
- })
- }
-}
-
-func TestRootsDirectorSiteRouting(t *testing.T) {
- tests := []struct {
- name string
- site string
- expectedRoot []byte
- }{
- {"prod default", "datadoghq.com", prodRootDirector},
- {"prod eu", "datadoghq.eu", prodRootDirector},
- {"prod empty", "", prodRootDirector},
- {"staging", "datad0g.com", stagingRootDirector},
- {"gov com", "ddog-gov.com", govRootDirector},
- {"gov mil", "ddog-gov.mil", govRootDirector},
- {"gov subdomain com", "foo.ddog-gov.com", govRootDirector},
- {"gov subdomain mil", "foo.ddog-gov.mil", govRootDirector},
- }
- for _, tc := range tests {
- t.Run(tc.name, func(t *testing.T) {
- root := RootsDirector(tc.site, "")
- require.Equal(t, tc.expectedRoot, root.Root())
- })
- }
-}
-
-func TestRootsConfigSiteRouting(t *testing.T) {
- tests := []struct {
- name string
- site string
- expectedRoot []byte
- }{
- {"prod default", "datadoghq.com", prodRootConfig},
- {"prod eu", "datadoghq.eu", prodRootConfig},
- {"prod empty", "", prodRootConfig},
- {"staging", "datad0g.com", stagingRootConfig},
- {"gov com", "ddog-gov.com", govRootConfig},
- {"gov mil", "ddog-gov.mil", govRootConfig},
- {"gov subdomain com", "foo.ddog-gov.com", govRootConfig},
- {"gov subdomain mil", "foo.ddog-gov.mil", govRootConfig},
- }
- for _, tc := range tests {
- t.Run(tc.name, func(t *testing.T) {
- root := RootsConfig(tc.site, "")
- require.Equal(t, tc.expectedRoot, root.Root())
- })
- }
-}
-
// The director root metadata must always be version 1. As part of the
// RC protocol, the RC core services sends the Director TUF root to agent
// and tracer clients. It will try to send to those clients all root files
diff --git a/pkg/config/render_config/go.mod b/pkg/config/render_config/go.mod
index 3dd5d182aac3..1141b6a47df9 100644
--- a/pkg/config/render_config/go.mod
+++ b/pkg/config/render_config/go.mod
@@ -112,7 +112,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/settings/runtime_profiling_test.go b/pkg/config/settings/runtime_profiling_test.go
new file mode 100644
index 000000000000..5b35d3b30059
--- /dev/null
+++ b/pkg/config/settings/runtime_profiling_test.go
@@ -0,0 +1,127 @@
+// Unless explicitly stated otherwise all files in this repository are licensed
+// under the Apache License Version 2.0.
+// This product includes software developed at Datadog (https://www.datadoghq.com/).
+// Copyright 2016-present Datadog, Inc.
+
+package settings
+
+import (
+ "errors"
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+
+ compsettings "github.com/DataDog/datadog-agent/comp/core/settings"
+)
+
+// mockClient is a test double for the Client interface.
+type mockClient struct {
+ data map[string]interface{}
+ getCalls []string
+ setCalls []struct{ key, value string }
+ getErr error
+ setErr error
+}
+
+func (m *mockClient) Get(key string) (interface{}, error) {
+ m.getCalls = append(m.getCalls, key)
+ if m.getErr != nil {
+ return nil, m.getErr
+ }
+ return m.data[key], nil
+}
+
+func (m *mockClient) Set(key, value string) (bool, error) {
+ m.setCalls = append(m.setCalls, struct{ key, value string }{key, value})
+ if m.setErr != nil {
+ return false, m.setErr
+ }
+ return true, nil
+}
+
+func (m *mockClient) GetWithSources(_ string) (map[string]interface{}, error) {
+ return nil, nil
+}
+
+func (m *mockClient) List() (map[string]compsettings.RuntimeSettingResponse, error) {
+ return nil, nil
+}
+
+func (m *mockClient) FullConfig() (string, error) { return "", nil }
+func (m *mockClient) FullConfigWithoutDefaults() (string, error) { return "", nil }
+func (m *mockClient) FullConfigBySource() (string, error) { return "", nil }
+
+func TestExecWithRuntimeProfilingSettings(t *testing.T) {
+ t.Run("no profiling options", func(t *testing.T) {
+ client := &mockClient{data: map[string]interface{}{}}
+ called := false
+ err := ExecWithRuntimeProfilingSettings(func() { called = true }, ProfilingOpts{}, client)
+ require.NoError(t, err)
+ assert.True(t, called)
+ assert.Empty(t, client.getCalls)
+ assert.Empty(t, client.setCalls)
+ })
+
+ t.Run("mutex profiling with zero fraction is a no-op", func(t *testing.T) {
+ client := &mockClient{data: map[string]interface{}{}}
+ err := ExecWithRuntimeProfilingSettings(func() {}, ProfilingOpts{ProfileMutex: true, ProfileMutexFraction: 0}, client)
+ require.NoError(t, err)
+ assert.Empty(t, client.getCalls)
+ assert.Empty(t, client.setCalls)
+ })
+
+ t.Run("blocking profiling with zero rate is a no-op", func(t *testing.T) {
+ client := &mockClient{data: map[string]interface{}{}}
+ err := ExecWithRuntimeProfilingSettings(func() {}, ProfilingOpts{ProfileBlocking: true, ProfileBlockingRate: 0}, client)
+ require.NoError(t, err)
+ assert.Empty(t, client.getCalls)
+ assert.Empty(t, client.setCalls)
+ })
+
+ t.Run("mutex profiling sets and restores", func(t *testing.T) {
+ client := &mockClient{data: map[string]interface{}{"runtime_mutex_profile_fraction": "0"}}
+ called := false
+ err := ExecWithRuntimeProfilingSettings(func() { called = true }, ProfilingOpts{ProfileMutex: true, ProfileMutexFraction: 5}, client)
+ require.NoError(t, err)
+ assert.True(t, called)
+ assert.Equal(t, []string{"runtime_mutex_profile_fraction"}, client.getCalls)
+ require.Len(t, client.setCalls, 2)
+ assert.Equal(t, "runtime_mutex_profile_fraction", client.setCalls[0].key)
+ assert.Equal(t, "5", client.setCalls[0].value)
+ // deferred reset restores the original value
+ assert.Equal(t, "runtime_mutex_profile_fraction", client.setCalls[1].key)
+ assert.Equal(t, "0", client.setCalls[1].value)
+ })
+
+ t.Run("blocking profiling sets and restores", func(t *testing.T) {
+ client := &mockClient{data: map[string]interface{}{"runtime_block_profile_rate": "0"}}
+ called := false
+ err := ExecWithRuntimeProfilingSettings(func() { called = true }, ProfilingOpts{ProfileBlocking: true, ProfileBlockingRate: 10}, client)
+ require.NoError(t, err)
+ assert.True(t, called)
+ assert.Equal(t, []string{"runtime_block_profile_rate"}, client.getCalls)
+ require.Len(t, client.setCalls, 2)
+ assert.Equal(t, "runtime_block_profile_rate", client.setCalls[0].key)
+ assert.Equal(t, "10", client.setCalls[0].value)
+ assert.Equal(t, "runtime_block_profile_rate", client.setCalls[1].key)
+ assert.Equal(t, "0", client.setCalls[1].value)
+ })
+
+ t.Run("get error is returned", func(t *testing.T) {
+ client := &mockClient{getErr: errors.New("connection refused")}
+ err := ExecWithRuntimeProfilingSettings(func() {}, ProfilingOpts{ProfileMutex: true, ProfileMutexFraction: 5}, client)
+ require.Error(t, err)
+ assert.Contains(t, err.Error(), "failed to get current value")
+ })
+
+ t.Run("set error is returned", func(t *testing.T) {
+ client := &mockClient{
+ data: map[string]interface{}{"runtime_mutex_profile_fraction": "0"},
+ setErr: errors.New("server error"),
+ }
+ err := ExecWithRuntimeProfilingSettings(func() {}, ProfilingOpts{ProfileMutex: true, ProfileMutexFraction: 5}, client)
+ require.Error(t, err)
+ assert.Contains(t, err.Error(), "failed to set")
+ })
+}
diff --git a/pkg/config/settings/runtime_settings_test.go b/pkg/config/settings/runtime_settings_test.go
index cfcaa3440c50..152029c69ac0 100644
--- a/pkg/config/settings/runtime_settings_test.go
+++ b/pkg/config/settings/runtime_settings_test.go
@@ -11,11 +11,37 @@ import (
"github.com/stretchr/testify/assert"
)
+func TestGetBool(t *testing.T) {
+ cases := []struct {
+ value interface{}
+ expected bool
+ expectedError bool
+ }{
+ {true, true, false},
+ {false, false, false},
+ {"true", true, false},
+ {"false", false, false},
+ {"invalid", false, true},
+ {1, false, true},
+ {nil, false, true},
+ }
+
+ for _, c := range cases {
+ v, err := GetBool(c.value)
+ if c.expectedError {
+ assert.NotNil(t, err)
+ } else {
+ assert.NoError(t, err)
+ assert.Equal(t, c.expected, v)
+ }
+ }
+}
+
func TestGetInt(t *testing.T) {
cases := []struct {
- v interface{}
- exp int
- err bool
+ value interface{}
+ expected int
+ expectedError bool
}{
{0, 0, false},
{1, 1, false},
@@ -32,12 +58,12 @@ func TestGetInt(t *testing.T) {
}
for _, c := range cases {
- v, err := GetInt(c.v)
- if c.err {
+ v, err := GetInt(c.value)
+ if c.expectedError {
assert.NotNil(t, err)
} else {
assert.NoError(t, err)
- assert.Equal(t, v, c.exp)
+ assert.Equal(t, v, c.expected)
}
}
}
diff --git a/pkg/config/setup/config.go b/pkg/config/setup/config.go
index 30895ed762da..08b0c91506a3 100644
--- a/pkg/config/setup/config.go
+++ b/pkg/config/setup/config.go
@@ -974,6 +974,19 @@ func setupFipsLogsConfig(config pkgconfigmodel.Config, configPrefix string, url
config.Set(configPrefix+"logs_dd_url", url, pkgconfigmodel.SourceAgentRuntime)
}
+// ResolveSecrets merges all the secret values from origin into config. Secret values
+// are identified by a value of the form "ENC[key]" where key is the secret key.
+// See: https://github.com/DataDog/datadog-agent/blob/main/docs/agent/secrets.md
+//
+// It is the exported counterpart of resolveSecrets and may be called by agent
+// binaries that build the config before starting the FX graph (e.g. the otel-agent
+// in standalone mode, where secrets must be resolved so that ENC[] handles in env
+// vars such as DD_HOSTNAME are processed before components like hostnameimpl read
+// the config).
+func ResolveSecrets(config pkgconfigmodel.Config, secretResolver secrets.Component, origin string) error {
+ return resolveSecrets(config, secretResolver, origin)
+}
+
// resolveSecrets merges all the secret values from origin into config. Secret values
// are identified by a value of the form "ENC[key]" where key is the secret key.
// See: https://github.com/DataDog/datadog-agent/blob/main/docs/agent/secrets.md
diff --git a/pkg/config/setup/go.mod b/pkg/config/setup/go.mod
index 5b9db11b5bd4..0ce3eb7d3db5 100644
--- a/pkg/config/setup/go.mod
+++ b/pkg/config/setup/go.mod
@@ -7,7 +7,7 @@ replace github.com/spf13/cast => github.com/DataDog/cast v1.8.0
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1
github.com/DataDog/datadog-agent/comp/core/secrets/mock v0.70.0
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0
github.com/DataDog/datadog-agent/pkg/config/create v0.70.0
@@ -169,7 +169,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/setup/privateactionrunner.go b/pkg/config/setup/privateactionrunner.go
index 26472befeab8..24b817d25693 100644
--- a/pkg/config/setup/privateactionrunner.go
+++ b/pkg/config/setup/privateactionrunner.go
@@ -26,9 +26,10 @@ const (
PARUrn = "private_action_runner.urn"
// General config
- PARTaskConcurrency = "private_action_runner.task_concurrency"
- PARTaskTimeoutSeconds = "private_action_runner.task_timeout_seconds"
- PARActionsAllowlist = "private_action_runner.actions_allowlist"
+ PARTaskConcurrency = "private_action_runner.task_concurrency"
+ PARTaskTimeoutSeconds = "private_action_runner.task_timeout_seconds"
+ PARActionsAllowlist = "private_action_runner.actions_allowlist"
+ PARDefaultActionsEnabled = "private_action_runner.default_actions_enabled"
// HTTP Action related
PARHttpTimeoutSeconds = "private_action_runner.http_timeout_seconds"
@@ -70,6 +71,7 @@ func setupPrivateActionRunner(config pkgconfigmodel.Setup) {
config.BindEnvAndSetDefault(PARTaskConcurrency, 5)
config.BindEnvAndSetDefault(PARTaskTimeoutSeconds, 60)
config.BindEnvAndSetDefault(PARActionsAllowlist, []string{})
+ config.BindEnvAndSetDefault(PARDefaultActionsEnabled, true)
config.ParseEnvAsStringSlice(PARActionsAllowlist, func(s string) []string {
return strings.Split(s, ",")
})
diff --git a/pkg/config/structure/go.mod b/pkg/config/structure/go.mod
index 672d76bcb4c1..7dcd3e1cf07f 100644
--- a/pkg/config/structure/go.mod
+++ b/pkg/config/structure/go.mod
@@ -141,7 +141,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/teeconfig/go.mod b/pkg/config/teeconfig/go.mod
index 8ee6b7d5c0fe..410632f3cac0 100644
--- a/pkg/config/teeconfig/go.mod
+++ b/pkg/config/teeconfig/go.mod
@@ -119,7 +119,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/utils/endpoints.go b/pkg/config/utils/endpoints.go
index 49b312e203c1..38d472a2f1d5 100644
--- a/pkg/config/utils/endpoints.go
+++ b/pkg/config/utils/endpoints.go
@@ -200,7 +200,7 @@ func GetMultipleEndpoints(c pkgconfigmodel.Reader) (EndpointDescriptorSet, error
// ddDomainPattern matches known Datadog domains (e.g., datadoghq.com,
// datad0g.eu, ddog-gov.com). This is the shared building block for
// wellKnownSitesRe, ddSitePattern, ddSiteFromHostnameRe, and ddURLRegexp.
-const ddDomainPattern = `datad(?:oghq|0g)\.(?:com|eu)|ddog-gov\.(?:com|mil)`
+const ddDomainPattern = `datad(?:oghq|0g)\.(?:com|eu)|ddog-gov\.com`
var wellKnownSitesRe = regexp.MustCompile(`(?:` + ddDomainPattern + `)$`)
diff --git a/pkg/config/utils/endpoints_test.go b/pkg/config/utils/endpoints_test.go
index 75ae769d2f77..020562a2ec18 100644
--- a/pkg/config/utils/endpoints_test.go
+++ b/pkg/config/utils/endpoints_test.go
@@ -505,21 +505,11 @@ func TestAddAgentVersionToDomain(t *testing.T) {
".ddog-gov.com",
true,
},
- {
- "https://app.ddog-gov.mil",
- ".ddog-gov.mil",
- true,
- },
{ // Gov long-named
"https://app.xxxx99.ddog-gov.com",
".xxxx99.ddog-gov.com",
true,
},
- { // Gov long-named
- "https://app.xxxx99.ddog-gov.mil",
- ".xxxx99.ddog-gov.mil",
- true,
- },
{ // Additional site
"https://app.us2.datadoghq.com",
".us2.datadoghq.com",
diff --git a/pkg/config/utils/go.mod b/pkg/config/utils/go.mod
index b43e9badbcde..bb7ea010fd04 100644
--- a/pkg/config/utils/go.mod
+++ b/pkg/config/utils/go.mod
@@ -18,7 +18,7 @@ require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -167,7 +167,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/config/utils/miscellaneous.go b/pkg/config/utils/miscellaneous.go
index b3da82d0c4a1..0a3dcbab450a 100644
--- a/pkg/config/utils/miscellaneous.go
+++ b/pkg/config/utils/miscellaneous.go
@@ -70,16 +70,13 @@ func IsRemoteConfigEnabled(cfg pkgconfigmodel.Reader) bool {
return cfg.GetBool("remote_configuration.enabled")
}
-var (
- reFedSite = regexp.MustCompile(`(.+\.)?ddog-gov\.(com|mil)`)
- reFedURL = regexp.MustCompile(`https://.+\.ddog-gov\.(com|mil)`)
-)
-
// IsFed returns true if the Agent is running in a gov environment
func IsFed(cfg pkgconfigmodel.Reader) bool {
+ reSite := regexp.MustCompile(`(.+\.)?ddog-gov\.com`)
+ reURL := regexp.MustCompile(`https://.+\.ddog-gov\.com`)
isFipsAgent, _ := pkgfips.Enabled()
return cfg.GetBool("fips.enabled") || isFipsAgent ||
- reFedSite.MatchString(cfg.GetString("site")) || reFedURL.MatchString(cfg.GetString("dd_url"))
+ reSite.MatchString(cfg.GetString("site")) || reURL.MatchString(cfg.GetString("dd_url"))
}
// IsCloudProviderEnabled checks the cloud provider family provided in
diff --git a/pkg/config/utils/miscellaneous_test.go b/pkg/config/utils/miscellaneous_test.go
index a9f8f972bc69..bb30de2b16a9 100644
--- a/pkg/config/utils/miscellaneous_test.go
+++ b/pkg/config/utils/miscellaneous_test.go
@@ -143,13 +143,6 @@ func TestIsRemoteConfigEnabled(t *testing.T) {
m.SetWithoutSource("site", "ddog-gov.com")
},
},
- {
- name: "gov via mil site and not explicitly enabled",
- expected: false,
- setConfig: func(m model.BuildableConfig) {
- m.SetWithoutSource("site", "ddog-gov.mil")
- },
- },
{
name: "gov via fips.enabled and explicitly enabled",
expected: true,
@@ -189,13 +182,6 @@ func TestIsRemoteConfigEnabled(t *testing.T) {
m.SetWithoutSource("site", "xxxx99.ddog-gov.com")
},
},
- {
- name: "gov via long mil site and not explicitly enabled",
- expected: false,
- setConfig: func(m model.BuildableConfig) {
- m.SetWithoutSource("site", "xxxx99.ddog-gov.mil")
- },
- },
{
name: "gov via long site and explicitly enabled",
expected: true,
@@ -212,14 +198,6 @@ func TestIsRemoteConfigEnabled(t *testing.T) {
m.SetWithoutSource("remote_configuration.enabled", false)
},
},
- {
- name: "gov via long mil site and explicitly disabled",
- expected: false,
- setConfig: func(m model.BuildableConfig) {
- m.SetWithoutSource("site", "xxxx99.ddog-gov.mil")
- m.SetWithoutSource("remote_configuration.enabled", false)
- },
- },
}
for _, test := range tests {
diff --git a/pkg/config/utils/telemetry.go b/pkg/config/utils/telemetry.go
index e64dd1cd2922..74e6516e0f14 100644
--- a/pkg/config/utils/telemetry.go
+++ b/pkg/config/utils/telemetry.go
@@ -45,7 +45,7 @@ func IsTelemetryEnabled(cfg pkgconfigmodel.Reader) bool {
// IsAgentTelemetryEnabled returns true if Agent Telemetry is enabled
func IsAgentTelemetryEnabled(cfg pkgconfigmodel.Reader) bool {
- reSite := regexp.MustCompile(`(.+\.)?ddog-gov\.(com|mil)`)
+ reSite := regexp.MustCompile(`(.+\.)?ddog-gov\.com`)
// Disable Agent Telemetry for GovCloud
if cfg.GetBool("fips.enabled") || reSite.MatchString(cfg.GetString("site")) {
return false
diff --git a/pkg/config/utils/telemetry_test.go b/pkg/config/utils/telemetry_test.go
index 2e056075efdb..7f3caf49a951 100644
--- a/pkg/config/utils/telemetry_test.go
+++ b/pkg/config/utils/telemetry_test.go
@@ -55,9 +55,4 @@ func TestIsCheckTelemetryEnabled(t *testing.T) {
mockConfig.SetWithoutSource("agent_telemetry.enabled", true)
mockConfig.SetWithoutSource("site", "xx.ddog-gov.com")
assert.False(IsAgentTelemetryEnabled(mockConfig))
-
- mockConfig.SetWithoutSource("agent_telemetry.enabled", true)
- mockConfig.SetWithoutSource("site", "xx.ddog-gov.mil")
- assert.False(IsAgentTelemetryEnabled(mockConfig))
-
}
diff --git a/pkg/config/viperconfig/go.mod b/pkg/config/viperconfig/go.mod
index af1dc0c30637..69d320ff6b4a 100644
--- a/pkg/config/viperconfig/go.mod
+++ b/pkg/config/viperconfig/go.mod
@@ -133,7 +133,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/discovery/tracermetadata/model/go.mod b/pkg/discovery/tracermetadata/model/go.mod
index d39f43984188..fa3cc77c0dd7 100644
--- a/pkg/discovery/tracermetadata/model/go.mod
+++ b/pkg/discovery/tracermetadata/model/go.mod
@@ -116,7 +116,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/errors/go.mod b/pkg/errors/go.mod
index 8a60a264ef62..549181ddcbb9 100644
--- a/pkg/errors/go.mod
+++ b/pkg/errors/go.mod
@@ -113,7 +113,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/fips/go.mod b/pkg/fips/go.mod
index 9a8f48653b92..610c5a45800d 100644
--- a/pkg/fips/go.mod
+++ b/pkg/fips/go.mod
@@ -101,7 +101,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/gohai/go.mod b/pkg/gohai/go.mod
index 50cd78eada31..6365ef732373 100644
--- a/pkg/gohai/go.mod
+++ b/pkg/gohai/go.mod
@@ -131,7 +131,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/gpu/testutil/mocks.go b/pkg/gpu/testutil/mocks.go
index 9d8a5e86826a..4c50c7623518 100644
--- a/pkg/gpu/testutil/mocks.go
+++ b/pkg/gpu/testutil/mocks.go
@@ -622,7 +622,7 @@ var archNameToNVML = map[string]struct {
"hopper": {nvml.DEVICE_ARCH_HOPPER, 9, 0},
"ada": {nvml.DEVICE_ARCH_ADA, 8, 9},
"blackwell": {
- nvml.DeviceArchitecture(10), // nvml.DEVICE_ARCH_BLACKWELL in newer go-nvml
+ nvml.DEVICE_ARCH_BLACKWELL,
10,
0,
},
diff --git a/pkg/logs/client/go.mod b/pkg/logs/client/go.mod
index a5ea9e1c8cbf..14c38af51f9f 100644
--- a/pkg/logs/client/go.mod
+++ b/pkg/logs/client/go.mod
@@ -9,7 +9,7 @@ require (
github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0
github.com/DataDog/datadog-agent/pkg/config/mock v0.70.0
github.com/DataDog/datadog-agent/pkg/config/model v0.77.2
- github.com/DataDog/datadog-agent/pkg/logs/message v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
github.com/DataDog/datadog-agent/pkg/logs/metrics v0.61.0
github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0
github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.61.0
@@ -209,7 +209,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/logs/diagnostic/go.mod b/pkg/logs/diagnostic/go.mod
index 2ec850a51bfa..f3505f2219e6 100644
--- a/pkg/logs/diagnostic/go.mod
+++ b/pkg/logs/diagnostic/go.mod
@@ -6,7 +6,7 @@ require (
github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.61.0
github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0
github.com/DataDog/datadog-agent/pkg/config/setup v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/message v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0
github.com/stretchr/testify v1.11.1
)
@@ -184,7 +184,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/client => ../../../pkg/logs/client
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/logs/launchers/channel/launcher.go b/pkg/logs/launchers/channel/launcher.go
index 6bb94d7f42ad..4b7f946ac88a 100644
--- a/pkg/logs/launchers/channel/launcher.go
+++ b/pkg/logs/launchers/channel/launcher.go
@@ -7,10 +7,10 @@
package channel
import (
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
tailer "github.com/DataDog/datadog-agent/pkg/logs/tailers/channel"
diff --git a/pkg/logs/launchers/container/launcher.go b/pkg/logs/launchers/container/launcher.go
index 181a3b346516..4f1b4e81ed76 100644
--- a/pkg/logs/launchers/container/launcher.go
+++ b/pkg/logs/launchers/container/launcher.go
@@ -13,10 +13,10 @@ import (
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
"github.com/DataDog/datadog-agent/pkg/logs/launchers/container/tailerfactory"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
sourcesPkg "github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
"github.com/DataDog/datadog-agent/pkg/util/log"
diff --git a/pkg/logs/launchers/container/launcher_no_kubelet_and_docker.go b/pkg/logs/launchers/container/launcher_no_kubelet_and_docker.go
index 1b8085c47f1e..a10e90404b5c 100644
--- a/pkg/logs/launchers/container/launcher_no_kubelet_and_docker.go
+++ b/pkg/logs/launchers/container/launcher_no_kubelet_and_docker.go
@@ -11,9 +11,9 @@ package container
import (
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
sourcesPkg "github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
"github.com/DataDog/datadog-agent/pkg/util/option"
diff --git a/pkg/logs/launchers/container/launcher_test.go b/pkg/logs/launchers/container/launcher_test.go
index d79aa2feaca0..8db0406bc11c 100644
--- a/pkg/logs/launchers/container/launcher_test.go
+++ b/pkg/logs/launchers/container/launcher_test.go
@@ -17,11 +17,11 @@ import (
taggerfxmock "github.com/DataDog/datadog-agent/comp/core/tagger/fx-mock"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
auditorMock "github.com/DataDog/datadog-agent/comp/logs/auditor/mock"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
"github.com/DataDog/datadog-agent/pkg/logs/launchers/container/tailerfactory"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
"github.com/DataDog/datadog-agent/pkg/util/option"
diff --git a/pkg/logs/launchers/container/tailerfactory/api_test.go b/pkg/logs/launchers/container/tailerfactory/api_test.go
index 331f72a2f600..b3b36b24bfc5 100644
--- a/pkg/logs/launchers/container/tailerfactory/api_test.go
+++ b/pkg/logs/launchers/container/tailerfactory/api_test.go
@@ -23,9 +23,9 @@ import (
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
workloadmetafxmock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx-mock"
workloadmetamock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/mock"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/pkg/logs/launchers/container/tailerfactory/tailers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/util/fxutil"
"github.com/DataDog/datadog-agent/pkg/util/kubernetes/kubelet"
diff --git a/pkg/logs/launchers/container/tailerfactory/factory.go b/pkg/logs/launchers/container/tailerfactory/factory.go
index 1d29d26c5f22..288e143d3352 100644
--- a/pkg/logs/launchers/container/tailerfactory/factory.go
+++ b/pkg/logs/launchers/container/tailerfactory/factory.go
@@ -12,9 +12,9 @@ package tailerfactory
import (
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/internal/util/containersorpods"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers/container"
"github.com/DataDog/datadog-agent/pkg/util/log"
diff --git a/pkg/logs/launchers/container/tailerfactory/file_test.go b/pkg/logs/launchers/container/tailerfactory/file_test.go
index 6b91b702a49d..5a7213090a84 100644
--- a/pkg/logs/launchers/container/tailerfactory/file_test.go
+++ b/pkg/logs/launchers/container/tailerfactory/file_test.go
@@ -25,10 +25,10 @@ import (
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
workloadmetafxmock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/fx-mock"
workloadmetamock "github.com/DataDog/datadog-agent/comp/core/workloadmeta/mock"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
configmock "github.com/DataDog/datadog-agent/pkg/config/mock"
"github.com/DataDog/datadog-agent/pkg/logs/internal/util/containersorpods"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/util/fxutil"
pkglog "github.com/DataDog/datadog-agent/pkg/util/log"
diff --git a/pkg/logs/launchers/container/tailerfactory/socket_test.go b/pkg/logs/launchers/container/tailerfactory/socket_test.go
index 74e550a2b9fe..1cf28505e2b4 100644
--- a/pkg/logs/launchers/container/tailerfactory/socket_test.go
+++ b/pkg/logs/launchers/container/tailerfactory/socket_test.go
@@ -14,10 +14,10 @@ import (
"github.com/stretchr/testify/require"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/pkg/logs/internal/util/containersorpods"
"github.com/DataDog/datadog-agent/pkg/logs/launchers/container/tailerfactory/tailers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
dockerutilPkg "github.com/DataDog/datadog-agent/pkg/util/docker"
)
diff --git a/pkg/logs/launchers/file/launcher.go b/pkg/logs/launchers/file/launcher.go
index a8d13e542215..ef196ab732dc 100644
--- a/pkg/logs/launchers/file/launcher.go
+++ b/pkg/logs/launchers/file/launcher.go
@@ -13,6 +13,7 @@ import (
"time"
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
flareController "github.com/DataDog/datadog-agent/comp/logs/agent/flare"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
@@ -21,7 +22,6 @@ import (
fileprovider "github.com/DataDog/datadog-agent/pkg/logs/launchers/file/provider"
"github.com/DataDog/datadog-agent/pkg/logs/message"
"github.com/DataDog/datadog-agent/pkg/logs/metrics"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
status "github.com/DataDog/datadog-agent/pkg/logs/status/utils"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
diff --git a/pkg/logs/launchers/file/launcher_test.go b/pkg/logs/launchers/file/launcher_test.go
index 9625e68d7739..d72a7ca8c648 100644
--- a/pkg/logs/launchers/file/launcher_test.go
+++ b/pkg/logs/launchers/file/launcher_test.go
@@ -20,6 +20,8 @@ import (
taggerfxmock "github.com/DataDog/datadog-agent/comp/core/tagger/fx-mock"
taggermock "github.com/DataDog/datadog-agent/comp/core/tagger/mock"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline/mock"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
flareController "github.com/DataDog/datadog-agent/comp/logs/agent/flare"
auditorMock "github.com/DataDog/datadog-agent/comp/logs/auditor/mock"
@@ -27,8 +29,6 @@ import (
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
fileprovider "github.com/DataDog/datadog-agent/pkg/logs/launchers/file/provider"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline/mock"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/status"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
diff --git a/pkg/logs/launchers/integration/launcher.go b/pkg/logs/launchers/integration/launcher.go
index fa0f0df91b8b..ac34f8893396 100644
--- a/pkg/logs/launchers/integration/launcher.go
+++ b/pkg/logs/launchers/integration/launcher.go
@@ -19,12 +19,12 @@ import (
"github.com/DataDog/datadog-agent/pkg/util/filesystem"
ddLog "github.com/DataDog/datadog-agent/pkg/util/log"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def"
pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/schedulers/ad"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
diff --git a/pkg/logs/launchers/integration/launcher_test.go b/pkg/logs/launchers/integration/launcher_test.go
index 3429ca431fad..a83a86c6e26c 100644
--- a/pkg/logs/launchers/integration/launcher_test.go
+++ b/pkg/logs/launchers/integration/launcher_test.go
@@ -18,13 +18,13 @@ import (
"github.com/stretchr/testify/suite"
"github.com/DataDog/datadog-agent/comp/core/autodiscovery/integration"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline/mock"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
integrations "github.com/DataDog/datadog-agent/comp/logs/integrations/def"
integrationsmock "github.com/DataDog/datadog-agent/comp/logs/integrations/mock"
configmock "github.com/DataDog/datadog-agent/pkg/config/mock"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline/mock"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/status"
"github.com/DataDog/datadog-agent/pkg/logs/util/testutils"
diff --git a/pkg/logs/launchers/journald/launcher.go b/pkg/logs/launchers/journald/launcher.go
index 16e1fa32b2ce..cb6989ac6155 100644
--- a/pkg/logs/launchers/journald/launcher.go
+++ b/pkg/logs/launchers/journald/launcher.go
@@ -14,11 +14,11 @@ import (
"github.com/coreos/go-systemd/v22/sdjournal"
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
flareController "github.com/DataDog/datadog-agent/comp/logs/agent/flare"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
tailer "github.com/DataDog/datadog-agent/pkg/logs/tailers/journald"
diff --git a/pkg/logs/launchers/journald/launcher_nosystemd.go b/pkg/logs/launchers/journald/launcher_nosystemd.go
index 802c589e6173..edec2fd0e358 100644
--- a/pkg/logs/launchers/journald/launcher_nosystemd.go
+++ b/pkg/logs/launchers/journald/launcher_nosystemd.go
@@ -10,10 +10,10 @@ package journald
import (
tagger "github.com/DataDog/datadog-agent/comp/core/tagger/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
flareController "github.com/DataDog/datadog-agent/comp/logs/agent/flare"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
)
diff --git a/pkg/logs/launchers/journald/launcher_test.go b/pkg/logs/launchers/journald/launcher_test.go
index bed96464f2b9..2ebe8b7d0d01 100644
--- a/pkg/logs/launchers/journald/launcher_test.go
+++ b/pkg/logs/launchers/journald/launcher_test.go
@@ -16,11 +16,11 @@ import (
"github.com/stretchr/testify/assert"
taggerfxmock "github.com/DataDog/datadog-agent/comp/core/tagger/fx-mock"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/comp/logs/agent/flare"
auditorMock "github.com/DataDog/datadog-agent/comp/logs/auditor/mock"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
tailer "github.com/DataDog/datadog-agent/pkg/logs/tailers/journald"
diff --git a/pkg/logs/launchers/launchers.go b/pkg/logs/launchers/launchers.go
index f57d4d22fb3a..a2b25fc19558 100644
--- a/pkg/logs/launchers/launchers.go
+++ b/pkg/logs/launchers/launchers.go
@@ -9,8 +9,8 @@ package launchers
import (
"sync"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
)
diff --git a/pkg/logs/launchers/listener/launcher.go b/pkg/logs/launchers/listener/launcher.go
index 666cd17acc6c..2ad67672daa2 100644
--- a/pkg/logs/launchers/listener/launcher.go
+++ b/pkg/logs/launchers/listener/launcher.go
@@ -6,10 +6,10 @@
package listener
import (
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
"github.com/DataDog/datadog-agent/pkg/util/log"
diff --git a/pkg/logs/launchers/listener/tcp.go b/pkg/logs/launchers/listener/tcp.go
index c028b46bc888..b65e59fbc7a6 100644
--- a/pkg/logs/launchers/listener/tcp.go
+++ b/pkg/logs/launchers/listener/tcp.go
@@ -17,7 +17,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/util/log"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
tailer "github.com/DataDog/datadog-agent/pkg/logs/tailers/socket"
"github.com/DataDog/datadog-agent/pkg/util/startstop"
diff --git a/pkg/logs/launchers/listener/tcp_test.go b/pkg/logs/launchers/listener/tcp_test.go
index 77ae49ebd8af..e41ac3ef1ee2 100644
--- a/pkg/logs/launchers/listener/tcp_test.go
+++ b/pkg/logs/launchers/listener/tcp_test.go
@@ -25,9 +25,9 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline/mock"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline/mock"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
)
diff --git a/pkg/logs/launchers/listener/udp.go b/pkg/logs/launchers/listener/udp.go
index 37566c9de42f..38a8cfc5bc47 100644
--- a/pkg/logs/launchers/listener/udp.go
+++ b/pkg/logs/launchers/listener/udp.go
@@ -11,7 +11,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/util/log"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
tailer "github.com/DataDog/datadog-agent/pkg/logs/tailers/socket"
)
diff --git a/pkg/logs/launchers/listener/udp_nix_test.go b/pkg/logs/launchers/listener/udp_nix_test.go
index 7423ad918042..64d898a9a301 100644
--- a/pkg/logs/launchers/listener/udp_nix_test.go
+++ b/pkg/logs/launchers/listener/udp_nix_test.go
@@ -15,9 +15,9 @@ import (
"github.com/stretchr/testify/assert"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline/mock"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline/mock"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
)
diff --git a/pkg/logs/launchers/listener/udp_test.go b/pkg/logs/launchers/listener/udp_test.go
index 497c6f8f6e1b..dd9e78f2fbd1 100644
--- a/pkg/logs/launchers/listener/udp_test.go
+++ b/pkg/logs/launchers/listener/udp_test.go
@@ -12,9 +12,9 @@ import (
"github.com/stretchr/testify/assert"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline/mock"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline/mock"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
)
diff --git a/pkg/logs/launchers/types.go b/pkg/logs/launchers/types.go
index 804124099a45..0e26e6c81fc9 100644
--- a/pkg/logs/launchers/types.go
+++ b/pkg/logs/launchers/types.go
@@ -6,8 +6,8 @@
package launchers
import (
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
)
diff --git a/pkg/logs/launchers/windowsevent/launcher.go b/pkg/logs/launchers/windowsevent/launcher.go
index 051e0528f672..69bde4e33276 100644
--- a/pkg/logs/launchers/windowsevent/launcher.go
+++ b/pkg/logs/launchers/windowsevent/launcher.go
@@ -12,11 +12,11 @@ import (
"github.com/DataDog/datadog-agent/pkg/util/log"
winevtapi "github.com/DataDog/datadog-agent/pkg/util/winutil/eventlog/api/windows"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
"github.com/DataDog/datadog-agent/comp/logs/agent/config"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
publishermetadatacachedef "github.com/DataDog/datadog-agent/comp/publishermetadatacache/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
"github.com/DataDog/datadog-agent/pkg/logs/tailers/windowsevent"
diff --git a/pkg/logs/launchers/windowsevent/launcher_nix.go b/pkg/logs/launchers/windowsevent/launcher_nix.go
index ab8acd3b75be..cdaf364d6ba9 100644
--- a/pkg/logs/launchers/windowsevent/launcher_nix.go
+++ b/pkg/logs/launchers/windowsevent/launcher_nix.go
@@ -9,9 +9,9 @@
package windowsevent
import (
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
auditor "github.com/DataDog/datadog-agent/comp/logs/auditor/def"
"github.com/DataDog/datadog-agent/pkg/logs/launchers"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/tailers"
)
diff --git a/pkg/logs/message/go.mod b/pkg/logs/message/go.mod
index 39fcb7ea1460..d6db94f50f2e 100644
--- a/pkg/logs/message/go.mod
+++ b/pkg/logs/message/go.mod
@@ -173,7 +173,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/client => ../../../pkg/logs/client
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/logs/metrics/go.mod b/pkg/logs/metrics/go.mod
index f42c9b65d8b0..74f620a8364e 100644
--- a/pkg/logs/metrics/go.mod
+++ b/pkg/logs/metrics/go.mod
@@ -136,7 +136,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/client => ../../../pkg/logs/client
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/logs/pipeline/go.mod b/pkg/logs/pipeline/go.mod
deleted file mode 100644
index e2645282dfa0..000000000000
--- a/pkg/logs/pipeline/go.mod
+++ /dev/null
@@ -1,306 +0,0 @@
-module github.com/DataDog/datadog-agent/pkg/logs/pipeline
-
-go 1.25.0
-
-require (
- github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface v0.61.0
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1
- github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl v0.77.0-devel.0.20260211235139-a5361978c2b6
- github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0
- github.com/DataDog/datadog-agent/comp/serializer/logscompression v0.64.0-devel
- github.com/DataDog/datadog-agent/pkg/config/mock v0.70.0
- github.com/DataDog/datadog-agent/pkg/config/model v0.77.2
- github.com/DataDog/datadog-agent/pkg/config/setup v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/client v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
- github.com/DataDog/datadog-agent/pkg/logs/metrics v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/processor v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/sender v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface v0.61.0
- github.com/DataDog/datadog-agent/pkg/util/compression v0.56.0-rc.3
- github.com/DataDog/datadog-agent/pkg/util/startstop v0.61.0
- github.com/stretchr/testify v1.11.1
- go.uber.org/atomic v1.11.0
-)
-
-require gopkg.in/yaml.v3 v3.0.1 // indirect
-
-require (
- github.com/DataDog/agent-payload/v5 v5.0.189 // indirect
- github.com/DataDog/datadog-agent/comp/api/api/def v0.72.0-rc.1 // indirect
- github.com/DataDog/datadog-agent/comp/core/config v0.64.0-devel // indirect
- github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/flare/builder v0.61.0 // indirect
- github.com/DataDog/datadog-agent/comp/core/flare/types v0.72.0-rc.1 // indirect
- github.com/DataDog/datadog-agent/comp/core/status v0.73.0-rc.5 // indirect
- github.com/DataDog/datadog-agent/comp/core/telemetry v0.61.0 // indirect
- github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect
- github.com/DataDog/datadog-agent/comp/logs-library v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
- github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/pkg/config/create v0.70.0 // indirect
- github.com/DataDog/datadog-agent/pkg/config/env v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/config/helper v0.73.0-devel.0.20251030121902-cd89eab046d6 // indirect
- github.com/DataDog/datadog-agent/pkg/config/nodetreemodel v0.64.1 // indirect
- github.com/DataDog/datadog-agent/pkg/config/structure v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect
- github.com/DataDog/datadog-agent/pkg/config/teeconfig v0.64.1 // indirect
- github.com/DataDog/datadog-agent/pkg/config/utils v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/config/viperconfig v0.72.2 // indirect
- github.com/DataDog/datadog-agent/pkg/fips v0.0.0 // indirect
- github.com/DataDog/datadog-agent/pkg/logs/status/utils v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/logs/types v0.71.0-rc.1 // indirect
- github.com/DataDog/datadog-agent/pkg/telemetry v0.64.1 // indirect
- github.com/DataDog/datadog-agent/pkg/template v0.65.1 // indirect
- github.com/DataDog/datadog-agent/pkg/util/backoff v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/util/defaultpaths v0.64.0-devel // indirect
- github.com/DataDog/datadog-agent/pkg/util/executable v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/util/filesystem v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/util/flavor v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/pkg/util/fxutil v0.77.0-devel.0.20260211235139-a5361978c2b6 // indirect
- github.com/DataDog/datadog-agent/pkg/util/http v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5 // indirect
- github.com/DataDog/datadog-agent/pkg/util/option v0.64.0-devel // indirect
- github.com/DataDog/datadog-agent/pkg/util/pointer v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/util/scrubber v0.73.0-rc.5 // indirect
- github.com/DataDog/datadog-agent/pkg/util/statstracker v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/util/system v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/util/winutil v0.61.0 // indirect
- github.com/DataDog/datadog-agent/pkg/version v0.72.2 // indirect
- github.com/DataDog/viper v1.15.1 // indirect
- github.com/DataDog/zstd v1.5.7 // indirect
- github.com/Microsoft/go-winio v0.6.2 // indirect
- github.com/benbjohnson/clock v1.3.5 // indirect
- github.com/beorn7/perks v1.0.1 // indirect
- github.com/cespare/xxhash/v2 v2.3.0 // indirect
- github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
- github.com/dustin/go-humanize v1.0.1 // indirect
- github.com/ebitengine/purego v0.10.0 // indirect
- github.com/fatih/color v1.18.0 // indirect
- github.com/fsnotify/fsnotify v1.9.0 // indirect
- github.com/go-ole/go-ole v1.3.0 // indirect
- github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
- github.com/gofrs/flock v0.13.0 // indirect
- github.com/gogo/protobuf v1.3.2 // indirect
- github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 // indirect
- github.com/inconshreveable/mousetrap v1.1.0 // indirect
- github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 // indirect
- github.com/magiconair/properties v1.8.10 // indirect
- github.com/mattn/go-colorable v0.1.14 // indirect
- github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/mdlayher/socket v0.5.1 // indirect
- github.com/mdlayher/vsock v1.2.1 // indirect
- github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
- github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
- github.com/pelletier/go-toml v1.9.5 // indirect
- github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
- github.com/prometheus/client_golang v1.23.2 // indirect
- github.com/prometheus/client_model v0.6.2 // indirect
- github.com/prometheus/common v0.67.5 // indirect
- github.com/prometheus/procfs v0.20.1 // indirect
- github.com/shirou/gopsutil/v4 v4.26.3 // indirect
- github.com/spf13/cast v1.10.0 // indirect
- github.com/spf13/cobra v1.10.2 // indirect
- github.com/spf13/jwalterweatherman v1.1.0 // indirect
- github.com/spf13/pflag v1.0.10 // indirect
- github.com/tklauser/go-sysconf v0.3.16 // indirect
- github.com/tklauser/numcpus v0.11.0 // indirect
- github.com/yusufpapurcu/wmi v1.2.4 // indirect
- go.uber.org/dig v1.19.0 // indirect
- go.uber.org/fx v1.24.0 // indirect
- go.uber.org/multierr v1.11.0 // indirect
- go.uber.org/zap v1.27.1 // indirect
- go.yaml.in/yaml/v2 v2.4.3 // indirect
- go.yaml.in/yaml/v3 v3.0.4 // indirect
- golang.org/x/net v0.53.0 // indirect
- golang.org/x/sync v0.20.0 // indirect
- golang.org/x/sys v0.43.0 // indirect
- golang.org/x/text v0.36.0 // indirect
- golang.org/x/time v0.15.0 // indirect
- google.golang.org/protobuf v1.36.11 // indirect
-)
-
-// This section was automatically added by 'dda inv modules.add-all-replace' command, do not edit manually
-
-replace (
- github.com/DataDog/datadog-agent/comp/api/api/def => ../../../comp/api/api/def
- github.com/DataDog/datadog-agent/comp/core/agenttelemetry/def => ../../../comp/core/agenttelemetry/def
- github.com/DataDog/datadog-agent/comp/core/agenttelemetry/fx => ../../../comp/core/agenttelemetry/fx
- github.com/DataDog/datadog-agent/comp/core/agenttelemetry/impl => ../../../comp/core/agenttelemetry/impl
- github.com/DataDog/datadog-agent/comp/core/config => ../../../comp/core/config
- github.com/DataDog/datadog-agent/comp/core/configsync => ../../../comp/core/configsync
- github.com/DataDog/datadog-agent/comp/core/delegatedauth => ../../../comp/core/delegatedauth
- github.com/DataDog/datadog-agent/comp/core/delegatedauth/api/cloudauth/aws => ../../../comp/core/delegatedauth/api/cloudauth/aws
- github.com/DataDog/datadog-agent/comp/core/flare/builder => ../../../comp/core/flare/builder
- github.com/DataDog/datadog-agent/comp/core/flare/types => ../../../comp/core/flare/types
- github.com/DataDog/datadog-agent/comp/core/hostname/hostnameinterface => ../../../comp/core/hostname/hostnameinterface
- github.com/DataDog/datadog-agent/comp/core/ipc/def => ../../../comp/core/ipc/def
- github.com/DataDog/datadog-agent/comp/core/ipc/httphelpers => ../../../comp/core/ipc/httphelpers
- github.com/DataDog/datadog-agent/comp/core/ipc/impl => ../../../comp/core/ipc/impl
- github.com/DataDog/datadog-agent/comp/core/ipc/mock => ../../../comp/core/ipc/mock
- github.com/DataDog/datadog-agent/comp/core/log/def => ../../../comp/core/log/def
- github.com/DataDog/datadog-agent/comp/core/log/fx => ../../../comp/core/log/fx
- github.com/DataDog/datadog-agent/comp/core/log/impl => ../../../comp/core/log/impl
- github.com/DataDog/datadog-agent/comp/core/log/impl-trace => ../../../comp/core/log/impl-trace
- github.com/DataDog/datadog-agent/comp/core/log/mock => ../../../comp/core/log/mock
- github.com/DataDog/datadog-agent/comp/core/secrets/def => ../../../comp/core/secrets/def
- github.com/DataDog/datadog-agent/comp/core/secrets/fx => ../../../comp/core/secrets/fx
- github.com/DataDog/datadog-agent/comp/core/secrets/impl => ../../../comp/core/secrets/impl
- github.com/DataDog/datadog-agent/comp/core/secrets/mock => ../../../comp/core/secrets/mock
- github.com/DataDog/datadog-agent/comp/core/secrets/noop-impl => ../../../comp/core/secrets/noop-impl
- github.com/DataDog/datadog-agent/comp/core/secrets/utils => ../../../comp/core/secrets/utils
- github.com/DataDog/datadog-agent/comp/core/status => ../../../comp/core/status
- github.com/DataDog/datadog-agent/comp/core/status/statusimpl => ../../../comp/core/status/statusimpl
- github.com/DataDog/datadog-agent/comp/core/tagger/def => ../../../comp/core/tagger/def
- github.com/DataDog/datadog-agent/comp/core/tagger/fx-remote => ../../../comp/core/tagger/fx-remote
- github.com/DataDog/datadog-agent/comp/core/tagger/generic_store => ../../../comp/core/tagger/generic_store
- github.com/DataDog/datadog-agent/comp/core/tagger/impl-remote => ../../../comp/core/tagger/impl-remote
- github.com/DataDog/datadog-agent/comp/core/tagger/origindetection => ../../../comp/core/tagger/origindetection
- github.com/DataDog/datadog-agent/comp/core/tagger/subscriber => ../../../comp/core/tagger/subscriber
- github.com/DataDog/datadog-agent/comp/core/tagger/tags => ../../../comp/core/tagger/tags
- github.com/DataDog/datadog-agent/comp/core/tagger/telemetry => ../../../comp/core/tagger/telemetry
- github.com/DataDog/datadog-agent/comp/core/tagger/types => ../../../comp/core/tagger/types
- github.com/DataDog/datadog-agent/comp/core/tagger/utils => ../../../comp/core/tagger/utils
- github.com/DataDog/datadog-agent/comp/core/telemetry => ../../../comp/core/telemetry
- github.com/DataDog/datadog-agent/comp/def => ../../../comp/def
- github.com/DataDog/datadog-agent/comp/forwarder/defaultforwarder => ../../../comp/forwarder/defaultforwarder
- github.com/DataDog/datadog-agent/comp/forwarder/orchestrator/orchestratorinterface => ../../../comp/forwarder/orchestrator/orchestratorinterface
- github.com/DataDog/datadog-agent/comp/logs-library => ../../../comp/logs-library
- github.com/DataDog/datadog-agent/comp/logs/agent/config => ../../../comp/logs/agent/config
- github.com/DataDog/datadog-agent/comp/netflow/payload => ../../../comp/netflow/payload
- github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/def => ../../../comp/otelcol/collector-contrib/def
- github.com/DataDog/datadog-agent/comp/otelcol/collector-contrib/impl => ../../../comp/otelcol/collector-contrib/impl
- github.com/DataDog/datadog-agent/comp/otelcol/converter/def => ../../../comp/otelcol/converter/def
- github.com/DataDog/datadog-agent/comp/otelcol/converter/impl => ../../../comp/otelcol/converter/impl
- github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/def => ../../../comp/otelcol/ddflareextension/def
- github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/impl => ../../../comp/otelcol/ddflareextension/impl
- github.com/DataDog/datadog-agent/comp/otelcol/ddflareextension/types => ../../../comp/otelcol/ddflareextension/types
- github.com/DataDog/datadog-agent/comp/otelcol/ddprofilingextension/def => ../../../comp/otelcol/ddprofilingextension/def
- github.com/DataDog/datadog-agent/comp/otelcol/ddprofilingextension/impl => ../../../comp/otelcol/ddprofilingextension/impl
- github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline => ../../../comp/otelcol/logsagentpipeline
- github.com/DataDog/datadog-agent/comp/otelcol/logsagentpipeline/logsagentpipelineimpl => ../../../comp/otelcol/logsagentpipeline/logsagentpipelineimpl
- github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/datadogexporter => ../../../comp/otelcol/otlp/components/exporter/datadogexporter
- github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/logsagentexporter => ../../../comp/otelcol/otlp/components/exporter/logsagentexporter
- github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/exporter/serializerexporter => ../../../comp/otelcol/otlp/components/exporter/serializerexporter
- github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/metricsclient => ../../../comp/otelcol/otlp/components/metricsclient
- github.com/DataDog/datadog-agent/comp/otelcol/otlp/components/processor/infraattributesprocessor => ../../../comp/otelcol/otlp/components/processor/infraattributesprocessor
- github.com/DataDog/datadog-agent/comp/otelcol/otlp/testutil => ../../../comp/otelcol/otlp/testutil
- github.com/DataDog/datadog-agent/comp/otelcol/status/def => ../../../comp/otelcol/status/def
- github.com/DataDog/datadog-agent/comp/otelcol/status/impl => ../../../comp/otelcol/status/impl
- github.com/DataDog/datadog-agent/comp/serializer/logscompression => ../../../comp/serializer/logscompression
- github.com/DataDog/datadog-agent/comp/serializer/metricscompression => ../../../comp/serializer/metricscompression
- github.com/DataDog/datadog-agent/comp/trace/agent/def => ../../../comp/trace/agent/def
- github.com/DataDog/datadog-agent/comp/trace/compression/def => ../../../comp/trace/compression/def
- github.com/DataDog/datadog-agent/comp/trace/compression/impl-gzip => ../../../comp/trace/compression/impl-gzip
- github.com/DataDog/datadog-agent/comp/trace/compression/impl-zstd => ../../../comp/trace/compression/impl-zstd
- github.com/DataDog/datadog-agent/pkg/aggregator/ckey => ../../../pkg/aggregator/ckey
- github.com/DataDog/datadog-agent/pkg/api => ../../../pkg/api
- github.com/DataDog/datadog-agent/pkg/collector/check/defaults => ../../../pkg/collector/check/defaults
- github.com/DataDog/datadog-agent/pkg/config/basic => ../../../pkg/config/basic
- github.com/DataDog/datadog-agent/pkg/config/buildschema => ../../../pkg/config/buildschema
- github.com/DataDog/datadog-agent/pkg/config/create => ../../../pkg/config/create
- github.com/DataDog/datadog-agent/pkg/config/env => ../../../pkg/config/env
- github.com/DataDog/datadog-agent/pkg/config/helper => ../../../pkg/config/helper
- github.com/DataDog/datadog-agent/pkg/config/mock => ../../../pkg/config/mock
- github.com/DataDog/datadog-agent/pkg/config/model => ../../../pkg/config/model
- github.com/DataDog/datadog-agent/pkg/config/nodetreemodel => ../../../pkg/config/nodetreemodel
- github.com/DataDog/datadog-agent/pkg/config/remote => ../../../pkg/config/remote
- github.com/DataDog/datadog-agent/pkg/config/render_config => ../../../pkg/config/render_config
- github.com/DataDog/datadog-agent/pkg/config/setup => ../../../pkg/config/setup
- github.com/DataDog/datadog-agent/pkg/config/structure => ../../../pkg/config/structure
- github.com/DataDog/datadog-agent/pkg/config/teeconfig => ../../../pkg/config/teeconfig
- github.com/DataDog/datadog-agent/pkg/config/utils => ../../../pkg/config/utils
- github.com/DataDog/datadog-agent/pkg/config/viperconfig => ../../../pkg/config/viperconfig
- github.com/DataDog/datadog-agent/pkg/discovery/tracermetadata/model => ../../../pkg/discovery/tracermetadata/model
- github.com/DataDog/datadog-agent/pkg/errors => ../../../pkg/errors
- github.com/DataDog/datadog-agent/pkg/fips => ../../../pkg/fips
- github.com/DataDog/datadog-agent/pkg/fleet/installer => ../../../pkg/fleet/installer
- github.com/DataDog/datadog-agent/pkg/gohai => ../../../pkg/gohai
- github.com/DataDog/datadog-agent/pkg/logs/client => ../../../pkg/logs/client
- github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
- github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
- github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
- github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
- github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
- github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface
- github.com/DataDog/datadog-agent/pkg/logs/status/utils => ../../../pkg/logs/status/utils
- github.com/DataDog/datadog-agent/pkg/logs/types => ../../../pkg/logs/types
- github.com/DataDog/datadog-agent/pkg/logs/util/testutils => ../../../pkg/logs/util/testutils
- github.com/DataDog/datadog-agent/pkg/metrics => ../../../pkg/metrics
- github.com/DataDog/datadog-agent/pkg/network/driver => ../../../pkg/network/driver
- github.com/DataDog/datadog-agent/pkg/network/payload => ../../../pkg/network/payload
- github.com/DataDog/datadog-agent/pkg/networkdevice/profile => ../../../pkg/networkdevice/profile
- github.com/DataDog/datadog-agent/pkg/networkpath/payload => ../../../pkg/networkpath/payload
- github.com/DataDog/datadog-agent/pkg/obfuscate => ../../../pkg/obfuscate
- github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata => ../../../pkg/opentelemetry-mapping-go/inframetadata
- github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest => ../../../pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest
- github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/attributes => ../../../pkg/opentelemetry-mapping-go/otlp/attributes
- github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/logs => ../../../pkg/opentelemetry-mapping-go/otlp/logs
- github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/metrics => ../../../pkg/opentelemetry-mapping-go/otlp/metrics
- github.com/DataDog/datadog-agent/pkg/opentelemetry-mapping-go/otlp/rum => ../../../pkg/opentelemetry-mapping-go/otlp/rum
- github.com/DataDog/datadog-agent/pkg/orchestrator/model => ../../../pkg/orchestrator/model
- github.com/DataDog/datadog-agent/pkg/orchestrator/util => ../../../pkg/orchestrator/util
- github.com/DataDog/datadog-agent/pkg/process/util/api => ../../../pkg/process/util/api
- github.com/DataDog/datadog-agent/pkg/proto => ../../../pkg/proto
- github.com/DataDog/datadog-agent/pkg/remoteconfig/state => ../../../pkg/remoteconfig/state
- github.com/DataDog/datadog-agent/pkg/security/secl => ../../../pkg/security/secl
- github.com/DataDog/datadog-agent/pkg/security/seclwin => ../../../pkg/security/seclwin
- github.com/DataDog/datadog-agent/pkg/serializer => ../../../pkg/serializer
- github.com/DataDog/datadog-agent/pkg/ssi/testutils => ../../../pkg/ssi/testutils
- github.com/DataDog/datadog-agent/pkg/status/health => ../../../pkg/status/health
- github.com/DataDog/datadog-agent/pkg/tagger/types => ../../../pkg/tagger/types
- github.com/DataDog/datadog-agent/pkg/tagset => ../../../pkg/tagset
- github.com/DataDog/datadog-agent/pkg/telemetry => ../../../pkg/telemetry
- github.com/DataDog/datadog-agent/pkg/template => ../../../pkg/template
- github.com/DataDog/datadog-agent/pkg/trace => ../../../pkg/trace
- github.com/DataDog/datadog-agent/pkg/trace/log => ../../../pkg/trace/log
- github.com/DataDog/datadog-agent/pkg/trace/otel => ../../../pkg/trace/otel
- github.com/DataDog/datadog-agent/pkg/trace/stats => ../../../pkg/trace/stats
- github.com/DataDog/datadog-agent/pkg/trace/traceutil => ../../../pkg/trace/traceutil
- github.com/DataDog/datadog-agent/pkg/util/aws/creds => ../../../pkg/util/aws/creds
- github.com/DataDog/datadog-agent/pkg/util/backoff => ../../../pkg/util/backoff
- github.com/DataDog/datadog-agent/pkg/util/buf => ../../../pkg/util/buf
- github.com/DataDog/datadog-agent/pkg/util/cache => ../../../pkg/util/cache
- github.com/DataDog/datadog-agent/pkg/util/cgroups => ../../../pkg/util/cgroups
- github.com/DataDog/datadog-agent/pkg/util/common => ../../../pkg/util/common
- github.com/DataDog/datadog-agent/pkg/util/compression => ../../../pkg/util/compression
- github.com/DataDog/datadog-agent/pkg/util/containers/image => ../../../pkg/util/containers/image
- github.com/DataDog/datadog-agent/pkg/util/defaultpaths => ../../../pkg/util/defaultpaths
- github.com/DataDog/datadog-agent/pkg/util/executable => ../../../pkg/util/executable
- github.com/DataDog/datadog-agent/pkg/util/filesystem => ../../../pkg/util/filesystem
- github.com/DataDog/datadog-agent/pkg/util/flavor => ../../../pkg/util/flavor
- github.com/DataDog/datadog-agent/pkg/util/fxutil => ../../../pkg/util/fxutil
- github.com/DataDog/datadog-agent/pkg/util/grpc => ../../../pkg/util/grpc
- github.com/DataDog/datadog-agent/pkg/util/hostinfo => ../../../pkg/util/hostinfo
- github.com/DataDog/datadog-agent/pkg/util/hostname/validate => ../../../pkg/util/hostname/validate
- github.com/DataDog/datadog-agent/pkg/util/http => ../../../pkg/util/http
- github.com/DataDog/datadog-agent/pkg/util/json => ../../../pkg/util/json
- github.com/DataDog/datadog-agent/pkg/util/jsonquery => ../../../pkg/util/jsonquery
- github.com/DataDog/datadog-agent/pkg/util/kubernetes/apiserver/common/namespace => ../../../pkg/util/kubernetes/apiserver/common/namespace
- github.com/DataDog/datadog-agent/pkg/util/log => ../../../pkg/util/log
- github.com/DataDog/datadog-agent/pkg/util/log/setup => ../../../pkg/util/log/setup
- github.com/DataDog/datadog-agent/pkg/util/option => ../../../pkg/util/option
- github.com/DataDog/datadog-agent/pkg/util/otel => ../../../pkg/util/otel
- github.com/DataDog/datadog-agent/pkg/util/pointer => ../../../pkg/util/pointer
- github.com/DataDog/datadog-agent/pkg/util/prometheus => ../../../pkg/util/prometheus
- github.com/DataDog/datadog-agent/pkg/util/quantile => ../../../pkg/util/quantile
- github.com/DataDog/datadog-agent/pkg/util/quantile/sketchtest => ../../../pkg/util/quantile/sketchtest
- github.com/DataDog/datadog-agent/pkg/util/scrubber => ../../../pkg/util/scrubber
- github.com/DataDog/datadog-agent/pkg/util/sort => ../../../pkg/util/sort
- github.com/DataDog/datadog-agent/pkg/util/startstop => ../../../pkg/util/startstop
- github.com/DataDog/datadog-agent/pkg/util/statstracker => ../../../pkg/util/statstracker
- github.com/DataDog/datadog-agent/pkg/util/system => ../../../pkg/util/system
- github.com/DataDog/datadog-agent/pkg/util/testutil => ../../../pkg/util/testutil
- github.com/DataDog/datadog-agent/pkg/util/utilizationtracker => ../../../pkg/util/utilizationtracker
- github.com/DataDog/datadog-agent/pkg/util/uuid => ../../../pkg/util/uuid
- github.com/DataDog/datadog-agent/pkg/util/winutil => ../../../pkg/util/winutil
- github.com/DataDog/datadog-agent/pkg/version => ../../../pkg/version
- github.com/DataDog/datadog-agent/test/e2e-framework => ../../../test/e2e-framework
- github.com/DataDog/datadog-agent/test/fakeintake => ../../../test/fakeintake
- github.com/DataDog/datadog-agent/test/new-e2e => ../../../test/new-e2e
- github.com/DataDog/datadog-agent/test/otel => ../../../test/otel
-)
diff --git a/pkg/logs/pipeline/go.sum b/pkg/logs/pipeline/go.sum
deleted file mode 100644
index 2bbf196d371e..000000000000
--- a/pkg/logs/pipeline/go.sum
+++ /dev/null
@@ -1,188 +0,0 @@
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/DataDog/agent-payload/v5 v5.0.189 h1:94lYK0BdRhKbpY4mcfTCMr4+R8OMnIK6We9AnJvNTZY=
-github.com/DataDog/agent-payload/v5 v5.0.189/go.mod h1:GyA1vuCeRywrNNCbYeR0cOYKE8QkOVNAFDqsH8VNF5M=
-github.com/DataDog/viper v1.15.1 h1:kcdFE+qPndlWkhU4iEf/WpWQMCyVYHTv5HqvVf+SYJs=
-github.com/DataDog/viper v1.15.1/go.mod h1:rDLDREOPd+gpEbA8y4Y/5wTvyLqvUiCmDXX0jRZy8mw=
-github.com/DataDog/zstd v1.5.7 h1:ybO8RBeh29qrxIhCA9E8gKY6xfONU9T6G6aP9DTKfLE=
-github.com/DataDog/zstd v1.5.7/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
-github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
-github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
-github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o=
-github.com/benbjohnson/clock v1.3.5/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
-github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
-github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
-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=
-github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
-github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
-github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU=
-github.com/ebitengine/purego v0.10.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
-github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
-github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
-github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
-github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
-github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
-github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
-github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
-github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
-github.com/go-viper/mapstructure/v2 v2.4.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
-github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro=
-github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
-github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw=
-github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0=
-github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
-github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
-github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
-github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94 h1:0G5JVG0aJDpWvH1r8idd+wbPcAH14UqIuUMepx3v9rE=
-github.com/hectane/go-acl v0.0.0-20230225031251-cdfc9e3acf94/go.mod h1:MvF7bZQy5lD2WcLXjFytRVvnTrFvrjo/qGka1MIBOPE=
-github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
-github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
-github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
-github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
-github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
-github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
-github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
-github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
-github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIiZhtifTV5OUqqiP82UAl0h87xj/l9k=
-github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg=
-github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
-github.com/magiconair/properties v1.8.10 h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE=
-github.com/magiconair/properties v1.8.10/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
-github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
-github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
-github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
-github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos=
-github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ=
-github.com/mdlayher/vsock v1.2.1 h1:pC1mTJTvjo1r9n9fbm7S1j04rCgCzhCOS5DY0zqHlnQ=
-github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnENvE+SE=
-github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
-github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
-github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
-github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
-github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
-github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU=
-github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE=
-github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
-github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
-github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
-github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
-github.com/prometheus/common v0.67.5 h1:pIgK94WWlQt1WLwAC5j2ynLaBRDiinoAb86HZHTUGI4=
-github.com/prometheus/common v0.67.5/go.mod h1:SjE/0MzDEEAyrdr5Gqc6G+sXI67maCxzaT3A2+HqjUw=
-github.com/prometheus/procfs v0.20.1 h1:XwbrGOIplXW/AU3YhIhLODXMJYyC1isLFfYCsTEycfc=
-github.com/prometheus/procfs v0.20.1/go.mod h1:o9EMBZGRyvDrSPH1RqdxhojkuXstoe4UlK79eF5TGGo=
-github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
-github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
-github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/shirou/gopsutil/v4 v4.26.3 h1:2ESdQt90yU3oXF/CdOlRCJxrP+Am1aBYubTMTfxJ1qc=
-github.com/shirou/gopsutil/v4 v4.26.3/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ=
-github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
-github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
-github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
-github.com/spf13/cobra v1.10.2 h1:DMTTonx5m65Ic0GOoRY2c16WCbHxOOw6xxezuLaBpcU=
-github.com/spf13/cobra v1.10.2/go.mod h1:7C1pvHqHw5A4vrJfjNwvOdzYu0Gml16OCs2GRiTUUS4=
-github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
-github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=
-github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo=
-github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/pflag v1.0.9/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/spf13/pflag v1.0.10 h1:4EBh2KAYBwaONj6b2Ye1GiHfwjqyROoF4RwYO+vPwFk=
-github.com/spf13/pflag v1.0.10/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
-github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
-github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
-github.com/tklauser/go-sysconf v0.3.16 h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYICU0nA=
-github.com/tklauser/go-sysconf v0.3.16/go.mod h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI=
-github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw=
-github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ=
-github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
-github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
-go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
-go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
-go.uber.org/dig v1.19.0 h1:BACLhebsYdpQ7IROQ1AGPjrXcP5dF80U3gKoFzbaq/4=
-go.uber.org/dig v1.19.0/go.mod h1:Us0rSJiThwCv2GteUN0Q7OKvU7n5J4dxZ9JKUXozFdE=
-go.uber.org/fx v1.24.0 h1:wE8mruvpg2kiiL1Vqd0CC+tr0/24XIB10Iwp2lLWzkg=
-go.uber.org/fx v1.24.0/go.mod h1:AmDeGyS+ZARGKM4tlH4FY2Jr63VjbEDJHtqXTGP5hbo=
-go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
-go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
-go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
-go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
-go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
-go.yaml.in/yaml/v2 v2.4.3 h1:6gvOSjQoTB3vt1l+CU+tSyi/HOjfOjRLJ4YwYZGwRO0=
-go.yaml.in/yaml/v2 v2.4.3/go.mod h1:zSxWcmIDjOzPXpjlTTbAsKokqkDNAVtZO0WOMiT90s8=
-go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
-go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA=
-golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
-golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI=
-golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
-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.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg=
-golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164=
-golang.org/x/time v0.15.0 h1:bbrp8t3bGUeFOx08pvsMYRTCVSMk89u4tKbNOZbp88U=
-golang.org/x/time v0.15.0/go.mod h1:Y4YMaQmXwGQZoFaVFk4YpCt4FLQMYKZe9oeV/f4MSno=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
-golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
-google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
-gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
-gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
-gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/pkg/logs/processor/go.mod b/pkg/logs/processor/go.mod
index c9d010b97fb6..be7d75f7f75e 100644
--- a/pkg/logs/processor/go.mod
+++ b/pkg/logs/processor/go.mod
@@ -8,7 +8,7 @@ require (
github.com/DataDog/datadog-agent/comp/logs/agent/config v0.61.0
github.com/DataDog/datadog-agent/pkg/config/model v0.77.2
github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.61.0
- github.com/DataDog/datadog-agent/pkg/logs/message v0.61.0
+ github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12
github.com/DataDog/datadog-agent/pkg/logs/metrics v0.61.0
github.com/DataDog/datadog-agent/pkg/logs/sources v0.61.0
github.com/DataDog/datadog-agent/pkg/util/log v0.73.0-rc.5
@@ -200,7 +200,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface
diff --git a/pkg/logs/sender/go.mod b/pkg/logs/sender/go.mod
index eab462922cce..b860fa8a409f 100644
--- a/pkg/logs/sender/go.mod
+++ b/pkg/logs/sender/go.mod
@@ -216,7 +216,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface
diff --git a/pkg/logs/sources/go.mod b/pkg/logs/sources/go.mod
index 5a8036725b9c..10247d1f299b 100644
--- a/pkg/logs/sources/go.mod
+++ b/pkg/logs/sources/go.mod
@@ -173,7 +173,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/status/statusinterface => ../../../pkg/logs/status/statusinterface
diff --git a/pkg/logs/status/statusinterface/go.mod b/pkg/logs/status/statusinterface/go.mod
index 131e8b8730a2..38137e40242c 100644
--- a/pkg/logs/status/statusinterface/go.mod
+++ b/pkg/logs/status/statusinterface/go.mod
@@ -102,7 +102,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/logs/status/utils/go.mod b/pkg/logs/status/utils/go.mod
index 9e60ac9ab6e4..1463bfb2531d 100644
--- a/pkg/logs/status/utils/go.mod
+++ b/pkg/logs/status/utils/go.mod
@@ -117,7 +117,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/logs/types/go.mod b/pkg/logs/types/go.mod
index aff6b3335f25..ce579f70c80f 100644
--- a/pkg/logs/types/go.mod
+++ b/pkg/logs/types/go.mod
@@ -102,7 +102,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/logs/util/testutils/go.mod b/pkg/logs/util/testutils/go.mod
index ed5a70ed7b91..1475716807e9 100644
--- a/pkg/logs/util/testutils/go.mod
+++ b/pkg/logs/util/testutils/go.mod
@@ -167,7 +167,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/metrics/go.mod b/pkg/metrics/go.mod
index 6938f936c5b8..387cb16a8c87 100644
--- a/pkg/metrics/go.mod
+++ b/pkg/metrics/go.mod
@@ -205,7 +205,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/network/driver/go.mod b/pkg/network/driver/go.mod
index d3aa2b59e6b2..dbcde946b983 100644
--- a/pkg/network/driver/go.mod
+++ b/pkg/network/driver/go.mod
@@ -143,7 +143,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/network/payload/go.mod b/pkg/network/payload/go.mod
index 566738218fcb..ef7100ef0337 100644
--- a/pkg/network/payload/go.mod
+++ b/pkg/network/payload/go.mod
@@ -102,7 +102,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/networkdevice/profile/go.mod b/pkg/networkdevice/profile/go.mod
index 64faafc30b1e..c37e4f812566 100644
--- a/pkg/networkdevice/profile/go.mod
+++ b/pkg/networkdevice/profile/go.mod
@@ -126,7 +126,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/networkdevice/testutils/freeport.go b/pkg/networkdevice/testutils/freeport.go
index c329ed98385d..854fb97c528c 100644
--- a/pkg/networkdevice/testutils/freeport.go
+++ b/pkg/networkdevice/testutils/freeport.go
@@ -9,8 +9,10 @@ package testutils
import (
"fmt"
+ "hash/fnv"
"net"
"strconv"
+ "strings"
)
// GetFreePort finds a free port to use for testing.
@@ -32,3 +34,12 @@ func GetFreePort() (uint16, error) {
return uint16(portInt), nil
}
+
+// UniqueTestPort returns a deterministic high-range UDP port derived from inputs,
+// reducing the chance of collisions across concurrent tests without TOCTOU races.
+func UniqueTestPort(keys ...string) uint16 {
+ h := fnv.New32a()
+ h.Write([]byte(strings.Join(keys, "|")))
+ // Choose from 62000-63999 (typically outside Linux default ephemeral range)
+ return uint16(62000 + (h.Sum32() % 2000))
+}
diff --git a/pkg/networkpath/payload/go.mod b/pkg/networkpath/payload/go.mod
index d34f5151d6e1..a42afc2f3a70 100644
--- a/pkg/networkpath/payload/go.mod
+++ b/pkg/networkpath/payload/go.mod
@@ -117,7 +117,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/obfuscate/go.mod b/pkg/obfuscate/go.mod
index 332b7da5266d..7b545ae59f9a 100644
--- a/pkg/obfuscate/go.mod
+++ b/pkg/obfuscate/go.mod
@@ -127,7 +127,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/opentelemetry-mapping-go/inframetadata/go.mod b/pkg/opentelemetry-mapping-go/inframetadata/go.mod
index 8060ce0b60a0..09c53930988c 100644
--- a/pkg/opentelemetry-mapping-go/inframetadata/go.mod
+++ b/pkg/opentelemetry-mapping-go/inframetadata/go.mod
@@ -133,7 +133,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod b/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod
index e3b48541b518..c8f41009b840 100644
--- a/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod
+++ b/pkg/opentelemetry-mapping-go/inframetadata/gohai/internal/gohaitest/go.mod
@@ -120,7 +120,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources
diff --git a/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod b/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod
index d2ab17d538f9..67aa30f163f8 100644
--- a/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod
+++ b/pkg/opentelemetry-mapping-go/otlp/attributes/go.mod
@@ -141,7 +141,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/opentelemetry-mapping-go/otlp/logs/go.mod b/pkg/opentelemetry-mapping-go/otlp/logs/go.mod
index dbeb684f6cfe..862af1304cea 100644
--- a/pkg/opentelemetry-mapping-go/otlp/logs/go.mod
+++ b/pkg/opentelemetry-mapping-go/otlp/logs/go.mod
@@ -163,7 +163,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod b/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod
index 3a3af2955ce6..8bd4f51a10af 100644
--- a/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod
+++ b/pkg/opentelemetry-mapping-go/otlp/metrics/go.mod
@@ -157,7 +157,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/opentelemetry-mapping-go/otlp/rum/go.mod b/pkg/opentelemetry-mapping-go/otlp/rum/go.mod
index 7ecef576cc01..c35ff570622d 100644
--- a/pkg/opentelemetry-mapping-go/otlp/rum/go.mod
+++ b/pkg/opentelemetry-mapping-go/otlp/rum/go.mod
@@ -127,7 +127,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/orchestrator/model/go.mod b/pkg/orchestrator/model/go.mod
index b79d75901215..02b6aced4728 100644
--- a/pkg/orchestrator/model/go.mod
+++ b/pkg/orchestrator/model/go.mod
@@ -116,7 +116,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/orchestrator/util/go.mod b/pkg/orchestrator/util/go.mod
index 15240a6c8ad7..5d317e04743b 100644
--- a/pkg/orchestrator/util/go.mod
+++ b/pkg/orchestrator/util/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/pidfile/BUILD.bazel b/pkg/pidfile/BUILD.bazel
new file mode 100644
index 000000000000..6a7e8ac7bf9a
--- /dev/null
+++ b/pkg/pidfile/BUILD.bazel
@@ -0,0 +1,26 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "pidfile",
+ srcs = [
+ "pidfile.go",
+ "pidfile_darwin.go",
+ "pidfile_nix.go",
+ "pidfile_windows.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/pkg/pidfile",
+ visibility = ["//visibility:public"],
+ deps = select({
+ "@rules_go//go/platform:windows": [
+ "//pkg/util/winutil",
+ ],
+ "//conditions:default": [],
+ }),
+)
+
+go_test(
+ name = "pidfile_test",
+ srcs = ["pidfile_test.go"],
+ embed = [":pidfile"],
+ deps = ["@com_github_stretchr_testify//assert"],
+)
diff --git a/pkg/privateactionrunner/adapters/config/constants.go b/pkg/privateactionrunner/adapters/config/constants.go
index 37dee28d50c7..d0895b6f11ae 100644
--- a/pkg/privateactionrunner/adapters/config/constants.go
+++ b/pkg/privateactionrunner/adapters/config/constants.go
@@ -34,6 +34,47 @@ type BundleInheritedAllowedAction struct {
ExpectedPrefix string
}
+// DefaultClusterAgentActionFQNs is a list of action FQNs that are enabled by default
+// when the agent runs as a Cluster Agent flavor.
+// Users can opt out by setting private_action_runner.default_actions_enabled to false.
+var DefaultClusterAgentActionFQNs = []string{
+ // k8s apps — Deployments
+ "com.datadoghq.kubernetes.apps.listDeployment",
+ "com.datadoghq.kubernetes.apps.getDeployment",
+ // k8s apps — DaemonSets
+ "com.datadoghq.kubernetes.apps.getDaemonSet",
+ "com.datadoghq.kubernetes.apps.listDaemonSet",
+ // k8s apps — StatefulSets
+ "com.datadoghq.kubernetes.apps.getStatefulSet",
+ "com.datadoghq.kubernetes.apps.listStatefulSet",
+ // k8s core — Pods
+ "com.datadoghq.kubernetes.core.getPod",
+ "com.datadoghq.kubernetes.core.listPod",
+ // k8s core — ConfigMaps
+ "com.datadoghq.kubernetes.core.getConfigMap",
+ "com.datadoghq.kubernetes.core.listConfigMap",
+ // k8s core — Services
+ "com.datadoghq.kubernetes.core.getService",
+ "com.datadoghq.kubernetes.core.listService",
+ // k8s core — Nodes
+ "com.datadoghq.kubernetes.core.getNode",
+ "com.datadoghq.kubernetes.core.listNode",
+ // k8s core — Events (diagnostic context)
+ "com.datadoghq.kubernetes.core.listEvent",
+ // k8s core — Namespaces
+ "com.datadoghq.kubernetes.core.listNamespace",
+ // k8s batch — Jobs
+ "com.datadoghq.kubernetes.batch.getJob",
+ "com.datadoghq.kubernetes.batch.listJob",
+ "com.datadoghq.kubernetes.batch.getCronJob",
+ "com.datadoghq.kubernetes.batch.listCronJob",
+}
+
+// DefaultActionFQNs is a list of action FQNs that are enabled by default
+// for non-Cluster-Agent flavors.
+// Users can opt out by setting private_action_runner.default_actions_enabled to false.
+var DefaultActionFQNs = []string{}
+
// BundleInheritedAllowedActions is a list of actions that are automatically allowed
// if at least one other action matching their expected prefix is allowed
var BundleInheritedAllowedActions = []BundleInheritedAllowedAction{
diff --git a/pkg/privateactionrunner/adapters/config/transform.go b/pkg/privateactionrunner/adapters/config/transform.go
index 692a5cdf635f..557fa8916a03 100644
--- a/pkg/privateactionrunner/adapters/config/transform.go
+++ b/pkg/privateactionrunner/adapters/config/transform.go
@@ -17,6 +17,7 @@ import (
"github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/actions"
"github.com/DataDog/datadog-agent/pkg/privateactionrunner/adapters/modes"
"github.com/DataDog/datadog-agent/pkg/privateactionrunner/util"
+ "github.com/DataDog/datadog-agent/pkg/util/flavor"
"github.com/DataDog/datadog-agent/pkg/version"
"github.com/DataDog/datadog-go/v5/statsd"
"k8s.io/apimachinery/pkg/util/sets"
@@ -99,6 +100,15 @@ func FromDDConfig(config config.Component) (*Config, error) {
func makeActionsAllowlist(config config.Component) map[string]sets.Set[string] {
allowlist := make(map[string]sets.Set[string])
actionFqns := config.GetStringSlice(setup.PARActionsAllowlist)
+
+ if config.GetBool(setup.PARDefaultActionsEnabled) {
+ if flavor.GetFlavor() == flavor.ClusterAgent {
+ actionFqns = append(actionFqns, DefaultClusterAgentActionFQNs...)
+ } else {
+ actionFqns = append(actionFqns, DefaultActionFQNs...)
+ }
+ }
+
for _, fqn := range actionFqns {
bundleName, actionName := actions.SplitFQN(fqn)
previous, ok := allowlist[bundleName]
diff --git a/pkg/privateactionrunner/adapters/config/transform_test.go b/pkg/privateactionrunner/adapters/config/transform_test.go
index 05a23e864281..9bc31e13e9ec 100644
--- a/pkg/privateactionrunner/adapters/config/transform_test.go
+++ b/pkg/privateactionrunner/adapters/config/transform_test.go
@@ -14,6 +14,7 @@ import (
configmock "github.com/DataDog/datadog-agent/pkg/config/mock"
"github.com/DataDog/datadog-agent/pkg/config/setup"
+ "github.com/DataDog/datadog-agent/pkg/util/flavor"
)
func TestGetBundleInheritedAllowedActions(t *testing.T) {
@@ -135,11 +136,6 @@ func TestGetDatadogHost(t *testing.T) {
endpoint: "https://api.ddog-gov.com.",
expected: "api.ddog-gov.com",
},
- {
- name: "handles gov cloud mil site",
- endpoint: "https://api.ddog-gov.mil.",
- expected: "api.ddog-gov.mil",
- },
{
name: "handles custom domain",
endpoint: "https://custom.endpoint.example.com.",
@@ -230,6 +226,76 @@ func TestFromDDConfig(t *testing.T) {
}
}
+func TestMakeActionsAllowlistDefaultActionsEnabled(t *testing.T) {
+ t.Run("cluster agent default actions are included when default_actions_enabled is true", func(t *testing.T) {
+ flavor.SetFlavor(flavor.ClusterAgent)
+ defer flavor.SetFlavor(flavor.DefaultAgent)
+
+ mockConfig := configmock.New(t)
+ mockConfig.SetWithoutSource(setup.PARActionsAllowlist, []string{})
+ mockConfig.SetWithoutSource(setup.PARDefaultActionsEnabled, true)
+
+ allowlist := makeActionsAllowlist(mockConfig)
+
+ assert.True(t, allowlist["com.datadoghq.kubernetes.apps"].Has("listDeployment"))
+ assert.True(t, allowlist["com.datadoghq.kubernetes.core"].Has("getPod"))
+ assert.True(t, allowlist["com.datadoghq.kubernetes.batch"].Has("getJob"))
+ // inherited actions should also be present for the kubernetes prefix
+ assert.True(t, allowlist["com.datadoghq.kubernetes.core"].Has("testConnection"))
+ })
+
+ t.Run("non-cluster-agent flavor returns empty default actions", func(t *testing.T) {
+ flavor.SetFlavor(flavor.DefaultAgent)
+
+ mockConfig := configmock.New(t)
+ mockConfig.SetWithoutSource(setup.PARActionsAllowlist, []string{})
+ mockConfig.SetWithoutSource(setup.PARDefaultActionsEnabled, true)
+
+ allowlist := makeActionsAllowlist(mockConfig)
+
+ assert.Empty(t, allowlist)
+ })
+
+ t.Run("default actions are excluded when default_actions_enabled is false", func(t *testing.T) {
+ flavor.SetFlavor(flavor.ClusterAgent)
+ defer flavor.SetFlavor(flavor.DefaultAgent)
+
+ mockConfig := configmock.New(t)
+ mockConfig.SetWithoutSource(setup.PARActionsAllowlist, []string{})
+ mockConfig.SetWithoutSource(setup.PARDefaultActionsEnabled, false)
+
+ allowlist := makeActionsAllowlist(mockConfig)
+
+ assert.Empty(t, allowlist)
+ })
+
+ t.Run("cluster agent default actions merge with explicit allowlist", func(t *testing.T) {
+ flavor.SetFlavor(flavor.ClusterAgent)
+ defer flavor.SetFlavor(flavor.DefaultAgent)
+
+ mockConfig := configmock.New(t)
+ mockConfig.SetWithoutSource(setup.PARActionsAllowlist, []string{"com.datadoghq.http.sendRequest"})
+ mockConfig.SetWithoutSource(setup.PARDefaultActionsEnabled, true)
+
+ allowlist := makeActionsAllowlist(mockConfig)
+
+ assert.True(t, allowlist["com.datadoghq.kubernetes.apps"].Has("listDeployment"))
+ assert.True(t, allowlist["com.datadoghq.http"].Has("sendRequest"))
+ })
+
+ t.Run("explicit allowlist works without default actions", func(t *testing.T) {
+ mockConfig := configmock.New(t)
+ mockConfig.SetWithoutSource(setup.PARActionsAllowlist, []string{"com.datadoghq.http.sendRequest"})
+ mockConfig.SetWithoutSource(setup.PARDefaultActionsEnabled, false)
+
+ allowlist := makeActionsAllowlist(mockConfig)
+
+ assert.True(t, allowlist["com.datadoghq.http"].Has("sendRequest"))
+ _, hasK8sApps := allowlist["com.datadoghq.kubernetes.apps"]
+ assert.False(t, hasK8sApps)
+ })
+}
+
func TestFromDDConfigPARRestrictedShellAllowedPaths(t *testing.T) {
mockConfig := configmock.New(t)
mockConfig.SetWithoutSource(setup.PARPrivateKey, "")
diff --git a/pkg/process/util/api/go.mod b/pkg/process/util/api/go.mod
index c777e57a0c30..c5528d0ca8c2 100644
--- a/pkg/process/util/api/go.mod
+++ b/pkg/process/util/api/go.mod
@@ -14,7 +14,7 @@ require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/comp/core/telemetry v0.61.0 // indirect
github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
@@ -193,7 +193,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/proto/go.mod b/pkg/proto/go.mod
index e0d48a01cb79..04a228314eb3 100644
--- a/pkg/proto/go.mod
+++ b/pkg/proto/go.mod
@@ -136,7 +136,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/remoteconfig/state/go.mod b/pkg/remoteconfig/state/go.mod
index 89ed5b756c90..c9446a20d97a 100644
--- a/pkg/remoteconfig/state/go.mod
+++ b/pkg/remoteconfig/state/go.mod
@@ -118,7 +118,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/security/module/cws.go b/pkg/security/module/cws.go
index ecbc1726feca..7a19ccf27d2d 100644
--- a/pkg/security/module/cws.go
+++ b/pkg/security/module/cws.go
@@ -22,7 +22,6 @@ import (
workloadmeta "github.com/DataDog/datadog-agent/comp/core/workloadmeta/def"
compression "github.com/DataDog/datadog-agent/comp/serializer/logscompression/def"
"github.com/DataDog/datadog-agent/pkg/eventmonitor"
- sbomapi "github.com/DataDog/datadog-agent/pkg/proto/pbgo/sbom"
"github.com/DataDog/datadog-agent/pkg/security/common"
"github.com/DataDog/datadog-agent/pkg/security/config"
"github.com/DataDog/datadog-agent/pkg/security/events"
@@ -49,9 +48,50 @@ const (
selftestPassedDelay = 60 * time.Minute
)
+// CommandServer is the gRPC server for the module command API
+type CommandServer struct {
+ started bool
+ grpcCmdServer *grpcutils.Server
+}
+
+// Start starts the command server
+func (c *CommandServer) Start() error {
+ if c.started {
+ return nil
+ }
+
+ if err := c.grpcCmdServer.Start(); err != nil {
+ return err
+ }
+
+ c.started = true
+ return nil
+}
+
+// Stop stops the command server
+func (c *CommandServer) Stop() {
+ c.grpcCmdServer.Stop()
+ c.started = false
+}
+
+// NewCommandServer initializes the gRPC server for the module command API
+func NewCommandServer(cfg *config.RuntimeSecurityConfig) (*CommandServer, error) {
+ cmdSocketPath, err := common.GetCmdSocketPath(cfg.SocketPath, cfg.CmdSocketPath)
+ if err != nil {
+ return nil, err
+ }
+
+ family, socketPath := socket.GetSocketAddress(cmdSocketPath)
+
+ return &CommandServer{
+ grpcCmdServer: grpcutils.NewServer(family, socketPath),
+ }, nil
+}
+
// CWSConsumer represents the system-probe module for the runtime security agent
type CWSConsumer struct {
sync.RWMutex
+
config *config.RuntimeSecurityConfig
probe *probe.Probe
statsdClient statsd.ClientInterface
@@ -61,11 +101,11 @@ type CWSConsumer struct {
ctx context.Context
cancelFnc context.CancelFunc
apiServer *APIServer
+ cmdServer *CommandServer
+ grpcEventServer *grpcutils.Server
rateLimiter *events.RateLimiter
sendStatsChan chan chan bool
eventSender events.EventSender
- grpcCmdServer *grpcutils.Server
- grpcEventServer *grpcutils.Server
ruleEngine *rulesmodule.RuleEngine
selfTester *selftests.SelfTester
selfTestCount int
@@ -75,7 +115,7 @@ type CWSConsumer struct {
}
// NewCWSConsumer initializes the module with options
-func NewCWSConsumer(evm *eventmonitor.EventMonitor, cfg *config.RuntimeSecurityConfig, wmeta workloadmeta.Component, filterStore workloadfilter.Component, opts Opts, compression compression.Component, ipc ipc.Component, hostname string, secretsComp secrets.Component) (*CWSConsumer, error) {
+func NewCWSConsumer(cmdServer *CommandServer, evm *eventmonitor.EventMonitor, cfg *config.RuntimeSecurityConfig, wmeta workloadmeta.Component, filterStore workloadfilter.Component, opts Opts, compression compression.Component, ipc ipc.Component, hostname string, secretsComp secrets.Component) (*CWSConsumer, error) {
crtelemcfg := telemetry.ContainersRunningTelemetryConfig{
RuntimeEnabled: cfg.RuntimeEnabled,
FIMEnabled: cfg.FIMEnabled,
@@ -102,13 +142,8 @@ func NewCWSConsumer(evm *eventmonitor.EventMonitor, cfg *config.RuntimeSecurityC
}
}
- cmdSocketPath, err := common.GetCmdSocketPath(cfg.SocketPath, cfg.CmdSocketPath)
- if err != nil {
- return nil, err
- }
-
- family, socketPath := socket.GetSocketAddress(cmdSocketPath)
- apiServer, err := NewAPIServer(cfg, evm.Probe, opts.MsgSender, evm.StatsdClient, selfTester, compression, hostname, secretsComp, filterStore)
+ stopChan := make(chan struct{})
+ apiServer, err := NewAPIServer(cfg, evm.Probe, opts.MsgSender, evm.StatsdClient, selfTester, compression, hostname, stopChan, secretsComp, filterStore)
if err != nil {
return nil, err
}
@@ -123,9 +158,9 @@ func NewCWSConsumer(evm *eventmonitor.EventMonitor, cfg *config.RuntimeSecurityC
ctx: ctx,
cancelFnc: cancelFnc,
apiServer: apiServer,
+ cmdServer: cmdServer,
rateLimiter: events.NewRateLimiter(cfg, evm.StatsdClient),
sendStatsChan: make(chan chan bool, 1),
- grpcCmdServer: grpcutils.NewServer(family, socketPath),
selfTester: selfTester,
reloader: NewReloader(),
crtelemetry: crtelemetry,
@@ -165,7 +200,8 @@ func NewCWSConsumer(evm *eventmonitor.EventMonitor, cfg *config.RuntimeSecurityC
// setup gRPC servers
seclog.Debugf("Registering API server")
- api.RegisterSecurityModuleCmdServer(c.grpcCmdServer.ServiceRegistrar(), c.apiServer)
+ api.RegisterSecurityModuleCmdServer(c.cmdServer.grpcCmdServer.ServiceRegistrar(), c.apiServer)
+
if cfg.EventGRPCServer != "security-agent" {
seclog.Infof("start security module event grpc server with %s", cfg.SocketPath)
@@ -175,9 +211,6 @@ func NewCWSConsumer(evm *eventmonitor.EventMonitor, cfg *config.RuntimeSecurityC
api.RegisterSecurityModuleEventServer(c.grpcEventServer.ServiceRegistrar(), c.apiServer)
}
- seclog.Debugf("Registering SBOM collector server")
- sbomapi.RegisterSBOMCollectorServer(c.grpcCmdServer.ServiceRegistrar(), c.apiServer)
-
// platform specific initialization
if err := c.init(evm, cfg, opts); err != nil {
return nil, err
@@ -207,7 +240,7 @@ func (c *CWSConsumer) ID() string {
// Start the module
func (c *CWSConsumer) Start() error {
- if err := c.grpcCmdServer.Start(); err != nil {
+ if err := c.cmdServer.Start(); err != nil {
return err
}
@@ -347,7 +380,7 @@ func (c *CWSConsumer) Stop() {
c.apiServer.Stop()
}
- c.grpcCmdServer.Stop()
+ c.cmdServer.Stop()
if c.grpcEventServer != nil {
c.grpcEventServer.Stop()
}
diff --git a/pkg/security/module/server.go b/pkg/security/module/server.go
index 83d0c2cef865..47c7957e2f7b 100644
--- a/pkg/security/module/server.go
+++ b/pkg/security/module/server.go
@@ -148,15 +148,23 @@ func mergeJSON(j1, j2 []byte) ([]byte, error) {
return append(data, j2[1:]...), nil
}
+// SBOMAPISServer represents a gRPC server in charge of receiving SBOM requests sent by
+type SBOMAPIServer struct {
+ sbomapi.UnimplementedSBOMCollectorServer
+
+ sboms chan *sbom.ScanResult
+ probe *sprobe.Probe
+ stopChan chan struct{}
+}
+
// APIServer represents a gRPC server in charge of receiving events sent by
// the runtime security system-probe module and forwards them to Datadog
type APIServer struct {
api.UnimplementedSecurityModuleEventServer
api.UnimplementedSecurityModuleCmdServer
- sbomapi.UnimplementedSBOMCollectorServer
+
events chan *api.SecurityEventMessage
activityDumps chan *api.ActivityDumpStreamMessage
- sboms chan *sbom.ScanResult
expiredEventsLock sync.RWMutex
expiredEvents map[rules.RuleID]*atomic.Int64
expiredDumps *atomic.Int64
@@ -830,7 +838,7 @@ func getEnvAsTags(cfg *config.RuntimeSecurityConfig) []string {
}
// NewAPIServer returns a new gRPC event server
-func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSender MsgSender[api.SecurityEventMessage], client statsd.ClientInterface, selfTester *selftests.SelfTester, compression compression.Component, hostname string, secretsComp secrets.Component, filterStore workloadfilter.Component) (*APIServer, error) {
+func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSender MsgSender[api.SecurityEventMessage], client statsd.ClientInterface, selfTester *selftests.SelfTester, compression compression.Component, hostname string, stopChan chan struct{}, secretsComp secrets.Component, filterStore workloadfilter.Component) (*APIServer, error) {
stopper := startstop.NewSerialStopper()
var containerFilter workloadfilter.FilterBundle
@@ -844,7 +852,6 @@ func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSen
as := &APIServer{
events: make(chan *api.SecurityEventMessage, cfg.EventServerBurst*3),
activityDumps: make(chan *api.ActivityDumpStreamMessage, model.MaxTracedCgroupsCount*2),
- sboms: make(chan *sbom.ScanResult, 100),
expiredEvents: make(map[rules.RuleID]*atomic.Int64),
expiredDumps: atomic.NewInt64(0),
statsdClient: client,
@@ -853,7 +860,7 @@ func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSen
cfg: cfg,
stopper: stopper,
selfTester: selfTester,
- stopChan: make(chan struct{}),
+ stopChan: stopChan,
msgSender: msgSender,
connEstablished: atomic.NewBool(false),
envAsTags: getEnvAsTags(cfg),
@@ -871,7 +878,6 @@ func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSen
}
as.collectOSReleaseData()
- as.collectSBOMS()
if as.msgSender == nil {
if cfg.SendPayloadsFromSystemProbe {
@@ -905,3 +911,15 @@ func NewAPIServer(cfg *config.RuntimeSecurityConfig, probe *sprobe.Probe, msgSen
return as, nil
}
+
+// NewSBOMAPIServer returns a new gRPC SBOM server
+func NewSBOMAPIServer(probe *sprobe.Probe, stopChan chan struct{}) *SBOMAPIServer {
+ as := &SBOMAPIServer{
+ probe: probe,
+ sboms: make(chan *sbom.ScanResult, 100),
+ stopChan: stopChan,
+ }
+
+ as.collectSBOMS()
+ return as
+}
diff --git a/pkg/security/module/server_linux.go b/pkg/security/module/server_linux.go
index e3b46c7ea996..2e5686aeb90c 100644
--- a/pkg/security/module/server_linux.go
+++ b/pkg/security/module/server_linux.go
@@ -308,7 +308,7 @@ func createSSHSessionPatcher(ev *model.Event, p *probe.Probe) sshSessionPatcher
return nil
}
-func (a *APIServer) collectSBOMS() {
+func (a *SBOMAPIServer) collectSBOMS() {
ebpfProbe, ok := a.probe.PlatformProbe.(*probe.EBPFProbe)
if !ok {
return
@@ -330,7 +330,7 @@ func (a *APIServer) collectSBOMS() {
}
// GetSBOMStream handles SBOM stream requests
-func (a *APIServer) GetSBOMStream(_ *sbompb.SBOMStreamParams, stream sbompb.SBOMCollector_GetSBOMStreamServer) error {
+func (a *SBOMAPIServer) GetSBOMStream(_ *sbompb.SBOMStreamParams, stream sbompb.SBOMCollector_GetSBOMStreamServer) error {
for {
select {
case <-stream.Context().Done():
diff --git a/pkg/security/module/server_other.go b/pkg/security/module/server_other.go
index 8424ad0fde76..203d873a03d2 100644
--- a/pkg/security/module/server_other.go
+++ b/pkg/security/module/server_other.go
@@ -31,4 +31,4 @@ func (a *APIServer) fillStatusPlatform(_ *api.Status) error {
return nil
}
-func (a *APIServer) collectSBOMS() {}
+func (a *SBOMAPIServer) collectSBOMS() {}
diff --git a/pkg/security/module/server_windows.go b/pkg/security/module/server_windows.go
index 4e9ebdc32436..035d6e0bb4c0 100644
--- a/pkg/security/module/server_windows.go
+++ b/pkg/security/module/server_windows.go
@@ -98,4 +98,4 @@ func (a *APIServer) RunSelfTest(_ context.Context, _ *api.RunSelfTestParams) (*a
func (a *APIServer) collectOSReleaseData() {}
-func (a *APIServer) collectSBOMS() {}
+func (a *SBOMAPIServer) collectSBOMS() {}
diff --git a/pkg/security/module/usage_consumer.go b/pkg/security/module/usage_consumer.go
new file mode 100644
index 000000000000..ef0d4637b86c
--- /dev/null
+++ b/pkg/security/module/usage_consumer.go
@@ -0,0 +1,58 @@
+// 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 module holds module related files
+package module
+
+import (
+ "github.com/DataDog/datadog-agent/pkg/eventmonitor"
+ sbomapi "github.com/DataDog/datadog-agent/pkg/proto/pbgo/sbom"
+ "github.com/DataDog/datadog-agent/pkg/security/config"
+ "github.com/DataDog/datadog-agent/pkg/security/probe"
+ "github.com/DataDog/datadog-agent/pkg/security/seclog"
+)
+
+// UsageConsumer is a minimal event consumer that brings up the security probe
+// (including the SBOM resolver) without the CWS rule engine or billing metrics.
+// It is active when runtime_security_config.sbom.enabled is true but
+// runtime_security_config.enabled is false, so that customers using only SBOM
+// enrichment are not billed for CWS.
+type UsageConsumer struct {
+ *CommandServer
+ config *config.RuntimeSecurityConfig
+ probe *probe.Probe
+}
+
+// NewUsageConsumer initializes the UsageConsumer
+func NewUsageConsumer(cmdServer *CommandServer, evm *eventmonitor.EventMonitor, cfg *config.RuntimeSecurityConfig, stopChan chan struct{}) (*UsageConsumer, error) {
+ c := &UsageConsumer{
+ CommandServer: cmdServer,
+ config: cfg,
+ probe: evm.Probe,
+ }
+
+ sbomServer := NewSBOMAPIServer(evm.Probe, stopChan)
+
+ seclog.Debugf("Registering SBOM collector server")
+ sbomapi.RegisterSBOMCollectorServer(c.grpcCmdServer.ServiceRegistrar(), sbomServer)
+
+ return c, nil
+}
+
+// ID returns the identifier for the usage consumer
+func (u *UsageConsumer) ID() string {
+ return "USAGE"
+}
+
+// Start starts the usage consumer
+func (u *UsageConsumer) Start() error {
+ seclog.Infof("usage consumer started")
+ return nil
+}
+
+// Stop stops the usage consumer
+func (u *UsageConsumer) Stop() {
+ seclog.Infof("usage consumer stopped")
+}
diff --git a/pkg/security/reporter/reporter.go b/pkg/security/reporter/reporter.go
index 999597f51e02..692b7a1d8944 100644
--- a/pkg/security/reporter/reporter.go
+++ b/pkg/security/reporter/reporter.go
@@ -10,13 +10,13 @@ import (
"time"
secrets "github.com/DataDog/datadog-agent/comp/core/secrets/def"
+ "github.com/DataDog/datadog-agent/comp/logs-library/pipeline"
logsconfig "github.com/DataDog/datadog-agent/comp/logs/agent/config"
compression "github.com/DataDog/datadog-agent/comp/serializer/logscompression/def"
pkgconfigsetup "github.com/DataDog/datadog-agent/pkg/config/setup"
"github.com/DataDog/datadog-agent/pkg/logs/client"
"github.com/DataDog/datadog-agent/pkg/logs/diagnostic"
"github.com/DataDog/datadog-agent/pkg/logs/message"
- "github.com/DataDog/datadog-agent/pkg/logs/pipeline"
"github.com/DataDog/datadog-agent/pkg/logs/sender"
"github.com/DataDog/datadog-agent/pkg/logs/sources"
seccommon "github.com/DataDog/datadog-agent/pkg/security/common"
diff --git a/pkg/security/resolvers/cgroup/resolver.go b/pkg/security/resolvers/cgroup/resolver.go
index e01a03b5ba43..48f354f961d0 100644
--- a/pkg/security/resolvers/cgroup/resolver.go
+++ b/pkg/security/resolvers/cgroup/resolver.go
@@ -126,11 +126,11 @@ func (cr *Resolver) removeCacheEntry(cacheEntry *cgroupModel.CacheEntry) {
cr.deletedCgroups.Inc()
}
-// syncOrDeleteCaheEntry uses the cgroupFS to check if the cgroup still contains pids.
+// syncOrDeleteCacheEntry uses the cgroupFS to check if the cgroup still contains pids.
// If there is no pid left, or the only one being the one we want to delete,
// remove the cgroup from the caches.
// Otherwise, sync it with new values.
-func (cr *Resolver) syncOrDeleteCaheEntry(cacheEntry *cgroupModel.CacheEntry, deletedPid uint32) {
+func (cr *Resolver) syncOrDeleteCacheEntry(cacheEntry *cgroupModel.CacheEntry, deletedPid uint32) {
// check if the cgroup still contains pids
pids, err := cr.cgroupFS.GetCGroupPids(string(cacheEntry.GetCGroupID()))
if err != nil {
@@ -174,6 +174,14 @@ func (cr *Resolver) pushNewCacheEntry(pid uint32, containerContext model.Contain
cr.addedCgroups.Inc()
+ // When the entry is created with a real pid (pid != 0), it means a process already exists
+ // in this cgroup — this covers both snapshot discovery and runtime cases where no prior
+ // Add() call was made. Entries pre-created with pid=0 (via Add()) will fire CGroupCreated
+ // later when AddPID transitions their count from 0 to 1.
+ if pid != 0 {
+ cr.NotifyListeners(CGroupCreated, cacheEntry)
+ }
+
return cacheEntry
}
@@ -313,7 +321,7 @@ func (cr *Resolver) AddPID(pid uint32, cgroupContext model.CGroupContext) *cgrou
// it means that the process has been migrated to a different cgroup.
if cacheEntry.RemovePID(pid) == 0 {
// try to sync the cgroup with the pid in order to detect the migration.
- cr.syncOrDeleteCaheEntry(cacheEntry, pid)
+ cr.syncOrDeleteCacheEntry(cacheEntry, pid)
}
}
@@ -421,7 +429,7 @@ func (cr *Resolver) deleteCacheEntryPID(pid uint32, cacheEntry *cgroupModel.Cach
// check if the cacheEntry should be deleted
if cacheEntry.RemovePID(pid) == 0 {
- cr.syncOrDeleteCaheEntry(cacheEntry, pid)
+ cr.syncOrDeleteCacheEntry(cacheEntry, pid)
}
}
diff --git a/pkg/security/resolvers/resolvers_ebpf.go b/pkg/security/resolvers/resolvers_ebpf.go
index b1eb6b1d7f55..66f023769b7d 100644
--- a/pkg/security/resolvers/resolvers_ebpf.go
+++ b/pkg/security/resolvers/resolvers_ebpf.go
@@ -123,6 +123,9 @@ func NewEBPFResolvers(config *config.Config, manager *manager.Manager, statsdCli
}
if config.RuntimeSecurity.SBOMResolverEnabled {
+ if err := cgroupsResolver.RegisterListener(cgroup.CGroupCreated, sbomResolver.OnCGroupCreatedEvent); err != nil {
+ return nil, err
+ }
if err := cgroupsResolver.RegisterListener(cgroup.CGroupDeleted, sbomResolver.OnCGroupDeletedEvent); err != nil {
return nil, err
}
diff --git a/pkg/security/resolvers/sbom/resolver.go b/pkg/security/resolvers/sbom/resolver.go
index 154306709216..b3ed9e9460a8 100644
--- a/pkg/security/resolvers/sbom/resolver.go
+++ b/pkg/security/resolvers/sbom/resolver.go
@@ -685,6 +685,15 @@ func (r *Resolver) ResolvePackage(pc *model.ProcessContext, file *model.FileEven
}
sbom.Lock()
+
+ // If the SBOM scan hasn't completed yet, queue this access so it is replayed once
+ // the scan finishes (processPendingFileEvents is called at the end of analyzeWorkload).
+ if !sbom.IsComputed() {
+ sbom.Unlock()
+ r.queuePendingFileEvent(pc.ContainerContext.ContainerID, file.PathnameStr, file.Mode, pc.UID)
+ return nil
+ }
+
defer sbom.Unlock()
// replay any file accesses that arrived before the SBOM was ready
@@ -858,6 +867,25 @@ func (r *Resolver) GetWorkload(id containerutils.ContainerID) *SBOM {
return sbom
}
+// OnCGroupCreatedEvent is used to handle a CGroupCreated event. It queues an SBOM scan for
+// the container as soon as the cgroup is known, without waiting for tag resolution.
+func (r *Resolver) OnCGroupCreatedEvent(cgroup *cgroupModel.CacheEntry) {
+ id := cgroup.GetContainerID()
+ if len(id) == 0 {
+ return
+ }
+
+ r.sbomsLock.Lock()
+ defer r.sbomsLock.Unlock()
+
+ if _, ok := r.sboms.Get(id); ok {
+ return
+ }
+
+ sbom := r.newSBOM(id, cgroup, workloadKey(id))
+ r.triggerScan(sbom)
+}
+
// OnCGroupDeletedEvent is used to handle a CGroupDeleted event
func (r *Resolver) OnCGroupDeletedEvent(cgroup *cgroupModel.CacheEntry) {
if !cgroup.IsContainerContextNull() {
diff --git a/pkg/security/secl/go.mod b/pkg/security/secl/go.mod
index 5f97aa6fa06e..54231dbf47d6 100644
--- a/pkg/security/secl/go.mod
+++ b/pkg/security/secl/go.mod
@@ -139,7 +139,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/security/seclwin/go.mod b/pkg/security/seclwin/go.mod
index 459fcd443cf2..97688d211b83 100644
--- a/pkg/security/seclwin/go.mod
+++ b/pkg/security/seclwin/go.mod
@@ -120,7 +120,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/security/tests/module_tester_linux.go b/pkg/security/tests/module_tester_linux.go
index 03ab509c3f00..0dee64bb34dd 100644
--- a/pkg/security/tests/module_tester_linux.go
+++ b/pkg/security/tests/module_tester_linux.go
@@ -802,8 +802,13 @@ func newTestModule(t testing.TB, macroDefs []*rules.MacroDefinition, ruleDefs []
if !opts.staticOpts.disableRuntimeSecurity {
msgSender := newFakeMsgSender(testMod)
+ cmdServer, err := module.NewCommandServer(secconfig.RuntimeSecurity)
+ if err != nil {
+ return nil, err
+ }
+
compression := logscompression.NewComponent()
- cws, err := module.NewCWSConsumer(testMod.eventMonitor, secconfig.RuntimeSecurity, nil, nil, module.Opts{EventSender: testMod, MsgSender: msgSender}, compression, ipcComp, functionalTestsHostname, secretsnoopimpl.NewComponent().Comp)
+ cws, err := module.NewCWSConsumer(cmdServer, testMod.eventMonitor, secconfig.RuntimeSecurity, nil, nil, module.Opts{EventSender: testMod, MsgSender: msgSender}, compression, ipcComp, functionalTestsHostname, secretsnoopimpl.NewComponent().Comp)
if err != nil {
return nil, fmt.Errorf("failed to create module: %w", err)
}
diff --git a/pkg/security/tests/module_tester_windows.go b/pkg/security/tests/module_tester_windows.go
index bec375eccbc2..9e83940b0b57 100644
--- a/pkg/security/tests/module_tester_windows.go
+++ b/pkg/security/tests/module_tester_windows.go
@@ -178,7 +178,12 @@ func newTestModule(t testing.TB, macroDefs []*rules.MacroDefinition, ruleDefs []
var ruleSetloadedErr *multierror.Error
if !opts.staticOpts.disableRuntimeSecurity {
compression := logscompression.NewComponent()
- cws, err := module.NewCWSConsumer(testMod.eventMonitor, secconfig.RuntimeSecurity, nil, nil, module.Opts{EventSender: testMod}, compression, ipcComp, functionalTestsHostname, secretsnoopimpl.NewComponent().Comp)
+ cmdServer, err := module.NewCommandServer(secconfig.RuntimeSecurity)
+ if err != nil {
+ return nil, err
+ }
+
+ cws, err := module.NewCWSConsumer(cmdServer, testMod.eventMonitor, secconfig.RuntimeSecurity, nil, nil, module.Opts{EventSender: testMod}, compression, ipcComp, functionalTestsHostname, secretsnoopimpl.NewComponent().Comp)
if err != nil {
return nil, fmt.Errorf("failed to create module: %w", err)
}
diff --git a/pkg/serializer/go.mod b/pkg/serializer/go.mod
index 44e96bc2b92f..fdeda707d2bc 100644
--- a/pkg/serializer/go.mod
+++ b/pkg/serializer/go.mod
@@ -244,7 +244,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/serverless/trace/trace.go b/pkg/serverless/trace/trace.go
index 962dcf417126..7bb37cbdd68b 100644
--- a/pkg/serverless/trace/trace.go
+++ b/pkg/serverless/trace/trace.go
@@ -11,6 +11,7 @@ import (
"os"
"strconv"
"strings"
+ "time"
"github.com/DataDog/datadog-go/v5/statsd"
@@ -193,9 +194,17 @@ func (t *serverlessTraceAgent) SetTags(tags map[string]string) {
}
}
-// Stop stops the trace agent
+// Stop cancels the trace agent's context and waits for its Run loop to finish.
+// The Run loop handles the full shutdown sequence: draining in-flight traces,
+// flushing stats producers, sending buffered data to the network, and stopping
+// all writers and components.
func (t *serverlessTraceAgent) Stop() {
t.cancel()
+ ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
+ defer cancel()
+ if err := t.ta.WaitForStopped(ctx); err != nil {
+ log.Warnf("Trace agent did not stop in time, continuing shutdown: %v", err)
+ }
}
// SetTargetTPS sets the target TPS to the trace agent.
diff --git a/pkg/ssi/testutils/go.mod b/pkg/ssi/testutils/go.mod
index 58e84caac5ce..b0dfbb71e4c1 100644
--- a/pkg/ssi/testutils/go.mod
+++ b/pkg/ssi/testutils/go.mod
@@ -133,7 +133,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/status/health/go.mod b/pkg/status/health/go.mod
index 698f8f5476ef..7eceabca43a7 100644
--- a/pkg/status/health/go.mod
+++ b/pkg/status/health/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/system-probe/config/config.go b/pkg/system-probe/config/config.go
index f83b4329ad51..588c689db432 100644
--- a/pkg/system-probe/config/config.go
+++ b/pkg/system-probe/config/config.go
@@ -140,6 +140,7 @@ func load() (*types.Config, error) {
}
if csmEnabled ||
cfg.GetBool(secNS("fim_enabled")) ||
+ cfg.GetBool(secNS("sbom.enabled")) ||
(usmEnabled && cfg.GetBool(smNS("enable_event_stream"))) ||
(c.ModuleIsEnabled(NetworkTracerModule) && cfg.GetBool(evNS("network_process.enabled"))) ||
gpuEnabled ||
diff --git a/pkg/tagger/types/go.mod b/pkg/tagger/types/go.mod
index b7d26be16a0e..33a879c2ff72 100644
--- a/pkg/tagger/types/go.mod
+++ b/pkg/tagger/types/go.mod
@@ -104,7 +104,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/tagset/go.mod b/pkg/tagset/go.mod
index 8bbe8b0280e7..73d9d526f62e 100644
--- a/pkg/tagset/go.mod
+++ b/pkg/tagset/go.mod
@@ -116,7 +116,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/telemetry/go.mod b/pkg/telemetry/go.mod
index edc5b3de7995..daa39c103beb 100644
--- a/pkg/telemetry/go.mod
+++ b/pkg/telemetry/go.mod
@@ -135,7 +135,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/trace/BUILD.bazel b/pkg/trace/BUILD.bazel
index 927be6ae3c48..4fc74bfd7fb3 100644
--- a/pkg/trace/BUILD.bazel
+++ b/pkg/trace/BUILD.bazel
@@ -1,2 +1,8 @@
-# gazelle:ignore
-# Not yet migrated to Bazel. Only pkg/trace/log is migrated.
+load("@rules_go//go:def.bzl", "go_library")
+
+go_library(
+ name = "trace",
+ srcs = ["doc.go"],
+ importpath = "github.com/DataDog/datadog-agent/pkg/trace",
+ visibility = ["//visibility:public"],
+)
diff --git a/pkg/trace/agent/agent.go b/pkg/trace/agent/agent.go
index c699c9413d44..0bc5bbb299ee 100644
--- a/pkg/trace/agent/agent.go
+++ b/pkg/trace/agent/agent.go
@@ -162,6 +162,10 @@ type Agent struct {
// Used to synchronize on a clean exit
ctx context.Context
+ // stopped is closed when Run() returns, allowing callers to wait for
+ // the agent's full shutdown sequence to complete.
+ stopped chan struct{}
+
firstSpanMap sync.Map
processWg *sync.WaitGroup
@@ -211,6 +215,7 @@ func NewAgent(ctx context.Context, conf *config.AgentConfig, telemetryCollector
InV1: inV1,
conf: conf,
ctx: ctx,
+ stopped: make(chan struct{}),
DebugServer: api.NewDebugServer(conf),
Statsd: statsd,
Timing: timing,
@@ -227,6 +232,7 @@ func NewAgent(ctx context.Context, conf *config.AgentConfig, telemetryCollector
// Run starts routers routines and individual pieces then stop them when the exit order is received.
func (a *Agent) Run() {
+ defer close(a.stopped)
a.Timing.Start()
defer a.Timing.Stop()
for _, starter := range []interface{ Start() }{
@@ -287,6 +293,18 @@ func (a *Agent) FlushSync() {
}
}
+// WaitForStopped blocks until the agent's Run() method has fully returned,
+// meaning all components have been stopped and the shutdown sequence is complete.
+// It returns nil on clean shutdown, or the context's error if ctx is done first.
+func (a *Agent) WaitForStopped(ctx context.Context) error {
+ select {
+ case <-a.stopped:
+ return nil
+ case <-ctx.Done():
+ return ctx.Err()
+ }
+}
+
// UpdateAPIKey receives the API Key update signal and propagates it across all internal
// components that rely on API Key configuration:
// - HTTP Receiver (used in reverse proxies)
@@ -341,9 +359,28 @@ func (a *Agent) loop() {
//Wait to process any leftover payloads in flight before closing components that might be needed
a.processWg.Wait()
+ // Phase 1: Stop stats producers. Their Stop() methods flush remaining stats
+ // into the StatsWriter's buffer (via Write calls).
for _, stopper := range []interface{ Stop() }{
a.Concentrator,
a.ClientStatsAggregator,
+ } {
+ if stopper != nil && !reflect.ValueOf(stopper).IsNil() {
+ stopper.Stop()
+ }
+ }
+
+ // Phase 2: In sync mode, flush all buffered data to the network.
+ // Stats buffered by Concentrator.Stop() and ClientStatsAggregator.Stop()
+ // above are sent here, along with any buffered traces.
+ if a.conf.SynchronousFlushing {
+ a.FlushSync()
+ }
+
+ // Phase 3: Stop remaining components. Writers have nothing left to send
+ // since FlushSync already drained their buffers (sync mode) or they flush
+ // on their own during Stop (async mode).
+ for _, stopper := range []interface{ Stop() }{
a.TraceWriter,
a.TraceWriterV1,
a.StatsWriter,
diff --git a/pkg/trace/agent/agent_test.go b/pkg/trace/agent/agent_test.go
index ef51b0231224..65e4da177d25 100644
--- a/pkg/trace/agent/agent_test.go
+++ b/pkg/trace/agent/agent_test.go
@@ -70,6 +70,7 @@ type mockTraceWriter struct {
payloads []*writer.SampledChunks
payloadsV1 []*writer.SampledChunksV1
apiKey string
+ flushed int
}
func (m *mockTraceWriter) Stop() {}
@@ -87,7 +88,10 @@ func (m *mockTraceWriter) WriteChunksV1(pkg *writer.SampledChunksV1) {
}
func (m *mockTraceWriter) FlushSync() error {
- panic("not implemented")
+ m.mu.Lock()
+ defer m.mu.Unlock()
+ m.flushed++
+ return nil
}
func (m *mockTraceWriter) UpdateAPIKey(_, newKey string) {
@@ -4525,3 +4529,135 @@ func TestTraceChunkContainsProbabilitySamplingV1(t *testing.T) {
})
}
}
+
+func TestWaitForStopped(t *testing.T) {
+ cfg := config.New()
+ cfg.Endpoints[0].APIKey = "test"
+ cfg.ReceiverPort = 0
+ cfg.ReceiverSocket = filepath.Join(t.TempDir(), "trace.sock")
+
+ ctx, cancel := context.WithCancel(context.Background())
+ agnt := NewTestAgent(ctx, cfg, telemetry.NewNoopCollector())
+
+ go agnt.Run()
+
+ // WaitForStopped should not return until we cancel the context.
+ done := make(chan struct{})
+ go func() {
+ agnt.WaitForStopped(context.Background())
+ close(done)
+ }()
+
+ select {
+ case <-done:
+ t.Fatal("WaitForStopped returned before context was cancelled")
+ case <-time.After(50 * time.Millisecond):
+ // expected: still blocked
+ }
+
+ cancel()
+
+ select {
+ case <-done:
+ // expected: returned after cancel
+ case <-time.After(5 * time.Second):
+ t.Fatal("WaitForStopped did not return after context cancellation")
+ }
+}
+
+func TestShutdownFlushSyncInSyncMode(t *testing.T) {
+ // Verify that in sync mode, stats produced by the concentrator during
+ // shutdown are flushed to the network. This is the bug that was fixed
+ // by adding the FlushSync call in loop() between stopping stats
+ // producers and stopping writers.
+
+ received := make(chan struct{}, 1)
+ srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) {
+ select {
+ case received <- struct{}{}:
+ default:
+ }
+ w.WriteHeader(http.StatusOK)
+ }))
+ defer srv.Close()
+
+ cfg := config.New()
+ cfg.Endpoints[0].APIKey = "test"
+ cfg.Endpoints[0].Host = srv.URL
+ cfg.ReceiverPort = 0
+ cfg.ReceiverSocket = filepath.Join(t.TempDir(), "trace.sock")
+ cfg.SynchronousFlushing = true
+ cfg.StatsWriter = &config.WriterConfig{ConnectionLimit: 20, QueueSize: 20}
+ cfg.BucketInterval = 2 * time.Second
+ cfg.DefaultEnv = "test"
+ cfg.Hostname = "testhost"
+
+ ctx, cancel := context.WithCancel(context.Background())
+ agnt := NewAgent(ctx, cfg, telemetry.NewNoopCollector(), &statsd.NoOpClient{}, gzip.NewComponent())
+
+ // Use real Concentrator (backed by real StatsWriter) but mock trace writers.
+ agnt.TraceWriter = &mockTraceWriter{apiKey: "test"}
+ agnt.TraceWriterV1 = &mockTraceWriter{apiKey: "test"}
+
+ go agnt.Run()
+
+ // Send a trace payload so the concentrator has stats to flush.
+ now := time.Now()
+ span := &pb.Span{
+ TraceID: 1,
+ SpanID: 1,
+ Service: "test-service",
+ Name: "test-op",
+ Resource: "/test",
+ Start: now.Add(-time.Second).UnixNano(),
+ Duration: (500 * time.Millisecond).Nanoseconds(),
+ }
+ payload := &api.Payload{
+ TracerPayload: testutil.TracerPayloadWithChunk(testutil.TraceChunkWithSpan(span)),
+ Source: info.NewReceiverStats(true).GetTagStats(info.Tags{}),
+ }
+
+ select {
+ case agnt.In <- payload:
+ case <-time.After(2 * time.Second):
+ t.Fatal("Timeout sending payload to agent")
+ }
+
+ // Give the worker time to process the payload and feed the concentrator.
+ time.Sleep(100 * time.Millisecond)
+
+ // Trigger shutdown. The loop() shutdown sequence should:
+ // 1. Drain workers
+ // 2. Stop concentrator (flushes stats to StatsWriter buffer)
+ // 3. FlushSync (sends buffer to our test server)
+ // 4. Stop writers
+ cancel()
+ agnt.WaitForStopped(context.Background())
+
+ select {
+ case <-received:
+ // Stats were flushed to the test server during shutdown.
+ case <-time.After(5 * time.Second):
+ t.Fatal("Stats were not flushed to the server during shutdown")
+ }
+}
+
+func TestWaitForStoppedTimeout(t *testing.T) {
+ cfg := config.New()
+ cfg.Endpoints[0].APIKey = "test"
+ cfg.ReceiverPort = 0
+ cfg.ReceiverSocket = filepath.Join(t.TempDir(), "trace.sock")
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ agnt := NewTestAgent(ctx, cfg, telemetry.NewNoopCollector())
+
+ go agnt.Run()
+
+ // WaitForStopped with a short timeout should return context.DeadlineExceeded
+ // while the agent is still running.
+ waitCtx, waitCancel := context.WithTimeout(context.Background(), 50*time.Millisecond)
+ defer waitCancel()
+ err := agnt.WaitForStopped(waitCtx)
+ assert.ErrorIs(t, err, context.DeadlineExceeded)
+}
diff --git a/pkg/trace/api/tracer_flare.go b/pkg/trace/api/tracer_flare.go
index bf4fcc3bf3c7..2d62ad210dbe 100644
--- a/pkg/trace/api/tracer_flare.go
+++ b/pkg/trace/api/tracer_flare.go
@@ -21,8 +21,8 @@ const (
serverlessFlareEndpointPath = "/api/ui/support/serverless/flare"
)
-var ddURLRegexp = regexp.MustCompile(`^app(\.[a-z]{2,}\d{1,2})?\.(datad(oghq|0g)\.(com|eu)|ddog-gov\.(com|mil))$`)
-var ddNoSubDomainRegexp = regexp.MustCompile(`^(datad(oghq|0g)\.(com|eu)|ddog-gov\.(com|mil))$`)
+var ddURLRegexp = regexp.MustCompile(`^app(\.[a-z]{2,}\d{1,2})?\.(datad(oghq|0g)\.(com|eu)|ddog-gov\.com)$`)
+var ddNoSubDomainRegexp = regexp.MustCompile(`^(datad(oghq|0g)\.(com|eu)|ddog-gov\.com)$`)
var versionNumsddURLRegexp = regexp.MustCompile(`(\d+)\.(\d+)\.(\d+)`)
type endpointGetter func(url *url.URL, agentVersion string) *url.URL
diff --git a/pkg/trace/api/tracer_flare_test.go b/pkg/trace/api/tracer_flare_test.go
index f8995c478848..f5790a51c240 100644
--- a/pkg/trace/api/tracer_flare_test.go
+++ b/pkg/trace/api/tracer_flare_test.go
@@ -115,42 +115,6 @@ func TestGetServerlessFlareEndpoint(t *testing.T) {
// Don't change custom domain
assert.Equal(t, "https://datadog.random.com/api/ui/support/serverless/flare", testURL.String())
})
-
- t.Run("ddog-gov.com without subdomain", func(t *testing.T) {
- site := "ddog-gov.com"
- testURL, err := url.Parse(site)
- assert.Nil(t, err)
-
- getServerlessFlareEndpoint(testURL, agentVersion)
- assert.Equal(t, "https://7-50-0-flare.ddog-gov.com/api/ui/support/serverless/flare", testURL.String())
- })
-
- t.Run("ddog-gov.com with subdomain", func(t *testing.T) {
- site := "https://app.ddog-gov.com/test"
- testURL, err := url.Parse(site)
- assert.Nil(t, err)
-
- getServerlessFlareEndpoint(testURL, agentVersion)
- assert.Equal(t, "https://7-50-0-flare.ddog-gov.com/api/ui/support/serverless/flare", testURL.String())
- })
-
- t.Run("ddog-gov.mil without subdomain", func(t *testing.T) {
- site := "ddog-gov.mil"
- testURL, err := url.Parse(site)
- assert.Nil(t, err)
-
- getServerlessFlareEndpoint(testURL, agentVersion)
- assert.Equal(t, "https://7-50-0-flare.ddog-gov.mil/api/ui/support/serverless/flare", testURL.String())
- })
-
- t.Run("ddog-gov.mil with subdomain", func(t *testing.T) {
- site := "https://app.ddog-gov.mil/test"
- testURL, err := url.Parse(site)
- assert.Nil(t, err)
-
- getServerlessFlareEndpoint(testURL, agentVersion)
- assert.Equal(t, "https://7-50-0-flare.ddog-gov.mil/api/ui/support/serverless/flare", testURL.String())
- })
}
func TestTracerFlareProxyHandler(t *testing.T) {
diff --git a/pkg/trace/config/BUILD.bazel b/pkg/trace/config/BUILD.bazel
new file mode 100644
index 000000000000..87b410129fbf
--- /dev/null
+++ b/pkg/trace/config/BUILD.bazel
@@ -0,0 +1,36 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "config",
+ srcs = [
+ "client.go",
+ "config.go",
+ "peer_tags.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/pkg/trace/config",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//comp/core/tagger/origindetection",
+ "//pkg/obfuscate",
+ "//pkg/opentelemetry-mapping-go/otlp/attributes",
+ "//pkg/remoteconfig/state",
+ "//pkg/trace/log",
+ "//pkg/trace/semantics",
+ "//pkg/trace/traceutil",
+ ],
+)
+
+go_test(
+ name = "config_test",
+ srcs = [
+ "client_test.go",
+ "config_test.go",
+ "peer_tags_test.go",
+ ],
+ embed = [":config"],
+ deps = [
+ "//pkg/obfuscate",
+ "//pkg/trace/semantics",
+ "@com_github_stretchr_testify//assert",
+ ],
+)
diff --git a/pkg/trace/go.mod b/pkg/trace/go.mod
index 00a9bb98ec81..410be8a536df 100644
--- a/pkg/trace/go.mod
+++ b/pkg/trace/go.mod
@@ -243,7 +243,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/pkg/trace/log/go.mod b/pkg/trace/log/go.mod
index d0d01bdca98e..1355ca864659 100644
--- a/pkg/trace/log/go.mod
+++ b/pkg/trace/log/go.mod
@@ -117,7 +117,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/trace/otel/go.mod b/pkg/trace/otel/go.mod
index ec05fa36e48b..0209ad782b93 100644
--- a/pkg/trace/otel/go.mod
+++ b/pkg/trace/otel/go.mod
@@ -292,7 +292,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/trace/sampler/BUILD.bazel b/pkg/trace/sampler/BUILD.bazel
new file mode 100644
index 000000000000..1204500a6376
--- /dev/null
+++ b/pkg/trace/sampler/BUILD.bazel
@@ -0,0 +1,67 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "sampler",
+ srcs = [
+ "catalog.go",
+ "coresampler.go",
+ "dynamic_config.go",
+ "env.go",
+ "metrics.go",
+ "prioritysampler.go",
+ "probabilistic.go",
+ "rare_sampler.go",
+ "sampler.go",
+ "scoresampler.go",
+ "signature.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/pkg/trace/sampler",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//pkg/proto/pbgo/trace",
+ "//pkg/proto/pbgo/trace/idx",
+ "//pkg/trace/config",
+ "//pkg/trace/log",
+ "//pkg/trace/semantics",
+ "//pkg/trace/traceutil",
+ "//pkg/trace/watchdog",
+ "@com_github_datadog_datadog_go_v5//statsd",
+ "@org_golang_x_time//rate",
+ "@org_uber_go_atomic//:atomic",
+ ],
+)
+
+go_test(
+ name = "sampler_test",
+ srcs = [
+ "catalog_test.go",
+ "coresampler_test.go",
+ "dynamic_config_test.go",
+ "metrics_test.go",
+ "prioritysampler_test.go",
+ "probabilistic_test.go",
+ "rare_sampler_test.go",
+ "scoresampler_test.go",
+ "signature_test.go",
+ "spansampler_test.go",
+ ],
+ embed = [":sampler"],
+ deps = [
+ "//pkg/proto/pbgo/trace",
+ "//pkg/proto/pbgo/trace/idx",
+ "//pkg/trace/config",
+ "//pkg/trace/traceutil",
+ "@com_github_datadog_datadog_go_v5//statsd/mocks",
+ "@com_github_golang_mock//gomock",
+ "@com_github_open_telemetry_opentelemetry_collector_contrib_processor_probabilisticsamplerprocessor//:probabilisticsamplerprocessor",
+ "@com_github_stretchr_testify//assert",
+ "@com_github_stretchr_testify//require",
+ "@io_k8s_apimachinery//pkg/util/rand",
+ "@io_opentelemetry_go_collector_consumer//:consumer",
+ "@io_opentelemetry_go_collector_pdata//pcommon",
+ "@io_opentelemetry_go_collector_pdata//ptrace",
+ "@io_opentelemetry_go_collector_processor_processortest//:processortest",
+ "@org_golang_google_protobuf//proto",
+ "@org_uber_go_atomic//:atomic",
+ ],
+)
diff --git a/pkg/trace/semantics/BUILD.bazel b/pkg/trace/semantics/BUILD.bazel
new file mode 100644
index 000000000000..f1e0ae126c4b
--- /dev/null
+++ b/pkg/trace/semantics/BUILD.bazel
@@ -0,0 +1,36 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "semantics",
+ srcs = [
+ "lookup.go",
+ "lookup_dd.go",
+ "lookup_pdata.go",
+ "registry.go",
+ "semantics.go",
+ ],
+ embedsrcs = ["mappings.json"],
+ importpath = "github.com/DataDog/datadog-agent/pkg/trace/semantics",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//pkg/proto/pbgo/trace/idx",
+ "@io_opentelemetry_go_collector_pdata//pcommon",
+ ],
+)
+
+go_test(
+ name = "semantics_test",
+ srcs = [
+ "lookup_dd_test.go",
+ "lookup_pdata_test.go",
+ "lookup_test.go",
+ "semantics_test.go",
+ ],
+ embed = [":semantics"],
+ deps = [
+ "//pkg/proto/pbgo/trace/idx",
+ "@com_github_stretchr_testify//assert",
+ "@com_github_stretchr_testify//require",
+ "@io_opentelemetry_go_collector_pdata//pcommon",
+ ],
+)
diff --git a/pkg/trace/stats/BUILD.bazel b/pkg/trace/stats/BUILD.bazel
new file mode 100644
index 000000000000..841386c5cdad
--- /dev/null
+++ b/pkg/trace/stats/BUILD.bazel
@@ -0,0 +1,59 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "stats",
+ srcs = [
+ "aggregation.go",
+ "client_stats_aggregator.go",
+ "concentrator.go",
+ "span_concentrator.go",
+ "statsraw.go",
+ "weight.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/pkg/trace/stats",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//pkg/obfuscate",
+ "//pkg/proto/pbgo/trace",
+ "//pkg/proto/pbgo/trace/idx",
+ "//pkg/trace/config",
+ "//pkg/trace/log",
+ "//pkg/trace/semantics",
+ "//pkg/trace/traceutil",
+ "//pkg/trace/version",
+ "//pkg/trace/watchdog",
+ "@com_github_datadog_datadog_go_v5//statsd",
+ "@com_github_datadog_sketches_go//ddsketch",
+ "@com_github_datadog_sketches_go//ddsketch/mapping",
+ "@com_github_datadog_sketches_go//ddsketch/pb/sketchpb",
+ "@com_github_datadog_sketches_go//ddsketch/store",
+ "@org_golang_google_genproto_googleapis_rpc//code",
+ "@org_golang_google_protobuf//proto",
+ ],
+)
+
+go_test(
+ name = "stats_test",
+ srcs = [
+ "aggregation_test.go",
+ "client_stats_aggregator_test.go",
+ "concentrator_test.go",
+ "statsraw_test.go",
+ "weight_test.go",
+ ],
+ embed = [":stats"],
+ deps = [
+ "//pkg/proto/pbgo/trace",
+ "//pkg/proto/pbgo/trace/idx",
+ "//pkg/trace/config",
+ "//pkg/trace/sampler",
+ "//pkg/trace/traceutil",
+ "@com_github_datadog_datadog_go_v5//statsd",
+ "@com_github_datadog_sketches_go//ddsketch",
+ "@com_github_datadog_sketches_go//ddsketch/pb/sketchpb",
+ "@com_github_google_gofuzz//:gofuzz",
+ "@com_github_stretchr_testify//assert",
+ "@com_github_stretchr_testify//require",
+ "@org_golang_google_protobuf//proto",
+ ],
+)
diff --git a/pkg/trace/stats/go.mod b/pkg/trace/stats/go.mod
index 934d6d2af154..6cf218346aef 100644
--- a/pkg/trace/stats/go.mod
+++ b/pkg/trace/stats/go.mod
@@ -160,7 +160,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/trace/traceutil/go.mod b/pkg/trace/traceutil/go.mod
index cfe4c9725074..88a324447ebc 100644
--- a/pkg/trace/traceutil/go.mod
+++ b/pkg/trace/traceutil/go.mod
@@ -121,7 +121,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/trace/version/BUILD.bazel b/pkg/trace/version/BUILD.bazel
new file mode 100644
index 000000000000..1d14bdb4b994
--- /dev/null
+++ b/pkg/trace/version/BUILD.bazel
@@ -0,0 +1,20 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "version",
+ srcs = ["version.go"],
+ importpath = "github.com/DataDog/datadog-agent/pkg/trace/version",
+ visibility = ["//visibility:public"],
+ deps = ["//pkg/proto/pbgo/trace"],
+)
+
+go_test(
+ name = "version_test",
+ srcs = ["version_test.go"],
+ embed = [":version"],
+ deps = [
+ "//pkg/proto/pbgo/trace",
+ "//pkg/trace/traceutil",
+ "@com_github_stretchr_testify//assert",
+ ],
+)
diff --git a/pkg/trace/watchdog/BUILD.bazel b/pkg/trace/watchdog/BUILD.bazel
new file mode 100644
index 000000000000..8050310dc8b1
--- /dev/null
+++ b/pkg/trace/watchdog/BUILD.bazel
@@ -0,0 +1,80 @@
+load("@rules_go//go:def.bzl", "go_library", "go_test")
+
+go_library(
+ name = "watchdog",
+ srcs = [
+ "cpu.go",
+ "cpu_aix.go",
+ "cpu_windows.go",
+ "info.go",
+ "logonpanic.go",
+ ],
+ importpath = "github.com/DataDog/datadog-agent/pkg/trace/watchdog",
+ visibility = ["//visibility:public"],
+ deps = [
+ "//pkg/trace/log",
+ "@com_github_datadog_datadog_go_v5//statsd",
+ ] + select({
+ "@rules_go//go/platform:android": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:darwin": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:dragonfly": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:freebsd": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:illumos": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:ios": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:js": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:linux": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:netbsd": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:openbsd": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:osx": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:plan9": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:qnx": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:solaris": [
+ "@com_github_shirou_gopsutil_v4//process",
+ ],
+ "@rules_go//go/platform:windows": [
+ "@org_golang_x_sys//windows",
+ ],
+ "//conditions:default": [],
+ }),
+)
+
+go_test(
+ name = "watchdog_test",
+ srcs = [
+ "info_test.go",
+ "logonpanic_test.go",
+ ],
+ embed = [":watchdog"],
+ gotags = ["test"], # keep: log.NewBufferLogger in pkg/trace/log/buflogger.go
+ deps = [
+ "//pkg/trace/log",
+ "@com_github_datadog_datadog_go_v5//statsd",
+ "@com_github_stretchr_testify//assert",
+ ],
+)
diff --git a/pkg/trace/watchdog/info_test.go b/pkg/trace/watchdog/info_test.go
index 5568b3d8f86a..d33d27930788 100644
--- a/pkg/trace/watchdog/info_test.go
+++ b/pkg/trace/watchdog/info_test.go
@@ -122,9 +122,10 @@ func doTestMemHigh(t *testing.T, n int) {
t.Logf("Mem (%d bytes): %v %v", n, oldM, m)
- // Checking that Mem is high enough
+ // Checking that Mem is high enough (allow 0.1% slack for GC/alignment jitter)
+ slack := int64(n) / 1000
assert.GreaterOrEqualf(m.Alloc, uint64(n), "not enough bytes allocated")
- assert.GreaterOrEqualf(int64(m.Alloc)-int64(oldM.Alloc), int64(n), "not enough bytes allocated since last call")
+ assert.GreaterOrEqualf(int64(m.Alloc)-int64(oldM.Alloc)+slack, int64(n), "not enough bytes allocated since last call")
<-data
}
diff --git a/pkg/util/aws/creds/go.mod b/pkg/util/aws/creds/go.mod
index 682ae91e91f3..3227da1bd350 100644
--- a/pkg/util/aws/creds/go.mod
+++ b/pkg/util/aws/creds/go.mod
@@ -12,7 +12,7 @@ require (
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -168,7 +168,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/util/backoff/go.mod b/pkg/util/backoff/go.mod
index 97e46136a795..2455b796ee71 100644
--- a/pkg/util/backoff/go.mod
+++ b/pkg/util/backoff/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/buf/go.mod b/pkg/util/buf/go.mod
index 5dbef2fb7e97..c728aa217d0e 100644
--- a/pkg/util/buf/go.mod
+++ b/pkg/util/buf/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/cache/go.mod b/pkg/util/cache/go.mod
index a333f7b2b424..b089368da048 100644
--- a/pkg/util/cache/go.mod
+++ b/pkg/util/cache/go.mod
@@ -117,7 +117,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/cgroups/go.mod b/pkg/util/cgroups/go.mod
index 66368d11492d..91c50df85175 100644
--- a/pkg/util/cgroups/go.mod
+++ b/pkg/util/cgroups/go.mod
@@ -130,7 +130,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/common/go.mod b/pkg/util/common/go.mod
index 891986194ec8..4bebcaa58d03 100644
--- a/pkg/util/common/go.mod
+++ b/pkg/util/common/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/compression/go.mod b/pkg/util/compression/go.mod
index db631da927e0..54e115cf7c56 100644
--- a/pkg/util/compression/go.mod
+++ b/pkg/util/compression/go.mod
@@ -184,7 +184,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/containers/image/go.mod b/pkg/util/containers/image/go.mod
index 1ec802c88e3f..2e67b2666557 100644
--- a/pkg/util/containers/image/go.mod
+++ b/pkg/util/containers/image/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/util/defaultpaths/go.mod b/pkg/util/defaultpaths/go.mod
index be1420527ac7..df5fff95878e 100644
--- a/pkg/util/defaultpaths/go.mod
+++ b/pkg/util/defaultpaths/go.mod
@@ -12,7 +12,7 @@ require (
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -162,7 +162,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/executable/go.mod b/pkg/util/executable/go.mod
index 2955e02a2084..8e8e417a9f35 100644
--- a/pkg/util/executable/go.mod
+++ b/pkg/util/executable/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/filesystem/go.mod b/pkg/util/filesystem/go.mod
index 9bc7abebe370..ae0f5ee6d8e5 100644
--- a/pkg/util/filesystem/go.mod
+++ b/pkg/util/filesystem/go.mod
@@ -130,7 +130,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/flavor/go.mod b/pkg/util/flavor/go.mod
index 4381bac81b01..84deddd5cc5d 100644
--- a/pkg/util/flavor/go.mod
+++ b/pkg/util/flavor/go.mod
@@ -13,7 +13,7 @@ require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -167,7 +167,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/fxutil/go.mod b/pkg/util/fxutil/go.mod
index aad63c316cd6..e474e89725d1 100644
--- a/pkg/util/fxutil/go.mod
+++ b/pkg/util/fxutil/go.mod
@@ -123,7 +123,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/gpu/nvml.go b/pkg/util/gpu/nvml.go
index 77c8ccce92db..81e3dfee3f2f 100644
--- a/pkg/util/gpu/nvml.go
+++ b/pkg/util/gpu/nvml.go
@@ -29,8 +29,7 @@ func ArchToString(arch nvml.DeviceArchitecture) string {
return "ada"
case nvml.DEVICE_ARCH_HOPPER:
return "hopper"
- case 10: // nvml.DEVICE_ARCH_BLACKWELL in newer versions of go-nvml
- // note: we hardcode the enum to avoid updating to an untested newer go-nvml version
+ case nvml.DEVICE_ARCH_BLACKWELL:
return "blackwell"
case nvml.DEVICE_ARCH_UNKNOWN:
return "unknown"
diff --git a/pkg/util/grpc/go.mod b/pkg/util/grpc/go.mod
index dddb211af715..8629fe9e967f 100644
--- a/pkg/util/grpc/go.mod
+++ b/pkg/util/grpc/go.mod
@@ -22,7 +22,7 @@ require (
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/comp/core/telemetry v0.72.0-rc.5 // indirect
github.com/DataDog/datadog-agent/comp/def v0.73.0-rc.5 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
@@ -212,7 +212,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/hostinfo/go.mod b/pkg/util/hostinfo/go.mod
index 6469ceae399f..6555b0c2fd8f 100644
--- a/pkg/util/hostinfo/go.mod
+++ b/pkg/util/hostinfo/go.mod
@@ -135,7 +135,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/hostname/validate/go.mod b/pkg/util/hostname/validate/go.mod
index 9dfe7663edab..0708ee5cc200 100644
--- a/pkg/util/hostname/validate/go.mod
+++ b/pkg/util/hostname/validate/go.mod
@@ -120,7 +120,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/util/http/go.mod b/pkg/util/http/go.mod
index 8f5739074c8a..93cf001fc8dc 100644
--- a/pkg/util/http/go.mod
+++ b/pkg/util/http/go.mod
@@ -14,7 +14,7 @@ require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -168,7 +168,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/json/go.mod b/pkg/util/json/go.mod
index 0a3e558ed07c..5026c8eef897 100644
--- a/pkg/util/json/go.mod
+++ b/pkg/util/json/go.mod
@@ -119,7 +119,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/jsonquery/go.mod b/pkg/util/jsonquery/go.mod
index 4312badb8c36..ada86b4d6fb0 100644
--- a/pkg/util/jsonquery/go.mod
+++ b/pkg/util/jsonquery/go.mod
@@ -123,7 +123,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/kubernetes/apiserver/common/namespace/go.mod b/pkg/util/kubernetes/apiserver/common/namespace/go.mod
index 179047e2e98b..c8b56a4a4db4 100644
--- a/pkg/util/kubernetes/apiserver/common/namespace/go.mod
+++ b/pkg/util/kubernetes/apiserver/common/namespace/go.mod
@@ -9,7 +9,7 @@ require (
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -161,7 +161,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../../../pkg/logs/sources
diff --git a/pkg/util/log/go.mod b/pkg/util/log/go.mod
index 085448827a5e..70094c9303e1 100644
--- a/pkg/util/log/go.mod
+++ b/pkg/util/log/go.mod
@@ -121,7 +121,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/log/setup/go.mod b/pkg/util/log/setup/go.mod
index b21dc84729cc..7362ba9b6ca4 100644
--- a/pkg/util/log/setup/go.mod
+++ b/pkg/util/log/setup/go.mod
@@ -14,7 +14,7 @@ require gopkg.in/yaml.v3 v3.0.1 // indirect
require (
github.com/DataDog/datadog-agent/comp/core/delegatedauth v0.0.0-00010101000000-000000000000 // indirect
- github.com/DataDog/datadog-agent/comp/core/secrets/def v0.71.0-rc.1 // indirect
+ github.com/DataDog/datadog-agent/comp/core/secrets/def v0.72.0-rc.1 // indirect
github.com/DataDog/datadog-agent/pkg/collector/check/defaults v0.61.0 // indirect
github.com/DataDog/datadog-agent/pkg/config/basic v0.0.0-20260211235139-a5361978c2b6 // indirect
github.com/DataDog/datadog-agent/pkg/config/buildschema v0.0.0-00010101000000-000000000000 // indirect
@@ -167,7 +167,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/util/option/go.mod b/pkg/util/option/go.mod
index 400a740ff586..5fdde49b95ca 100644
--- a/pkg/util/option/go.mod
+++ b/pkg/util/option/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/otel/go.mod b/pkg/util/otel/go.mod
index 2337fe43bfe1..1e4ff3c86256 100644
--- a/pkg/util/otel/go.mod
+++ b/pkg/util/otel/go.mod
@@ -135,7 +135,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/pointer/go.mod b/pkg/util/pointer/go.mod
index b2d2d6868980..f66c8015689c 100644
--- a/pkg/util/pointer/go.mod
+++ b/pkg/util/pointer/go.mod
@@ -102,7 +102,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/prometheus/go.mod b/pkg/util/prometheus/go.mod
index f4acb1aa9013..f5ff3a00f23d 100644
--- a/pkg/util/prometheus/go.mod
+++ b/pkg/util/prometheus/go.mod
@@ -141,7 +141,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/quantile/go.mod b/pkg/util/quantile/go.mod
index 20e6bfd86894..56c37d8c8d9e 100644
--- a/pkg/util/quantile/go.mod
+++ b/pkg/util/quantile/go.mod
@@ -120,7 +120,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/quantile/sketchtest/go.mod b/pkg/util/quantile/sketchtest/go.mod
index 809392a753e6..f76e33d51daa 100644
--- a/pkg/util/quantile/sketchtest/go.mod
+++ b/pkg/util/quantile/sketchtest/go.mod
@@ -116,7 +116,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../../pkg/logs/sources
diff --git a/pkg/util/scrubber/go.mod b/pkg/util/scrubber/go.mod
index 5607c2561b33..7468c84b814c 100644
--- a/pkg/util/scrubber/go.mod
+++ b/pkg/util/scrubber/go.mod
@@ -115,7 +115,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/sort/go.mod b/pkg/util/sort/go.mod
index 3f2fcd2f8ad9..559c37e933a6 100644
--- a/pkg/util/sort/go.mod
+++ b/pkg/util/sort/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/startstop/go.mod b/pkg/util/startstop/go.mod
index 7cde6eb42504..a030877fc69e 100644
--- a/pkg/util/startstop/go.mod
+++ b/pkg/util/startstop/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/statstracker/go.mod b/pkg/util/statstracker/go.mod
index a196b9852249..99ecc07f98ee 100644
--- a/pkg/util/statstracker/go.mod
+++ b/pkg/util/statstracker/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/system/go.mod b/pkg/util/system/go.mod
index c7549d523b89..bc6bfd1755f1 100644
--- a/pkg/util/system/go.mod
+++ b/pkg/util/system/go.mod
@@ -140,7 +140,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/testutil/go.mod b/pkg/util/testutil/go.mod
index bdca889d94ed..d123111a34a9 100644
--- a/pkg/util/testutil/go.mod
+++ b/pkg/util/testutil/go.mod
@@ -116,7 +116,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/utilizationtracker/go.mod b/pkg/util/utilizationtracker/go.mod
index 3b6ed4a653f8..055ad22d7c30 100644
--- a/pkg/util/utilizationtracker/go.mod
+++ b/pkg/util/utilizationtracker/go.mod
@@ -117,7 +117,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/uuid/go.mod b/pkg/util/uuid/go.mod
index 44a6d31b17a8..14fed8307081 100644
--- a/pkg/util/uuid/go.mod
+++ b/pkg/util/uuid/go.mod
@@ -126,7 +126,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/util/winutil/go.mod b/pkg/util/winutil/go.mod
index cfb90a9f3507..33d831811ed3 100644
--- a/pkg/util/winutil/go.mod
+++ b/pkg/util/winutil/go.mod
@@ -123,7 +123,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../../pkg/logs/sources
diff --git a/pkg/version/go.mod b/pkg/version/go.mod
index 20e046b823a5..207fcc04aaea 100644
--- a/pkg/version/go.mod
+++ b/pkg/version/go.mod
@@ -114,7 +114,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/releasenotes/notes/apm-cloud-run-job-span-stats-09251be7547470c4.yaml b/releasenotes/notes/apm-cloud-run-job-span-stats-09251be7547470c4.yaml
new file mode 100644
index 000000000000..1483bd1df14c
--- /dev/null
+++ b/releasenotes/notes/apm-cloud-run-job-span-stats-09251be7547470c4.yaml
@@ -0,0 +1,10 @@
+---
+features:
+ - |
+ APM: Add a context-aware shutdown API to the trace agent, allowing callers
+ to specify a timeout when waiting for the agent to stop gracefully.
+fixes:
+ - |
+ Fix span stats and priority sampling for Cloud Run job tasks by properly
+ waiting for the trace agent shutdown sequence to complete, ensuring
+ in-flight traces are flushed before the serverless function exits.
diff --git a/releasenotes/notes/bump-rshell-v0.0.10-22efa9761316568e.yaml b/releasenotes/notes/bump-rshell-v0.0.10-22efa9761316568e.yaml
new file mode 100644
index 000000000000..81d0cd4f75ff
--- /dev/null
+++ b/releasenotes/notes/bump-rshell-v0.0.10-22efa9761316568e.yaml
@@ -0,0 +1,6 @@
+---
+enhancements:
+ - |
+ Bump ``rshell`` to v0.0.10 for the Private Action Runner. Shell commands now
+ follow symlinks that cross between allowed roots and resolve host-mounted
+ paths correctly in containerized deployments.
diff --git a/releasenotes/notes/par-default-enabled-actions-b4d43ce6e2e4aad7.yaml b/releasenotes/notes/par-default-enabled-actions-b4d43ce6e2e4aad7.yaml
new file mode 100644
index 000000000000..e2a1a0368537
--- /dev/null
+++ b/releasenotes/notes/par-default-enabled-actions-b4d43ce6e2e4aad7.yaml
@@ -0,0 +1,7 @@
+---
+enhancements:
+ - |
+ The Private Action Runner now includes default enabled actions that are
+ automatically allowed. To opt out, set ``private_action_runner.default_actions_enabled``
+ to ``false`` in ``datadog.yaml``. This still requires explicit opt-in into the Private
+ Action Runner feature.
diff --git a/rtloader/rtloader/api.cpp b/rtloader/rtloader/api.cpp
index 9828e71dd622..0c62375399d6 100644
--- a/rtloader/rtloader/api.cpp
+++ b/rtloader/rtloader/api.cpp
@@ -42,6 +42,8 @@
# define DATADOG_AGENT_THREE "libdatadog-agent-three.dylib"
#elif __FreeBSD__
# define DATADOG_AGENT_THREE "libdatadog-agent-three.so"
+#elif _AIX
+# define DATADOG_AGENT_THREE "libdatadog-agent-three.so"
#elif _WIN32
# define DATADOG_AGENT_THREE "libdatadog-agent-three.dll"
#else
@@ -404,7 +406,11 @@ DATADOG_AGENT_RTLOADER_API int handle_crashes(const int enable_coredump, const i
if (alt_stack == nullptr) {
// Note: this memory is never freed, but it is necessary for the duration of the program
alt_stack = _malloc(alt_stack_size);
- stack_t new_stack{ .ss_sp = alt_stack, .ss_flags = 0, .ss_size = alt_stack_size };
+ stack_t new_stack;
+ memset(&new_stack, 0, sizeof(new_stack));
+ new_stack.ss_sp = (decltype(new_stack.ss_sp))alt_stack;
+ new_stack.ss_size = alt_stack_size;
+ new_stack.ss_flags = 0;
int ret = sigaltstack(&new_stack, nullptr);
if (ret != 0) {
std::ostringstream err_msg;
diff --git a/tasks/gotest.py b/tasks/gotest.py
index ae2ffa875b46..1a530f567f08 100644
--- a/tasks/gotest.py
+++ b/tasks/gotest.py
@@ -4,12 +4,14 @@
from __future__ import annotations
+import dataclasses
import fnmatch
import glob
import operator
import os
import re
import sys
+import time
from collections import defaultdict
from collections.abc import Iterable
from datetime import datetime
@@ -25,6 +27,7 @@
from tasks.coverage import PROFILE_COV, CodecovWorkaround
from tasks.devcontainer import run_on_devcontainer
from tasks.flavor import AgentFlavor
+from tasks.libs.build.bazel import bazel
from tasks.libs.common.color import color_message
from tasks.libs.common.datadog_api import create_count, send_metrics
from tasks.libs.common.git import get_modified_files
@@ -43,9 +46,31 @@
from tasks.testwasher import TestWasher
from tasks.update_go import PATTERN_MAJOR_MINOR, update_file
+
+@dataclasses.dataclass
+class TestStats:
+ """Counts from a single test runner (go or bazel)."""
+
+ total: int = 0
+ passed: int = 0
+ failed: int = 0
+ skipped: int = 0
+ duration_s: float = 0.0
+
+ def __add__(self, other: TestStats) -> TestStats:
+ return TestStats(
+ total=self.total + other.total,
+ passed=self.passed + other.passed,
+ failed=self.failed + other.failed,
+ skipped=self.skipped + other.skipped,
+ duration_s=self.duration_s + other.duration_s,
+ )
+
+
WINDOWS_MAX_PACKAGES_NUMBER = 150
WINDOWS_MAX_CLI_LENGTH = 8000 # Windows has a max command line length of 8192 characters
TRIGGER_ALL_TESTS_PATHS = ["tasks/gotest.py", "tasks/build_tags.py", ".gitlab/build/source_test/*", ".gitlab-ci.yml"]
+MODULE_PREFIX = "github.com/DataDog/datadog-agent"
OTEL_UPSTREAM_GO_MOD_PATH = (
f"https://raw.githubusercontent.com/open-telemetry/opentelemetry-collector-contrib/v{OTEL_CONTRIB_VERSION}/go.mod"
)
@@ -102,6 +127,258 @@ def build_standard_lib(
ctx.run(cmd.format(**args), env=env, out_stream=test_profiler) # with `warn=True`, errors went unnoticed
+def _target_to_bazel_pattern(target: str) -> str:
+ """Convert a Go test target path to a Bazel target pattern.
+
+ Examples:
+ '.' -> '//...'
+ './' -> '//...'
+ './pkg/util' -> '//pkg/util/...'
+ './pkg/util/' -> '//pkg/util/...'
+ './pkg/...' -> '//pkg/...'
+ """
+ if target in ('.', './'):
+ return '//...'
+ # Strip leading './' then any trailing '/' to avoid double-slash before '/...'
+ rel = target.removeprefix('./').rstrip('/')
+ if rel.endswith('/...'):
+ return f'//{rel}'
+ return f'//{rel}/...'
+
+
+def _minimize_bazel_patterns(patterns: list[str]) -> list[str]:
+ """Remove patterns that are already covered by a broader pattern in the list.
+
+ Patterns are of the form '//some/path/...' . Pattern B is subsumed by
+ pattern A when B's directory starts with A's directory, e.g.:
+ //comp/core/... is subsumed by //comp/...
+ //pkg/util/log/... is subsumed by //pkg/...
+ //... subsumes everything.
+
+ The input list may contain duplicates; the output will not.
+ """
+ # Sort lexicographically so shorter (broader) patterns come before the
+ # longer (narrower) ones they subsume.
+ sorted_patterns = sorted(set(patterns))
+ result: list[str] = []
+ for pattern in sorted_patterns:
+ covered = any(kept == '//...' or pattern.startswith(kept[: -len('...')]) for kept in result)
+ if not covered:
+ result.append(pattern)
+ return result
+
+
+def get_bazel_test_targets(ctx, modules: list[GoModule]) -> dict[str, str]:
+ """Query Bazel for go_test targets within the scope of the given modules.
+
+ Returns a dict mapping Bazel label (without config hash) to Go import path.
+
+ Example:
+ {"//pkg/util/log:log_test": "github.com/DataDog/datadog-agent/pkg/util/log"}
+
+ The query is scoped to the same targets passed to go test, so
+ 'dda inv test --targets=./pkg/util' only queries //pkg/util/...
+ instead of all of //...
+ """
+ bazel_patterns = []
+ for module in modules:
+ if not module.should_test():
+ continue
+ prefix = '' if module.path == '.' else module.path + '/'
+ for target in module.test_targets:
+ # Prepend module path for non-root modules
+ full_target = f'./{prefix}{target.removeprefix("./")}' if module.path != '.' else target
+ bazel_patterns.append(_target_to_bazel_pattern(full_target))
+
+ if not bazel_patterns:
+ return {}
+
+ bazel_patterns = _minimize_bazel_patterns(bazel_patterns)
+
+ # Temporary: restrict queries to the top-level trees that have been migrated
+ # to Bazel. Remove this filter when other trees (e.g. test/, tasks/) follow.
+ _BAZEL_QUERYABLE_ROOTS = ('//cmd/', '//comp/', '//pkg/')
+ bazel_patterns = [p for p in bazel_patterns if any(p.startswith(r) for r in _BAZEL_QUERYABLE_ROOTS)]
+ if not bazel_patterns:
+ return {}
+
+ scope = ' + '.join(bazel_patterns)
+ output = bazel(ctx, "cquery", f"kind(go_test, {scope})", capture_output=True, hide_stderr=True)
+ if not output:
+ return {}
+
+ result = {}
+ for line in output.splitlines():
+ line = line.strip()
+ if not line:
+ continue
+ # Strip config hash: //pkg/util/log:log_test (abc1234) -> //pkg/util/log:log_test
+ label = line.split(' ')[0]
+ if not label.startswith('//'):
+ continue
+ # Get directory from label: //pkg/util/log:log_test -> pkg/util/log
+ dir_path = label.split(':')[0][2:] # strip //
+ result[label] = f'{MODULE_PREFIX}/{dir_path}'
+ return result
+
+
+def _parse_bazel_test_line(line: str) -> tuple[str, str, str | None, bool] | None:
+ """Parse a Bazel test result summary line.
+
+ Returns (label, status, timing, cached) or None if not a result line.
+
+ Expected input formats:
+ //pkg/util/log:log_test PASSED in 0.521s
+ //pkg/aggregator/ckey:ckey_test (cached) PASSED in 1.234s
+ //pkg/api/security:security_test SKIPPED
+ //pkg/process/util:util_test FAILED in 0.345s
+ """
+ line = line.strip()
+ if not line.startswith('//'):
+ return None
+ parts = line.split()
+ label = parts[0]
+ cached = '(cached)' in parts
+ for status in ('PASSED', 'FAILED', 'SKIPPED'):
+ if status in parts:
+ m = re.search(r'in ([\d.]+s)', line)
+ return (label, status, m.group(1) if m else None, cached)
+ return None
+
+
+def _run_bazel_tests(ctx, bazel_targets: list[str], verbose: bool = False) -> TestStats:
+ """Run Bazel test targets and print results formatted like go test output.
+
+ Targets are batched so the total command length stays under 32000 chars,
+ which is a safe heuristic for Windows command-line limits.
+ TODO: relax this limit on Linux where the effective limit is ~2 MB.
+
+ Prints one ✓/∅/FAIL line per target then a DONE summary.
+ Returns a TestStats with counts from this run.
+ """
+ from invoke.exceptions import UnexpectedExit
+
+ if not bazel_targets:
+ return TestStats()
+
+ # Windows-safe command-length limit.
+ # TODO: on Linux runners, the limit is much higher; consider platform-specific batching.
+ MAX_CMD_LENGTH = 32000
+ FIXED_ARGS = ["test", "--keep_going"]
+ fixed_len = sum(len(a) + 1 for a in FIXED_ARGS)
+
+ # Batch targets so no single invocation exceeds the limit.
+ batches: list[list[str]] = []
+ current_batch: list[str] = []
+ current_len = fixed_len
+ for target in bazel_targets:
+ target_len = len(target) + 1 # +1 for the separating space
+ if current_batch and current_len + target_len > MAX_CMD_LENGTH:
+ batches.append(current_batch)
+ current_batch = [target]
+ current_len = fixed_len + target_len
+ else:
+ current_batch.append(target)
+ current_len += target_len
+ if current_batch:
+ batches.append(current_batch)
+
+ # Lines written by Bazel that are not test results and should be hidden.
+ _NOISY_PREFIXES = ('Loading:', 'Analyzing:', 'INFO:', 'WARNING:', 'Computing main repo mapping:')
+
+ parsed_results: list[tuple[str, str, str | None, bool]] = []
+ run_failed = False
+ t_start = time.monotonic()
+
+ for batch in batches:
+ try:
+ # capture_stderr=True because Bazel writes test result lines to stderr.
+ output = bazel(ctx, *FIXED_ARGS, *batch, capture_output=True, capture_stderr=True)
+ except UnexpectedExit as e:
+ output = (e.result.stdout or "") + (e.result.stderr or "")
+ run_failed = True
+
+ if output:
+ for line in output.splitlines():
+ # In non-verbose mode filter Bazel's progress/info noise.
+ if not verbose and line.strip().startswith(_NOISY_PREFIXES):
+ continue
+ parsed = _parse_bazel_test_line(line)
+ if parsed:
+ parsed_results.append(parsed)
+
+ duration_s = time.monotonic() - t_start
+
+ # Print one formatted line per result.
+ n_passed = n_failed = n_skipped = 0
+ for label, status, timing, cached in parsed_results:
+ if status == 'PASSED':
+ symbol = color_message('✓', 'green')
+ n_passed += 1
+ elif status == 'SKIPPED':
+ symbol = color_message('∅', 'yellow')
+ n_skipped += 1
+ else:
+ symbol = color_message('FAIL', 'red')
+ n_failed += 1
+
+ timing_str = f' ({timing})' if timing else ''
+ cached_str = ' (cached)' if cached else ''
+ print(f'{symbol} {label}{timing_str}{cached_str}')
+
+ total = n_passed + n_failed + n_skipped
+ # Treat a non-zero Bazel exit as a failure even if some result lines were parsed.
+ # This avoids reporting success when a later batch fails due to build/infra issues.
+ if run_failed:
+ if total == 0:
+ n_failed = len(bazel_targets)
+ total = n_failed
+ elif n_failed == 0:
+ n_failed += 1
+ total += 1
+
+ return TestStats(total=total, passed=n_passed, failed=n_failed, skipped=n_skipped, duration_s=duration_s)
+
+
+def expand_packages_excluding(
+ ctx,
+ modules: list[GoModule],
+ build_tags: list[str],
+ exclude_packages: set[str],
+ recursive: bool = True,
+) -> str:
+ """
+ Enumerate Go packages via `go list`, filter out exclude_packages, and return
+ the explicit space-separated list for gotestsum --packages.
+
+ This is needed because go test / gotestsum have no native exclusion syntax.
+ """
+ result = []
+ tag_str = ' '.join(build_tags)
+ for module in modules:
+ if not module.should_test():
+ continue
+ for target in module.test_targets:
+ # Build the pattern relative to module.path — ctx.cd() below makes
+ # that the working directory, so do NOT prepend module.path again.
+ t = target if target.startswith('./') else f'./{target}'
+ if recursive and not t.endswith('/...'):
+ pattern = f'{t}/...'
+ else:
+ pattern = t
+ with ctx.cd(module.path):
+ res = ctx.run(
+ f'go list -buildvcs=false -tags "{tag_str}" {pattern}',
+ hide=True,
+ warn=True,
+ )
+ if res and res.stdout:
+ for pkg in res.stdout.splitlines():
+ if pkg not in exclude_packages:
+ result.append(pkg)
+ return ' '.join(result)
+
+
def test_flavor(
ctx,
flavor: AgentFlavor,
@@ -115,6 +392,7 @@ def test_flavor(
coverage: bool = False,
result_json: str = DEFAULT_TEST_OUTPUT_JSON,
recursive: bool = True,
+ exclude_packages: set[str] | None = None,
):
"""
Runs unit tests for given flavor, build tags, and modules.
@@ -143,7 +421,11 @@ def test_flavor(
args["junit_file_flag"] = "--junitfile " + result_junit_path
# Compute full list of targets to run tests against
- packages = compute_gotestsum_cli_args(list(modules), recursive)
+ module_list = list(modules)
+ if exclude_packages:
+ packages = expand_packages_excluding(ctx, module_list, build_tags, exclude_packages, recursive)
+ else:
+ packages = compute_gotestsum_cli_args(module_list, recursive)
with CodecovWorkaround(ctx, result.path, coverage, packages, args) as cov_test_path:
res = ctx.run(
@@ -204,10 +486,14 @@ def sanitize_env_vars():
def _generate_unified_output(
ctx, test_result: TestResult, flavor: AgentFlavor, tw: TestWasher | None = None, test_system: str = "unit"
-) -> None:
- """Generate a UTOF JSON file alongside the test output JSON."""
+) -> TestStats | None:
+ """Generate a UTOF JSON file alongside the test output JSON.
+
+ Returns a TestStats with go test counts extracted from the UTOF summary,
+ or None if the unified output could not be generated.
+ """
if not test_result.result_json_path or not os.path.exists(test_result.result_json_path):
- return
+ return None
try:
from tasks.libs.testing.utof import format_report
@@ -221,10 +507,19 @@ def _generate_unified_output(
print(f"Unified test output written to {utof_path}")
with gitlab_section("Unified test report", collapsed=False):
print(format_report(utof))
+ s = utof.summary
+ return TestStats(
+ total=s.total,
+ passed=s.passed,
+ failed=s.failed,
+ skipped=getattr(s, 'skipped', 0),
+ duration_s=getattr(utof.metadata, 'duration_seconds', 0.0) or 0.0,
+ )
except Exception:
import traceback
print(f"Warning: Failed to generate unified test output:\n{traceback.format_exc()}")
+ return None
def process_test_result(
@@ -235,7 +530,14 @@ def process_test_result(
flavor: AgentFlavor,
test_washer: bool,
test_system: str = "unit",
-) -> bool:
+ skip_unified_output: bool = False,
+) -> tuple[bool, TestStats | None]:
+ """Process go test results.
+
+ Returns (success, go_stats). go_stats is None when skip_unified_output=True
+ or when the unified output could not be generated. Callers that only care
+ about success can unpack with: success, _ = process_test_result(...)
+ """
if junit_tar:
produce_junit_tar(junit_files, junit_tar)
@@ -244,8 +546,10 @@ def process_test_result(
if success:
print(color_message("All tests passed", "green"))
- _generate_unified_output(ctx, test_result, flavor, test_system=test_system)
- return True
+ go_stats = (
+ None if skip_unified_output else _generate_unified_output(ctx, test_result, flavor, test_system=test_system)
+ )
+ return True, go_stats
if test_washer or running_in_ci():
if not test_washer:
@@ -260,11 +564,19 @@ def process_test_result(
print(
color_message("All failing tests are known to be flaky, marking the test job as successful", "orange")
)
- _generate_unified_output(ctx, test_result, flavor, tw=tw, test_system=test_system)
- return True
+ go_stats = (
+ None
+ if skip_unified_output
+ else _generate_unified_output(ctx, test_result, flavor, tw=tw, test_system=test_system)
+ )
+ return True, go_stats
- _generate_unified_output(ctx, test_result, flavor, tw=tw, test_system=test_system)
- return False
+ go_stats = (
+ None
+ if skip_unified_output
+ else _generate_unified_output(ctx, test_result, flavor, tw=tw, test_system=test_system)
+ )
+ return False, go_stats
@task
@@ -297,6 +609,9 @@ def test(
build_stdlib=False,
test_washer=False,
extra_args=None,
+ skip_bazel_tests=False,
+ save_bazel_tests=None,
+ run_bazel_tests=False,
run_on=None, # noqa: U100, F841. Used by the run_on_devcontainer decorator
):
"""
@@ -315,6 +630,12 @@ def test(
"""
sanitize_env_vars()
+ # Allow opting in to bazel integration via environment variable.
+ _bazel_env = os.environ.get("EXPERIMENTAL_USE_BAZEL_TESTS", "")
+ if _bazel_env not in ("", "0"):
+ skip_bazel_tests = True
+ run_bazel_tests = True
+
modules, flavor = process_input_args(ctx, module, targets, flavor)
unit_tests_tags = compute_build_tags_for_flavor(
@@ -412,6 +733,21 @@ def test(
if only_impacted_packages:
modules = get_impacted_packages(ctx, build_tags=unit_tests_tags)
+ exclude_packages: set[str] = set()
+ bazel_targets: dict[str, str] = {}
+ if skip_bazel_tests or save_bazel_tests or run_bazel_tests:
+ bazel_targets = get_bazel_test_targets(ctx, list(modules))
+ print(f"Found {len(bazel_targets)} Bazel-covered go_test targets")
+
+ if save_bazel_tests:
+ with open(save_bazel_tests, 'w') as f:
+ f.write('\n'.join(sorted(bazel_targets)) + '\n')
+ print(f"Bazel test targets written to {save_bazel_tests}")
+
+ if skip_bazel_tests:
+ exclude_packages = set(bazel_targets.values())
+ print(f"Skipping {len(exclude_packages)} Bazel-covered packages from go test")
+
with gitlab_section("Running unit tests", collapsed=True):
result_junit = f"junit-out-{flavor}.xml" if junit_tar else ""
test_result = test_flavor(
@@ -427,9 +763,12 @@ def test(
test_profiler=test_profiler,
coverage=coverage,
recursive=not only_modified_packages, # Disable recursive tests when only modified packages is enabled, to avoid testing a package and all its subpackages
+ exclude_packages=exclude_packages or None,
)
- # Output (only if tests ran)
+ # Go test output (only if tests ran)
+ go_success = True
+ go_stats: TestStats | None = None
if test_result:
if coverage and print_coverage:
coverage_flavor(ctx)
@@ -440,10 +779,51 @@ def test(
# print("\n--- Top 15 packages sorted by run time:")
test_profiler.print_sorted(15)
- success = process_test_result(ctx, test_result, junit_tar, [result_junit], flavor, test_washer)
- if not success:
- raise Exit(code=1)
+ go_success, go_stats = process_test_result(
+ ctx,
+ test_result,
+ junit_tar,
+ [result_junit],
+ flavor,
+ test_washer,
+ )
+
+ # Bazel test output — displayed after go test results.
+ bazel_success = True
+ bazel_stats: TestStats | None = None
+ if run_bazel_tests and bazel_targets:
+ print(f"\n{'=' * 12} Bazel tests {'=' * 12}")
+ with gitlab_section("Bazel test results", collapsed=True):
+ bazel_stats = _run_bazel_tests(ctx, list(bazel_targets), verbose=verbose)
+ bazel_success = bazel_stats.failed == 0
+ bazel_status = (
+ color_message('All tests passed', 'green') if bazel_success else color_message('Tests FAILED', 'red')
+ )
+ print(f"DONE {bazel_stats.total} tests in {bazel_stats.duration_s:.3f}s")
+ print(bazel_status)
+
+ # Combined summary in the same style as the go Test Report block.
+ if run_bazel_tests and (go_stats is not None or bazel_stats is not None):
+ combined = (go_stats or TestStats()) + (bazel_stats or TestStats())
+ all_ok = go_success and bazel_success
+ sep = "=" * 60
+ result_str = color_message("PASSED", "green") if all_ok else color_message("FAILED", "red")
+ parts = [f"{combined.total} total", f"{combined.passed} passed"]
+ if combined.failed:
+ parts.append(f"{combined.failed} failed")
+ if combined.skipped:
+ parts.append(f"{combined.skipped} skipped")
+ parts.append(f"in {combined.duration_s:.1f}s")
+ print(f"\n{sep}")
+ print(f" Test Report (unit + bazel) \u2014 {result_str}")
+ print(sep)
+ print()
+ print(" ".join(parts))
+
+ if not go_success or not bazel_success:
+ raise Exit(code=1)
+ if test_result and not run_bazel_tests:
print(f"Tests final status (including re-runs): {color_message('ALL TESTS PASSED', 'green')}")
diff --git a/tasks/libs/build/bazel.py b/tasks/libs/build/bazel.py
index f5bf6fb0b004..db7d61fbdc9a 100644
--- a/tasks/libs/build/bazel.py
+++ b/tasks/libs/build/bazel.py
@@ -20,15 +20,30 @@ def bazel_not_found_message(color: str) -> str:
return color_message("Please run `inv install-tools` for `bazel` support!", color)
-def bazel(ctx: Context, *args: str, capture_output: bool = False, sudo: bool = False) -> None | str:
- """Execute a bazel command. Returns the captured standard output as string if capture_output=True."""
+def bazel(
+ ctx: Context,
+ *args: str,
+ capture_output: bool = False,
+ sudo: bool = False,
+ hide_stderr: bool = False,
+ capture_stderr: bool = False,
+) -> None | str:
+ """Execute a bazel command. Returns captured output as a string if capture_output=True.
+
+ capture_stderr: also capture stderr and append it to the returned string.
+ Implies hide_stderr. Use this when Bazel writes important output (e.g.
+ test results) to stderr and the caller needs to process it.
+ hide_stderr: suppress Bazel's progress/info lines written to stderr without
+ capturing them. Only meaningful when capture_output=True and
+ capture_stderr=False.
+ """
if not (resolved_bazel := shutil.which("bazel")):
raise Exit(bazel_not_found_message("red"))
cmd = ("sudo", resolved_bazel) if sudo else ("bazel",)
kwargs = {}
if capture_output:
- kwargs["hide"] = "out"
+ kwargs["hide"] = True if (hide_stderr or capture_stderr) else "out"
elif not sudo and sys.stdout.isatty() and sys.platform != "win32":
kwargs["pty"] = True
result = ctx.run(
@@ -37,7 +52,11 @@ def bazel(ctx: Context, *args: str, capture_output: bool = False, sudo: bool = F
in_stream=False,
**kwargs,
)
- return result.stdout if capture_output else None
+ if not capture_output:
+ return None
+ if capture_stderr:
+ return (result.stdout or "") + (result.stderr or "")
+ return result.stdout
class BazelTools:
diff --git a/tasks/libs/pipeline/tools.py b/tasks/libs/pipeline/tools.py
index 9abf1f312059..846785af574f 100644
--- a/tasks/libs/pipeline/tools.py
+++ b/tasks/libs/pipeline/tools.py
@@ -126,15 +126,20 @@ def gracefully_cancel_pipeline(repo: Project, pipeline: ProjectPipeline, force_c
- Cancel all the jobs that did not start to run yet
- Do not cancel jobs containing 'cleanup' in their name
- Jobs in the stages specified in 'force_cancel_stages' variables will always be canceled even if running
+ - Do not cancel jobs in the no_cancel_override list
"""
jobs = pipeline.jobs.list(per_page=100, all=True)
kmt_cleanup_jobs_to_run: set[str] = set()
jobs_by_name: dict[str, ProjectJob] = {}
+ no_cancel_override: list[str] = ["dev_deploy-host-profiler-devtest"]
for job in jobs:
jobs_by_name[job.name] = cast(ProjectJob, job)
+ if job.name in no_cancel_override:
+ continue
+
if job.stage in force_cancel_stages or (
job.status not in ["running", "canceled", "success", "manual"] and "cleanup" not in job.name
):
diff --git a/tasks/new_e2e_tests.py b/tasks/new_e2e_tests.py
index a0a4b614b2d8..992d9ef8662f 100644
--- a/tasks/new_e2e_tests.py
+++ b/tasks/new_e2e_tests.py
@@ -584,7 +584,7 @@ def run(
with open(partial_file) as f:
merged_file.writelines(line.strip() + "\n" for line in f.readlines())
- success = process_test_result(
+ success, _ = process_test_result(
ctx, test_res, junit_tar, result_junits, AgentFlavor.base, test_washer, test_system="e2e"
)
diff --git a/tasks/unit_tests/go_tests.py b/tasks/unit_tests/go_tests.py
index 359dda4dd44a..011154708f05 100644
--- a/tasks/unit_tests/go_tests.py
+++ b/tasks/unit_tests/go_tests.py
@@ -1,7 +1,13 @@
import unittest
from unittest.mock import MagicMock, patch
-from tasks.gotest import find_impacted_packages, should_run_all_tests
+from tasks.gotest import (
+ _minimize_bazel_patterns,
+ _parse_bazel_test_line,
+ _target_to_bazel_pattern,
+ find_impacted_packages,
+ should_run_all_tests,
+)
class TestUtils(unittest.TestCase):
@@ -74,3 +80,115 @@ def test_should_run_all_tests_4(self):
trigger_files = ["pkgs/*"]
self.assertFalse(should_run_all_tests(None, trigger_files))
+
+
+class TestTargetToBazelPattern(unittest.TestCase):
+ def test_dot(self):
+ self.assertEqual(_target_to_bazel_pattern('.'), '//...')
+
+ def test_dot_slash(self):
+ self.assertEqual(_target_to_bazel_pattern('./'), '//...')
+
+ def test_simple_path(self):
+ self.assertEqual(_target_to_bazel_pattern('./pkg/util'), '//pkg/util/...')
+
+ def test_trailing_slash(self):
+ self.assertEqual(_target_to_bazel_pattern('./pkg/util/'), '//pkg/util/...')
+
+ def test_multiple_trailing_slashes(self):
+ self.assertEqual(_target_to_bazel_pattern('./pkg/util//'), '//pkg/util/...')
+
+ def test_already_recursive(self):
+ self.assertEqual(_target_to_bazel_pattern('./pkg/...'), '//pkg/...')
+
+ def test_no_leading_dot_slash(self):
+ self.assertEqual(_target_to_bazel_pattern('pkg/util'), '//pkg/util/...')
+
+ def test_nested_path(self):
+ self.assertEqual(_target_to_bazel_pattern('./comp/core/config'), '//comp/core/config/...')
+
+
+class TestMinimizeBazelPatterns(unittest.TestCase):
+ def test_empty(self):
+ self.assertEqual(_minimize_bazel_patterns([]), [])
+
+ def test_no_overlap(self):
+ result = _minimize_bazel_patterns(['//pkg/...', '//cmd/...'])
+ self.assertEqual(sorted(result), ['//cmd/...', '//pkg/...'])
+
+ def test_child_removed(self):
+ result = _minimize_bazel_patterns(['//comp/...', '//comp/core/...'])
+ self.assertEqual(result, ['//comp/...'])
+
+ def test_deeply_nested_removed(self):
+ result = _minimize_bazel_patterns(['//pkg/...', '//pkg/util/log/...', '//pkg/util/...'])
+ self.assertEqual(result, ['//pkg/...'])
+
+ def test_sibling_patterns_kept(self):
+ result = _minimize_bazel_patterns(['//comp/...', '//pkg/...'])
+ self.assertEqual(sorted(result), ['//comp/...', '//pkg/...'])
+
+ def test_global_wildcard_subsumes_all(self):
+ result = _minimize_bazel_patterns(['//...', '//pkg/...', '//comp/core/...'])
+ self.assertEqual(result, ['//...'])
+
+ def test_duplicates_removed(self):
+ result = _minimize_bazel_patterns(['//pkg/...', '//pkg/...', '//comp/...'])
+ self.assertEqual(sorted(result), ['//comp/...', '//pkg/...'])
+
+ def test_mixed_overlap_and_siblings(self):
+ patterns = ['//comp/...', '//comp/core/...', '//pkg/...', '//pkg/util/log/...', '//cmd/...']
+ result = _minimize_bazel_patterns(patterns)
+ self.assertEqual(sorted(result), ['//cmd/...', '//comp/...', '//pkg/...'])
+
+
+class TestParseBazelTestLine(unittest.TestCase):
+ def test_passed_with_timing(self):
+ line = '//pkg/util/log:log_test PASSED in 0.521s'
+ label, status, timing, cached = _parse_bazel_test_line(line)
+ self.assertEqual(label, '//pkg/util/log:log_test')
+ self.assertEqual(status, 'PASSED')
+ self.assertEqual(timing, '0.521s')
+ self.assertFalse(cached)
+
+ def test_failed_with_timing(self):
+ line = '//pkg/process/util:util_test FAILED in 0.345s'
+ label, status, timing, cached = _parse_bazel_test_line(line)
+ self.assertEqual(label, '//pkg/process/util:util_test')
+ self.assertEqual(status, 'FAILED')
+ self.assertEqual(timing, '0.345s')
+ self.assertFalse(cached)
+
+ def test_skipped_no_timing(self):
+ line = '//pkg/api/security:security_test SKIPPED'
+ label, status, timing, cached = _parse_bazel_test_line(line)
+ self.assertEqual(label, '//pkg/api/security:security_test')
+ self.assertEqual(status, 'SKIPPED')
+ self.assertIsNone(timing)
+ self.assertFalse(cached)
+
+ def test_cached_passed(self):
+ line = '//pkg/aggregator/ckey:ckey_test (cached) PASSED in 1.234s'
+ label, status, timing, cached = _parse_bazel_test_line(line)
+ self.assertEqual(label, '//pkg/aggregator/ckey:ckey_test')
+ self.assertEqual(status, 'PASSED')
+ self.assertEqual(timing, '1.234s')
+ self.assertTrue(cached)
+
+ def test_leading_whitespace_ignored(self):
+ line = ' //pkg/util/log:log_test PASSED in 0.1s'
+ result = _parse_bazel_test_line(line)
+ self.assertIsNotNone(result)
+ self.assertEqual(result[1], 'PASSED')
+
+ def test_info_line_returns_none(self):
+ self.assertIsNone(_parse_bazel_test_line('INFO: Build completed successfully, 1 total action'))
+
+ def test_analyzing_line_returns_none(self):
+ self.assertIsNone(_parse_bazel_test_line('Analyzing: 8 targets (0 packages loaded, 0 targets configured)'))
+
+ def test_empty_line_returns_none(self):
+ self.assertIsNone(_parse_bazel_test_line(''))
+
+ def test_non_label_line_returns_none(self):
+ self.assertIsNone(_parse_bazel_test_line('Computing main repo mapping:'))
diff --git a/test/e2e-framework/go.mod b/test/e2e-framework/go.mod
index 87fe62461d27..16caba63749f 100644
--- a/test/e2e-framework/go.mod
+++ b/test/e2e-framework/go.mod
@@ -376,7 +376,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/test/fakeintake/api/api.go b/test/fakeintake/api/api.go
index 5c59f5f86100..a4840eac6cbb 100644
--- a/test/fakeintake/api/api.go
+++ b/test/fakeintake/api/api.go
@@ -46,6 +46,15 @@ type APIFakeIntakeRouteStatsGETResponse struct {
Routes map[string]RouteStat `json:"routes"`
}
+// PARTaskResult captures what the Private Action Runner published for a completed task.
+type PARTaskResult struct {
+ TaskID string `json:"task_id"`
+ Success bool `json:"success"`
+ Outputs map[string]interface{} `json:"outputs,omitempty"`
+ ErrorCode int `json:"error_code,omitempty"`
+ ErrorDetails string `json:"error_details,omitempty"`
+}
+
// ResponseOverride is a hardcoded response for requests to the given endpoint
type ResponseOverride struct {
Endpoint string `json:"endpoint"`
diff --git a/test/fakeintake/client/par.go b/test/fakeintake/client/par.go
new file mode 100644
index 000000000000..b53d8024af96
--- /dev/null
+++ b/test/fakeintake/client/par.go
@@ -0,0 +1,109 @@
+// 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 2026-present Datadog, Inc.
+
+package client
+
+import (
+ "bytes"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io"
+ "net/http"
+ "time"
+
+ "github.com/DataDog/datadog-agent/test/fakeintake/api"
+)
+
+// EnqueuePARTask enqueues a task for the Private Action Runner to dequeue and execute.
+// taskID must be a unique identifier (e.g. uuid.New().String()).
+// actionFQN is the fully-qualified action name (e.g. "com.datadoghq.remoteaction.rshell.runCommand").
+func (c *Client) EnqueuePARTask(taskID, actionFQN string, inputs map[string]interface{}) error {
+ body, err := json.Marshal(map[string]interface{}{
+ "task_id": taskID,
+ "action_fqn": actionFQN,
+ "inputs": inputs,
+ })
+ if err != nil {
+ return fmt.Errorf("marshal enqueue request: %w", err)
+ }
+ resp, err := http.Post(c.fakeIntakeURL+"/fakeintake/par/enqueue", "application/json", bytes.NewReader(body))
+ if err != nil {
+ return fmt.Errorf("enqueue PAR task: %w", err)
+ }
+ defer resp.Body.Close()
+ if resp.StatusCode != http.StatusOK {
+ b, _ := io.ReadAll(resp.Body)
+ return fmt.Errorf("enqueue PAR task: status %d: %s", resp.StatusCode, b)
+ }
+ return nil
+}
+
+// GetPARTaskResult polls fakeintake for the result of the given task until it appears
+// or the timeout expires.
+func (c *Client) GetPARTaskResult(taskID string, timeout time.Duration) (*api.PARTaskResult, error) {
+ deadline := time.Now().Add(timeout)
+ for time.Now().Before(deadline) {
+ result, err := c.getPARResult(taskID)
+ if err == nil {
+ return result, nil
+ }
+ time.Sleep(2 * time.Second)
+ }
+ return nil, fmt.Errorf("timed out waiting for result of task %s", taskID)
+}
+
+// FlushPAR clears all queued PAR tasks and captured results from fakeintake.
+func (c *Client) FlushPAR() error {
+ resp, err := http.Post(c.fakeIntakeURL+"/fakeintake/par/flush", "", nil)
+ if err != nil {
+ return fmt.Errorf("flush PAR state: %w", err)
+ }
+ defer resp.Body.Close()
+ if resp.StatusCode != http.StatusOK {
+ return fmt.Errorf("flush PAR state: status %d", resp.StatusCode)
+ }
+ return nil
+}
+
+// GetPARDequeueCount returns how many times PAR has called the dequeue endpoint.
+// A non-zero value confirms PAR is actively polling fakeintake.
+func (c *Client) GetPARDequeueCount() (int, error) {
+ resp, err := http.Get(c.fakeIntakeURL + "/fakeintake/par/stats")
+ if err != nil {
+ return 0, fmt.Errorf("get PAR stats: %w", err)
+ }
+ defer resp.Body.Close()
+ if resp.StatusCode != http.StatusOK {
+ return 0, fmt.Errorf("get PAR stats: status %d", resp.StatusCode)
+ }
+ var stats struct {
+ DequeueCalls int `json:"dequeue_calls"`
+ }
+ if err := json.NewDecoder(resp.Body).Decode(&stats); err != nil {
+ return 0, fmt.Errorf("decode PAR stats: %w", err)
+ }
+ return stats.DequeueCalls, nil
+}
+
+func (c *Client) getPARResult(taskID string) (*api.PARTaskResult, error) {
+ resp, err := http.Get(fmt.Sprintf("%s/fakeintake/par/result?taskID=%s", c.fakeIntakeURL, taskID))
+ if err != nil {
+ return nil, err
+ }
+ defer resp.Body.Close()
+ if resp.StatusCode == http.StatusNotFound {
+ return nil, errors.New("no result yet")
+ }
+ if resp.StatusCode != http.StatusOK {
+ b, _ := io.ReadAll(resp.Body)
+ return nil, fmt.Errorf("get PAR result: status %d: %s", resp.StatusCode, b)
+ }
+ var result api.PARTaskResult
+ if err := json.NewDecoder(resp.Body).Decode(&result); err != nil {
+ return nil, fmt.Errorf("decode PAR result: %w", err)
+ }
+ return &result, nil
+}
diff --git a/test/fakeintake/go.mod b/test/fakeintake/go.mod
index 922eaf987187..a355d44ac82a 100644
--- a/test/fakeintake/go.mod
+++ b/test/fakeintake/go.mod
@@ -152,7 +152,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/test/fakeintake/server/par.go b/test/fakeintake/server/par.go
new file mode 100644
index 000000000000..ef69d9ecf1cb
--- /dev/null
+++ b/test/fakeintake/server/par.go
@@ -0,0 +1,202 @@
+// 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 2026-present Datadog, Inc.
+
+package server
+
+import (
+ "encoding/json"
+ "io"
+ "net/http"
+ "strings"
+ "sync"
+
+ "github.com/DataDog/datadog-agent/test/fakeintake/api"
+)
+
+// parServerState holds the in-memory task queue and result map for PAR e2e tests.
+// The Private Action Runner polls /api/v2/on-prem-management-service/workflow-tasks/dequeue
+// to receive tasks; tests use /fakeintake/par/* control endpoints to enqueue tasks and
+// read back results without needing a real OPMS backend.
+type parServerState struct {
+ mu sync.Mutex
+ queue []parQueuedTask
+ results map[string]*api.PARTaskResult
+ dequeueCalls int // counts how many times PAR has called the dequeue endpoint
+}
+
+type parQueuedTask struct {
+ TaskID string `json:"task_id"`
+ ActionFQN string `json:"action_fqn"`
+ Inputs map[string]interface{} `json:"inputs"`
+}
+
+// --- PAR-facing handlers (called by the agent) ---
+
+func (fi *Server) handlePARDequeue(w http.ResponseWriter, r *http.Request) {
+ if r.Method != http.MethodPost {
+ http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
+ return
+ }
+
+ fi.par.mu.Lock()
+ defer fi.par.mu.Unlock()
+
+ fi.par.dequeueCalls++
+
+ if len(fi.par.queue) == 0 {
+ w.WriteHeader(http.StatusOK)
+ return
+ }
+
+ task := fi.par.queue[0]
+ fi.par.queue = fi.par.queue[1:]
+
+ bundleID, actionName := parSplitFQN(task.ActionFQN)
+ resp := map[string]interface{}{
+ "data": map[string]interface{}{
+ "id": task.TaskID,
+ "type": "task",
+ "attributes": map[string]interface{}{
+ "name": actionName,
+ "bundle_id": bundleID,
+ "task_id": task.TaskID,
+ "job_id": task.TaskID,
+ "org_id": 0,
+ "inputs": task.Inputs,
+ },
+ },
+ }
+ w.Header().Set("Content-Type", "application/json")
+ _ = json.NewEncoder(w).Encode(resp)
+}
+
+func (fi *Server) handlePARPublish(w http.ResponseWriter, r *http.Request) {
+ if r.Method != http.MethodPost {
+ http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
+ return
+ }
+
+ body, err := io.ReadAll(r.Body)
+ if err != nil {
+ http.Error(w, "failed to read body", http.StatusBadRequest)
+ return
+ }
+
+ var req struct {
+ Data struct {
+ ID string `json:"id"`
+ Attributes struct {
+ TaskID string `json:"task_id"`
+ Payload struct {
+ Outputs map[string]interface{} `json:"outputs"`
+ ErrorCode int `json:"error_code"`
+ ErrorDetails string `json:"error_details"`
+ } `json:"payload"`
+ } `json:"attributes"`
+ } `json:"data"`
+ }
+ if err := json.Unmarshal(body, &req); err != nil {
+ http.Error(w, "invalid JSON", http.StatusBadRequest)
+ return
+ }
+
+ result := &api.PARTaskResult{
+ TaskID: req.Data.Attributes.TaskID,
+ Success: req.Data.ID == "succeed_task",
+ Outputs: req.Data.Attributes.Payload.Outputs,
+ ErrorCode: req.Data.Attributes.Payload.ErrorCode,
+ ErrorDetails: req.Data.Attributes.Payload.ErrorDetails,
+ }
+
+ fi.par.mu.Lock()
+ fi.par.results[result.TaskID] = result
+ fi.par.mu.Unlock()
+
+ w.WriteHeader(http.StatusOK)
+}
+
+func (fi *Server) handlePARHealthCheck(w http.ResponseWriter, _ *http.Request) {
+ w.Header().Set("Content-Type", "application/json")
+ _ = json.NewEncoder(w).Encode(map[string]interface{}{
+ "data": map[string]interface{}{
+ "type": "healthCheckResponse",
+ "id": "fakeintake-par",
+ "attributes": map[string]interface{}{
+ "id": "fake-runner",
+ },
+ },
+ })
+}
+
+func (fi *Server) handlePARHeartbeat(w http.ResponseWriter, _ *http.Request) {
+ w.WriteHeader(http.StatusOK)
+}
+
+// --- Control handlers (called by the test process) ---
+
+func (fi *Server) handlePAREnqueue(w http.ResponseWriter, r *http.Request) {
+ if r.Method != http.MethodPost {
+ http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
+ return
+ }
+
+ var task parQueuedTask
+ if err := json.NewDecoder(r.Body).Decode(&task); err != nil {
+ http.Error(w, "invalid JSON", http.StatusBadRequest)
+ return
+ }
+
+ fi.par.mu.Lock()
+ fi.par.queue = append(fi.par.queue, task)
+ fi.par.mu.Unlock()
+
+ w.WriteHeader(http.StatusOK)
+}
+
+func (fi *Server) handlePARResult(w http.ResponseWriter, r *http.Request) {
+ taskID := r.URL.Query().Get("taskID")
+ if taskID == "" {
+ http.Error(w, "taskID query param required", http.StatusBadRequest)
+ return
+ }
+
+ fi.par.mu.Lock()
+ result, ok := fi.par.results[taskID]
+ fi.par.mu.Unlock()
+
+ if !ok {
+ http.Error(w, "no result yet", http.StatusNotFound)
+ return
+ }
+
+ w.Header().Set("Content-Type", "application/json")
+ _ = json.NewEncoder(w).Encode(result)
+}
+
+func (fi *Server) handlePARFlush(w http.ResponseWriter, _ *http.Request) {
+ fi.par.mu.Lock()
+ fi.par.queue = nil
+ fi.par.results = make(map[string]*api.PARTaskResult)
+ fi.par.dequeueCalls = 0
+ fi.par.mu.Unlock()
+ w.WriteHeader(http.StatusOK)
+}
+
+func (fi *Server) handlePARStats(w http.ResponseWriter, _ *http.Request) {
+ fi.par.mu.Lock()
+ calls := fi.par.dequeueCalls
+ fi.par.mu.Unlock()
+ w.Header().Set("Content-Type", "application/json")
+ _ = json.NewEncoder(w).Encode(map[string]int{"dequeue_calls": calls})
+}
+
+// parSplitFQN splits "com.foo.bar.actionName" into ("com.foo.bar", "actionName").
+func parSplitFQN(fqn string) (string, string) {
+ idx := strings.LastIndex(fqn, ".")
+ if idx < 0 {
+ return fqn, ""
+ }
+ return fqn[:idx], fqn[idx+1:]
+}
diff --git a/test/fakeintake/server/server.go b/test/fakeintake/server/server.go
index 48cc2778a293..7f0a61ba4b0a 100644
--- a/test/fakeintake/server/server.go
+++ b/test/fakeintake/server/server.go
@@ -81,6 +81,8 @@ type Server struct {
responseOverridesMutex sync.RWMutex
responseOverridesByMethod map[string]map[string]httpResponse
+
+ par *parServerState
}
// NewServer creates a new fakeintake server and starts it on localhost:port
@@ -107,6 +109,7 @@ func NewServer(options ...Option) *Server {
}
fi.store = serverstore.NewStore()
+ fi.par = &parServerState{results: make(map[string]*api.PARTaskResult)}
registry := prometheus.NewRegistry()
storeMetrics := fi.store.GetInternalMetrics()
@@ -130,6 +133,17 @@ func NewServer(options ...Option) *Server {
mux.HandleFunc("/fakeintake/configure/override", fi.handleConfigureOverride)
+ // PAR (Private Action Runner) OPMS simulation — polled by the agent's PAR sidecar.
+ mux.HandleFunc("/api/v2/on-prem-management-service/workflow-tasks/dequeue", fi.handlePARDequeue)
+ mux.HandleFunc("/api/v2/on-prem-management-service/workflow-tasks/publish-task-update", fi.handlePARPublish)
+ mux.HandleFunc("/api/v2/on-prem-management-service/runner/health-check", fi.handlePARHealthCheck)
+ mux.HandleFunc("/api/v2/on-prem-management-service/workflow-tasks/heartbeat", fi.handlePARHeartbeat)
+ // PAR test control endpoints — used by the test process to drive tasks and read results.
+ mux.HandleFunc("/fakeintake/par/enqueue", fi.handlePAREnqueue)
+ mux.HandleFunc("/fakeintake/par/result", fi.handlePARResult)
+ mux.HandleFunc("/fakeintake/par/flush", fi.handlePARFlush)
+ mux.HandleFunc("/fakeintake/par/stats", fi.handlePARStats)
+
mux.HandleFunc("/debug/lastAPIKey/", fi.handleGetLastAPIKey)
mux.HandleFunc("/debug/pprof/", pprof.Index)
mux.HandleFunc("/debug/pprof/cmdline", pprof.Cmdline)
diff --git a/test/new-e2e/go.mod b/test/new-e2e/go.mod
index e1a0b87be8b0..89af040955c7 100644
--- a/test/new-e2e/go.mod
+++ b/test/new-e2e/go.mod
@@ -457,7 +457,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/test/new-e2e/tests/agent-configuration/configrefresh_api_key_refresh_test.go b/test/new-e2e/tests/agent-configuration/configrefresh_api_key_refresh_test.go
index 16385248cfe0..c330c48e6776 100644
--- a/test/new-e2e/tests/agent-configuration/configrefresh_api_key_refresh_test.go
+++ b/test/new-e2e/tests/agent-configuration/configrefresh_api_key_refresh_test.go
@@ -9,11 +9,12 @@ import (
"testing"
"time"
- "github.com/DataDog/datadog-agent/test/e2e-framework/components/datadog/agentparams"
- "github.com/DataDog/datadog-agent/test/e2e-framework/components/os"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
+ "github.com/DataDog/datadog-agent/test/e2e-framework/components/datadog/agentparams"
+ "github.com/DataDog/datadog-agent/test/e2e-framework/components/os"
+
scenec2 "github.com/DataDog/datadog-agent/test/e2e-framework/scenarios/aws/ec2"
"github.com/DataDog/datadog-agent/test/e2e-framework/testing/e2e"
"github.com/DataDog/datadog-agent/test/e2e-framework/testing/environments"
@@ -28,6 +29,7 @@ type linuxAPIKeyRefreshSuite struct {
}
func TestLinuxAPIKeyFreshSuite(t *testing.T) {
+ t.Parallel()
suite := &linuxAPIKeyRefreshSuite{descriptor: os.UbuntuDefault}
e2e.Run(t, suite, e2e.WithProvisioner(awshost.Provisioner()))
}
diff --git a/test/otel/go.mod b/test/otel/go.mod
index 2cd40ba125d9..9a5f16d3fe72 100644
--- a/test/otel/go.mod
+++ b/test/otel/go.mod
@@ -114,7 +114,6 @@ require (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/logs/message v0.64.0-rc.12 // indirect
github.com/DataDog/datadog-agent/pkg/logs/metrics v0.64.0-rc.3 // indirect
- github.com/DataDog/datadog-agent/pkg/logs/pipeline v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/logs/processor v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/logs/sender v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/logs/sources v0.64.0-rc.3 // indirect
@@ -143,7 +142,7 @@ require (
github.com/DataDog/datadog-agent/pkg/util/pointer v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/util/quantile v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/util/scrubber v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
- github.com/DataDog/datadog-agent/pkg/util/startstop v0.61.0 // indirect
+ github.com/DataDog/datadog-agent/pkg/util/startstop v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/statstracker v0.64.0-rc.3 // indirect
github.com/DataDog/datadog-agent/pkg/util/system v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
github.com/DataDog/datadog-agent/pkg/util/winutil v0.77.0-devel.0.20260213154712-e02b9359151a // indirect
@@ -347,7 +346,6 @@ replace (
github.com/DataDog/datadog-agent/pkg/logs/diagnostic => ../../pkg/logs/diagnostic
github.com/DataDog/datadog-agent/pkg/logs/message => ../../pkg/logs/message
github.com/DataDog/datadog-agent/pkg/logs/metrics => ../../pkg/logs/metrics
- github.com/DataDog/datadog-agent/pkg/logs/pipeline => ../../pkg/logs/pipeline
github.com/DataDog/datadog-agent/pkg/logs/processor => ../../pkg/logs/processor
github.com/DataDog/datadog-agent/pkg/logs/sender => ../../pkg/logs/sender
github.com/DataDog/datadog-agent/pkg/logs/sources => ../../pkg/logs/sources
diff --git a/tools/bazel b/tools/bazel
index 438727fb8d67..260bad857349 100755
--- a/tools/bazel
+++ b/tools/bazel
@@ -2,38 +2,45 @@
set -euo pipefail
# Check `bazelisk` properly bootstraps `bazel` or fail with instructions
-if [ -z "${BAZEL_REAL:-}" ] || [ "${BAZELISK_SKIP_WRAPPER:-}" != true ]; then
+if [ -z "${BAZEL_REAL-}" ] || [ "${BAZELISK_SKIP_WRAPPER-}" != true ]; then
>&2 cat "$(dirname "$0")/bazelisk.md"
exit 2
fi
# Ensure `XDG_CACHE_HOME` denotes a directory
-if [ ! -d "${XDG_CACHE_HOME:-}" ]; then
- if [ -n "${CI:-}" ]; then
- >&2 echo "🔴 XDG_CACHE_HOME (${XDG_CACHE_HOME:-}) must denote a directory in CI!"
+if [ ! -d "${XDG_CACHE_HOME-}" ]; then
+ if [ -n "${CI-}" ]; then
+ >&2 echo "🔴 XDG_CACHE_HOME (${XDG_CACHE_HOME-}) must denote a directory in CI!"
exit 2
fi
if [[ -e /.dockerenv || -e /run/.containerenv ]]; then
>&2 echo "💡 To persist caches across restarts, please set XDG_CACHE_HOME pointing to a mounted directory, e.g.:"
# shellcheck disable=SC2016
- >&2 echo ' docker run --env=XDG_CACHE_HOME=/cache --volume="$HOME/.cache:/cache" ...'
+ >&2 echo ' docker run --env=XDG_CACHE_HOME=/cache --volume=~/.cache:/cache ...'
fi
fi
-# Ensure `bazel` & managed toolchains honor `XDG_CACHE_HOME` as per https://wiki.archlinux.org/title/XDG_Base_Directory
+# Ensure `bazel` & managed toolchains honor `XDG_CACHE_HOME`
extra_args=()
-if [ -n "${XDG_CACHE_HOME:-}" ]; then
+if [ -n "${XDG_CACHE_HOME-}" ]; then
if [[ "$XDG_CACHE_HOME" != /* ]]; then
>&2 echo "🔴 XDG_CACHE_HOME ($XDG_CACHE_HOME) must denote an absolute path!"
exit 2
fi
- unset GOCACHE # https://pkg.go.dev/cmd/go#hdr-Build_and_test_caching
- export GOMODCACHE="$XDG_CACHE_HOME"/go/mod # https://wiki.archlinux.org/title/XDG_Base_Directory#Partial
- unset PIP_CACHE_DIR # https://pip.pypa.io/en/stable/topics/caching/#default-paths
+ export GOCACHE="$XDG_CACHE_HOME/go-build"
+ export GOMODCACHE="$XDG_CACHE_HOME/go/mod"
extra_args+=(--disk_cache="$XDG_CACHE_HOME/bazel/disk-cache")
# https://github.com/bazelbuild/bazel/issues/26384
[ "$XDG_CACHE_HOME" = "$(dirname "$(dirname "$0")")/.cache" ] && extra_args+=(--repo_contents_cache=)
- [ -n "${CI:-}" ] && [ -z "${GITHUB_ACTIONS:-}" ] && extra_args+=(--config=ci)
+ [ -n "${CI-}" ] && [ -z "${GITHUB_ACTIONS-}" ] && extra_args+=(--config=ci)
+else
+ # Without `XDG_CACHE_HOME`, fall back Go caches to official defaults so Go repo rules work under strict repo_env
+ [ -z "${GOCACHE-}" ] && export GOCACHE=~/.cache/go-build
+ if [ -z "${GOMODCACHE:-}" ]; then
+ [ -n "${GOPATH-}" ] && gp="${GOPATH%%:*}" || gp=~/go
+ export GOMODCACHE="$gp/pkg/mod"
+ unset gp
+ fi
fi
# "--startup cmd ..." -> "--startup cmd --config=ci ..."
@@ -50,6 +57,4 @@ if [[ $# -gt 0 && ${#extra_args[@]} -gt 0 ]]; then
set -- "${args[@]}"
fi
-# Prevent rules_android from loading a system Android SDK - TODO(regis): replace with --experimental_strict_repo_env
-unset ANDROID_HOME
exec "$BAZEL_REAL" "$@"
diff --git a/tools/bazel.bat b/tools/bazel.bat
index c47af069b201..e7f41ee4a6bf 100644
--- a/tools/bazel.bat
+++ b/tools/bazel.bat
@@ -21,7 +21,7 @@ if not exist "%XDG_CACHE_HOME%" (
)
)
-:: Ensure `bazel` & managed toolchains honor `XDG_CACHE_HOME` as per https://wiki.archlinux.org/title/XDG_Base_Directory
+:: Ensure `bazel` & managed toolchains honor `XDG_CACHE_HOME`
set "extra_args="
if defined XDG_CACHE_HOME (
set "XDG_CACHE_HOME=!XDG_CACHE_HOME:/=\!"
@@ -29,19 +29,24 @@ if defined XDG_CACHE_HOME (
>&2 echo 🔴 XDG_CACHE_HOME ^(!XDG_CACHE_HOME!^) must denote an absolute path!
exit /b 2
)
- :: https://pkg.go.dev/cmd/go#hdr-Build_and_test_caching
- set "GOCACHE=%XDG_CACHE_HOME%\go-build"
- :: https://wiki.archlinux.org/title/XDG_Base_Directory#Partial
- set "GOMODCACHE=%XDG_CACHE_HOME%\go\mod"
- :: https://pip.pypa.io/en/stable/topics/caching/#default-paths
- set "PIP_CACHE_DIR=%XDG_CACHE_HOME%\pip"
+ set "GOCACHE=!XDG_CACHE_HOME!\go-build"
+ set "GOMODCACHE=!XDG_CACHE_HOME!\go\mod"
+ set "PIP_CACHE_DIR=!XDG_CACHE_HOME!\pip"
:: https://github.com/bazelbuild/bazel/issues/27808
- set "bazel_home=%XDG_CACHE_HOME%\bazel"
+ set "bazel_home=!XDG_CACHE_HOME!\bazel"
set bazel_home_startup_option="--output_user_root=!bazel_home!"
set extra_args="--disk_cache=!bazel_home!\disk-cache"
:: https://github.com/bazelbuild/bazel/issues/26384
for %%i in ("%~dp0..\.cache") do if "!XDG_CACHE_HOME!" == "%%~fi" set "extra_args=!extra_args! --repo_contents_cache="
if defined CI if not defined GITHUB_ACTIONS set "extra_args=!extra_args! --config=ci"
+) else (
+ :: Without XDG_CACHE_HOME, fall back Go caches to official defaults so Go repo rules work under strict repo_env
+ if not defined GOCACHE set "GOCACHE=%LOCALAPPDATA%\go-build"
+ if not defined GOMODCACHE (
+ if defined GOPATH (for /f "tokens=1 delims=;" %%i in ("%GOPATH%") do set "gp=%%i") else set "gp=%USERPROFILE%\go"
+ set "GOMODCACHE=!gp!\pkg\mod"
+ set "gp="
+ )
)
:: Check legacy max path length of 260 characters got lifted, or fail with instructions
@@ -59,8 +64,6 @@ if not exist "!more_than_260_chars!" (
set "args=%*"
if defined args if defined extra_args call :insert_extra_args
-:: Prevent rules_android from loading a system Android SDK - TODO(regis): replace with --experimental_strict_repo_env
-set "ANDROID_HOME="
"%BAZEL_REAL%" !bazel_home_startup_option! !args!
exit /b !errorlevel!