Skip to content

Configuring DogStatsD on Agent Data Plane

The DogStatsD implementation on ADP has been redesigned in Rust for better resource guarantees and efficiency. Because the architecture is different from the original implementation, certain configuration values may behave differently, be planned but not yet implemented, or not apply at all. This page documents those nuances.

ADP is designed to be transparent: customers configure DogStatsD the same way they always have. The sections below call out the cases where that is either not yet true, or not quite possible.

If you find an error on this page, please open an issue.

Unsupported Settings

Being Worked On

The following settings are not yet supported in ADP but are planned with GitHub issue links for tracking.

Config KeyDescriptionIssue
allow_arbitrary_tagsAllow arbitrary tag values#1377
bind_hostGlobal listen host fallback#1331
cri_connection_timeoutCRI runtime connection timeout#1348
cri_query_timeoutCRI runtime query timeout#1348
dogstatsd_capture_depthTraffic capture channel depth#1381
dogstatsd_capture_pathTraffic capture file location#1381
dogstatsd_eol_requiredRequire newline-terminated msgs#1339
dogstatsd_log_fileDSD dedicated log file path#1356
dogstatsd_log_file_max_rollsDSD log file max roll count#1356
dogstatsd_log_file_max_sizeDSD log file max size#1356
dogstatsd_logging_enabledEnables DSD metric logging#1356
dogstatsd_pipe_nameWindows named pipe path
dogstatsd_so_rcvbufSocket receive buffer size#1341
dogstatsd_windows_pipe_security_descriptorWindows named pipe ACL descriptor
dogstatsd_stream_log_too_bigLog oversized stream messages#1342
extra_tagsAdditional static tags#1332
forwarder_http_protocolHTTP version (auto/http1)#1361
forwarder_outdated_file_in_daysRetry file retention (days)#1360
log_format_rfc3339Use RFC3339 timestamp format#1373
log_to_syslogLog to syslog daemon#1337
logging_frequencyTransaction success log interval#1380
metric_tag_filterlistPer-metric tag include/exclude
min_tls_versionMinimum TLS version for HTTPS#1370
serializer_experimental_use_v3_api.*V3 metrics API migration flags
sslkeylogfileTLS key log file path#1372
tls_handshake_timeoutHTTP TLS handshake timeout#178

Not Planned

The following settings exist in the core agent but are not planned for ADP, typically because ADP's architecture is fundamentally different or the feature is platform-specific.

Config KeyDescriptionReason
dogstatsd_mem_based_rate_limiter.enabledEnable memory rate limiterGo GC specific; use memory_limit
dogstatsd_no_aggregation_pipeline_batch_sizeNo-agg pipeline batch sizeFixed in ADP topology
dogstatsd_packet_buffer_flush_timeoutPacket buffer flush timeoutADP decodes inline
dogstatsd_packet_buffer_sizeDatagrams per packet bufferADP decodes inline
dogstatsd_pipeline_autoadjustAuto-adjust pipeline workersADP uses async tasks
dogstatsd_pipeline_countParallel processing pipelinesADP uses async tasks
dogstatsd_queue_sizePacket channel buffer sizeADP uses async tasks
dogstatsd_telemetry_enabled_listener_idPer-listener telemetry taggingNot feasible to thread through
dogstatsd_workers_countNum DSD processing workersADP uses async tasks
statsd_forward_hostHost for raw packet forwardingNot planned
statsd_forward_portPort for raw packet forwardingNot planned

Behavioral Differences

The following settings are recognized by both ADP and the core agent, but with different behavior or default values.

