Releases: DataDog/datadog-agent
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 —
7.78.4
Agent
Prelude
Released on: 2026-05-14
- Please refer to the 7.78.4 tag on integrations-core for the list of changes on the Core Checks
Security Notes
- Upgrade
github.com/moby/spdystreamto0.5.1to address CVE-2026-35469. In versions 0.5.0 and below, the SPDY/3 frame parser does not validate attacker-controlled counts and lengths before allocating memory. Three allocation paths are affected: the SETTINGS frame entry count, the header count in parseHeaderValueBlock, and individual header field sizes — all read as 32-bit integers and used directly as allocation sizes with no bounds checking. Because SPDY header blocks are zlib-compressed, a small on-the-wire payload can decompress into large attacker-controlled values. A remote peer that can send SPDY frames to a service using spdystream can exhaust process memory and cause an out-of-memory crash with a single crafted control frame. This issue has been fixed in version 0.5.1.
Datadog Cluster Agent
Prelude
Released on: 2026-05-14 Pinned to datadog-agent v7.78.4: CHANGELOG.
7.78.3
Agent
Prelude
Released on: 2026-05-07
- Please refer to the 7.78.3 tag on integrations-core for the list of changes on the Core Checks
Security Notes
- Upgrade
go.opentelemetry.io/otel/sdktov1.43.0to address CVE-2026-39883, a PATH-hijacking vulnerability in the OpenTelemetry Go SDK's host detection on BSD and Solaris platforms (the SDK invoked thekenvcommand without an absolute path). The Datadog Agent's primary supported platforms (Linux, Windows, macOS) are not affected at runtime, but the dependency is upgraded to keep the shipped binary free of the vulnerable code.
Datadog Cluster Agent
Prelude
Released on: 2026-05-07 Pinned to datadog-agent v7.78.3: CHANGELOG.
7.78.2
Agent
Prelude
Released on: 2026-04-29
- Please refer to the 7.78.2 tag on integrations-core for the list of changes on the Core Checks
Enhancement Notes
- Adds
datadog-agent otelcommand to install/remove DDOT from an OCI package.
Deprecation Notes
- The
Install-Datadog.ps1PowerShell script is deprecated and will be removed in a future version. Please usedatadog-installer.exeor the MSI installer instead. Visit the in-app installation guide for complete up-to-date installation instructions.
Bug Fixes
- The signature check in
Install-Datadog.ps1is now more accomodating to formatting variations in the CN field. Refer to the Agent Data Security page for more information on validating signatures. - Fixes user-defined
network_path.collector.filtersbeing silently dropped wheninfrastructure_modeis set toend_user_device. Custom filters are now correctly appended to the built-in EUDM defaults.
Datadog Cluster Agent
Prelude
Released on: 2026-04-29 Pinned to datadog-agent v7.78.2: CHANGELOG.
7.78.1
Agent
Prelude
Released on: 2026-04-23
- Please refer to the 7.78.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.12 to 3.13.13
- Agents are now built with Go
1.25.9.
Bug Fixes
- Fix missing signature on macOS Agent packages
- Fix the system-probe SELinux policy module failing to load on RHEL 7 with
policydb module version 21 does not match my version range 4-19. The module is now compiled against modular policy version 19, which is the highest version supported by RHEL 7 and is backward-compatible with newer RHEL releases. - Add logic to include integrations that do not have a manifest.json file in the Agent.
- Adds the tasks/agent.py file to the list of files used to compute the global omnibus cache.
Datadog Cluster Agent
Prelude
Released on: 2026-04-23 Pinned to datadog-agent v7.78.1: CHANGELOG.
Bug Fixes
- Fixed a Cluster Agent issue where container-targeted APM library injection could mount a tracing library into all application containers in a pod instead of only the annotated container.
7.78.0
Agent
Prelude
Released on: 2026-04-15
- Please refer to the 7.78.0 tag on integrations-core for the list of changes on the Core Checks
Upgrade Notes
-
APM OTLP: Changed attribute precedence behavior when looking up OpenTelemetry semantic convention attributes that have multiple equivalent keys (e.g.,
http.status_codevshttp.response.status_code,deployment.environmentvsdeployment.environment.name).Previous behavior: When both old and new semantic convention keys existed, the lookup would check ALL keys in span attributes before checking ANY key in resource attributes. So whichever key appeared in span attributes would win, regardless of which key was in resource attributes.
New behavior: The lookup now uses a per-concept precedence order. For each semantic concept, the registry defines an ordered list of attribute keys; the first key that has a value is returned. The precedence order (which key takes priority) depends on the concept and may prefer either the newer or the older convention key. Span vs resource precedence (which map is checked first) is unchanged and still depends on the function.
Who is affected: This change only affects users who have the same concept represented by different convention-version keys in span vs resource attributes. The returned value may now come from a different key than before, according to the concept's precedence order.
This is an uncommon configuration since most instrumentation libraries use consistent semantic convention versions across span and resource attributes.
New Features
-
Allows the Agent to get an API key in exchange for an AWS cloud authorization proof. This allows you to use your AWS credentials against Datadog and removes the need for you to manage an API key. More details can be found here: https://docs.datadoghq.com/account_management/cloud_provider_authentication/
-
The autoscaling vertical controller now supports in-place vertical pod resizing.
-
Add a new configuration provider, which schedules new instances of KSM checks to generate metrics from
CustomResourceDefinitions.This new provider works with the
kube_crdlistener which listens forCustomResourceDefinitionscreated on the cluster and triggers a new autodiscovery-service for each one.This new configuration provider must use the standard kubernetes
GroupVersionKindformat in itsAdvancedADIdentifiersection to apply to a matchingCustomResourceDefinition.The rest of the configuration is a standard KSM configuration instance.
-
CNM - Add 7 per-connection TCP congestion signals: rto_count (RTO loss events), recovery_count (fast recovery events), reord_seen (send-side reordering), rcv_ooopack (receive-side out-of-order packets), delivered_ce (ECN CE-marked segments), ecn_negotiated (ECN negotiation status), and probe0_count (zero-window probes). Collected via eBPF on CO-RE and runtime-compiled tracers, Linux only.
-
dd-procmgrdcan now read process definitions and manage child process lifecycles with graceful shutdown. -
dd-procmgrdnow supervises managed processes with configurable restart policies, exponential backoff, and burst limiting. -
dd-procmgrdcan now manage the DDOT (Datadog Distribution of OpenTelemetry) collector process via a dual-mode mechanism. When aprocesses.d/datadog-agent-ddot.yamlconfig is present,dd-procmgrdtakes over DDOT lifecycle management; otherwise the existing systemd unit manages it directly. -
Automatic SBOM generation for running containers via system-probe
-
Runtime usage tracking - identifies which files and packages are actively accessed by running processes
-
Security enrichment - flags SUID binaries and processes running as root
-
gRPC streaming from system-probe to core agent for efficient SBOM forwarding
-
Automatic CWS policy generation based on running container SBOMs.
-
On Windows, the APM SSI installer now automatically enables system-probe to report injection telemetry from the ddinjector driver.
-
Kubernetes pod check annotations: Invalid JSON in pod check annotations (ad.datadoghq.com/<container>.checks) now produces a clear error message in the "Configuration Errors" section of
agent status. A new CLI commandagent validate-pod-annotationvalidates annotation JSON from a file or stdin and exits with an error on invalid syntax, so you can catch mistakes before applying annotations to pods.
Enhancement Notes
- The agent now supports explicitly set cluster names that start with a digit or contain underscores.
- Add
sourceandproviderfields to rtloader API and addintegration_securityconfiguration properties. - secrets-generic-connector: Allow configuration of
X-Vault-AWS-IAM-Server-IDheader for Hashicorp Vault AWS authentication method. Helps to prevent different types of replay attacks. - APM: When a 403 is received from the backend, trigger an API Key refresh, and retry the payload submission.
- Secret Generic Connector: The Azure Key Vault backend now supports Service Principal authentication with client secret or client certificate, in addition to Managed Identity. Credentials are configured under the
azure_sessionblock (azure_tenant_id,azure_client_id,azure_client_secretorazure_client_certificate_path). - Agents are now built with Go
1.25.8. - dd-procmgr: Add CLI for the dd-procmgrd process manager. Processes are addressable by name or UUID.
- dd-procmgrd: Add gRPC server over Unix socket with read-only RPCs (List, Describe, GetStatus) for querying managed process state.
- dd-procmgrd: Add multi-process startup ordering via
after/beforeconfig fields with topological sort and reverse shutdown order. - dd-procmgrd: Add write RPCs (Create, Start, Stop, ReloadConfig, GetConfig) for runtime control of managed processes.
- The disk check now falls back to
lsblkwhenblkidfails or returns no labels for disk label tagging. This ensureslabelanddevice_labeltags are present on disk metrics even when the agent runs as a non-root user, sincelsblkreads from sysfs and does not require elevated privileges. - Document kubernetes_use_endpoint_slices flag
- Add
X-Datadog-Additional-Tagsheader with hostname and agent version to data-streams-message HTTP requests. - DSM: The
kafka_actionscheck now automatically inherits Schema Registry configuration (URL, credentials, TLS, OAuth) from thekafka_consumerintegration, enabling schema registry support without additional configuration. - DDOT now sets
deployment_typeon the Datadog extension todaemonsetby default, orgatewaywhen Gateway mode is enabled. - The
podman_db_pathconfiguration option now accepts a comma-separated list of paths to support monitoring containers from multiple users simultaneously (e.g. root and rootless users). Example:podman_db_path: "/var/lib/containers/storage/db.sql,/home/myuser/.local/share/containers/storage/db.sql". Whenpodman_db_pathis not set, the Agent automatically discovers Podman databases for the root user and for all users under/home/. Log collection (logs_config.use_podman_logs) is also updated to work correctly with both explicit multi-path configuration and auto-discovery. - FIPS variants of the
ddot-collectorand agent-fullimages are now published. - Remote Agent Management is now enabled by default on FIPS environments when Remote Configuration is explicitly enabled.
- The resource discovery agent (
system-probe-lite) now wrapssystem-probe, acting as a loader for it.system-probe-litewill automatically fallback tosystem-probewhen one of the following is true:- `discovery.enabled is set to false
discovery.useSystemProbeLiteis set to false (the default).- Any other non-discovery feature of
system-probeis enabled.
- Bumped the Security Agent policies to v0.78.0
Security Notes
- The CMD API gRPC server is now configured to require client certificates (mTLS).
Bug Fixes
-
APM: Fix an issue where SQL stats group resources longer than 5000 characters were truncated before obfuscation, causing the trace-agent to fail to parse mid-token fragments and log an error instead of correctly obfuscating the query.
-
Use atomic file replacement (write to temp file then rename) when writing APM workload selection policy files, preventing concurrent readers from seeing partially-written data.
-
Fixed a race condition in the logs auditor where
Flush()could write a stale registry to disk during a transport restart. The auditor now drains all pending payloads from its input channel before flushing, ensuring file offsets are up to date and reducing duplicate log processing after a TCP-to-HTTP transport switch. -
[DBM] Bump
go-sqllexerto v0.2.1 to fix the following bugs:- Fixes table name metadata extraction to correctly collect all table names from comma-separated table lists (e.g.,
SELECT * FROM t1, t2).
- Fixes table name metadata extraction to correctly collect all table names from comma-separated table lists (e.g.,
-
The diagnose command now returns an error if an API key is not configured.
-
Fixes panic when advanced dispatching is disabled when KSM Core is ran as a cluster check.
-
Fix support of Kafka actions for configurations where kafka_connect_str is a list.
-
Fixed a bug in the disk Go check (diskv2) where partition enumeration could hang indefinitely on Windows when an orphaned or offline volume is present on the system. The check now applies the configured timeout (default 5s) to partition discovery and guards against spawning duplicate goroutines on subsequent check runs, preventing permanent worker starvation, goroutine buildup, and high CPU utilization.
-
The process check now reports the correct...
7.77.3
Agent
Prelude
Released on: 2026-04-08
- Please refer to the 7.77.3 tag on integrations-core for the list of changes on the Core Checks
Bug Fixes
- Fixes an issue where Cloud Network Monitoring would not resolve NAT'd cluster IPs when using Cilium to replace kube-proxy.
Datadog Cluster Agent
Prelude
Released on: 2026-04-08 Pinned to datadog-agent v7.77.3: CHANGELOG.
7.77.2
Agent
Prelude
Released on: 2026-04-01
- Please refer to the 7.77.2 tag on integrations-core for the list of changes on the Core Checks
Enhancement Notes
- Hide GUI app by default for MacOS agent per-user install.
- Windows: Add PAR self-enrollment to installer.
Bug Fixes
- Fixes Workload Protection raw-packet eBPF programs when multiple packet filters are compiled together. The generated assembly reused register R8 both as the event pointer expected by the filter chain and to hold immediate values, which corrupted the pointer and caused the kernel BPF verifier to reject the program. The code now uses a separate register for those immediates so the pointer is preserved across filters.
- Workload Protection: resolves an issue in in-kernel cgroup tracking, enabling packet filtering to be correctly applied to containers.
Datadog Cluster Agent
Prelude
Released on: 2026-04-01 Pinned to datadog-agent v7.77.2: CHANGELOG.
7.77.1
Agent
Prelude
Released on: 2026-03-24
- Please refer to the 7.77.1 tag on integrations-core for the list of changes on the Core Checks
Enhancement Notes
- Agents are now built with Go
1.25.8.
Bug Fixes
- Fixed a bug introduced in 7.77.0 that prevents system-probe from starting on Fargate environments when Workload Protection is enabled
- Fixed a command injection vulnerability in the Private Action Runner's inline PowerShell script execution. Parameter values are now assigned as PowerShell single-quoted string literals in a preamble instead of being substituted directly into the script body, preventing arbitrary code execution via crafted parameter inputs.
Datadog Cluster Agent
Prelude
Released on: 2026-03-24 Pinned to datadog-agent v7.77.1: CHANGELOG.
7.77.0
Agent
Known Issues
- A bug introduced in this release prevents system-probe from starting on Fargate environments when Workload Protection is enabled. There is currently no workaround and the recommendation at this time is to downgrade to Agent v7.76.3 or upgrade to v7.77.1 when it becomes available.
Prelude
Released on: 2026-03-18
- Please refer to the 7.77.0 tag on integrations-core for the list of changes on the Core Checks
Upgrade Notes
-
APM OTLP: The
datadog.*namespaced span attributes are no longer used to construct Datadog span fields. Previously, attributes likedatadog.service,datadog.env, anddatadog.container_idwere used to directly set corresponding Datadog span fields. This functionality has been removed and the Agent now relies solely on standard OpenTelemetry semantic conventions.Exceptions:
- The
datadog.host.nameattribute continues to be respected for hostname resolution as documented at https://docs.datadoghq.com/opentelemetry/mapping/hostname/. - The
datadog.container.tag.*attributes continue to be supported for custom container tags.
The configuration option
otlp_config.traces.ignore_missing_datadog_fields(and corresponding environment variableDD_OTLP_CONFIG_IGNORE_MISSING_DATADOG_FIELDS) is deprecated and no longer has any effect. The Agent now always uses standard OTel semantic conventions.Migration: If you were using
datadog.*attributes, switch to the standard OpenTelemetry semantic conventions:datadog.service→service.namedatadog.env→deployment.environment.name(OTel 1.27+) ordeployment.environmentdatadog.version→service.versiondatadog.container_id→container.id
Who is affected: Users who explicitly set
datadog.*attributes (other thandatadog.host.nameanddatadog.container.tag.*) in their OpenTelemetry instrumentation to override default field mappings. Users relying solely on standard OpenTelemetry semantic conventions are not affected. - The
New Features
- Add
dd-procmgrd, a minimal Rust daemon for the Datadog process manager. The daemon starts, logs, and waits for a shutdown signal. It does not provide user-facing functionality. - Add a new listener based on all Custom Resource Definitions (CRDs) found on the cluster.
- Logs pipeline failover: Added automatic failover capability to prevent log loss when compression blocks pipelines. When a pipeline becomes blocked during compression, log messages are automatically routed to healthy pipelines. N router channels (one per pipeline) distribute tailers via round-robin, each with its own forwarder goroutine that handles failover independently across all pipelines. Enable with
logs_config.pipeline_failover.enabled: true(default: false). When all pipelines are blocked, backpressure is applied to prevent data loss. - The system memory check on Linux can now collect memory pressure metrics from /proc/vmstat to help detect memory pressure before OOM events occur. To enable, set
collect_memory_pressure: truein the memory check configuration. New metrics:system.mem.allocstall(withzonetag),system.mem.pgscan_direct,system.mem.pgsteal_direct,system.mem.pgscan_kswapd,system.mem.pgsteal_kswapd. - APM: Add initial support for converting trace payload formats to the new "v1.0" format. This feature is disabled by default but can be enabled by adding the feature flag "convert-traces" to apm_config.features. It is not recommended to use this flag without direction from Datadog Support.
- Integrate the Private Action Runner into the Datadog Cluster Agent.
- The Private Action Runner (PAR) now runs in the Datadog Cluster Agent with improved identity management for Kubernetes environments. PAR identity (URN and private key) is now stored in a Kubernetes secret and shared across all DCA replicas using leader election. The leader replica handles enrollment and secret creation, while follower replicas wait for and read the shared identity. This enables multiple DCA replicas to execute PAR tasks using a single cluster identity, eliminating the need for per-replica enrollment.
- Add a Windows PowerShell example config for private action runner scripts.
- APM: Add image_volume-based library injection as an alternative to init containers and csi driver (experimental). Available only for Kubernetes 1.33+. This provides faster pod startup.
- Autodiscovery template variables are now supported in
ad.datadoghq.com/tagsandad.datadoghq.com/<container>.tagsKubernetes pod annotations. Template variables are resolved at runtime, enabling dynamic tagging based on pod and container metadata. This allows centralized tag configuration that applies to all checks, logs, and traces without hardcoding pod-specific values. - Start the Windows Private Action Runner service alongside the Agent when
private_action_runner.enabledis set indatadog.yaml. - On Windows, the private action runner binary is now included in the MSI installer and registered as the
datadog-agent-actionWindows service. The service is installed as demand-start with a dependency on the main Agent service, and its credentials and ACLs are managed alongside the other Agent services during install, upgrade, and repair. - Add
runPredefinedPowershellScriptaction to the Private Action Runner on Windows. This action allows running predefined PowerShell scripts (inline or file-based) with optional parameter templating, JSON schema parameter validation, environment variable allowlisting, configurable timeouts, and a 10 MB output limit. - On Windows, the Agent stops the private action runner service during MSI upgrades and fleet-driven stop-all operations so it is shut down alongside the Agent.
Enhancement Notes
-
The Agent's embedded Python has been upgraded from 3.13.11 to 3.13.12.
-
Add
ntp.offsetmetric withsource:intaketag to monitor clock drift using Datadog intake server timestamps. Originalntp.offsetmetric calculated from an NTP server is now taggedsource:ntp. -
As of Kubernetes version 1.33, the
EndpointAPI object has been deprecated in favor ofEndpointSlice. Autodiscovery now supports the use of anEndpointSlicelistener and provider to collect endpoint checks. To enable this feature, setkubernetes_use_endpoint_slicesto true in your Datadog Agent configuration. -
Add
bucketlabel toimage_resolution_attemptstelemetry to track gradual rollout progress. -
Added a private action runner bundle that exposes the Network Path traceroute functionality through the
getNetworkPathaction. -
Sends telemetry for synthetics tests run on the agent, including checks received, checks processed, and error counts for test configuration, traceroute, and event platform result submission.
-
Added support for two new configurations for tag-based gradual rollout in Kubernetes SSI deployments. The gradual rollout can be configured using the following parameters:
-
DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_GRADUAL_ROLLOUT_ENABLED: Whether to enable gradual rollout (default: true) -
DD_ADMISSION_CONTROLLER_AUTO_INSTRUMENTATION_GRADUAL_ROLLOUT_CACHE_TTL: The cache TTL duration for the gradual rollout image cache (default: 1h)- This cache is used to store the mapping of mutable tags to image digest for the gradual rollout, and setting this TTL helps prevent the image resolution from becoming stale.
-
-
Agent metrics now include a
connection_typetag with a value oftcp,uds, orpipefor lib-to-agent communications. -
Automatically collect the team tag when a Kubernetes resource has a
teamlabel or annotation and explicit team tag extraction is not configured. -
Enables the agent to support built-in credentials like IRSA for AWS cloud environments.
-
Bump
go-sqllexerto v0.1.13, improving SQL obfuscation performance and fixing incorrect tokenization of multi-byte UTF-8 characters (e.g., CJK characters, full-width punctuation). -
Agents are now built with Go
1.25.7. -
NDM: Cisco SD-WAN interface metadata now includes the
is_physicalfield to distinguish physical from virtual interfaces (loopback, tunnel). cEdge interfaces also include thetypefield with the IANA interface type number. -
In the Cluster Autoscaling controller, use Kubernetes client
updateinstead ofpatch. -
On ECS Managed Instances, detect hostname from IMDS when the agent runs in daemon mode.
-
On ECS Managed Instances with daemon scheduling, the agent uses
ECS_CONTAINER_METADATA_URI_V4environment variable as a fallback signal for v4 availability. -
Expose a new metric
kube_apiserver.api_resourcethat holds thename,kind,group, andversionof all known cluster-wide (non namespaced) resources on the cluster. -
Add new DDOT feature gate 'exporter.datadogexporter.DisableAllMetricRemapping' to disable all client-side metric remapping.
-
Increases the reliability of
namespaceLabelsAsTagsandnamespaceAnnotationsAsTagsfor new pods by caching the last seen namespace metadata. -
Added a new, optional configuration setting for journald logs:
default_application_name. If set to a non-empty string, the value will replace "docker" as the default application name for contained based journald logs. If set to an empty string, the application name will be determined by the systemd journal fields, like all non-container based journald logs. -
Simplified location permission detection on MacOS by removing the first detection with polling at the time of app startup. The permission detection now happens only at the time of WLAN data collection.
-
Use config flag 'request_locati...