Releases: DataDog/datadog-agent
Release list
7.81.1
Agent
Prelude
Released on: 2026-07-15
- Please refer to the 7.81.1 tag on integrations-core for the list of changes on the Core Checks
New Features
- Add a new reflector-based Kubernetes event collection path, enabled via
event_collection_mode: watch.
Enhancement Notes
- Agents are now built with Go
1.26.5.
Datadog Cluster Agent
Prelude
Released on: 2026-07-15 Pinned to datadog-agent v7.81.1: CHANGELOG.
7.81.0
Agent
Prelude
Released on: 2026-07-08
- Please refer to the 7.81.0 tag on integrations-core for the list of changes on the Core Checks
Metrics are now forwarded to the new Datadog v3 API by default (/api/intake/metrics/v3/series). The v3 API payload format is more compact, reducing outbound bandwidth from Agents to Datadog.
If you configure additional_endpoints to forward to a non-Datadog endpoint, you will likely need to disable v3 for this endpoint. Otherwise you will see 404s. This can be done via:
use_v3_api:
series:
endpoints:
"<additional_endpoint>": falseExample:
additional_endpoints:
"https://non-datadog-endpoint":
- apikey2will need:
use_v3_api:
series:
endpoints:
"https://non-datadog-endpoint": falseMetrics sent to Observability Pipelines Worker continue to use the v2 API by default.
To keep using v2 endpoint, set use_v3_api.series.enabled: "false" (global) or use_v3_api.series.endpoints: { "<url>": "false" } (per-endpoint; shown above).
Upgrade Notes
-
The DDOT feature gate
exporter.datadogexporter.metricremappingdisabledhas been removed and replaced withexporter.datadogexporter.DisableAllMetricRemapping. -
Removed the
agent status pysubcommand (which wasn't officially supported) -
On Linux, the agent process manager systemd units were renamed from
datadog-agent-procmgrd.service/datadog-agent-procmgrd-exp.servicetodatadog-agent-procmgr.service/datadog-agent-procmgr-exp.service. Thedd-procmgrdbinary and its paths are unchanged.On upgrade, the installer stops and removes the legacy
procmgrd-suffixed unit files so only one process manager daemon binds the socket. Update any custom automation that referenced the old unit names. -
Upgrade OpenTelemetry Collector dependencies from v0.152.0 to v0.153.0 (core v1.58.0 to v1.59.0).
See the full upstream changelogs: collector-contrib v0.153.0, collector core v0.153.0.
-
Upgrade OpenTelemetry Collector dependencies from v0.153.0 to v0.154.0 (core v1.59.0 to v1.60.0).
See the full upstream changelogs: collector-contrib v0.154.0, collector core v0.154.0.
New Features
-
In-place vertical scaling is enabled as the default strategy for workload autoscaling.
-
New metrics for GPU memory have been added to the GPU Monitoring product:
gpu.memory.utilization: Ratio of used memory compared to total memory.
-
Add passthrough entry for genresources EVP intake track.
-
This change adds two new metric points for the GPU Monitoring product:
gpu.pci.link.speed.current: Current usable bandwidth for the PCI link in bytes per secondgpu.pci.link.speed.max: Max usable bandwidth for the PCI link in bytes per second
-
Add a new ReportIssue method to the Python bridge to report issues to Agent Health Platform
-
APM: The trace-agent can now receive span tag equivalence and peer tag mapping updates over Remote Configuration and apply them at runtime, without an agent restart. The feature is opt-in via the new
remote_configuration.apm_semantics.enabledsetting (defaultfalse). Stats aggregation picks up the updated peer-tag keys on the next span processed. If the backend removes or untargets a previously-applied payload, the trace-agent reverts to the mappings it ships with. Existing deployments see no behavior change with default settings. -
APM:
remote_configuration.agent_config.enabledis now a settable configuration entry that controls the trace-agent's Remote Configuration subscription for agent-config updates (such as runtime log-level overrides) independently fromremote_configuration.apm_sampling.enabled. When the user has explicitly setapm_sampling.enabledbut notagent_config.enabled, the trace-agent mirrors the former into the latter so existing configurations continue to behave exactly as before. -
On Linux, when the DDOT extension is installed with the Datadog Agent, DDOT is now managed by
dd-procmgrdthroughprocesses.d/datadog-agent-ddot.yamlinstead of relying on the legacydatadog-agent-ddotsystemd unit. Uninstalling the extension removes that config file. To roll back to the legacy behavior manually, removeprocesses.d/datadog-agent-ddot.yamland restartdatadog-agent. -
Add Go stack trace aggregation to the auto multi-line log pipeline. When auto multi-line aggregation is enabled (
logs_config.auto_multi_line_detection), multi-line Go crash dumps (panic:,fatal error:,runtime:errors, signal crashes, and unexpected faults) are automatically detected and combined into a single log entry using a streaming state-machine parser. -
gpu: all gpu.nvlink.* metrics now have a nvlink_port tag and are emitted per-port. We provide GPU-level alternatives for certain metrics such as gpu.nvlink.throughput.data.rx/tx.total
-
Enable
instrumentation_crd_controller.enabledand a new autodiscovery provider will schedule checks derived fromDatadogInstrumentationcustom resources deployed in the Kubernetes cluster. -
Parses and collects
kubernetes.pod.cpu.requests,kubernetes.pod.memory.requests,kubernetes.pod.cpu.limits, andkubernetes.pod.memory.limits. -
Process Autodiscovery is now enabled by default on Linux through the
processautoconfig feature. It can be disabled withDD_AUTOCONFIG_EXCLUDE_FEATURES=process. -
Register
process_manager.enabledin the Agent configuration schema (pkg/config/schema/core_schema.yaml), set its default inpkg/config/setup, and document it inconfig_template.yaml. On Windows, this option controls whether the core Agent startsdd-procmgr-service. On Linux,dd-procmgrdis started by systemd; this setting is ignored there.
Enhancement Notes
-
Use compensated floating point summation to accurately calculate the sum and average aggregates of histograms for inputs where magnitudes significantly vary.
-
Scale
.sum,.avg, and.countaggregates by the exact1/SampleRateto avoid undercount of these aggregates for sample rates whose reciprocal is not an integer (e.g.@0.21). -
The macOS battery check now adds a
power_state:battery_criticaltag to thesystem.battery.power_statemetric when the operating system reports a degraded battery. -
Update the SNMP traps database with new MIB additions, including
PANZURA-TRAP-MIB. -
Updated the ntp check to support the default location of
systemd-timesyncd(/etc/systemd/timesyncd.conf). The check now parsesNTP=andFallbackNTP=keys in addition to the existing chrony/ntp.confserver/pool/peerdirectives. -
On startup the Datadog Agent will now validate its configuration against the schema and report any violations through the Agent Health pipeline.
-
APM stats now mask additional metric tag values that exceed the value length or per-bucket cardinality limits.
-
APM : The
enable_otlp_container_tags_v2behavior is now enabled by default. Container tags on OTLP traces are now extracted using the infraattributes processor instead of calling the tagger directly, reducing redundant work and outgoing traffic. To opt out, setdisable_otlp_container_tags_v2inapm_config.features. -
Agents are now built with Go
1.26.4. -
CWS: Add support for monitoring the
socketsystem call, enabling detection rules based on socket creation events (domain, type, protocol). -
The
comp/dataobs/queryactionscomponent now supports an optionalschedulefield on Data Observability monitor queries. The field accepts a standard 5-field cron expression (e.g."20 * * * *"for 20 minutes past every hour) and enables wall-clock-aligned scheduling in place of the fixedinterval_secondscadence. When bothscheduleandinterval_secondsare set on the same query,scheduletakes precedence andinterval_secondsis ignored. At least one of the two fields must be set; the agent rejects Remote Configuration payloads containing queries where neither field is provided or where the cron expression is syntactically invalid. -
Expanded the functionality of the experimental fentry-based network connection tracer. This tracer remains experimental and disabled by default.
-
gpu: add new PCI link width metrics
gpu.pci.link.width.{current,max}and add degraded PCI link metricsgpu.pci.link.{width,speed}.degraded. -
gpu: add
gpu.nvlink.errors.fec.{none,light,heavy}metrics to easily group error thresholds -
The in-place vertical autoscaler throttles disruptive resizes to at most 15% of a workload's replicas per reconcile, configurable via
autoscaling.workload.in_place_vertical_scaling.disruption_tolerance_percent. -
use the
/healthzroute to check and validate kubelet connection, instead of the deprecated/specroute. -
The agent automatically detects Kueue-related labels in pods and adds them as
kueue_local_queueandkueue_cluster_queuetags. -
Network Config Management: Adds support for Cisco ASA firewalls by adding a new profile for these. Previously, Cisco ASA was not supported and would be unmonitored by the NCM integration.
-
Extended the ntp check's
systemd-timesyncddiscovery to also read drop-in files under/etc/systemd/timesyncd.conf.d/,/run/systemd/timesyncd.conf.d/,/usr/local/lib/systemd/timesyncd.conf.d/, and/usr/lib/systemd/timesyncd.conf.d/. This covers hosts whereNTP=is set by cloud-init or another tool that writes a drop-in instead ...
7.80.4
Agent
Prelude
Released on: 2026-07-01
- Please refer to the 7.80.4 tag on integrations-core for the list of changes on the Core Checks
Bug Fixes
- Add more traces during SSI installation on Linux host
Datadog Cluster Agent
Prelude
Released on: 2026-07-01 Pinned to datadog-agent v7.80.4: CHANGELOG.
7.80.3
Agent
Prelude
Released on: 2026-06-24
- Please refer to the 7.80.3 tag on integrations-core for the list of changes on the Core Checks
Enhancement Notes
- Agents are now built with Go
1.25.11.
Bug Fixes
- Workload autoscaling: fixed a bug where, when running the Cluster Agent in high-availability mode (multiple replicas), the burstable mode of a
DatadogPodAutoscalercould leave the CPU limit in place on a random subset of pods. The CPU-limit removal is now re-derived from the autoscaler spec in the admission controller, so every replica applies it consistently regardless of which one handles the admission request. - Fix Private Action Runner self-enrollment failing silently on hosts with no direct internet access when a proxy is configured in
datadog.yaml. Enrollment requests now respect the agent proxy settings (proxy.https,proxy.http, andno_proxy). - Disable v3beta metrics intake shadow payloads when zlib compression is used.
Datadog Cluster Agent
Prelude
Released on: 2026-06-24 Pinned to datadog-agent v7.80.3: CHANGELOG.
7.80.2
Agent
Prelude
Released on: 2026-06-17
- Please refer to the 7.80.2 tag on integrations-core for the list of changes on the Core Checks
Enhancement Notes
- Compliance: CIS Docker rules (
scope: docker) are no longer evaluated on Kubernetes nodes where the kubelet's CRI runtime is not Docker (e.g. containerd, CRI-O), avoiding false positives on GKE Container-Optimized OS which ships dockerd alongside containerd. The runtime is read from the kubelet's--container-runtime-endpointflag or thecontainerRuntimeEndpointfield of its--configYAML; if it cannot be determined the rules continue to evaluate.
Security Notes
- Fixed a confused-deputy vulnerability in the Cluster Agent's AppSec ingress-nginx admission mutator where the pod's
--configmap=<namespace>/<name>argument was trusted verbatim, allowing a user with pod-create permission in one namespace to make the Cluster Agent service account create or update ConfigMaps and add labels and annotations in arbitrary namespaces. The mutator now requires the<namespace>portion to match the pod's own namespace (or use the$(POD_NAMESPACE)downward-API substitution) and skips mutation otherwise, emitting a warning event on the pod. The vulnerability affected Cluster Agent releases starting from 7.78.0.
Bug Fixes
- Fix an issue where container log collection could stop for an individual container without recovering and without any error in the Agent logs. When a container's log stream was idle longer than
logs_config.docker_client_read_timeout, the read timeout could cause the underlying Docker connection to close in a way that the tailer treated as a permanent shutdown, silently stopping log collection for that container until it was recreated or the Agent was restarted. The tailer now reconnects in this case, and only stops when the Agent is intentionally shutting down. Low-volume containers (for example, services that log only periodically) were the most affected. - OTel Agent: Disable v3 series API shadow sampling, which is incompatible with the zlib compression the OTel Agent forces for the metrics intake.
Datadog Cluster Agent
Prelude
Released on: 2026-06-17 Pinned to datadog-agent v7.80.2: CHANGELOG.
Bug Fixes
- Fixed an issue where the admission controller connectivity probe webhook did not include the AKS selector requirements when
admission_controller.add_aks_selectorswas enabled, which could cause repeated webhook reconciliation conflicts on AKS.
7.80.1
Agent
Prelude
Released on: 2026-06-12
- Please refer to the 7.80.1 tag on integrations-core for the list of changes on the Core Checks
Enhancement Notes
- The Agent's embedded Python has been upgraded from 3.13.13 to 3.13.14
Datadog Cluster Agent
Prelude
Released on: 2026-06-12 Pinned to datadog-agent v7.80.1: CHANGELOG.
7.80.0
Agent
Prelude
Released on: 2026-06-11
- Please refer to the 7.80.0 tag on integrations-core for the list of changes on the Core Checks
Upgrade Notes
-
Health Platform: the
ReportIssuemethod now takes a singleIssueReportargument instead of(checkID, checkName string, report *IssueReport). TheIssueReportstruct carries three new fields —IssueID(unique instance id),IssueType(template id), andSource(reporting integration name) — replacing the separatecheckIDandcheckNamearguments.The health platform persistence file format has been bumped to version 2. Existing persistence files (
<run_path>/health-platform/issues.json) written by a previous agent version will be detected, logged as incompatible, and discarded on startup; the agent starts with a fresh issue state. No data migration is performed.For integrations calling
ReportIssue: construct anIssueReportwithIssueIDset to a unique instance key (e.g."check-execution-failure:<check-id>"),IssueTypeset to the template identifier that was previously passed as theIssueIdfield of the protoIssueReport, andSourceset to the integration name. To resolve an issue, callResolveIssue(issueID)instead of passingniltoReportIssue. -
Health Platform: the
health_platform.issues_detectedtelemetry counter is now tagged withissue_typeinstead ofhealth_check_id. Update any dashboards, monitors, or telemetry configuration that filtered or grouped by thehealth_check_idtag to useissue_typeinstead. -
APM: On Linux, the trace agent process now only starts once data is sent to any of its configured listeners.
Previously, the trace agent started immediately on agent startup, it now starts lazily when needed, which reduces resource usage. To disable and restore the previous behavior, set
apm_config.socket_activation.enabled: falseindatadog.yaml, or set the environment variableDD_APM_SOCKET_ACTIVATION_ENABLED=false.
New Features
-
The Windows MSI installer now includes the AI Usage Chrome Native Messaging Host, which is intended to work with a companion Chrome extension to power EUDM AI usage features. The host is currently dormant because the Chrome extension is not yet enabled, so no AI usage host process runs on the system.
-
Adds a new
discovery.service_map.enabledsystem-probe configuration option that boots the universal service monitoring (USM) eBPF monitor in a restricted mode, capturing only the data needed to render a service dependency map (HTTP and HTTPS via TLS uprobes). Hosts running in this mode are not billed as USM customers, are not surfaced in USM dashboards, and do not produceuniversal.http.*metrics. Intended for non-APM customers as a free preview of application observability. -
Add
k8sobjectsreceiverto the DDOT (Datadog Distribution of OpenTelemetry Collector) default manifest, enabling collection of Kubernetes object events and resource states via the OpenTelemetry Collector pipeline. -
Adds a new action
get-resourcein kubeactions. -
The fleet installer's
agent-packageOCI index now contains a FIPS-flavored sibling manifest for each platform, distinguished by the OCIPlatform.Variantfield. WhenDD_FIPS_MODE=trueis set, the installer downloads the FIPS manifest; otherwise it downloads the base manifest. The package URL is unchanged in both cases. -
Add a new
ncclcore check that collects per-rank NCCL collective communication metrics from GPU training and inference workloads.The check listens on a Unix domain socket (default
/var/run/datadog/nccl.socket) for JSON events emitted by the NCCL profiler plugin (libnccl-profiler-dd.so) running inside GPU pods. Each event is tagged withrank,collective,n_ranks,kube_pod_name,kube_namespace, andkube_container_name.Metrics emitted:
nccl.collective.exec_time_us— time a rank spends inside a collective operation. A rank with a significantly lower value than its peers is the straggler; ranks with higher values are waiting at the barrier.nccl.collective.algo_bandwidth_gbps— algorithm bandwidth of the collective.nccl.collective.bus_bandwidth_gbps— bus bandwidth normalised for the collective type.nccl.collective.msg_size_bytes— tensor size being communicated.nccl.rank.seconds_since_last_event— seconds since this rank last reported an event; non-zero values indicate a potential hang.
Enable the check cluster-wide by setting
gpu.nccl.enabled: truein the Agent configuration (orDD_GPU_NCCL_ENABLED=true). The socket path can be overridden viagpu.nccl.socket_path; the host directory mounted into training pods can be overridden viagpu.nccl.host_socket_path. -
Add support for the
datadog.metric.as_typedatapoint attribute on OTLP delta sum metrics. When this attribute is set to"rate", the metric is sent to Datadog as a Rate (value divided by interval) instead of a Count. Accepted values are"rate","count", and"gauge"; unknown values are logged and ignored. This allows users migrating from DogStatsD to OpenTelemetry to preserve rate-type metric behavior. -
Add
multi_secret_backendsindatadog.yamlso you can declare extra named secret backends (each withtypeandconfig). When nosecret_backend_typeis set, select the backend per handle usingENC[backendID;secretKey](backendIDmatches a name undermulti_secret_backends). Precedence issecret_backend_command(if set) oversecret_backend_typeovermulti_secret_backends: a custom command wins over native type; when nativesecret_backend_typeis set (and no custom command), everyENC[...]inner string is resolved only through that type andmulti_secret_backendsis not used for routing. -
Add
admission_controller.auto_instrumentation.container_registry_allow_listconfiguration option (env varDD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_CONTAINER_REGISTRY_ALLOW_LIST) to restrict which container registries can be used as sources for APM library injection via Single Step Instrumentation. When set to a non-empty comma-separated list, the admission controller will skip injection for any pod whose injector image registry is not in the list, and will set theinternal.apm.datadoghq.com/injection-errorannotation with the reason. An empty list (the default) allows injection from any registry. -
Windows:
windows_certificatecheck addscertificate_store_regex, a list of Go regular expressions matched againstHKLMcertificate store names. Patterns are matched case-insensitively.certificate_storeandcertificate_store_regexcan be used together; at least one must be set.
Enhancement Notes
-
Process kubernetes actions asynchronously to avoid blocking the main thread.
-
Add an example OpenMetrics check configuration for Agent Data Plane deployments to restore
datadog.agent.dogstatsd.*anddatadog.agent.forwarder.transactions.*metrics. -
Pre-register
datadog-apm-library-iis,datadog-apm-library-iis-rum, anddatadog-apm-library-httpdin the fleet installer. The packages are gated behind remote updates so they can be rolled out via remote configuration without a new installer release. -
Chunk remote workloadmeta messages in the Agent to avoid exceeding the gRPC max message size.
-
APM : The Trace Agent
agent statusoutput now shows the UDS (Unix Domain Socket) receiver path when UDS is enabled, in addition to the existing TCP receiver address. Each per-client entry in the receiver stats section also displays the connection type (tcp,uds, orpipe), making it easier to distinguish traffic arriving via different transports. -
Autodiscovery template resolution failures are now logged at ERROR level instead of DEBUG, making them visible without enabling debug logging. Additionally, when the health platform is enabled, these failures are reported as AD misconfiguration health events with actionable remediation steps, providing proactive visibility when an autodiscovered check config is silently skipped due to unsupported template variables.
-
When
infrastructure_modeisbasic, the Agent's default allowlist now includes the Directory, WMI Check, Windows Certificate, Windows Performance Counters, and Windows Registry integrations so they can run without extraintegration.additionalconfiguration on Windows-oriented deployments. -
Agents are now built with Go
1.25.10. -
On Windows, network connections collected by Cloud Network Monitoring are now tagged with
interface_nameandinterface_type. -
The Agent now streams Kubernetes metadata from the Cluster Agent by default, instead of polling for it periodically. This propagates tags derived from Kubernetes metadata (like
kube_service) with less delay. This behavior is controlled by thekubernetes_metadata_streamingsetting. -
agent diagnosenow renders the check name as a prefix for all checks under thecheck-datadogsuite. The JSON output gains acheck_namefield for the same purpose. -
The
--includeand--excludeflags ofagent diagnosenow match against the suite name, the owning check name, and the diagnosis category. For example,agent diagnose --include postgresnow filters individual diagnoses across all suites instead of only matching suite names. -
DogStatsD timing metrics (
ttype) now include an explicit unit value (millisecond) in the metric payload sent to Datadog, allowing the Datadog UI to display the correct unit automatically. -
Dynamic Instrumentation now supports compound conditions using
&&,||, and!. -
When
infrastructure_modeis set tonone, ECS task metadata collection is now disabled by default (seeecs_task_collection_enabled). SetDD_ECS_TASK_COLLECTION_ENABLEDtotrueto ove...
7.79.2
Agent
Prelude
Released on: 2026-06-03
- Please refer to the 7.79.2 tag on integrations-core for the list of changes on the Core Checks
Security Notes
- Bumped containerd dependencies to mitigate CVE-2026-46680:
github.com/containerd/containerdto v1.7.32 and pinnedgithub.com/containerd/containerd/v2to v2.0.9 (the EOL v2.1.x line has no fix).
Bug Fixes
-
Use the Docker daemon's
/pingendpoint instead of/infoto verify connectivity duringDockerUtilinitialization. Some daemons emitDefaultAddressPools[].Basevalues in/infothat are not valid CIDRs, which fail the strictnetip.Prefixdecoding introduced by the moby v29 client and previously causedDockerUtilto fail to initialize. This cascaded into the Docker workloadmeta collector and the Docker core check being unavailable, leading to missing container/image tags on metrics and traces from Docker containers. -
Fix the Agent's Docker integration against Docker daemons that return malformed values in their
/inforesponse. The failure was visible in Agent logs as:Docker init error: temporary failure in dockerutil, will retry later: Error reading remote info: netip.ParsePrefix("invalid Prefix"): no '/'When triggered, it prevented the Docker integration from initializing, which cascaded into:
- missing container and image tags on metrics, traces and logs collected from Docker containers,
- missing
docker_versionanddocker_swarmentries in host metadata, - missing
docker_swarm_node_rolehost tag on Docker Swarm nodes, - in containerized deployments without an explicit
DD_HOSTNAME, the Agent could refuse to start because the Docker hostname provider could no longer determine a hostname.
-
Add the macOS hardened-runtime Location Services entitlement (
com.apple.security.personal-information.location) to signed Agent binaries in order to trigger the system location permission prompt properly.
Datadog Cluster Agent
Prelude
Released on: 2026-06-03 Pinned to datadog-agent v7.79.2: CHANGELOG.
Bug Fixes
- Cluster Agent: Evaluate AppSec sidecar admission webhook match conditions against the deleted object for pod deletion requests.
- Cluster Agent: Prevent disabled AppSec proxy injection cleanup from enabling the AppSec sidecar admission webhook.
7.79.1
Agent
Prelude
Released on: 2026-05-28
- Please refer to the 7.79.1 tag on integrations-core for the list of changes on the Core Checks
Security Notes
- Bump
github.com/prometheus/prometheustov0.311.4to address CVE-2026-42151 and CVE-2026-42154.
Bug Fixes
- Windows: Fix CD-ROM drives being monitored by the disk check since Agent 7.73.0. The diskv2 check now uses the Windows
GetDriveType()API to properly detect and exclude CD-ROM drives, matching the behavior of the previous Python disk check. This fixes false alerts onsystem.disk.in_usefor CD-ROM drives with inserted media. - Fix a bug in the workload autoscaling controller where annotation-only edits (e.g.
autoscaling.datadoghq.com/preview) on a locally-ownedDatadogPodAutoscalerwere not picked up until the next.specchange or cluster-agent restart, because the controller gated re-sync on.metadata.generation(which annotations do not bump). Toggling burstable mode via the preview annotation now takes effect on the next reconcile. - MacOS agent GUI app needs to ignore SIGPIPE to avoid process termination.
- On macOS, preserve user customizations to
system-probe.yamlacross Agent upgrades. - Fixed a bug on Windows where the NPM TCP failure rate could exceed 100% and climb indefinitely.
Datadog Cluster Agent
Prelude
Released on: 2026-05-28 Pinned to datadog-agent v7.79.1: CHANGELOG.
7.79.0
Agent
Prelude
Released on: 2026-05-20
- Please refer to the 7.79.0 tag on integrations-core for the list of changes on the Core Checks
Upgrade Notes
- Upgraded JMXFetch to 0.52.0, which adds JMX metrics mappings for Generational Shenandoah GC and introduces the
use_canonical_bean_nameoption to guarantee consistent key property ordering in bean names. See 0.52.0 for more details. - On macOS, the Agent now installs as a system-wide LaunchDaemon running under a dedicated
_dd-agentservice user instead of a per-user LaunchAgent. Existing per-user installations will need to uninstall and reinstall to adopt the new mode. The previous install script is preserved asinstall_mac_os_v1.shfor versions prior to 7.79.0.
New Features
- Flares now include a
connectivity/resolved_endpoints.txtfile that lists the IP addresses each configured Datadog intake endpoint hostname resolves to at flare-generation time. This makes it straightforward to determine whether the Agent is using PrivateLink (private IPs) or the public Datadog intake. - Added a
capacity-type:spothost tag on AWS EC2 Spot instances. The tag is collected from IMDS and added alongside the other EC2 instance info host tags whencollect_ec2_instance_infois enabled. - Adds cluster agent processing of select actions on kubernetes resources
- 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.
- Add a native Go core check for the Datadog CSI driver (
datadog_csi_driver), replacing the Python OpenMetrics integration. The check scrapes the CSI driver's Prometheus endpoint and submitsdatadog.csi_driver.node_publish_volume_attempts.countanddatadog.csi_driver.node_unpublish_volume_attempts.countas monotonic count metrics. Metric names, tags, and autodiscovery identifiers are unchanged; no user action is required. - Add DNS monitoring support on macOS using libpcap packet capture.
- Add the
comp/dataobs/queryactionsagent component for Data Observability query actions. When enabled viadata_observability.query_actions.enabled: true, the component subscribes to theDO_QUERY_ACTIONSRemote Configuration product and schedules ado_query_actionsPython check to execute SQL queries against monitored Postgres instances on configurable intervals. Results are forwarded to thedata-obs-intake.<site>/api/v2/query-actionsevent platform endpoint. - Add
agent experimental check-configandagent experimental onboardcommands that run a 6-stage validation pipeline ondatadog.yamlwithout requiring a running agent: file permissions, YAML syntax (with line-level error messages), API key format, site/region validity, live API key validation (skippable with--no-api), and a product enablement summary. These commands are experimental and subject to change. - On macOS, the Agent now collects CPU L1/L2/L3 cache sizes, CPU package count, and hardware platform in host metadata.
- Kata core check to gather kata metrics, see details - https://github.com/kata-containers/kata-containers/blob/main/docs/design/kata-2-0-metrics.md#metrics-architecture
- The macOS install script now accepts
DD_INFRASTRUCTURE_MODEto set the Agent'sinfrastructure_modeat install time. - Add support for Cloud Network Monitoring (CNM) on macOS via BPF filters.
- The macOS install script now performs a system-wide installation by default. The Agent runs as a dedicated
_dd-agentuser via LaunchDaemon. - New gauge metric
datadog.dogstatsd.offline_durationreports how long (in seconds) the DogStatsD server was offline between the previous shutdown and the current startup. Enable withtelemetry.offlinereporter.enabled: true(disabled by default).
Enhancement Notes
-
Added support for all public registries to the K8s SSI gradual rollout feature.
- The default list of Datadog registries is now:
- gcr.io/datadoghq
- docker.io/datadog
- public.ecr.aws/datadog
- datadoghq.azurecr.io
- us-docker.pkg.dev/datadoghq/gcr.io
- europe-docker.pkg.dev/datadoghq/eu.gcr.io
- asia-docker.pkg.dev/datadoghq/asia.gcr.io
- registry.datad0g.com
- registry.datadoghq.com
- The default list of Datadog registries is now:
-
Sends status updates for kubernetes actions through the EVP pipeline.
-
Add datadog-apm-library-nginx to the fleet installer so it is installed alongside the other APM libraries when APM instrumentation is enabled.
-
The cluster agent readiness probe now includes the admission controller webhook server. Newly started cluster agents will not be marked as ready until the webhook can serve requests, preventing missed pod mutations during rollouts.
-
Added new
additional_metric_tagsfield to APM metrics payload to allow tracers to send customer configured span derived primary tags. -
APM: Fetch Org Propagation Marker on startup to Org Propagation Guard. The trace-agent now fetches
/api/v2/validateat startup to derive an Org Propagation Marker (OPM) and exposes it in the/infoendpoint. -
Agents are now built with Go
1.25.10. -
Bump
rshellto 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. -
Bump
rshellto v0.0.14. -
Added internal telemetry counters to measure the impact of enabling
auto_multi_line_detectionby default. The counters track how many log lines would be combined and how many would risk truncation, without changing any log processing behavior. -
system-probe: The discovery module (
discovery.enabled) and system-probe-lite (discovery.use_system_probe_lite) are now enabled by default on Linux. When discovery is the only enabled system-probe module, system-probe-lite is automatically used to minimize resource usage. To disable discovery, setdiscovery.enabled: falseinsystem-probe.yaml. -
Add ECS Fargate task ARN to
X-Datadog-Additional-Tagsheader on data-streams-message HTTP requests. -
Dynamic Instrumentation: Add support for conditional probes via the
whenclause. Probes can now include equality conditions that compare captured variables against literal values (integers, floats, booleans, strings, and null). When a condition evaluates to false, the probe event is suppressed, reducing overhead for high-traffic instrumentation points. -
Dynamic Instrumentation: Add support for probing Go generic functions. Snapshots and log probes now display concrete types for generic parameters.
-
Enables network monitoring for devices with infrastructure_mode: end_user_device.
-
When using RDS Aurora Autodiscovery, tags present on the cluster are now inherited by the instances. For example, if a cluster has the tag
datadoghq.com/dbm: true, all instances in that cluster will have extra_dbm_enabled: true`. Tags on the instances will override tags on the cluster. -
Add SandboxId field to the workloadmeta structure. Update collectors (crio and containerd) accordingly.
-
The kubelet core check now reports container
kubernetes.containers.cpu.requests,kubernetes.containers.cpu.limits,kubernetes.containers.memory.requests, andkubernetes.containers.memory.limitsmetrics using the live values frompod.status.containerStatuses[].resourceswhen available, so the metrics reflect the effective runtime values after an in-place vertical resize. Resources declared only in the pod spec (for example GPUs or custom resources) are preserved, and clusters where the kubelet does not yet populatestatus.resourcescontinue to report the spec values as before. -
The logs agent now retries log payloads on HTTP 403 (Forbidden) responses instead of dropping them, when the endpoint's API key was resolved from a secrets backend. On 403, the agent triggers an asynchronous secrets refresh and retries the payload. This applies to the core logs agent, CWS security reporter, compliance reporter, and the event platform forwarder. Endpoints whose API key is not managed by the secrets backend retain the original drop behavior.
-
Hide DMG mount in MacOS agent installation process.
-
Send device metadata for devices monitored by Network Configuration Management.
-
NPM connection payloads now include a
process_name:<name>tag identifying the process executable that owns each connection. The tag is populated from the process agent's process list and requiresprocess_config.process_collection.enabledto be set totrue. -
Switch config implementation to an improved version by default. Can be disabled with the env var DD_CONF_NODETREEMODEL=viper, or the config setting
conf_nodetreemodel: viperindatadog.yaml. -
The OTel Agent now supports a standalone mode (
DD_OTEL_STANDALONE=true) that runs without a co-resident core Datadog Agent. In standalone mode a newdogtelextensionOpenTelemetry Collector extension provides Datadog Agent functionality directly. -
OTLP ingest configuration keys now register explicit default values matching the upstream OpenTelemetry Collector defaults. Previously these keys were bound without defaults, which caused
agent configand similar introspection commands to omit them. Runtime behavior is unchanged: only user-configured values are forwarded to the OTel Collector pipeline, so unconfigured settings continue to use the Collector's own built-in defaults.Notable default changes in pkg/config/config_template.yaml:
- Receiver endpoints —
localhost:4317(gRPC) andlocalhost:4318(HTTP) instead of the former0.0.0.0bind address (see [7.56.0 Upgrade Notes](https://github.com/DataDog/datadog-...
- Receiver endpoints —