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 H2C_PRIOR_KNOWLEDGE: &str = "http.h2c.prior_knowledge";
363 pub const CLOSE_REQUEST_INCOMPLETE: &str = "http.close.request_incomplete";
367 pub const FAILED_BACKEND_MATCHING: &str = "http.failed_backend_matching";
368 pub const FORWARDED_MALFORMED_ELIDED: &str = "http.forwarded_malformed_elided";
373 pub const FRONTEND_TE_SMUGGLING: &str = "http.frontend.transfer_encoding_smuggling";
376 pub const FRONTEND_CONTENT_LENGTH_INVALID: &str = "http.frontend.content_length_invalid";
381 pub const BACKEND_CONTENT_LENGTH_INVALID: &str = "http.backend.content_length_invalid";
386 pub const FRONTEND_PARSE_ERRORS: &str = "http.frontend_parse_errors";
387 pub const HSTS_FRONTEND_ADDED: &str = "http.hsts.frontend_added";
388 pub const HSTS_FRONTEND_REFRESHED: &str = "http.hsts.frontend_refreshed";
389 pub const HSTS_LISTENER_DEFAULT_PATCHED: &str = "http.hsts.listener_default_patched";
390 pub const HSTS_SUPPRESSED_PLAINTEXT: &str = "http.hsts.suppressed_plaintext";
391 pub const HSTS_UNRENDERED: &str = "http.hsts.unrendered";
392 pub const INFINITE_LOOP_ERROR: &str = "http.infinite_loop.error";
393 pub const MUX_LOOP_BUDGET_YIELD: &str = "http.mux.loop_budget_yield";
397 pub const REDIRECT_TEMPLATE_COMPILE_ERROR: &str = "http.redirect_template.compile_error";
398 pub const REQUESTS: &str = "http.requests";
399 pub const SNI_AUTHORITY_MISMATCH: &str = "http.sni_authority_mismatch";
400 pub const STATUS_1XX: &str = "http.status.1xx";
401 pub const STATUS_2XX: &str = "http.status.2xx";
402 pub const STATUS_3XX: &str = "http.status.3xx";
403 pub const STATUS_4XX: &str = "http.status.4xx";
404 pub const STATUS_5XX: &str = "http.status.5xx";
405 pub const STATUS_OTHER: &str = "http.status.other";
406 pub const TRAILER_FIELD_LIMIT_EXCEEDED: &str = "http.trailer.field_limit_exceeded";
411 pub const TRAILER_FORBIDDEN_FIELD_ELIDED: &str = "http.trailer.forbidden_field_elided";
418 pub const TRAILER_SPOOF_VECTOR_ELIDED: &str = "http.trailer.spoof_vector_elided";
424 pub const TRUSTING_X_PORT: &str = "http.trusting.x_port";
425 pub const TRUSTING_X_PORT_DIFF: &str = "http.trusting.x_port.diff";
426 pub const TRUSTING_X_PROTO: &str = "http.trusting.x_proto";
427 pub const TRUSTING_X_PROTO_DIFF: &str = "http.trusting.x_proto.diff";
428 pub const UPGRADE_EXPECT_FAILED: &str = "http.upgrade.expect.failed";
429 pub const UPGRADE_H2C_FAILED: &str = "http.upgrade.h2c.failed";
432 pub const UPGRADE_MUX_FAILED: &str = "http.upgrade.mux.failed";
433 pub const UPGRADE_WS_FAILED: &str = "http.upgrade.ws.failed";
434 pub const X_REQUEST_ID_GENERATED: &str = "http.x_request_id.generated";
435 pub const X_REQUEST_ID_PROPAGATED: &str = "http.x_request_id.propagated";
436}
437
438pub mod http_status {
442 pub const S200: &str = "http.status.200";
443 pub const S201: &str = "http.status.201";
444 pub const S204: &str = "http.status.204";
445 pub const S301: &str = "http.status.301";
446 pub const S302: &str = "http.status.302";
447 pub const S304: &str = "http.status.304";
448 pub const S400: &str = "http.status.400";
449 pub const S401: &str = "http.status.401";
450 pub const S403: &str = "http.status.403";
451 pub const S404: &str = "http.status.404";
452 pub const S408: &str = "http.status.408";
453 pub const S413: &str = "http.status.413";
454 pub const S429: &str = "http.status.429";
455 pub const S500: &str = "http.status.500";
456 pub const S502: &str = "http.status.502";
457 pub const S503: &str = "http.status.503";
458 pub const S504: &str = "http.status.504";
459 pub const S507: &str = "http.status.507";
460}
461
462pub mod https {
464 pub const ALPN_REJECTED_HTTP11_DISABLED: &str = "https.alpn.rejected.http11_disabled";
465 pub const ALPN_REJECTED_UNSUPPORTED: &str = "https.alpn.rejected.unsupported";
466 pub const UPGRADE_EXPECT_FAILED: &str = "https.upgrade.expect.failed";
467 pub const UPGRADE_HANDSHAKE_FAILED: &str = "https.upgrade.handshake.failed";
468 pub const UPGRADE_MUX_FAILED: &str = "https.upgrade.mux.failed";
469 pub const UPGRADE_WSS_FAILED: &str = "https.upgrade.wss.failed";
470}
471
472pub mod listener {
474 pub const ACCEPTED_TOTAL: &str = "listener.accepted.total";
475 pub const CONNECTION_CAPPED: &str = "listener.connection_capped";
476}
477
478pub mod pipe {
480 pub const ERRORS: &str = "pipe.errors";
481}
482
483pub mod process {
485 pub const UPTIME_SECONDS: &str = "process.uptime_seconds";
486}
487
488pub mod protocol {
491 pub const HTTP: &str = "protocol.http";
492 pub const HTTPS: &str = "protocol.https";
493 pub const PROXY_EXPECT: &str = "protocol.proxy.expect";
494 pub const PROXY_RELAY: &str = "protocol.proxy.relay";
495 pub const PROXY_SEND: &str = "protocol.proxy.send";
496 pub const TCP: &str = "protocol.tcp";
497 pub const TLS_HANDSHAKE: &str = "protocol.tls.handshake";
498 pub const WS: &str = "protocol.ws";
499 pub const WSS: &str = "protocol.wss";
500}
501
502pub mod proxy_protocol {
504 pub const ERRORS: &str = "proxy_protocol.errors";
505}
506
507pub mod rustls {
509 pub const READ_ERROR: &str = "rustls.read.error";
510 pub const READ_INFINITE_LOOP_ERROR: &str = "rustls.read.infinite_loop.error";
511 pub const READ_RESET: &str = "rustls.read.reset";
515 pub const WRITE_ERROR: &str = "rustls.write.error";
516 pub const WRITE_RESET: &str = "rustls.write.reset";
520 pub const WRITE_INFINITE_LOOP_ERROR: &str = "rustls.write.infinite_loop.error";
521}
522
523pub mod server {
525 pub const LIVE: &str = "server.live";
526}
527
528pub mod sessions {
530 pub const EVICTED: &str = "sessions.evicted";
531}
532
533pub mod slab {
535 pub const ACCEPT_THRESHOLD_PERCENT: &str = "slab.accept_threshold_percent";
536 pub const CAPACITY: &str = "slab.capacity";
537 pub const ENTRIES: &str = "slab.entries";
538 pub const USAGE_PERCENT: &str = "slab.usage_percent";
539}
540
541pub mod socket {
543 pub const WRITE_INFINITE_LOOP_ERROR: &str = "socket.write.infinite_loop.error";
544}
545
546pub mod tcp {
548 pub const INFINITE_LOOP_ERROR: &str = "tcp.infinite_loop.error";
549 pub const READ_ERROR: &str = "tcp.read.error";
550 pub const READ_RESET: &str = "tcp.read.reset";
554 pub const REQUESTS: &str = "tcp.requests";
555 pub const UPGRADE_EXPECT_FAILED: &str = "tcp.upgrade.expect.failed";
556 pub const UPGRADE_PIPE_FAILED: &str = "tcp.upgrade.pipe.failed";
557 pub const UPGRADE_RELAY_FAILED: &str = "tcp.upgrade.relay.failed";
558 pub const UPGRADE_SEND_FAILED: &str = "tcp.upgrade.send.failed";
559 pub const UPGRADE_SNI_PREREAD_FAILED: &str = "tcp.upgrade.sni_preread.failed";
560 pub const WRITE_ERROR: &str = "tcp.write.error";
561 pub const WRITE_RESET: &str = "tcp.write.reset";
565
566 pub mod sni_preread {
573 use crate::protocol::tcp_preread::RejectReason;
574
575 pub const ROUTED: &str = "tcp.sni_preread.routed";
577 pub const ACTIVE: &str = "tcp.sni_preread.active";
581 pub const DURATION: &str = "tcp.sni_preread.duration";
584
585 pub const REJECTED_NOT_TLS: &str = "tcp.sni_preread.rejected.not_tls";
586 pub const REJECTED_MALFORMED_RECORD: &str = "tcp.sni_preread.rejected.malformed_record";
587 pub const REJECTED_MALFORMED_HANDSHAKE: &str =
588 "tcp.sni_preread.rejected.malformed_handshake";
589 pub const REJECTED_FRAGMENTED: &str = "tcp.sni_preread.rejected.fragmented";
590 pub const REJECTED_TOO_LARGE: &str = "tcp.sni_preread.rejected.too_large";
591 pub const REJECTED_NO_SNI: &str = "tcp.sni_preread.rejected.no_sni";
592 pub const REJECTED_ECH_OUTER_ABSENT: &str = "tcp.sni_preread.rejected.ech_outer_absent";
593 pub const REJECTED_SNI_UNMATCHED: &str = "tcp.sni_preread.rejected.sni_unmatched";
594 pub const REJECTED_ALPN_UNMATCHED: &str = "tcp.sni_preread.rejected.alpn_unmatched";
595 pub const REJECTED_PROXY_HEADER_INVALID: &str =
596 "tcp.sni_preread.rejected.proxy_header_invalid";
597 pub const REJECTED_FRONT_CLOSED: &str = "tcp.sni_preread.rejected.front_closed";
598
599 pub fn rejected_name(reason: RejectReason) -> &'static str {
603 match reason {
604 RejectReason::NotTls => REJECTED_NOT_TLS,
605 RejectReason::MalformedRecord => REJECTED_MALFORMED_RECORD,
606 RejectReason::MalformedHandshake => REJECTED_MALFORMED_HANDSHAKE,
607 RejectReason::Fragmented => REJECTED_FRAGMENTED,
608 RejectReason::TooLarge => REJECTED_TOO_LARGE,
609 RejectReason::NoSni => REJECTED_NO_SNI,
610 RejectReason::EchOuterAbsent => REJECTED_ECH_OUTER_ABSENT,
611 RejectReason::SniUnmatched => REJECTED_SNI_UNMATCHED,
612 RejectReason::AlpnUnmatched => REJECTED_ALPN_UNMATCHED,
613 RejectReason::ProxyHeaderInvalid => REJECTED_PROXY_HEADER_INVALID,
614 RejectReason::FrontClosed => REJECTED_FRONT_CLOSED,
615 }
616 }
617 }
618}
619
620pub mod udp {
627 pub const DATAGRAMS_IN: &str = "udp.datagrams.in";
629 pub const DATAGRAMS_OUT: &str = "udp.datagrams.out";
631 pub const BYTES_IN: &str = "udp.bytes.in";
633 pub const BYTES_OUT: &str = "udp.bytes.out";
635 pub const ACTIVE_FLOWS: &str = "udp.active_flows";
637 pub const FLOWS_CREATED: &str = "udp.flows.created";
639 pub const FLOWS_EVICTED: &str = "udp.flows.evicted";
641 pub const FLOWS_SHED: &str = "udp.flows.shed";
644 pub const FLOWS_SHED_SOURCE_LIMIT: &str = "udp.flows.shed.source_limit";
648 pub const DATAGRAMS_DROPPED: &str = "udp.datagrams.dropped";
654 pub const DROPPED_INVALID: &str = "udp.datagrams.dropped.invalid";
656 pub const DROPPED_TRUNCATED: &str = "udp.datagrams.dropped.truncated";
658 pub const DROPPED_NO_BACKEND: &str = "udp.datagrams.dropped.no_backend";
660 pub const DROPPED_SHED: &str = "udp.datagrams.dropped.shed";
662 pub const DROPPED_UNKNOWN_FLOW: &str = "udp.datagrams.dropped.unknown_flow";
664 pub const DROPPED_WQ_FULL: &str = "udp.datagrams.dropped.wq_full";
667 pub const DROPPED_SEND_ERROR: &str = "udp.datagrams.dropped.send_error";
672 pub const BACKEND_HEALTH: &str = "udp.backend.health";
674 pub const FLOW_DURATION: &str = "udp.flow.duration";
676}
677
678pub mod tls {
680 pub const CERT_MIN_EXPIRES_AT_SECONDS: &str = "tls.cert.min_expires_at_seconds";
681 pub const DEFAULT_CERT_USED: &str = "tls.default_cert_used";
682 pub const HANDSHAKE_MS: &str = "tls.handshake_ms";
683}
684
685pub mod websocket {
687 pub const ACTIVE_REQUESTS: &str = "websocket.active_requests";
688}
689
690pub mod misc {
692 pub const PANIC: &str = "panic";
693 pub const ZOMBIES: &str = "zombies";
694}