chore: vendor sglang v0.5.10 snapshot
This commit is contained in:
90
third_party/sglang/sgl-model-gateway/src/observability/events.rs
vendored
Normal file
90
third_party/sglang/sgl-model-gateway/src/observability/events.rs
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
//! Request events for observability and monitoring.
|
||||
//!
|
||||
//! Events use DEBUG level when OTEL is disabled, INFO when enabled.
|
||||
|
||||
use tracing::{debug, event, Level};
|
||||
|
||||
use super::otel_trace::is_otel_enabled;
|
||||
|
||||
/// Module path used by CustomOtelFilter to identify events for OTEL export.
|
||||
#[inline]
|
||||
pub const fn get_module_path() -> &'static str {
|
||||
"smg::observability::events"
|
||||
}
|
||||
|
||||
pub trait Event {
|
||||
fn emit(&self);
|
||||
}
|
||||
|
||||
/// Event emitted when a prefill-decode request pair is sent.
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct RequestPDSentEvent<'a> {
|
||||
pub prefill_url: &'a str,
|
||||
pub decode_url: &'a str,
|
||||
}
|
||||
|
||||
impl Event for RequestPDSentEvent<'_> {
|
||||
#[inline]
|
||||
fn emit(&self) {
|
||||
if is_otel_enabled() {
|
||||
event!(
|
||||
Level::INFO,
|
||||
prefill_url = %self.prefill_url,
|
||||
decode_url = %self.decode_url,
|
||||
"Sending concurrent requests"
|
||||
);
|
||||
} else {
|
||||
debug!(
|
||||
prefill_url = %self.prefill_url,
|
||||
decode_url = %self.decode_url,
|
||||
"Sending concurrent requests"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Event emitted when a request is sent to a worker.
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct RequestSentEvent<'a> {
|
||||
pub url: &'a str,
|
||||
}
|
||||
|
||||
impl Event for RequestSentEvent<'_> {
|
||||
#[inline]
|
||||
fn emit(&self) {
|
||||
if is_otel_enabled() {
|
||||
event!(Level::INFO, url = %self.url, "Sending request");
|
||||
} else {
|
||||
debug!(url = %self.url, "Sending request");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Event emitted when concurrent requests are received.
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct RequestReceivedEvent;
|
||||
|
||||
impl Event for RequestReceivedEvent {
|
||||
#[inline]
|
||||
fn emit(&self) {
|
||||
if is_otel_enabled() {
|
||||
event!(Level::INFO, "Received concurrent requests");
|
||||
} else {
|
||||
debug!("Received concurrent requests");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use std::mem::size_of;
|
||||
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_event_sizes() {
|
||||
assert_eq!(size_of::<RequestReceivedEvent>(), 0);
|
||||
assert_eq!(size_of::<RequestSentEvent>(), 16);
|
||||
assert_eq!(size_of::<RequestPDSentEvent>(), 32);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user