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!