Bot releases are visible (Hide)
Release on: 2020-01-06
Please refer to the 7.16.1 tag on integrations-core for the list of changes on the Core Checks
Release on: 2020-01-06
Please refer to the 7.16.1 tag on integrations-core for the list of changes on the Core Checks
Published by ogaca-dd almost 5 years ago
Release on: 2019-12-18
This release introduces major version 7 of the Datadog Agent, which starts at v7.16.0. The only change from Agent v6 is that v7 defaults to Python 3 and only includes support for Python 3. Before upgrading to v7,
confirm that any custom checks you have are compatible with Python 3.
See this guide for more information.
Except for the supported Python versions, v7.16.0 and v6.16.0 have the same features.
Please refer to the 7.16.0 tag on integrations-core for the list of changes on the Core Checks
Add Python 3 linter results to status page
Log a warning when the hostname defined in the configuration will not be used as the in-app hostname.
Add ignore_autodiscovery_tags
parameter config check.
In some cases, a check should not receive tags coming from the autodiscovery listeners. By default ignore_autodiscovery_tags
is set to false which doesn't change the behavior of the checks. The first check that will use it is kubernetes_state
.
Adds a new flare_stripped_keys
config setting to clean up additional configuration information from flare.
Adding a new config option exclude_gce_tags
, to configure which metadata attribute from Google Cloud Engine to exclude from being converted into host tags.
Extends the docker and containerd checks to include an open file descriptors metric. This metric reports the number of open file descriptors per container.
Allow the Agent to schedule different checks from different sources on the same service.
dirname
tag on all log entries.datadog_agent.set_external_tags
when an empty source_type dict is passed for a given hostname.Published by ogaca-dd almost 5 years ago
6.16.0 ships the same features as 7.16.0 except for the Python versions it supports. Please refer to the 7.16.0 changelog.
Published by albertvaka almost 5 years ago
Release on: 2019-11-27
This release was published for Windows on 2019-12-09.
Reintroduce legacy checks directory to make legacy AgentCheck import path
(from checks import AgentCheck
) work again.
Systemd integration points are re-ordered so that dbus
is used in
preference to the systemd private API at /run/systemd/private
, as per
the systemd documentation. This prevents unnecessary logging to the system
journal when datadog-agent is run without root permissions.
Published by albertvaka almost 5 years ago
This release is not available on Windows nor MacOS.
Release on: 2019-11-27
Reintroduce legacy checks directory to make legacy AgentCheck import path
(from checks import AgentCheck
) work again.
Systemd integration points are re-ordered so that dbus
is used in
preference to the systemd private API at /run/systemd/private
, as per
the systemd documentation. This prevents unnecessary logging to the system
journal when datadog-agent is run without root permissions.
Published by albertvaka almost 5 years ago
This release is not available on Windows.
Released on: 2019-11-05
persistentvolumeclaim:<pvc_name>
) to StatefulSets pods.tracemalloc_whitelist
and tracemalloc_blacklist
forsystem_probe_config.max_tracked_connections
, whichinventories
provider.pkg_resources
to collect the version of the integrationsPublished by albertvaka about 5 years ago
Release on: 2019-09-26
Release on: 2019-09-16
unit_names
is now required and only matching units will be monitored, unit_regexes
configuration has been removed.use_local_defined_servers
. When use_local_defined_servers
is true, use the ntp servers defined in the current host otherwise use the hosts defined in the configuration.rtloader.generate-doc
which generates Doxygen documentation for the rtloader directory and warns about documentation errors or warnings.apm_config.replace_tags
parameter to DD_APM_REPLACE_TAGS
environment variable. It accepts a JSON formatted string of the form [{"name":"tag_name","pattern":"pattern","repl":"repl_str"}]
private_socket
configuration to the systemd check. Defaults to /run/systemd/private
(or /host/run/systemd/private
when using Docker Agent).--log-level
argument in agent check
and agent jmx
commands has been deprecated in favor of the DD_LOG_LEVEL env variable.datadog.trace_agent.receiver.payload_refused
metric now has language tags like its peer metrics.agent jmx
command now correctly takes into account the options in the init_config section of the JMXFetch integration configssystem.io.avg_q_sz
metrics on Linux when the kernel counter was wrapping back to 0.tagger
goroutine race issue when adding a new entry in the tagger.Store
and requesting an entry in another goroutine.jmx
is not supported with the command check
, the jmx
command should be used instead.traces_dropped
and spans_malformed
metric counts.Released on: 2019-07-24
port
option in the NTP check configuration is now parsed as an integer instead of a string.apm_config.receiver_socket
configuration. It is off by default. When set, it must point to a valid sock file.apm_config.max_memory
and/or apm_config.max_cpu_percent
to the value 0.dogstatsd-udp/Bytes
and dogstatsd-uds/Bytes
expvar.DD_TAGS
to set global tags in Fargate.datadog-agent version
command now prints the version of Golang the agent was compiled with.span.service
, span.name
, span.resource
, span.type
. span.duration=0
is now allowed. Missing span start date now defaults to duration - now
. The datadog.trace_agent.receiver.traces_dropped
metric is now tagged with a reason
tag explaining the reason it was dropped. There is a new datadog.trace_agent.receiver.spans_malformed
metric also tagged by reason
explaining how the span was malformed.datadog.trace_agent.presampler_rate
metric has been deprecated in favor of datadog.trace_agent.receiver.ratelimit
.tagger
behavior returning None
when no tags are present for the kubelet
and fargate
integration.*.traces_priority
) now contain language specific tags.system-probe
binary from the Linux packagesport
configuration option.Published by arbll over 5 years ago
Release on: 2019-07-03
This release is only available on Windows and contains all the changes introduced in 6.12.0 and 6.12.1.
Published by arbll over 5 years ago
Release on: 2019-06-28
This release is not available on Windows.
kubernetes.cpu.*
and kubernetes.memory.*
metrics.Published by arbll over 5 years ago
Some metrics from the kubernetes and kubelet integrations (kubernetes.cpu.*
and kubernetes.memory.*
) are missing for certain configurations.
A fix will be released in v6.12.1. Meanwhile if downgrading to 6.11.3 is not an option we recommend using the runtime metrics (ex: docker.cpu.*
, docker.mem.*
, containerd.cpu.*
, ...).
Release on: 2019-06-26
This release is not available on Windows.
APM: Log throttling is now automatically enabled by default when
log_level
differs from debug
. A maximum of no more than 10 error
messages every 10 seconds will be displayed. If you had it enabled before,
it can now be removed from the config file.
On Windows, the path of the embedded python.exe
binary has changed from %ProgramFiles%\Datadog\Datadog Agent\embedded\python.exe
to %ProgramFiles%\Datadog\Datadog Agent\embedded2\python.exe
. If you use this path from your provisioning scripts, please update it accordingly.
Note: on Windows, to call the embedded pip directly, please use %ProgramFiles%\Datadog\Datadog Agent\embedded2\python.exe -m pip
.
Logs: Breaking Change for Kubernetes log collection - In the version 6.11.2 logic was added in the Agent to first look for K8s container files if /var/log/pods
was not available and then to go for the Docker socket.
This created some permission issues as /var/log/pods
can be a symlink in some configuration and the Agent also needed access to the symlink directory.
This logic is reverted to its prior behaviour which prioritise the Docker socket for container log collection.
It is still possible to force the agent to go for the K8s log files even if the Docker socket is mounted by using the logs_config.k8s_container_use_file' or
DD_LOGS_CONFIG_K8S_CONTAINER_USE_FILE`. parameter.
This is recommended when more than 10 containers are running on the same pod.
A count named datadog.agent.started
is now sent with a value of 1 when the agent starts.
APM: Maximum allowed CPU percentage usage is now
configurable via DD_APM_MAX_CPU_PERCENT.
Node Agent can now perform checks on kubernetes service endpoints.
It consumes the check configs from the Cluster Agent API via the
endpointschecks config provider.
Versions 1.3.0+ of the Cluster Agent are required for this feature.
Logs can now be collected from init and stopped containers (possibly short-lived).
Allow tracking pod labels and annotations value change to update labels/annotations_as_tags.
Make the explicit tagging feature dynamic (introduced in https://github.com/DataDog/datadog-agent/pull/3024).
APM: the writer will now flush based on an estimated number of bytes
in accumulated buffer size, as opposed to a maximum number of spans.
APM: traces are not dropped anymore because or rate limiting due to
performance issues. Instead, the trace is kept in a queue awaiting to
be processed.
Logs docker container ID when parse invalid docker log in DEBUG level.
Set the User-Agent string to include the agent name and version string.
Adds host tags in the Hostname section of the
agent status command and the status tab of the GUI.
Expose the number of logs processed and sent to the agent status
Added a warning message on agent status command and status gui
tab when ntp offset is too large and may result in metrics
ignored by Datadog.
APM: minor improvements to CPU performance.
APM: improved trace writer performance by introducing concurrent writing.
APM: the stats writer now writes concurrently to the Datadog API, improving resource usage and processing speed of the trace-agent.
Extends the docker check to accommodate the kernel memory usage metric.
This metric shows the cgroup current kernel memory allocation.
Ask confirmation before overwriting the output file while using
the dogstatsd-stats command.
Do not ship autotools within the Agent package.
The datadog-agent integration
subcommand is now capable of installing prereleases of official integration wheels
Upgraded JMXFetch to 0.29.1. See https://github.com/DataDog/jmxfetch/releases/tag/0.28.0,
https://github.com/DataDog/jmxfetch/releases/tag/0.29.0 and
https://github.com/DataDog/jmxfetch/releases/tag/0.29.1
Added validity checks to NTP responses
Allow the '--check_period' flag of jmxfetch to be overriden by the
DD_JMX_CHECK_PERIOD environment variable.
Ship integrations and their dependencies on Python 3 in Omnibus.
Added a warning about unknown keys in datadog.yaml.
apm_config.trace_writer.max_spans_per_payload
Updated the DataDog/gopsutil library to include changes related to excessive DEBUG logging in the process agent
The computeMem is only called in the check when we ensure that it does not get passed with an empty pointer.
But if someone was to reuse it without checking for the nil pointer it could cause a segfault.
This PR moves the nil checking logic inside the function to ensure it is safe.
APM: Fixed a bug where normalize tag would not truncate tags correctly
in some situations.
APM: Fixed a small issue with normalizing tags that contained the
unicode replacement character.
APM: fixed a bug where modulo operators caused SQL obfuscation to fail.
Fix issue on process agent for DD_PROCESS_AGENT_ENABLED where 'false' did not turn off process/container collection.
Fix an error when adding a custom check config through the GUI
when the folder where the config will reside does not
exist yet.
APM: on macOS, trace-agent is now enabled by default, and, similarly to other
platforms, can be enabled/disabled with the apm_config.enabled
config setting
or the DD_APM_ENABLED
env var
Fix a bug where when the log agent is mis-configured, it temporarily hog on resources after being killed
Fix a potential crash when doing a configcheck
while the agent was not properly initialized yet.
Fix a crash that could occur when having trouble connecting to the Kubelet.
Fix nil pointer access for container without memory cgroups.
Improved credentials scrubbing logic.
The datadog-agent integration show
subcommand now properly accepts only Datadog integrations as argument
Fix incorrectly reported IO metrics when OS counters wrap in Linux.
Fixed JMXFetch process not being terminated on Windows in certain cases.
Empty logs could appear when collecting Docker logs in addition
to the actual container logs. This was due to the way the Agent
handles the header Docker adds to the logs. The process has been
changed to make sure that no empty logs are generated.
Fix bug when docker container terminate the last logs are missing
and partially recovered from restart.
Properly move configuration files for wheels installed locally via the integration
command.
Reduced memory usage of the flare command
Use a custom patch for a costly regex in PyYAML,
see https://github.com/yaml/pyyaml/pull/301.
On Windows, restore the system.mem.pagefile.pct_free
metric
Published by remeh over 5 years ago
Release on: 2019-06-04
6.11.3 tag on process-agent <https://github.com/DataDog/datadog-process-agent/releases/tag/6.11.3>
_ for the list of changes on the Process Agent.Published by remeh over 5 years ago
Release on: 2019-05-23
cf_os_hostname_aliasing
to send the OS hostname as an alias when using the BOSH agent on Cloud Foundry.Published by remeh over 5 years ago
Release on: 2019-05-06
Important: 6.11.0
is not marked as latest for Windows: we are investigating some cases where 6.11.0
is not installing correctly on Windows. Downloading datadog-agent-6-latest.amd64.msi
will give you version 6.10.1
.
Release on: 2019-04-17
Please refer to the 6.11.0
tag on integrations-core https://github.com/DataDog/integrations-core/blob/master/AGENT_CHANGELOG.md#datadog-agent-version-6110 for the list of changes on the Core Checks.
Please refer to the 6.11.0
tag on process-agent https://github.com/DataDog/datadog-process-agent/releases/tag/6.11.0 for the list of changes on the Process Agent.
APM: move flush notifications from level "INFO" to "DEBUG"
APM: logging format has been changed to match the format of the core agent.
Metrics coming through dogstatsd with the following internal prefixes: activemq
, activemq_58
, cassandra
, jvm
, presto
, solr
, tomcat
, kafka
, datadog.trace_agent
, datadog.process
, datadog.agent
, datadog.dogstatsd
are no longer affected by the statsd_metric_namespace
option.
Removed the internal ability to send logs to a specific logset at agent level.
On Windows, the Datadog Agent now runs as a non-privileged user (ddagentuser by default) rather than LOCAL_SYSTEM. Please refer to our dedicated docs for more information
The Windows installer will no longer allow direct downgrades; if a downgrade is required, the user must uninstall the newer version and install the older version.
Secrets beta feature is now available on windows allowing users to pull secrets from secret management services.
APM: JSON logging is now supported using the log_format_json: true
setting.
Collect container thread count and thread limit
JMXFetch upgraded to 0.27.0. See 0.27.0
https://github.com/DataDog/jmxfetch/releases/tag/0.27.0 for more details.
The agent now ignores pod that exited more than 15 minutes ago to reduce its resource footprint when pods are not garbage-collected.
This is configurable with the kubernetes_pod_expiration_duration option.
Now support CRI-O container runtime for log collection on Kubernetes.
Automatically add a "dirname" tag representing the directory of logs tailed from a wildcard path.
AutoDiscovery can now monitor unready pods.
It looks for a new pod annotation "ad.datadoghq.com/tolerate-unready" which, if set to true
will make AutoDiscovery monitor that pod regardless of its readiness state.
Add the ability for the datadog-agent check
command to have Python checks start an interactive debugging session.
Change the logging format to include the name of the logging agent instead of appending it in the agent container logs.
Add /metrics to the bare endpoints the agent can access.
This is required to support querying endpoints protected by RBAC, by kube-rbac-proxy for instance.
APM: errors reported by the receiver's HTTP server are now shown in the logs.
APM: slightly improved normalization error logs.
On Windows, allows Agent to be installed to nonstandard directories.
Uses APPLICATIONDATADIRECTORY to set the root of the configuration file tree, and PROJECTLOCATION to set the root of the binary tree. Please refer to the docs for more details
In order to decrease the number of API DCA request, the Agent now uses a different API endpoint to call the DCA's API only once in order to retrieve the Pods metadata.
Host metadata payloads are now zlib-compressed
Log file size and number of rotation is now configurable.
Add a command dogstatsd-stats
to the agent to get basic stats about the processed metrics.
Support JSON arrays within environment variables, in addition to space separated values.
On Google Compute Engine, the Agent now reports <instance_name>.<project_id>
as a host alias instead of <hostname_prefix>.<prefix_id>
, which improves the uniqueness and relevance of the host alias when the GCE instance has a custom hostname.
The import command doesn't stop anymore when there is no conf.d
or auto_conf
directory.
Kubernetes event collection timeout can now be configured.
Improve status page by splitting errors and warnings from the Logs agent
Secrets are no longer decrypted in agent command when it's not needed (commands like hostname, launchgui, configuration ...). This reduce the number of times the 'secret_command_backend' executable will be called.
Improved memory efficiency on hosts sending very high numbers of metrics.
Resolve once the DNS name given by docker and try the associated IP to reach the kubelet.
Prioritize HTTPS over HTTP to connect to kubelet.
Prioritize communication using IPs over hostnames to spare DNS servers accross the cluster.
Fix an auto-discovery annotation value parsing limitation in version 6 compared to version 5.
Now, ad.datadoghq.com/*.instances
annotation key supports value like [[{"foo":"bar1"}, {"foo":"bar2"}], {"name":"bar3"}]
The agent container will now output valid JSON when using JSON log format.
APM: Multiple value "Content-Type" headers are now parsed correctly for media type in the HTTP receiver.
APM: always reply with correct Content-Type in API responses.
APM: when a span's resource is empty, the error "Resource
can not be empty" will be returned instead of the wrong "Resource
is invalid UTF-8".
APM: sensitive information is now scrubbed from logs.
APM: Fix issue with --version
flag when API key is unset.
APM: Ensure UTF-8 characters are not cut mid-way when truncating
span fields.
Metrics coming through dogstatsd with the following internal prefixes: activemq
, activemq_58
, cassandra
, jvm
, presto
, solr
, tomcat
, kafka
, datadog.trace_agent
, datadog.process
, datadog.agent
, datadog.dogstatsd
are no longer affected by the statsd_metric_namespace
option.
Fixes ec2 tags collection when datadog agent is deployed into a kubernetes cluster along with kube2iam.
Fixes bug in which upgrading from agent5 doesn't correctly import the configuration
Fix a race condition in gohai that could make the Agent crash while collecting the host's filesystem metadata
Hostnames containing characters that are invalid for a filename no longer prevent the agent from generating a flare.
Allow macOS users to invoke the datadog-agent integration
command as root since the installation directory is owned by root.
Change to a randomized exponential backoff in case of connection failure
Ignore empty logs_dd_url to fall back on default config for logs agent.
Detect and handle Docker logs with only header and empty content
To mitigate issues with the hostname detection on AKS, hostnames gathered from the metadata endpoints of AWS, GCE, Azure, and Alibaba cloud are no longer considered valid if their length exceeds 255 characters.
Published by xvello over 5 years ago
Release on: 2019-03-20
Release on: 2019-03-07
APM: Mixing cases in apm_config.analyzed_spans
and apm_config.analyzed_rate_by_service
entries is now allowed. Service names and operation names will be treated as case insensitive.
Refactor the ContainerdUtil
so that each call to the containerd
api has a dedicated timeout.
Release on: 2019-02-28
Please refer to the 6.10.0 tag on integrations-core for the list of changes on the Core Checks.
Please refer to the 6.10.0 tag on process-agent for the list of changes on the Process Agent.
Starting with this release, the changes on the Trace Agent are listed in the present release notes.
yaml.load
and yaml.dump
to yaml.safe_load
and yaml.safe_dump
for ALL checks as a defense-in-depth measure against CVE-2017-18342. The Datadog Agent does not use the vulnerable code directly. The effort to patch the PyYAML library guards against the accidental unsafe use of this library by custom checks and transitive dependencies. Specifically, the kubernetes client library v8.0.1 calls the unsafe yaml.load
function, but the fix provided forces the use of yaml.safe_load
by default. In this release of the Agent, kubernetes client library v8.0.1 is only used by the new kube_controller_manager
integration. If for any reason you encounter problems with your custom checks, please reach out to support.Introduce pod and container tagging through annotations.
Docker images are now signed with Content Trust to ensure their integrity when pulling
Dogstatsd can now inject extra tags on a metric when a special entity tag is provided
datadog-agent integration install
command allows to install a check from a locally available wheel (.whl file)
with the added parameter --local-wheel
.
JMXFetch upgraded to 0.26.1: introduces concurrent metric collection across JMXFetch check instances. Concurrent collection should avoid stalling healthy instances in the event of issues (networking, system) in any of the remaining instances configured. A timeout of jmx_collection_timeout
(default 60s) is enforced on the whole metric collection run. See 0.25.0, 0.26.0 and 0.26.1.
Added the possibility to define global logs processing rules in datadog.yaml
that will be applied to all logs,
in addition to integration logs processing rules when defined.
Consider static pods as ready, even though their status is never updated in the pod list. This creates the risk of running checks against pods that are not actually ready, but this is necessary to make autodiscovery work on static pods (which are used in standard kops deployments for example).
Adds the device mapper logical volume name as a tag in the system.io infos.
Extends the docker check to accommodate the failed memory count metric. This metric increments every time a cgroup hits its memory limit
Add a --json
flag to the check
command that will output all aggregator data as JSON.
[tagger] Add pod phase to kubelet collector
The Agent logs now contains the relative file path (including the package) instead of only the filename.
Each corecheck could now send custom tags using the tags
field in its configuration file.
ECS: running the agent in awsvpc mode is now supported, provided it runs in a security group that can reach both the containers to monitor and the host via its private IP on port 51678
The performance of the Agent under DogStatsD load has been improved.
Improve memory usage when metrics, service checks or events contain many tags.
APM: improve performance of NormalizeTag function.
Use dedicated datadog_checks_downloader
to securely download integrations wheels when using the datadog-agent integration install
command.
A warning is now displayed in the status when the connection to the log endpoint cannot be established
When shutting the agent down, cancel ongoing python subprocess so they can exit as cleanly and gracefully as possible.
Add of a "secrets" command to show information about decrypted secrets. We now also track the configuration's name where each secrets was found.
Secrets are now resolved in environment variables.
In order to ensure compatibility with systemd < 229, StartLimitBurst
and StartLimitInterval
have been
moved to the Service section of the service files.
Files are not tailed in reverse lexicographical order w.r.t their file names then dir name. If you have files /1/2017.log
, /1/2018.log
, /2/2018.log
and logs_config.open_files_limit == 2
, then you will tail /2/2018.log
and /1/2018.log
.
Include .yml
files in the flare.
Fix an issue where some auto-discovered integrations would not get rescheduled when the template was not containing variables
Autodiscovery now removes children configurations when removing templates
Fix the display of unresolved configs in the verbose output of the configcheck
command
Fix custom command line port configuration on configcheck
and tagger-list
CLI commands.
When the secrets feature is enabled, fix bug preventing the additional_endpoints
config option from being read correctly
Fix "status" command JSON output to exclude non JSON header. The output of
the command is now a valid JSON payload.
APM: Fix a potential memory leak problem when the trace agent is stopped.
Fixed a bug where logs forwarded by UDP would not be split because of missing line feed character at the end of a datagram. Now adding a line feed character at the end of each frame is deprecated because it is automatically added by the agent on read operations.
Fix an issue where some kubernetes tags would not be properly removed.
The Agent is now compiled with Go 1.11.5
Custom checks default on safe pyyaml methods.