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}
194
195pub mod h1 {
197 pub const BACKEND_EOF_BEFORE_MESSAGE_COMPLETE: &str = "h1.backend_eof_before_message_complete";
198}
199
200pub mod h2 {
203 pub const CLOSE_WITH_ACTIVE_STREAMS: &str = "h2.close_with_active_streams";
204 pub const COALESCING_ACCEPTED: &str = "h2.coalescing.accepted";
205 pub const CONNECTION_ACTIVE_STREAMS: &str = "h2.connection.active_streams";
206 pub const CONNECTION_PENDING_WINDOW_UPDATES: &str = "h2.connection.pending_window_updates";
207 pub const CONNECTION_WINDOW_BYTES: &str = "h2.connection.window_bytes";
208 pub const FLOW_CONTROL_STALL: &str = "h2.flow_control_stall";
209
210 pub const STREAMS_REAPED_IDLE_TIMEOUT: &str = "h2.streams.reaped.idle_timeout";
215 pub const STREAMS_REAPED_WINDOW_STALL: &str = "h2.streams.reaped.window_stall";
216 pub const STREAMS_REAPED_STALL_BUDGET: &str = "h2.streams.reaped.stall_budget";
217
218 pub const STREAMS_READY_INCREMENTAL_BY_URGENCY: &str =
225 "h2.streams.ready_incremental.by_urgency";
226
227 pub const FRAMES_TX_CONTINUATION: &str = "h2.frames.tx.continuation";
229 pub const FRAMES_TX_DATA: &str = "h2.frames.tx.data";
230 pub const FRAMES_TX_GOAWAY: &str = "h2.frames.tx.goaway";
231 pub const FRAMES_TX_HEADERS: &str = "h2.frames.tx.headers";
232 pub const FRAMES_TX_PING_ACK: &str = "h2.frames.tx.ping_ack";
233 pub const FRAMES_TX_RST_STREAM: &str = "h2.frames.tx.rst_stream";
234 pub const FRAMES_TX_SETTINGS: &str = "h2.frames.tx.settings";
235 pub const FRAMES_TX_WINDOW_UPDATE: &str = "h2.frames.tx.window_update";
236
237 pub const HEADERS_NO_STREAM_ERROR: &str = "h2.headers_no_stream.error";
239 pub const HEADERS_REJECTED_BUDGET_OVERRUN: &str = "h2.headers.rejected.budget_overrun";
240 pub const HEADERS_REJECTED_TOTAL: &str = "h2.headers.rejected.total";
241
242 pub const RST_STREAM_RECEIVED_PRE_RESPONSE_START: &str =
243 "h2.rst_stream.received.pre_response_start";
244
245 pub const RST_STREAM_DROPPED: &str = "h2.rst_stream_dropped";
252
253 pub const SIGNAL_WRITABLE_REARMED_CONTROL_QUEUE: &str =
255 "h2.signal.writable.rearmed.control_queue";
256 pub const SIGNAL_WRITABLE_REARMED_DEFAULT_ANSWER: &str =
257 "h2.signal.writable.rearmed.default_answer";
258 pub const SIGNAL_WRITABLE_REARMED_FORCEFULLY_TERMINATE_ANSWER: &str =
259 "h2.signal.writable.rearmed.forcefully_terminate_answer";
260 pub const SIGNAL_WRITABLE_REARMED_PEER_DATA: &str = "h2.signal.writable.rearmed.peer_data";
261 pub const SIGNAL_WRITABLE_REARMED_PEER_HEADERS: &str =
262 "h2.signal.writable.rearmed.peer_headers";
263 pub const SIGNAL_WRITABLE_REARMED_PRIORITY_UPDATE: &str =
264 "h2.signal.writable.rearmed.priority_update";
265
266 pub const TRAILERS_DROPPED_CONTENT_LENGTH: &str = "h2.trailers_dropped_content_length";
267 pub const TRAILERS_DROPPED_NO_BODY: &str = "h2.trailers_dropped_no_body";
271 pub const BODILESS_RESPONSE_DATA_RESET: &str = "h2.bodiless_response_data_reset";
275 pub const TRAILER_FORBIDDEN_FIELD_ELIDED: &str = "h2.trailer.forbidden_field_elided";
280 pub const TRAILER_SPOOF_VECTOR_ELIDED: &str = "h2.trailer.spoof_vector_elided";
281 pub const WINDOW_UPDATE_DROPPED: &str = "h2.window_update_dropped";
282
283 pub const FLOOD_VIOLATION_GLITCH_WINDOW: &str = "h2.flood.violation.glitch_window";
287 pub const FLOOD_VIOLATION_RST_STREAM_WINDOW: &str = "h2.flood.violation.rst_stream_window";
288 pub const FLOOD_VIOLATION_RST_STREAM_LIFETIME: &str = "h2.flood.violation.rst_stream_lifetime";
289 pub const FLOOD_VIOLATION_RST_STREAM_PRE_RESPONSE_LIFETIME: &str =
290 "h2.flood.violation.rst_stream_pre_response_lifetime";
291 pub const FLOOD_VIOLATION_RST_STREAM_EMITTED_LIFETIME: &str =
292 "h2.flood.violation.rst_stream_emitted_lifetime";
293 pub const FLOOD_VIOLATION_PING_WINDOW: &str = "h2.flood.violation.ping_window";
294 pub const FLOOD_VIOLATION_PING_LIFETIME: &str = "h2.flood.violation.ping_lifetime";
295 pub const FLOOD_VIOLATION_SETTINGS_WINDOW: &str = "h2.flood.violation.settings_window";
296 pub const FLOOD_VIOLATION_SETTINGS_LIFETIME: &str = "h2.flood.violation.settings_lifetime";
297 pub const FLOOD_VIOLATION_EMPTY_DATA_WINDOW: &str = "h2.flood.violation.empty_data_window";
298 pub const FLOOD_VIOLATION_CONTINUATION_PER_BLOCK: &str =
299 "h2.flood.violation.continuation_per_block";
300 pub const FLOOD_VIOLATION_WINDOW_UPDATE_STREAM0_WINDOW: &str =
301 "h2.flood.violation.window_update_stream0_window";
302 pub const FLOOD_VIOLATION_HEADER_SIZE_PER_BLOCK: &str =
303 "h2.flood.violation.header_size_per_block";
304 pub const FLOOD_VIOLATION_KEYS: [&str; 13] = [
309 FLOOD_VIOLATION_RST_STREAM_PRE_RESPONSE_LIFETIME,
310 FLOOD_VIOLATION_RST_STREAM_LIFETIME,
311 FLOOD_VIOLATION_RST_STREAM_EMITTED_LIFETIME,
312 FLOOD_VIOLATION_RST_STREAM_WINDOW,
313 FLOOD_VIOLATION_CONTINUATION_PER_BLOCK,
314 FLOOD_VIOLATION_HEADER_SIZE_PER_BLOCK,
315 FLOOD_VIOLATION_PING_WINDOW,
316 FLOOD_VIOLATION_PING_LIFETIME,
317 FLOOD_VIOLATION_SETTINGS_WINDOW,
318 FLOOD_VIOLATION_SETTINGS_LIFETIME,
319 FLOOD_VIOLATION_EMPTY_DATA_WINDOW,
320 FLOOD_VIOLATION_WINDOW_UPDATE_STREAM0_WINDOW,
321 FLOOD_VIOLATION_GLITCH_WINDOW,
322 ];
323 pub const FLOOD_STREAM_REFUSED: &str = "h2.flood.stream_refused";
328}
329
330pub mod http {
333 pub const ERR_400: &str = "http.400.errors";
334 pub const ERR_401: &str = "http.401.errors";
335 pub const ERR_404: &str = "http.404.errors";
336 pub const ERR_408: &str = "http.408.errors";
337 pub const ERR_413: &str = "http.413.errors";
338 pub const ERR_421: &str = "http.421.errors";
339 pub const ERR_502: &str = "http.502.errors";
340 pub const ERR_503: &str = "http.503.errors";
341 pub const ERR_504: &str = "http.504.errors";
342 pub const ERR_507: &str = "http.507.errors";
343 pub const ERRORS: &str = "http.errors";
346 pub const REDIRECTION_301: &str = "http.301.redirection";
347 pub const REDIRECTION_302: &str = "http.302.redirection";
348 pub const REDIRECTION_308: &str = "http.308.redirection";
349 pub const ACTIVE_REQUESTS: &str = "http.active_requests";
350 pub const ALPN_H2: &str = "http.alpn.h2";
351 pub const ALPN_HTTP11: &str = "http.alpn.http11";
352 pub const BACKEND_PARSE_ERRORS: &str = "http.backend_parse_errors";
353 pub const E2E_H2: &str = "http.e2e.h2";
354 pub const E2E_HTTP11: &str = "http.e2e.http11";
355 pub const EARLY_RESPONSE_CLOSE: &str = "http.early_response_close";
356 pub const CLOSE_REQUEST_INCOMPLETE: &str = "http.close.request_incomplete";
360 pub const FAILED_BACKEND_MATCHING: &str = "http.failed_backend_matching";
361 pub const FORWARDED_MALFORMED_ELIDED: &str = "http.forwarded_malformed_elided";
366 pub const FRONTEND_TE_SMUGGLING: &str = "http.frontend.transfer_encoding_smuggling";
369 pub const FRONTEND_CONTENT_LENGTH_INVALID: &str = "http.frontend.content_length_invalid";
374 pub const BACKEND_CONTENT_LENGTH_INVALID: &str = "http.backend.content_length_invalid";
379 pub const FRONTEND_PARSE_ERRORS: &str = "http.frontend_parse_errors";
380 pub const HSTS_FRONTEND_ADDED: &str = "http.hsts.frontend_added";
381 pub const HSTS_FRONTEND_REFRESHED: &str = "http.hsts.frontend_refreshed";
382 pub const HSTS_LISTENER_DEFAULT_PATCHED: &str = "http.hsts.listener_default_patched";
383 pub const HSTS_SUPPRESSED_PLAINTEXT: &str = "http.hsts.suppressed_plaintext";
384 pub const HSTS_UNRENDERED: &str = "http.hsts.unrendered";
385 pub const INFINITE_LOOP_ERROR: &str = "http.infinite_loop.error";
386 pub const REDIRECT_TEMPLATE_COMPILE_ERROR: &str = "http.redirect_template.compile_error";
387 pub const REQUESTS: &str = "http.requests";
388 pub const SNI_AUTHORITY_MISMATCH: &str = "http.sni_authority_mismatch";
389 pub const STATUS_1XX: &str = "http.status.1xx";
390 pub const STATUS_2XX: &str = "http.status.2xx";
391 pub const STATUS_3XX: &str = "http.status.3xx";
392 pub const STATUS_4XX: &str = "http.status.4xx";
393 pub const STATUS_5XX: &str = "http.status.5xx";
394 pub const STATUS_OTHER: &str = "http.status.other";
395 pub const TRAILER_FIELD_LIMIT_EXCEEDED: &str = "http.trailer.field_limit_exceeded";
400 pub const TRAILER_FORBIDDEN_FIELD_ELIDED: &str = "http.trailer.forbidden_field_elided";
407 pub const TRAILER_SPOOF_VECTOR_ELIDED: &str = "http.trailer.spoof_vector_elided";
413 pub const TRUSTING_X_PORT: &str = "http.trusting.x_port";
414 pub const TRUSTING_X_PORT_DIFF: &str = "http.trusting.x_port.diff";
415 pub const TRUSTING_X_PROTO: &str = "http.trusting.x_proto";
416 pub const TRUSTING_X_PROTO_DIFF: &str = "http.trusting.x_proto.diff";
417 pub const UPGRADE_EXPECT_FAILED: &str = "http.upgrade.expect.failed";
418 pub const UPGRADE_MUX_FAILED: &str = "http.upgrade.mux.failed";
419 pub const UPGRADE_WS_FAILED: &str = "http.upgrade.ws.failed";
420 pub const X_REQUEST_ID_GENERATED: &str = "http.x_request_id.generated";
421 pub const X_REQUEST_ID_PROPAGATED: &str = "http.x_request_id.propagated";
422}
423
424pub mod http_status {
428 pub const S200: &str = "http.status.200";
429 pub const S201: &str = "http.status.201";
430 pub const S204: &str = "http.status.204";
431 pub const S301: &str = "http.status.301";
432 pub const S302: &str = "http.status.302";
433 pub const S304: &str = "http.status.304";
434 pub const S400: &str = "http.status.400";
435 pub const S401: &str = "http.status.401";
436 pub const S403: &str = "http.status.403";
437 pub const S404: &str = "http.status.404";
438 pub const S408: &str = "http.status.408";
439 pub const S413: &str = "http.status.413";
440 pub const S429: &str = "http.status.429";
441 pub const S500: &str = "http.status.500";
442 pub const S502: &str = "http.status.502";
443 pub const S503: &str = "http.status.503";
444 pub const S504: &str = "http.status.504";
445 pub const S507: &str = "http.status.507";
446}
447
448pub mod https {
450 pub const ALPN_REJECTED_HTTP11_DISABLED: &str = "https.alpn.rejected.http11_disabled";
451 pub const ALPN_REJECTED_UNSUPPORTED: &str = "https.alpn.rejected.unsupported";
452 pub const UPGRADE_EXPECT_FAILED: &str = "https.upgrade.expect.failed";
453 pub const UPGRADE_HANDSHAKE_FAILED: &str = "https.upgrade.handshake.failed";
454 pub const UPGRADE_MUX_FAILED: &str = "https.upgrade.mux.failed";
455 pub const UPGRADE_WSS_FAILED: &str = "https.upgrade.wss.failed";
456}
457
458pub mod listener {
460 pub const ACCEPTED_TOTAL: &str = "listener.accepted.total";
461 pub const CONNECTION_CAPPED: &str = "listener.connection_capped";
462}
463
464pub mod pipe {
466 pub const ERRORS: &str = "pipe.errors";
467}
468
469pub mod process {
471 pub const UPTIME_SECONDS: &str = "process.uptime_seconds";
472}
473
474pub mod protocol {
477 pub const HTTP: &str = "protocol.http";
478 pub const HTTPS: &str = "protocol.https";
479 pub const PROXY_EXPECT: &str = "protocol.proxy.expect";
480 pub const PROXY_RELAY: &str = "protocol.proxy.relay";
481 pub const PROXY_SEND: &str = "protocol.proxy.send";
482 pub const TCP: &str = "protocol.tcp";
483 pub const TLS_HANDSHAKE: &str = "protocol.tls.handshake";
484 pub const WS: &str = "protocol.ws";
485 pub const WSS: &str = "protocol.wss";
486}
487
488pub mod proxy_protocol {
490 pub const ERRORS: &str = "proxy_protocol.errors";
491}
492
493pub mod rustls {
495 pub const READ_ERROR: &str = "rustls.read.error";
496 pub const READ_INFINITE_LOOP_ERROR: &str = "rustls.read.infinite_loop.error";
497 pub const READ_RESET: &str = "rustls.read.reset";
501 pub const WRITE_ERROR: &str = "rustls.write.error";
502 pub const WRITE_RESET: &str = "rustls.write.reset";
506 pub const WRITE_INFINITE_LOOP_ERROR: &str = "rustls.write.infinite_loop.error";
507}
508
509pub mod server {
511 pub const LIVE: &str = "server.live";
512}
513
514pub mod sessions {
516 pub const EVICTED: &str = "sessions.evicted";
517}
518
519pub mod slab {
521 pub const ACCEPT_THRESHOLD_PERCENT: &str = "slab.accept_threshold_percent";
522 pub const CAPACITY: &str = "slab.capacity";
523 pub const ENTRIES: &str = "slab.entries";
524 pub const USAGE_PERCENT: &str = "slab.usage_percent";
525}
526
527pub mod socket {
529 pub const WRITE_INFINITE_LOOP_ERROR: &str = "socket.write.infinite_loop.error";
530}
531
532pub mod tcp {
534 pub const INFINITE_LOOP_ERROR: &str = "tcp.infinite_loop.error";
535 pub const READ_ERROR: &str = "tcp.read.error";
536 pub const READ_RESET: &str = "tcp.read.reset";
540 pub const REQUESTS: &str = "tcp.requests";
541 pub const UPGRADE_EXPECT_FAILED: &str = "tcp.upgrade.expect.failed";
542 pub const UPGRADE_PIPE_FAILED: &str = "tcp.upgrade.pipe.failed";
543 pub const UPGRADE_RELAY_FAILED: &str = "tcp.upgrade.relay.failed";
544 pub const UPGRADE_SEND_FAILED: &str = "tcp.upgrade.send.failed";
545 pub const UPGRADE_SNI_PREREAD_FAILED: &str = "tcp.upgrade.sni_preread.failed";
546 pub const WRITE_ERROR: &str = "tcp.write.error";
547 pub const WRITE_RESET: &str = "tcp.write.reset";
551
552 pub mod sni_preread {
559 use crate::protocol::tcp_preread::RejectReason;
560
561 pub const ROUTED: &str = "tcp.sni_preread.routed";
563 pub const ACTIVE: &str = "tcp.sni_preread.active";
567 pub const DURATION: &str = "tcp.sni_preread.duration";
570
571 pub const REJECTED_NOT_TLS: &str = "tcp.sni_preread.rejected.not_tls";
572 pub const REJECTED_MALFORMED_RECORD: &str = "tcp.sni_preread.rejected.malformed_record";
573 pub const REJECTED_MALFORMED_HANDSHAKE: &str =
574 "tcp.sni_preread.rejected.malformed_handshake";
575 pub const REJECTED_FRAGMENTED: &str = "tcp.sni_preread.rejected.fragmented";
576 pub const REJECTED_TOO_LARGE: &str = "tcp.sni_preread.rejected.too_large";
577 pub const REJECTED_NO_SNI: &str = "tcp.sni_preread.rejected.no_sni";
578 pub const REJECTED_ECH_OUTER_ABSENT: &str = "tcp.sni_preread.rejected.ech_outer_absent";
579 pub const REJECTED_SNI_UNMATCHED: &str = "tcp.sni_preread.rejected.sni_unmatched";
580 pub const REJECTED_ALPN_UNMATCHED: &str = "tcp.sni_preread.rejected.alpn_unmatched";
581 pub const REJECTED_PROXY_HEADER_INVALID: &str =
582 "tcp.sni_preread.rejected.proxy_header_invalid";
583 pub const REJECTED_FRONT_CLOSED: &str = "tcp.sni_preread.rejected.front_closed";
584
585 pub fn rejected_name(reason: RejectReason) -> &'static str {
589 match reason {
590 RejectReason::NotTls => REJECTED_NOT_TLS,
591 RejectReason::MalformedRecord => REJECTED_MALFORMED_RECORD,
592 RejectReason::MalformedHandshake => REJECTED_MALFORMED_HANDSHAKE,
593 RejectReason::Fragmented => REJECTED_FRAGMENTED,
594 RejectReason::TooLarge => REJECTED_TOO_LARGE,
595 RejectReason::NoSni => REJECTED_NO_SNI,
596 RejectReason::EchOuterAbsent => REJECTED_ECH_OUTER_ABSENT,
597 RejectReason::SniUnmatched => REJECTED_SNI_UNMATCHED,
598 RejectReason::AlpnUnmatched => REJECTED_ALPN_UNMATCHED,
599 RejectReason::ProxyHeaderInvalid => REJECTED_PROXY_HEADER_INVALID,
600 RejectReason::FrontClosed => REJECTED_FRONT_CLOSED,
601 }
602 }
603 }
604}
605
606pub mod udp {
613 pub const DATAGRAMS_IN: &str = "udp.datagrams.in";
615 pub const DATAGRAMS_OUT: &str = "udp.datagrams.out";
617 pub const BYTES_IN: &str = "udp.bytes.in";
619 pub const BYTES_OUT: &str = "udp.bytes.out";
621 pub const ACTIVE_FLOWS: &str = "udp.active_flows";
623 pub const FLOWS_CREATED: &str = "udp.flows.created";
625 pub const FLOWS_EVICTED: &str = "udp.flows.evicted";
627 pub const FLOWS_SHED: &str = "udp.flows.shed";
630 pub const FLOWS_SHED_SOURCE_LIMIT: &str = "udp.flows.shed.source_limit";
634 pub const DATAGRAMS_DROPPED: &str = "udp.datagrams.dropped";
640 pub const DROPPED_INVALID: &str = "udp.datagrams.dropped.invalid";
642 pub const DROPPED_TRUNCATED: &str = "udp.datagrams.dropped.truncated";
644 pub const DROPPED_NO_BACKEND: &str = "udp.datagrams.dropped.no_backend";
646 pub const DROPPED_SHED: &str = "udp.datagrams.dropped.shed";
648 pub const DROPPED_UNKNOWN_FLOW: &str = "udp.datagrams.dropped.unknown_flow";
650 pub const DROPPED_WQ_FULL: &str = "udp.datagrams.dropped.wq_full";
653 pub const DROPPED_SEND_ERROR: &str = "udp.datagrams.dropped.send_error";
658 pub const BACKEND_HEALTH: &str = "udp.backend.health";
660 pub const FLOW_DURATION: &str = "udp.flow.duration";
662}
663
664pub mod tls {
666 pub const CERT_MIN_EXPIRES_AT_SECONDS: &str = "tls.cert.min_expires_at_seconds";
667 pub const DEFAULT_CERT_USED: &str = "tls.default_cert_used";
668 pub const HANDSHAKE_MS: &str = "tls.handshake_ms";
669}
670
671pub mod websocket {
673 pub const ACTIVE_REQUESTS: &str = "websocket.active_requests";
674}
675
676pub mod misc {
678 pub const PANIC: &str = "panic";
679 pub const ZOMBIES: &str = "zombies";
680}