Config KeyDescriptionAgent BehaviorADP Behavior
dogstatsd_context_expiry_secondsContext cache TTL (seconds)Default 20s, configurableHardcodes 30s (#1340)
dogstatsd_flush_incomplete_bucketsFlush open buckets on shutdownStandard keyKey is aggregate_flush_open_windows (#1366)
dogstatsd_metrics_stats_enableEnable per-metric debug statsConfig toggleOn-demand via API (#1352)
dogstatsd_stats_enableEnable internal stats endpointConfig toggleOn-demand via API (#1352)
dogstatsd_stats_bufferInternal stats buffer sizeConfigurableOn-demand via API (#1352)
dogstatsd_stats_portInternal stats endpoint portConfigurable portOn-demand via API (#1352)
enable_payloads.eventsAllow sending event payloadsDot separatorUnderscore: enable_payloads_events (#1366)
enable_payloads.seriesAllow sending series payloadsDot separatorUnderscore: enable_payloads_series (#1366)
enable_payloads.service_checksAllow sending svc check payloadsDot separatorUnderscore (#1366)
enable_payloads.sketchesAllow sending sketch payloadsDot separatorUnderscore (#1366)
serializer_zstd_compressor_levelZstd compression levelDefault level 1Default level 3 (intentional)
statsd_metric_namespace_blacklistPrefixes exempt from namespace_blacklist keyUse _blocklist key (#1353)
telemetry.enabledGlobal telemetry toggleAgent toggleUse data_plane.telemetry_enabled (#1338)

DogStatsD Statistics (dogstatsd_stats_enable / dogstatsd_metrics_stats_enable)

The core agent's DogStatsD stats feature collects per-metric statistics (name cardinality, tag counts, etc.). You enable it via dogstatsd_stats_enable, wait a sampling period, then query the dogstatsd_stats_port endpoint. dogstatsd_metrics_stats_enable is a related toggle for an older stats path.

ADP exposes equivalent capability through its privileged API on demand — no config change is required. You trigger collection directly via the ADP binary and retrieve results via the privileged endpoint. The config keys dogstatsd_stats_enable, dogstatsd_stats_buffer, dogstatsd_stats_port, and dogstatsd_metrics_stats_enable are not read by ADP. See #1352.

dogstatsd_flush_incomplete_buckets

ADP implements this behavior under the key aggregate_flush_open_windows. If you set dogstatsd_flush_incomplete_buckets, ADP silently ignores it. Use aggregate_flush_open_windows instead. Tracked in #1366.

enable_payloads.*

The core agent uses dot-separated keys (enable_payloads.events, enable_payloads.series, etc.) while ADP currently reads underscore-separated variants (enable_payloads_events, etc.). The underlying feature is implemented in ADP; only the config key naming differs. Setting the documented core agent keys will have no effect on ADP until this is resolved. Tracked in #1366.

telemetry.enabled

The core agent enables internal Prometheus metrics via telemetry.enabled and ingests them with an OpenMetrics check pointed at the agent's own telemetry endpoint. ADP has a separate telemetry endpoint controlled by data_plane.telemetry_enabled. Customers enabling ADP telemetry must configure a separate OpenMetrics check pointed at ADP's endpoint. See #1338.

Compatibility Unknown

The following settings need further investigation. ADP behavior may differ from the core agent in ways that are not yet fully characterized.

Config KeyDescriptionIssue
dogstatsd_disable_verbose_logsSuppress noisy parse error logs
dogstatsd_origin_detection_clientHonor client origin proto fields#1426
forwarder_apikey_validation_intervalAPI key check interval (mins)
forwarder_flush_to_disk_mem_ratioMem-to-disk flush threshold
forwarder_high_prio_buffer_sizeHigh-priority request queue size
forwarder_low_prio_buffer_sizeLow-priority request queue size
forwarder_max_concurrent_requestsMax concurrent HTTP requests
forwarder_retry_queue_capacity_time_interval_secRetry queue time-based capacity
serializer_max_payload_sizeMax compressed payload size
serializer_max_series_payload_sizeMax series compressed size
serializer_max_series_points_per_payloadMax series points per payload
serializer_max_series_uncompressed_payload_sizeMax series uncompressed size
serializer_max_uncompressed_payload_sizeMax uncompressed payload size
skip_ssl_validationSkip TLS cert validation
statsd_metric_blocklistMetric name blocklist#1433
statsd_metric_blocklist_match_prefixBlocklist matches by prefix#1434
statsd_metric_namespacePrefix prepended to all metrics
tagsGlobal tags (DD_TAGS)
use_dogstatsdMaster DogStatsD enable toggle

ADP-Only Settings

The following settings are specific to ADP and have no equivalent in the core agent.

Config KeyDescriptionDefault
agent_ipc_endpointRemote agent IPC URI
aggregate_flush_intervalAggregator flush period
aggregate_flush_open_windowsFlush open windows on stop
aggregate_passthrough_idle_flush_timeoutPassthrough buffer flush delay
aggregate_window_durationAggregation window size
connect_retry_attemptsIPC client connect retries
connect_retry_backoffIPC client retry delay
counter_expiry_secondsIdle counter keep-alive duration300s
data_plane.api_listen_addressADP unprivileged API address
data_plane.remote_agent_enabledRegister as remote agent
data_plane.secure_api_listen_addressADP privileged API address
data_plane.standalone_modeADP standalone mode toggle
data_plane.use_new_config_stream_endpointUse new config stream endpoint
dogstatsd_allow_context_heap_allocsAllow heap allocs for contexts
dogstatsd_buffer_countNumber of receive buffers
dogstatsd_cached_contexts_limitMax cached metric contexts
dogstatsd_cached_tagsets_limitMax cached tagsets
dogstatsd_mapper_string_interner_sizeMapper string interner capacity
dogstatsd_minimum_sample_rateFloor for metric sample rates
dogstatsd_permissive_decodingRelaxes decoder strictnesstrue
dogstatsd_tcp_portTCP listen port for DSD
enable_global_limiterToggle global memory limiter
flush_timeout_secsEncoder flush timeout (secs)
memory_limitProcess memory limit (bytes)
memory_slop_factorMemory headroom fraction
otlp_string_interner_sizeOTLP context interner capacity
remote_agent_string_interner_size_bytesTag string interner capacity512 KB
serializer_max_metrics_per_payloadMax metrics per payload
statsd_metric_namespace_blocklistRenamed alias for blacklist key

memory_limit / memory_slop_factor

ADP uses an explicit process memory limit (memory_limit) rather than relying on Go's garbage collector. The memory_slop_factor reserves a fraction of the limit to account for allocations not tracked by ADP's internal accounting. When memory usage approaches memory_limit, ADP's global limiter begins exerting backpressure (see enable_global_limiter).

dogstatsd_minimum_sample_rate

ADP enforces a minimum sample rate on incoming metrics to prevent memory exhaustion from extremely low sample rates on histograms and sketches. Sending metrics with a very high inverse sample rate (e.g. @0.0000001) can cause unbounded memory growth in a sketch; this setting prevents that. The default is conservative enough that normal clients are unaffected.

dogstatsd_permissive_decoding

By default, ADP parses DogStatsD packets with the same leniency as the core agent, accepting packets that technically violate the spec. Setting this to false enables strict mode, which rejects non-conformant packets. Strict mode is not available in the core agent.

data_plane.remote_agent_enabled / data_plane.use_new_config_stream_endpoint

These two keys are transitional flags being phased out. Both will be implied by data_plane.standalone_mode=false in a future release. Do not rely on them for new deployments.

Transparent Settings

The following settings work in ADP with the same behavior as the core agent.

Config KeyDescription
additional_endpointsDual-ship to extra endpoints
aggregate_context_limitMax contexts per agg window
api_keyAPI key for endpoint auth
auth_token_file_pathIPC auth token file path
container_cgroup_rootCgroup filesystem root path
container_proc_rootProcfs root path for containers
cri_socket_pathCRI/containerd socket path
data_plane.dogstatsd.enabledEnable DSD in data plane
data_plane.enabledEnable ADP globally
dd_urlOverride intake endpoint URL
dogstatsd_buffer_sizeReceive buffer size (bytes)
dogstatsd_entity_id_precedenceEntity ID over auto-detection
dogstatsd_expiry_secondsCounter zero-value TTL (secs)
dogstatsd_mapper_profilesMetric mapping profile defs
dogstatsd_no_aggregation_pipelineEnable no-agg timestamped path
dogstatsd_non_local_trafficAccept non-localhost UDP/TCP
dogstatsd_origin_detectionEnable UDS origin detection
dogstatsd_origin_optout_enabledAllow clients to opt out origin
dogstatsd_portUDP listen port
dogstatsd_socketUDS datagram socket path
dogstatsd_stream_socketUDS stream socket path
dogstatsd_string_interner_sizeString interner capacity
dogstatsd_tag_cardinalityDefault tag cardinality level
dogstatsd_tagsExtra tags added to all DSD data
expected_tags_durationHost tag enrichment duration
forwarder_backoff_baseRetry backoff base (secs)
forwarder_backoff_factorRetry backoff jitter factor
forwarder_backoff_maxRetry backoff ceiling (secs)
forwarder_connection_reset_intervalHTTP conn reset interval (secs)
forwarder_num_workersConcurrent forwarder workers
forwarder_recovery_intervalBackoff recovery decrease factor
forwarder_recovery_resetReset errors on success
forwarder_retry_queue_max_sizeRetry queue max size (depr.)
forwarder_retry_queue_payloads_max_sizeRetry queue max size (bytes)
forwarder_storage_max_disk_ratioMax disk usage ratio for retry
forwarder_storage_max_size_in_bytesMax on-disk retry storage size
forwarder_storage_pathOn-disk retry storage directory
forwarder_timeoutForwarder HTTP request timeout
histogram_aggregatesHistogram aggregate statistics
histogram_copy_to_distributionCopy histograms to distributions
histogram_copy_to_distribution_prefixPrefix for hist-to-dist copies
histogram_percentilesHistogram percentile quantiles
hostnameConfigured hostname override
ipc_cert_file_pathIPC TLS certificate path
log_fileLog output file path
log_file_max_rollsMax rotated log files kept
log_file_max_sizeMax log file size before rotate
log_format_jsonUse JSON log format
log_levelLog verbosity level
log_to_consoleLog to stdout/stderr
metric_filterlistMetric name blocklist
metric_filterlist_match_prefixBlocklist uses prefix matching
no_proxy_nonexact_matchDomain/CIDR no_proxy matching
origin_detection_unifiedUnified origin detection mode
proxyHTTP/HTTPS proxy configuration
run_pathRuntime data directory path
secret_backend_commandSecret resolver executable path
secret_backend_timeoutSecret backend timeout (seconds)
serializer_compressor_kindPayload compression algorithm
siteDatadog site domain
use_proxy_for_cloud_metadataProxy cloud metadata endpoints