QuickDID is a high-performance AT Protocol identity resolution service written in Rust. It provides handle-to-DID resolution with Redis-backed caching and queue processing.
···142### Optional - Metrics
143- `METRICS_ADAPTER`: Metrics adapter type - 'noop' or 'statsd' (default: noop)
144- `METRICS_STATSD_HOST`: StatsD host and port (required when METRICS_ADAPTER=statsd, e.g., localhost:8125)
0145- `METRICS_PREFIX`: Prefix for all metrics (default: quickdid)
146- `METRICS_TAGS`: Comma-separated tags (e.g., env:prod,service:quickdid)
147
···142### Optional - Metrics
143- `METRICS_ADAPTER`: Metrics adapter type - 'noop' or 'statsd' (default: noop)
144- `METRICS_STATSD_HOST`: StatsD host and port (required when METRICS_ADAPTER=statsd, e.g., localhost:8125)
145+- `METRICS_STATSD_BIND`: Bind address for StatsD UDP socket (default: [::]:0 for IPv6, can use 0.0.0.0:0 for IPv4)
146- `METRICS_PREFIX`: Prefix for all metrics (default: quickdid)
147- `METRICS_TAGS`: Comma-separated tags (e.g., env:prod,service:quickdid)
148
+1
README.md
···135#### Metrics
136- `METRICS_ADAPTER`: Metrics adapter type - 'noop' or 'statsd' (default: noop)
137- `METRICS_STATSD_HOST`: StatsD host and port (required when METRICS_ADAPTER=statsd)
0138- `METRICS_PREFIX`: Prefix for all metrics (default: quickdid)
139- `METRICS_TAGS`: Comma-separated tags (e.g., env:prod,service:quickdid)
140
···135#### Metrics
136- `METRICS_ADAPTER`: Metrics adapter type - 'noop' or 'statsd' (default: noop)
137- `METRICS_STATSD_HOST`: StatsD host and port (required when METRICS_ADAPTER=statsd)
138+- `METRICS_STATSD_BIND`: Bind address for StatsD UDP socket (default: [::]:0 for IPv6, can use 0.0.0.0:0 for IPv4)
139- `METRICS_PREFIX`: Prefix for all metrics (default: quickdid)
140- `METRICS_TAGS`: Comma-separated tags (e.g., env:prod,service:quickdid)
141
+3
src/bin/quickdid.rs
···135 println!(
136 " METRICS_STATSD_HOST StatsD host when using statsd adapter (e.g., localhost:8125)"
137 );
000138 println!(" METRICS_PREFIX Prefix for all metrics (default: quickdid)");
139 println!(
140 " METRICS_TAGS Default tags for metrics (comma-separated key:value pairs)"
···135 println!(
136 " METRICS_STATSD_HOST StatsD host when using statsd adapter (e.g., localhost:8125)"
137 );
138+ println!(
139+ " METRICS_STATSD_BIND Bind address for StatsD UDP socket (default: [::]:0)"
140+ );
141 println!(" METRICS_PREFIX Prefix for all metrics (default: quickdid)");
142 println!(
143 " METRICS_TAGS Default tags for metrics (comma-separated key:value pairs)"
+5
src/config.rs
···220 /// Required when metrics_adapter is "statsd"
221 pub metrics_statsd_host: Option<String>,
2220000223 /// Metrics prefix for all metrics (e.g., "quickdid")
224 /// Default: "quickdid"
225 pub metrics_prefix: String,
···331 cache_control_header: None, // Will be calculated below
332 metrics_adapter: get_env_or_default("METRICS_ADAPTER", Some("noop")).unwrap(),
333 metrics_statsd_host: get_env_or_default("METRICS_STATSD_HOST", None),
0334 metrics_prefix: get_env_or_default("METRICS_PREFIX", Some("quickdid")).unwrap(),
335 metrics_tags: get_env_or_default("METRICS_TAGS", None),
336 proactive_refresh_enabled: parse_env("PROACTIVE_REFRESH_ENABLED", false)?,
···220 /// Required when metrics_adapter is "statsd"
221 pub metrics_statsd_host: Option<String>,
222223+ /// Bind address for StatsD UDP socket (e.g., "0.0.0.0:0" for IPv4 or "[::]:0" for IPv6)
224+ /// Default: "[::]:0" (IPv6 any address, random port)
225+ pub metrics_statsd_bind: String,
226+227 /// Metrics prefix for all metrics (e.g., "quickdid")
228 /// Default: "quickdid"
229 pub metrics_prefix: String,
···335 cache_control_header: None, // Will be calculated below
336 metrics_adapter: get_env_or_default("METRICS_ADAPTER", Some("noop")).unwrap(),
337 metrics_statsd_host: get_env_or_default("METRICS_STATSD_HOST", None),
338+ metrics_statsd_bind: get_env_or_default("METRICS_STATSD_BIND", Some("[::]:0")).unwrap(),
339 metrics_prefix: get_env_or_default("METRICS_PREFIX", Some("quickdid")).unwrap(),
340 metrics_tags: get_env_or_default("METRICS_TAGS", None),
341 proactive_refresh_enabled: parse_env("PROACTIVE_REFRESH_ENABLED", false)?,