7.47.0
Agent
Prelude
Release on: 2023-08-31
- Please refer to the 7.47.0 tag on integrations-core for the list of changes on the Core Checks
Upgrade Notes
- Embedded Python 3 interpreter is upgraded to 3.9.17 in both Agent 6 and Agent 7. Embedded OpenSSL is upgraded to 3.0.9 in Agent 7 on Linux and macOS. On Windows, Python 3.9 in Agent 7 is still compiled with OpenSSL 1.1.1.
New Features
-
Add ability to send an Agent flare from the Datadog Application for Datadog support team troubleshooting. This feature requires enabling Remote Configuration.
-
Added workloadmeta remote process collector to collect process metadata from the Process-Agent and store it in the core agent.
-
Added new parameter
workloadmeta.remote_process_collector.enabled
to enable the workloadmeta remote process collector. -
Added a new tag
collector
todatadog.agent.workloadmeta_remote_client_errors
. -
APM: Added support for obfuscating all Redis command arguments. For any Redis command, all arguments will be replaced by a single "?". Configurable using config variable
apm_config.obfuscation.redis.remove_all_args
and environment variableDD_APM_OBFUSCATION_REDIS_REMOVE_ALL_ARGS
. Both accept a boolean value with default valuefalse
. -
Added an experimental setting process_config.language_detection.enabled. This enables detecting languages for processes. This feature is WIP.
-
Added an experimental gRPC server to process-agent in order to expose process entities with their detected language. This feature is WIP and controlled through the process_config.language_detection.enabled setting.
-
The Agent now sends its configuration to Datadog by default to be displayed in the Agent Configuration section of the host detail panel. See https://docs.datadoghq.com/infrastructure/list/#agent-configuration for more information. The Agent configuration is scrubbed of any sensitive information and only contains configuration you’ve set using the configuration file or environment variables. To disable this feature set inventories_configuration_enabled to false.
-
The Windows installer can now send a report to Datadog in case of installation failure.
-
The Windows installer can now send APM telemetry.
-
Add support for Oracle Autonomous Database (Oracle Cloud Infrastructure).
-
Add shared memory (a.k.a. system global area - SGA) metric for Oracle databases: oracle.shared_memory.size
-
With this release,
remote_config.enabled
is set totrue
by default in the Agent configuration file. This causes the Agent to request configuration updates from the Datadog site.To receive configurations from Datadog, you still need to enable Remote Configuration at the organization level and enable Remote Configuration capability on your API Key from the Datadog application. If you don't want the Agent to request configurations from Datadog, set
remote_config.enabled
tofalse
in the Agent configuration file. -
DD_SERVICE_MAPPING can be used to rename Serverless inferred spans' service names.
-
Adds a new agent command
stream-event-platform
to stream the event platform payloads being generated by the agent. This will help diagnose issues with payload generation, and should ease validation of payload changes.
Enhancement Notes
-
Add two new initContainer metrics to the Kubernetes State Core check: kubernetes_state.initcontainer.waiting and kubernetes_state.initcontainer.restarts.
-
Add the following sysmetrics to improve DBA/SRE/SE perspective:
avg_synchronous_single_block_read_latency,
active_background_on_cpu, active_background,
branch_node_splits, consistent_read_changes,
consistent_read_gets, active_sessions_on_cpu, os_load,
database_cpu_time_ratio, db_block_changes, db_block_gets,
dbwr_checkpoints, enqueue_deadlocks, execute_without_parse,
gc_current_block_received, gc_average_cr_get_time,
gc_average_current_get_time, hard_parses,
host_cpu_utilization, leaf_nodes_splits, logical_reads,
network_traffic_volume, pga_cache_hit, parse_failures,
physical_read_bytes, physical_read_io_requests,
physical_read_total_io_requests, physical_reads_direct_lobs,
physical_read_total_bytes, physical_reads_direct,
physical_write_bytes, physical_write_io_requests,
physical_write_total_bytes, physical_write_total_io_requests,
physical_writes_direct_lobs, physical_writes_direct,
process_limit, redo_allocation_hit_ratio, redo_generated,
redo_writes, row_cache_hit_ratio, soft_parse_ratio,
total_parse_count, user_commits -
Pause containers from the new Kubernetes community registry (registry.k8s.io/pause) are now excluded by default for containers and metrics collection.
-
[corechecks/snmp] Add forced type
rate
as an alternative tocounter
. -
[corechecks/snmp] Add symbol level
metric_type
for table metrics. -
Adds support for including the span.kind tag in APM stats aggregations.
-
Allow
ad_identifiers
to be used in file based logs integration configs in order to collect logs from disk. -
Agents are now built with Go
1.20.5
-
Agents are now built with Go
1.20.6
. This version of Golang fixes CVE-2023-29406. -
Improve error handling in External Metrics query logic by running queries with errors individually with retry and backoff, and batching only queries without errors.
-
CPU metadata is now collected without running the sysctl binary on Darwin.
-
Memory metadata is now collected without running the sysctl binary on Darwin.
-
Always send the swap size value in metadata as an integer in kilobytes.
-
Platform metadata is now collected without running the uname binary on Linux and Darwin.
-
Add new metrics for resource aggregation to the Kubernetes State Core check:
- kubernetes_state.node.<cpu|memory>_capacity.total
- kubernetes_state.node.<cpu|memory>_allocatable.total
- kubernetes_state.container.<cpu|memory>_requested.total
- kubernetes_state.container.<cpu|memory>_limit.total
-
The kube node name is now reported a host tag
kube_node
-
[pkg/netflow] Collect flow_process_nf_errors_count metric from goflow2.
-
APM: Bind
apm_config.obfuscation.*
parameters to new obfuscation environment variables. In particular, bind:
apm_config.obfuscation.elasticsearch.enabled
toDD_APM_OBFUSCATION_ELASTICSEARCH_ENABLED
: It accepts a boolean value with default value false.apm_config.obfuscation.elasticsearch.keep_values
toDD_APM_OBFUSCATION_ELASTICSEARCH_KEEP_VALUES
It accepts a list of strings of the form["id1", "id2"]
.apm_config.obfuscation.elasticsearch.obfuscate_sql_values
toDD_APM_OBFUSCATION_ELASTICSEARCH_OBFUSCATE_SQL_VALUES
It accepts a list of strings of the form["key1", "key2"]
.apm_config.obfuscation.http.remove_paths_with_digits
toDD_APM_OBFUSCATION_HTTP_REMOVE_PATHS_WITH_DIGITS
, It accepts a boolean value with default value false.apm_config.obfuscation.http.remove_query_string
toDD_APM_OBFUSCATION_HTTP_REMOVE_QUERY_STRING
, It accepts a boolean value with default value false.apm_config.obfuscation.memcached.enabled
toDD_APM_OBFUSCATION_MEMCACHED_ENABLED
: It accepts a boolean value with default value false.apm_config.obfuscation.mongodb.enabled
toDD_APM_OBFUSCATION_MONGODB_ENABLED
: It accepts a boolean value with default value false.apm_config.obfuscation.mongodb.keep_values
toDD_APM_OBFUSCATION_MONGODB_KEEP_VALUES
It accepts a list of strings of the form["id1", "id2"]
.apm_config.obfuscation.mongodb.obfuscate_sql_values
toDD_APM_OBFUSCATION_MONGODB_OBFUSCATE_SQL_VALUES
It accepts a list of strings of the form["key1", "key2"]
.apm_config.obfuscation.redis.enabled
toDD_APM_OBFUSCATION_REDIS_ENABLED
: It accepts a boolean value with default value false.apm_config.obfuscation.remove_stack_traces
toDD_APM_OBFUSCATION_REMOVE_STACK_TRACES
: It accepts a boolean value with default value false.apm_config.obfuscation.sql_exec_plan.enabled
toDD_APM_OBFUSCATION_SQL_EXEC_PLAN_ENABLED
: It accepts a boolean value with default value false.apm_config.obfuscation.sql_exec_plan.keep_values
toDD_APM_OBFUSCATION_SQL_EXEC_PLAN_KEEP_VALUES
It accepts a list of strings of the form["id1", "id2"]
.apm_config.obfuscation.sql_exec_plan.obfuscate_sql_values
toDD_APM_OBFUSCATION_SQL_EXEC_PLAN_OBFUSCATE_SQL_VALUES
It accepts a list of strings of the form["key1", "key2"]
.apm_config.obfuscation.sql_exec_plan_normalize.enabled
toDD_APM_OBFUSCATION_SQL_EXEC_PLAN_NORMALIZE_ENABLED
: It accepts a boolean value with default value false.apm_config.obfuscation.sql_exec_plan_normalize.keep_values
toDD_APM_OBFUSCATION_SQL_EXEC_PLAN_NORMALIZE_KEEP_VALUES
It accepts a list of strings of the form["id1", "id2"]
.apm_config.obfuscation.sql_exec_plan_normalize.obfuscate_sql_values
toDD_APM_OBFUSCATION_SQL_EXEC_PLAN_NORMALIZE_OBFUSCATE_SQL_VALUES
It accepts a list of strings of the form["key1", "key2"]
. -
The Windows installer is now built using WixSharp.
-
Refactored the Windows installer custom actions in .Net.
-
Remove Oracle from the Heroku build.
-
[pkg/snmp/traps] Collect telemetry metrics for SNMP Traps.
-
[pkg/networkdevice] Add Meraki fields to NDM Metadata payload.
-
[corechecks/snmp] Add
metric_type
to metric root and deprecateforced_type
. -
[corechecks/snmp] Add
tags
tointerface_configs
to tag interface metrics -
[corechecks/snmp] Add
user_profiles
directory support.
Deprecation Notes
- The system_probe_config.http_map_cleaner_interval_in_s configuration has been deprecated. Use service_monitoring_config.http_map_cleaner_interval_in_s instead.
- The system_probe_config.http_idle_connection_ttl_in_s configuration has been deprecated. Use service_monitoring_config.http_idle_connection_ttl_in_s instead.
- The network_config.http_notification_threshold configuration has been deprecated. Use service_monitoring_config.http_notification_threshold instead.
- The network_config.http_max_request_fragment configuration has been deprecated. Use service_monitoring_config.http_max_request_fragment instead.
- The network_config.http_replace_rules configuration has been deprecated. Use service_monitoring_config.http_replace_rules instead.
- The network_config.max_tracked_http_connections configuration has been deprecated. Use service_monitoring_config.max_tracked_http_connections instead.
- The network_config.max_http_stats_buffered configuration has been deprecated. Use service_monitoring_config.max_http_stats_buffered instead.
- The compliance_config.xccdf.enabled configuration has been deprecated. Use compliance_config.host_benchmarks.enabled instead.
Bug Fixes
- APM: Fix a bug introduced in Agent versions 7.44 and 6.44 that changed the expected strings separator from comma to space when multiple features are defined in DD_APM_FEATURES. Now either separator can be used (for example, DD_APM_FEATURES="feat1,feat2" or DD_APM_FEATURES="feat1 feat2").
- Add a workaround for erroneous database connection loss handling in go-ora.
- If no NTP servers are reachable, datadog-agent status now displays ERROR for the NTP check, rather than OK.
- Fixes a bug in auto-discovery annotations processing where two consecutive percent characters were wrongly altered even if they were not part of a
%%var%%
template variable pattern. - Fix memory leak by closing the time ticker in orchestrator check when the check is done.
- Fixes a panic occuring when an entry in
/etc/services
does not follow the formatport/protocol
: https://gitlab.com/cznic/libc/-/issues/25 - Fixes the inclusion of the
security-agent.yaml
file in the flare. - [apm] fix an issue for service and peer.service normalization where names starting with a digit are incorrectly considered as invalid
- Fix building a local flare to use the expvar_port from the config instead of the default port.
- Use a locale-independent format for the swap size sent in the metadata, to avoid issues when parsing the value in the frontend.
- Fixes a bug where the metric with timestamps pipeline could have wrongly processed metrics without timestamps (when both pipelines were flooded), potentially leading to inaccuracies.
- Fixes an issue where process_config.max_per_message and process_config.max_message_bytes were ignored when set larger than the default values, and increases the limit on accepted values for these variables.
- rtloader: Use execinfo only if provided to fix builds on C libraries like musl.
Other Notes
- Service check
datadog.agent.check_status
is now disabled bydefault. To re-enable, setintegration_check_status_enabled
totrue
.
Datadog Cluster Agent
Upgrade Notes
- Add support for leases in leader election which can be enabled by setting
leader_election_default_resource
toleases
, available since Kubernetes version 1.14. If this parameter is empty, leader election automatically detects if leases are available and uses them. Setleader_election_default_resource
toconfigmap
on clusters running Kubernetes versions previous to 1.14.
New Features
- Auto-instrumentation admission controller now automatically activates crash tracking for Java applications
Enhancement Notes
- Expose to cluster-agent HistogramBuckets and Events check stats. It should help the cluster-agent to define a better cluster-checks dispatching.
Bug Fixes
- The Cluster Agent Admission Controller now injects DD_DOGSTATSD_URL when used in socket mode (default), allowing DogStatsD clients to work without configuration.
- Fix persistent volume type for local volumes.