Skip to main content

saluki_components/config_registry/datadog/
encoders.rs

1//! Annotations for shared Datadog encoder configuration keys.
2use crate::config_registry::{generated::schema, structs, SalukiAnnotation, SchemaEntry, SupportLevel, ValueType};
3
4static FLUSH_TIMEOUT_SECS_SCHEMA: SchemaEntry = SchemaEntry {
5    yaml_path: "flush_timeout_secs",
6    env_vars: &[],
7    value_type: ValueType::Integer,
8    default: None,
9};
10
11static SERIALIZER_MAX_METRICS_PER_PAYLOAD_SCHEMA: SchemaEntry = SchemaEntry {
12    yaml_path: "serializer_max_metrics_per_payload",
13    env_vars: &[],
14    value_type: ValueType::Integer,
15    default: None,
16};
17
18crate::declare_annotations! {
19    /// `serializer_compressor_kind` — compression algorithm for encoder request payloads.
20    SERIALIZER_COMPRESSOR_KIND = SalukiAnnotation {
21        schema: &schema::SERIALIZER_COMPRESSOR_KIND,
22        support_level: SupportLevel::Full,
23        additional_yaml_paths: &[],
24        env_var_override: None,
25        used_by: &[
26            structs::DATADOG_EVENTS_CONFIGURATION,
27            structs::DATADOG_LOGS_CONFIGURATION,
28            structs::DATADOG_METRICS_CONFIGURATION,
29            structs::DATADOG_SERVICE_CHECKS_CONFIGURATION,
30            structs::DATADOG_TRACE_CONFIGURATION,
31        ],
32        value_type_override: None,
33        test_json: None,
34    };
35
36    /// `serializer_zstd_compressor_level` — zstd compression level for encoder request payloads.
37    /// Schema declares Float; field is i32.
38    SERIALIZER_ZSTD_COMPRESSOR_LEVEL = SalukiAnnotation {
39        schema: &schema::SERIALIZER_ZSTD_COMPRESSOR_LEVEL,
40        support_level: SupportLevel::Full,
41        additional_yaml_paths: &[],
42        env_var_override: None,
43        used_by: &[
44            structs::DATADOG_EVENTS_CONFIGURATION,
45            structs::DATADOG_LOGS_CONFIGURATION,
46            structs::DATADOG_METRICS_CONFIGURATION,
47            structs::DATADOG_SERVICE_CHECKS_CONFIGURATION,
48            structs::DATADOG_TRACE_CONFIGURATION,
49        ],
50        value_type_override: Some(ValueType::Integer),
51        test_json: None,
52    };
53
54    /// `flush_timeout_secs` — how long to wait before force-flushing an in-flight payload. ADP-specific.
55    FLUSH_TIMEOUT_SECS = SalukiAnnotation {
56        schema: &FLUSH_TIMEOUT_SECS_SCHEMA,
57        support_level: SupportLevel::Full,
58        additional_yaml_paths: &[],
59        env_var_override: None,
60        used_by: &[
61            structs::DATADOG_APM_STATS_ENCODER_CONFIGURATION,
62            structs::DATADOG_METRICS_CONFIGURATION,
63            structs::DATADOG_TRACE_CONFIGURATION,
64        ],
65        value_type_override: None,
66        test_json: None,
67    };
68
69    /// `serializer_max_metrics_per_payload` — max metrics per encoded request payload. ADP-specific.
70    SERIALIZER_MAX_METRICS_PER_PAYLOAD = SalukiAnnotation {
71        schema: &SERIALIZER_MAX_METRICS_PER_PAYLOAD_SCHEMA,
72        support_level: SupportLevel::Full,
73        additional_yaml_paths: &[],
74        env_var_override: None,
75        used_by: &[structs::DATADOG_METRICS_CONFIGURATION],
76        value_type_override: None,
77        test_json: None,
78    };
79
80    /// `env` — the environment name attached to all emitted telemetry.
81    ENV = SalukiAnnotation {
82        schema: &schema::ENV,
83        support_level: SupportLevel::Full,
84        additional_yaml_paths: &[],
85        env_var_override: None,
86        used_by: &[
87            structs::DATADOG_APM_STATS_ENCODER_CONFIGURATION,
88            structs::DATADOG_TRACE_CONFIGURATION,
89        ],
90        value_type_override: None,
91        test_json: None,
92    };
93}