Skip to content

7.47.0

Compare
Choose a tag to compare
@kacper-murzyn kacper-murzyn released this 31 Aug 12:38
· 5051 commits to main since this release
b8c31bf

Agent

Prelude

Release on: 2023-08-31

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 to datadog.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 variable DD_APM_OBFUSCATION_REDIS_REMOVE_ALL_ARGS. Both accept a boolean value with default value false.

  • 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 to true 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 to false 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 to counter.

  • [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 to DD_APM_OBFUSCATION_ELASTICSEARCH_ENABLED: It accepts a boolean value with default value false.

    apm_config.obfuscation.elasticsearch.keep_values to DD_APM_OBFUSCATION_ELASTICSEARCH_KEEP_VALUES It accepts a list of strings of the form ["id1", "id2"].

    apm_config.obfuscation.elasticsearch.obfuscate_sql_values to DD_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 to DD_APM_OBFUSCATION_HTTP_REMOVE_PATHS_WITH_DIGITS, It accepts a boolean value with default value false.

    apm_config.obfuscation.http.remove_query_string to DD_APM_OBFUSCATION_HTTP_REMOVE_QUERY_STRING, It accepts a boolean value with default value false.

    apm_config.obfuscation.memcached.enabled to DD_APM_OBFUSCATION_MEMCACHED_ENABLED: It accepts a boolean value with default value false.

    apm_config.obfuscation.mongodb.enabled to DD_APM_OBFUSCATION_MONGODB_ENABLED: It accepts a boolean value with default value false.

    apm_config.obfuscation.mongodb.keep_values to DD_APM_OBFUSCATION_MONGODB_KEEP_VALUES It accepts a list of strings of the form ["id1", "id2"].

    apm_config.obfuscation.mongodb.obfuscate_sql_values to DD_APM_OBFUSCATION_MONGODB_OBFUSCATE_SQL_VALUES It accepts a list of strings of the form ["key1", "key2"].

    apm_config.obfuscation.redis.enabled to DD_APM_OBFUSCATION_REDIS_ENABLED: It accepts a boolean value with default value false.

    apm_config.obfuscation.remove_stack_traces to DD_APM_OBFUSCATION_REMOVE_STACK_TRACES: It accepts a boolean value with default value false.

    apm_config.obfuscation.sql_exec_plan.enabled to DD_APM_OBFUSCATION_SQL_EXEC_PLAN_ENABLED: It accepts a boolean value with default value false.

    apm_config.obfuscation.sql_exec_plan.keep_values to DD_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 to DD_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 to DD_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 to DD_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 to DD_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 deprecate forced_type.

  • [corechecks/snmp] Add tags to interface_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 format port/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, set integration_check_status_enabled to true.

Datadog Cluster Agent

Upgrade Notes

  • Add support for leases in leader election which can be enabled by setting leader_election_default_resource to leases, available since Kubernetes version 1.14. If this parameter is empty, leader election automatically detects if leases are available and uses them. Set leader_election_default_resource to configmap 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.