sozu_lib/metrics/
names.rs1pub mod accept_queue {
22 pub const BACKPRESSURE: &str = "accept_queue.backpressure";
23 pub const CONNECTIONS: &str = "accept_queue.connections";
24 pub const SATURATED_SECONDS: &str = "accept_queue.saturated_seconds";
25 pub const TIMEOUT: &str = "accept_queue.timeout";
26 pub const WAIT_TIME: &str = "accept_queue.wait_time";
27}
28
29pub mod access_logs {
31 pub const COUNT: &str = "access_logs.count";
32 pub const UNSENT: &str = "unsent-access-logs";
33}
34
35pub mod backend {
39 pub const BYTES_IN: &str = "bytes_in";
40 pub const BYTES_OUT: &str = "bytes_out";
41 pub const BACK_BYTES_IN: &str = "back_bytes_in";
42 pub const BACK_BYTES_OUT: &str = "back_bytes_out";
43 pub const AVAILABLE: &str = "backend.available";
44 pub const CONNECTIONS: &str = "backend.connections";
45 pub const FLOW_CONTROL_PAUSED: &str = "backend.flow_control.paused";
46 pub const POOL_HIT: &str = "backend.pool.hit";
47 pub const POOL_MISS: &str = "backend.pool.miss";
48 pub const POOL_SIZE: &str = "backend.pool.size";
49 pub const CONNECTIONS_PER_BACKEND: &str = "connections_per_backend";
50 pub const CONNECTION_TIME: &str = "backend_connection_time";
51 pub const HEADER_TIME: &str = "backend_header_time";
55 pub const RESPONSE_TIME: &str = "backend_response_time";
56 pub const REQUESTS: &str = "requests";
57 pub const FAIL_OPEN: &str = "backends.fail_open";
58 pub const SHARD_SPILLOVER: &str = "backend.shard.spillover";
62 pub const SHARD_EXHAUSTED: &str = "backend.shard.exhausted";
66
67 pub const UP: &str = "backend.up";
71 pub const DOWN: &str = "backend.down";
72 pub const CONNECTIONS_ERROR: &str = "backend.connections.error";
73 pub const CONNECT_RETRIES_EXHAUSTED: &str = "backend.connect.retries_exhausted";
74
75 pub const RETRY_STALE_UPSTREAM: &str = "backend.retry.stale_upstream";
93
94 pub const RETRY_CAPTURES_ARMED: &str = "backend.retry.captures_armed";
113
114 pub const RETRY_CAPTURES_DECLINED: &str = "backend.retry.captures_declined";
138}
139
140pub mod buffer {
142 pub const CAPACITY: &str = "buffer.capacity";
143 pub const IN_USE: &str = "buffer.in_use";
144 pub const USAGE_PERCENT: &str = "buffer.usage_percent";
145}
146
147pub mod client {
149 pub const CONNECTIONS: &str = "client.connections";
150 pub const CONNECTIONS_MAX: &str = "client.connections_max";
151 pub const CONNECTIONS_PERCENT: &str = "client.connections_percent";
152}
153
154pub mod cluster {
156 pub const AVAILABLE_BACKENDS: &str = "cluster.available_backends";
157 pub const AVAILABLE_RECOVERED: &str = "cluster.available_recovered";
158 pub const NO_AVAILABLE_BACKENDS: &str = "cluster.no_available_backends";
159 pub const TOTAL_BACKENDS: &str = "cluster.total_backends";
160}
161
162pub mod configuration {
165 pub const BACKENDS: &str = "configuration.backends";
166 pub const CLUSTERS: &str = "configuration.clusters";
167 pub const FRONTENDS: &str = "configuration.frontends";
168}
169
170pub mod connections {
173 pub const REJECTED_PER_CLUSTER_IP: &str = "connections.rejected_per_cluster_ip";
174}
175
176pub mod event_loop {
178 pub const EPOLL_TIME: &str = "epoll_time";
179 pub const EVENT_LOOP_TIME: &str = "event_loop_time";
180 pub const FRONTEND_MATCHING_TIME: &str = "frontend_matching_time";
181 pub const REGEX_MATCHING_TIME: &str = "regex_matching_time";
182 pub const REQUEST_TIME: &str = "request_time";
183 pub const SERVICE_TIME: &str = "service_time";
184}
185
186pub mod health_check {
188 pub const UP: &str = "health_check.up";
189 pub const DOWN: &str = "health_check.down";
190 pub const SUCCESS: &str = "health_check.success";
191 pub const FAILURE: &str = "health_check.failure";
192 pub const HEALTHY_BACKENDS: &str = "health_check.healthy_backends";
193 pub const MISSING_SECRET: &str = "health_check.missing_secret";
196}
197
198pub mod h1 {
200 pub const BACKEND_EOF_BEFORE_MESSAGE_COMPLETE: &str = "h1.backend_eof_before_message_complete";
201}
202
203pub mod h2 {
206 pub const CLOSE_WITH_ACTIVE_STREAMS: &str = "h2.close_with_active_streams";
207 pub const COALESCING_ACCEPTED: &str = "h2.coalescing.accepted";
208 pub const CONNECTION_ACTIVE_STREAMS: &str = "h2.connection.active_streams";
209 pub const CONNECTION_PENDING_WINDOW_UPDATES: &str = "h2.connection.pending_window_updates";
210 pub const CONNECTION_WINDOW_BYTES: &str = "h2.connection.window_bytes";
211 pub const FLOW_CONTROL_STALL: &str = "h2.flow_control_stall";
212
213 pub const STREAMS_REAPED_IDLE_TIMEOUT: &str = "h2.streams.reaped.idle_timeout";
218 pub const STREAMS_REAPED_WINDOW_STALL: &str = "h2.streams.reaped.window_stall";
219 pub const STREAMS_REAPED_STALL_BUDGET: &str = "h2.streams.reaped.stall_budget";
220
221 pub const STREAMS_READY_INCREMENTAL_BY_URGENCY: &str =
228 "h2.streams.ready_incremental.by_urgency";
229
230 pub const FRAMES_TX_CONTINUATION: &str = "h2.frames.tx.continuation";
232 pub const FRAMES_TX_DATA: &str = "h2.frames.tx.data";
233 pub const FRAMES_TX_GOAWAY: &str = "h2.frames.tx.goaway";
234 pub const FRAMES_TX_HEADERS: &str = "h2.frames.tx.headers";
235 pub const FRAMES_TX_PING_ACK: &str = "h2.frames.tx.ping_ack";
236 pub const FRAMES_TX_RST_STREAM: &str = "h2.frames.tx.rst_stream";
237 pub const FRAMES_TX_SETTINGS: &str = "h2.frames.tx.settings";
238 pub const FRAMES_TX_WINDOW_UPDATE: &str = "h2.frames.tx.window_update";
239
240 pub const HEADERS_NO_STREAM_ERROR: &str = "h2.headers_no_stream.error";
242 pub const HEADERS_REJECTED_BUDGET_OVERRUN: &str = "h2.headers.rejected.budget_overrun";
243 pub const HEADERS_REJECTED_TOTAL: &str = "h2.headers.rejected.total";
244
245 pub const RST_STREAM_RECEIVED_PRE_RESPONSE_START: &str =
246 "h2.rst_stream.received.pre_response_start";
247
248 pub const RST_STREAM_DROPPED: &str = "h2.rst_stream_dropped";
255
256 pub const SIGNAL_WRITABLE_REARMED_CONTROL_QUEUE: &str =
258 "h2.signal.writable.rearmed.control_queue";
259 pub const SIGNAL_WRITABLE_REARMED_DEFAULT_ANSWER: &str =
260 "h2.signal.writable.rearmed.default_answer";
261 pub const SIGNAL_WRITABLE_REARMED_FORCEFULLY_TERMINATE_ANSWER: &str =
262 "h2.signal.writable.rearmed.forcefully_terminate_answer";
263 pub const SIGNAL_WRITABLE_REARMED_PEER_DATA: &str = "h2.signal.writable.rearmed.peer_data";
264 pub const SIGNAL_WRITABLE_REARMED_PEER_HEADERS: &str =
265 "h2.signal.writable.rearmed.peer_headers";
266 pub const SIGNAL_WRITABLE_REARMED_PRIORITY_UPDATE: &str =
267 "h2.signal.writable.rearmed.priority_update";
268
269 pub const TRAILERS_DROPPED_CONTENT_LENGTH: &str = "h2.trailers_dropped_content_length";
270 pub const TRAILERS_DROPPED_NO_BODY: &str = "h2.trailers_dropped_no_body";
274 pub const BODILESS_RESPONSE_DATA_RESET: &str = "h2.bodiless_response_data_reset";
278 pub const TRAILER_FORBIDDEN_FIELD_ELIDED: &str = "h2.trailer.forbidden_field_elided";
283 pub const TRAILER_SPOOF_VECTOR_ELIDED: &str = "h2.trailer.spoof_vector_elided";
284 pub const WINDOW_UPDATE_DROPPED: &str = "h2.window_update_dropped";
285
286 pub const FLOOD_VIOLATION_GLITCH_WINDOW: &str = "h2.flood.violation.glitch_window";
290 pub const FLOOD_VIOLATION_RST_STREAM_WINDOW: &str = "h2.flood.violation.rst_stream_window";
291 pub const FLOOD_VIOLATION_RST_STREAM_LIFETIME: &str = "h2.flood.violation.rst_stream_lifetime";
292 pub const FLOOD_VIOLATION_RST_STREAM_PRE_RESPONSE_LIFETIME: &str =
293 "h2.flood.violation.rst_stream_pre_response_lifetime";
294 pub const FLOOD_VIOLATION_RST_STREAM_EMITTED_LIFETIME: &str =
295 "h2.flood.violation.rst_stream_emitted_lifetime";
296 pub const FLOOD_VIOLATION_PING_WINDOW: &str = "h2.flood.violation.ping_window";
297 pub const FLOOD_VIOLATION_PING_LIFETIME: &str = "h2.flood.violation.ping_lifetime";
298 pub const FLOOD_VIOLATION_SETTINGS_WINDOW: &str = "h2.flood.violation.settings_window";
299 pub const FLOOD_VIOLATION_SETTINGS_LIFETIME: &str = "h2.flood.violation.settings_lifetime";
300 pub const FLOOD_VIOLATION_EMPTY_DATA_WINDOW: &str = "h2.flood.violation.empty_data_window";
301 pub const FLOOD_VIOLATION_CONTINUATION_PER_BLOCK: &str =
302 "h2.flood.violation.continuation_per_block";
303 pub const FLOOD_VIOLATION_WINDOW_UPDATE_STREAM0_WINDOW: &str =
304 "h2.flood.violation.window_update_stream0_window";
305 pub const FLOOD_VIOLATION_HEADER_SIZE_PER_BLOCK: &str =
306 "h2.flood.violation.header_size_per_block";
307 pub const FLOOD_VIOLATION_KEYS: [&str; 13] = [
312 FLOOD_VIOLATION_RST_STREAM_PRE_RESPONSE_LIFETIME,
313 FLOOD_VIOLATION_RST_STREAM_LIFETIME,
314 FLOOD_VIOLATION_RST_STREAM_EMITTED_LIFETIME,
315 FLOOD_VIOLATION_RST_STREAM_WINDOW,
316 FLOOD_VIOLATION_CONTINUATION_PER_BLOCK,
317 FLOOD_VIOLATION_HEADER_SIZE_PER_BLOCK,
318 FLOOD_VIOLATION_PING_WINDOW,
319 FLOOD_VIOLATION_PING_LIFETIME,
320 FLOOD_VIOLATION_SETTINGS_WINDOW,
321 FLOOD_VIOLATION_SETTINGS_LIFETIME,
322 FLOOD_VIOLATION_EMPTY_DATA_WINDOW,
323 FLOOD_VIOLATION_WINDOW_UPDATE_STREAM0_WINDOW,
324 FLOOD_VIOLATION_GLITCH_WINDOW,
325 ];
326 pub const FLOOD_STREAM_REFUSED: &str = "h2.flood.stream_refused";
331}
332
333pub mod http {
336 pub const ERR_400: &str = "http.400.errors";
337 pub const ERR_401: &str = "http.401.errors";
338 pub const ERR_404: &str = "http.404.errors";
339 pub const ERR_408: &str = "http.408.errors";
340 pub const ERR_413: &str = "http.413.errors";
341 pub const ERR_421: &str = "http.421.errors";
342 pub const ERR_502: &str = "http.502.errors";
343 pub const ERR_503: &str = "http.503.errors";
344 pub const ERR_504: &str = "http.504.errors";
345 pub const ERR_507: &str = "http.507.errors";
346 pub const ERRORS: &str = "http.errors";
349 pub const REDIRECTION_301: &str = "http.301.redirection";
350 pub const REDIRECTION_302: &str = "http.302.redirection";
351 pub const REDIRECTION_308: &str = "http.308.redirection";
352 pub const ACTIVE_REQUESTS: &str = "http.active_requests";
353 pub const ALPN_H2: &str = "http.alpn.h2";
354 pub const ALPN_HTTP11: &str = "http.alpn.http11";
355 pub const BACKEND_PARSE_ERRORS: &str = "http.backend_parse_errors";
356 pub const E2E_H2: &str = "http.e2e.h2";
357 pub const E2E_HTTP11: &str = "http.e2e.http11";
358 pub const EARLY_RESPONSE_CLOSE: &str = "http.early_response_close";
359 pub const CLOSE_REQUEST_INCOMPLETE: &str = "http.close.request_incomplete";
363 pub const FAILED_BACKEND_MATCHING: &str = "http.failed_backend_matching";
364 pub const FORWARDED_MALFORMED_ELIDED: &str = "http.forwarded_malformed_elided";
369 pub const FRONTEND_TE_SMUGGLING: &str = "http.frontend.transfer_encoding_smuggling";
372 pub const FRONTEND_CONTENT_LENGTH_INVALID: &str = "http.frontend.content_length_invalid";
377 pub const BACKEND_CONTENT_LENGTH_INVALID: &str = "http.backend.content_length_invalid";
382 pub const FRONTEND_PARSE_ERRORS: &str = "http.frontend_parse_errors";
383 pub const HSTS_FRONTEND_ADDED: &str = "http.hsts.frontend_added";
384 pub const HSTS_FRONTEND_REFRESHED: &str = "http.hsts.frontend_refreshed";
385 pub const HSTS_LISTENER_DEFAULT_PATCHED: &str = "http.hsts.listener_default_patched";
386 pub const HSTS_SUPPRESSED_PLAINTEXT: &str = "http.hsts.suppressed_plaintext";
387 pub const HSTS_UNRENDERED: &str = "http.hsts.unrendered";
388 pub const INFINITE_LOOP_ERROR: &str = "http.infinite_loop.error";
389 pub const REDIRECT_TEMPLATE_COMPILE_ERROR: &str = "http.redirect_template.compile_error";
390 pub const REQUESTS: &str = "http.requests";
391 pub const SNI_AUTHORITY_MISMATCH: &str = "http.sni_authority_mismatch";
392 pub const STATUS_1XX: &str = "http.status.1xx";
393 pub const STATUS_2XX: &str = "http.status.2xx";
394 pub const STATUS_3XX: &str = "http.status.3xx";
395 pub const STATUS_4XX: &str = "http.status.4xx";
396 pub const STATUS_5XX: &str = "http.status.5xx";
397 pub const STATUS_OTHER: &str = "http.status.other";
398 pub const TRAILER_FIELD_LIMIT_EXCEEDED: &str = "http.trailer.field_limit_exceeded";
403 pub const TRAILER_FORBIDDEN_FIELD_ELIDED: &str = "http.trailer.forbidden_field_elided";
410 pub const TRAILER_SPOOF_VECTOR_ELIDED: &str = "http.trailer.spoof_vector_elided";
416 pub const TRUSTING_X_PORT: &str = "http.trusting.x_port";
417 pub const TRUSTING_X_PORT_DIFF: &str = "http.trusting.x_port.diff";
418 pub const TRUSTING_X_PROTO: &str = "http.trusting.x_proto";
419 pub const TRUSTING_X_PROTO_DIFF: &str = "http.trusting.x_proto.diff";
420 pub const UPGRADE_EXPECT_FAILED: &str = "http.upgrade.expect.failed";
421 pub const UPGRADE_MUX_FAILED: &str = "http.upgrade.mux.failed";
422 pub const UPGRADE_WS_FAILED: &str = "http.upgrade.ws.failed";
423 pub const X_REQUEST_ID_GENERATED: &str = "http.x_request_id.generated";
424 pub const X_REQUEST_ID_PROPAGATED: &str = "http.x_request_id.propagated";
425}
426
427pub mod http_status {
431 pub const S200: &str = "http.status.200";
432 pub const S201: &str = "http.status.201";
433 pub const S204: &str = "http.status.204";
434 pub const S301: &str = "http.status.301";
435 pub const S302: &str = "http.status.302";
436 pub const S304: &str = "http.status.304";
437 pub const S400: &str = "http.status.400";
438 pub const S401: &str = "http.status.401";
439 pub const S403: &str = "http.status.403";
440 pub const S404: &str = "http.status.404";
441 pub const S408: &str = "http.status.408";
442 pub const S413: &str = "http.status.413";
443 pub const S429: &str = "http.status.429";
444 pub const S500: &str = "http.status.500";
445 pub const S502: &str = "http.status.502";
446 pub const S503: &str = "http.status.503";
447 pub const S504: &str = "http.status.504";
448 pub const S507: &str = "http.status.507";
449}
450
451pub mod https {
453 pub const ALPN_REJECTED_HTTP11_DISABLED: &str = "https.alpn.rejected.http11_disabled";
454 pub const ALPN_REJECTED_UNSUPPORTED: &str = "https.alpn.rejected.unsupported";
455 pub const UPGRADE_EXPECT_FAILED: &str = "https.upgrade.expect.failed";
456 pub const UPGRADE_HANDSHAKE_FAILED: &str = "https.upgrade.handshake.failed";
457 pub const UPGRADE_MUX_FAILED: &str = "https.upgrade.mux.failed";
458 pub const UPGRADE_WSS_FAILED: &str = "https.upgrade.wss.failed";
459}
460
461pub mod listener {
463 pub const ACCEPTED_TOTAL: &str = "listener.accepted.total";
464 pub const CONNECTION_CAPPED: &str = "listener.connection_capped";
465}
466
467pub mod pipe {
469 pub const ERRORS: &str = "pipe.errors";
470}
471
472pub mod process {
474 pub const UPTIME_SECONDS: &str = "process.uptime_seconds";
475}
476
477pub mod protocol {
480 pub const HTTP: &str = "protocol.http";
481 pub const HTTPS: &str = "protocol.https";
482 pub const PROXY_EXPECT: &str = "protocol.proxy.expect";
483 pub const PROXY_RELAY: &str = "protocol.proxy.relay";
484 pub const PROXY_SEND: &str = "protocol.proxy.send";
485 pub const TCP: &str = "protocol.tcp";
486 pub const TLS_HANDSHAKE: &str = "protocol.tls.handshake";
487 pub const WS: &str = "protocol.ws";
488 pub const WSS: &str = "protocol.wss";
489}
490
491pub mod proxy_protocol {
493 pub const ERRORS: &str = "proxy_protocol.errors";
494}
495
496pub mod rustls {
498 pub const READ_ERROR: &str = "rustls.read.error";
499 pub const READ_INFINITE_LOOP_ERROR: &str = "rustls.read.infinite_loop.error";
500 pub const READ_RESET: &str = "rustls.read.reset";
504 pub const WRITE_ERROR: &str = "rustls.write.error";
505 pub const WRITE_RESET: &str = "rustls.write.reset";
509 pub const WRITE_INFINITE_LOOP_ERROR: &str = "rustls.write.infinite_loop.error";
510}
511
512pub mod server {
514 pub const LIVE: &str = "server.live";
515}
516
517pub mod sessions {
519 pub const EVICTED: &str = "sessions.evicted";
520}
521
522pub mod slab {
524 pub const ACCEPT_THRESHOLD_PERCENT: &str = "slab.accept_threshold_percent";
525 pub const CAPACITY: &str = "slab.capacity";
526 pub const ENTRIES: &str = "slab.entries";
527 pub const USAGE_PERCENT: &str = "slab.usage_percent";
528}
529
530pub mod socket {
532 pub const WRITE_INFINITE_LOOP_ERROR: &str = "socket.write.infinite_loop.error";
533}
534
535pub mod tcp {
537 pub const INFINITE_LOOP_ERROR: &str = "tcp.infinite_loop.error";
538 pub const READ_ERROR: &str = "tcp.read.error";
539 pub const READ_RESET: &str = "tcp.read.reset";
543 pub const REQUESTS: &str = "tcp.requests";
544 pub const UPGRADE_EXPECT_FAILED: &str = "tcp.upgrade.expect.failed";
545 pub const UPGRADE_PIPE_FAILED: &str = "tcp.upgrade.pipe.failed";
546 pub const UPGRADE_RELAY_FAILED: &str = "tcp.upgrade.relay.failed";
547 pub const UPGRADE_SEND_FAILED: &str = "tcp.upgrade.send.failed";
548 pub const UPGRADE_SNI_PREREAD_FAILED: &str = "tcp.upgrade.sni_preread.failed";
549 pub const WRITE_ERROR: &str = "tcp.write.error";
550 pub const WRITE_RESET: &str = "tcp.write.reset";
554
555 pub mod sni_preread {
562 use crate::protocol::tcp_preread::RejectReason;
563
564 pub const ROUTED: &str = "tcp.sni_preread.routed";
566 pub const ACTIVE: &str = "tcp.sni_preread.active";
570 pub const DURATION: &str = "tcp.sni_preread.duration";
573
574 pub const REJECTED_NOT_TLS: &str = "tcp.sni_preread.rejected.not_tls";
575 pub const REJECTED_MALFORMED_RECORD: &str = "tcp.sni_preread.rejected.malformed_record";
576 pub const REJECTED_MALFORMED_HANDSHAKE: &str =
577 "tcp.sni_preread.rejected.malformed_handshake";
578 pub const REJECTED_FRAGMENTED: &str = "tcp.sni_preread.rejected.fragmented";
579 pub const REJECTED_TOO_LARGE: &str = "tcp.sni_preread.rejected.too_large";
580 pub const REJECTED_NO_SNI: &str = "tcp.sni_preread.rejected.no_sni";
581 pub const REJECTED_ECH_OUTER_ABSENT: &str = "tcp.sni_preread.rejected.ech_outer_absent";
582 pub const REJECTED_SNI_UNMATCHED: &str = "tcp.sni_preread.rejected.sni_unmatched";
583 pub const REJECTED_ALPN_UNMATCHED: &str = "tcp.sni_preread.rejected.alpn_unmatched";
584 pub const REJECTED_PROXY_HEADER_INVALID: &str =
585 "tcp.sni_preread.rejected.proxy_header_invalid";
586 pub const REJECTED_FRONT_CLOSED: &str = "tcp.sni_preread.rejected.front_closed";
587
588 pub fn rejected_name(reason: RejectReason) -> &'static str {
592 match reason {
593 RejectReason::NotTls => REJECTED_NOT_TLS,
594 RejectReason::MalformedRecord => REJECTED_MALFORMED_RECORD,
595 RejectReason::MalformedHandshake => REJECTED_MALFORMED_HANDSHAKE,
596 RejectReason::Fragmented => REJECTED_FRAGMENTED,
597 RejectReason::TooLarge => REJECTED_TOO_LARGE,
598 RejectReason::NoSni => REJECTED_NO_SNI,
599 RejectReason::EchOuterAbsent => REJECTED_ECH_OUTER_ABSENT,
600 RejectReason::SniUnmatched => REJECTED_SNI_UNMATCHED,
601 RejectReason::AlpnUnmatched => REJECTED_ALPN_UNMATCHED,
602 RejectReason::ProxyHeaderInvalid => REJECTED_PROXY_HEADER_INVALID,
603 RejectReason::FrontClosed => REJECTED_FRONT_CLOSED,
604 }
605 }
606 }
607}
608
609pub mod udp {
616 pub const DATAGRAMS_IN: &str = "udp.datagrams.in";
618 pub const DATAGRAMS_OUT: &str = "udp.datagrams.out";
620 pub const BYTES_IN: &str = "udp.bytes.in";
622 pub const BYTES_OUT: &str = "udp.bytes.out";
624 pub const ACTIVE_FLOWS: &str = "udp.active_flows";
626 pub const FLOWS_CREATED: &str = "udp.flows.created";
628 pub const FLOWS_EVICTED: &str = "udp.flows.evicted";
630 pub const FLOWS_SHED: &str = "udp.flows.shed";
633 pub const FLOWS_SHED_SOURCE_LIMIT: &str = "udp.flows.shed.source_limit";
637 pub const DATAGRAMS_DROPPED: &str = "udp.datagrams.dropped";
643 pub const DROPPED_INVALID: &str = "udp.datagrams.dropped.invalid";
645 pub const DROPPED_TRUNCATED: &str = "udp.datagrams.dropped.truncated";
647 pub const DROPPED_NO_BACKEND: &str = "udp.datagrams.dropped.no_backend";
649 pub const DROPPED_SHED: &str = "udp.datagrams.dropped.shed";
651 pub const DROPPED_UNKNOWN_FLOW: &str = "udp.datagrams.dropped.unknown_flow";
653 pub const DROPPED_WQ_FULL: &str = "udp.datagrams.dropped.wq_full";
656 pub const DROPPED_SEND_ERROR: &str = "udp.datagrams.dropped.send_error";
661 pub const BACKEND_HEALTH: &str = "udp.backend.health";
663 pub const FLOW_DURATION: &str = "udp.flow.duration";
665}
666
667pub mod tls {
669 pub const CERT_MIN_EXPIRES_AT_SECONDS: &str = "tls.cert.min_expires_at_seconds";
670 pub const DEFAULT_CERT_USED: &str = "tls.default_cert_used";
671 pub const HANDSHAKE_MS: &str = "tls.handshake_ms";
672}
673
674pub mod websocket {
676 pub const ACTIVE_REQUESTS: &str = "websocket.active_requests";
677}
678
679pub mod misc {
681 pub const PANIC: &str = "panic";
682 pub const ZOMBIES: &str = "zombies";
683}