sentinel_common/lib.rs
1//! Common utilities and shared components for Sentinel proxy
2//!
3//! This crate provides shared functionality used across all Sentinel components,
4//! including observability (metrics, logging, tracing), error types, and common utilities.
5//!
6//! # Module Organization
7//!
8//! - [`ids`]: Type-safe identifier newtypes (CorrelationId, RequestId, etc.)
9//! - [`types`]: Common type definitions (ByteSize, Priority, etc.)
10//! - [`errors`]: Error types and result aliases
11//! - [`limits`]: Resource limits and rate limiting
12//! - [`observability`]: Metrics, logging, and tracing
13//! - [`circuit_breaker`]: Circuit breaker state machine
14//! - [`registry`]: Generic type-safe registry abstraction
15
16pub mod circuit_breaker;
17pub mod errors;
18pub mod ids;
19pub mod limits;
20pub mod observability;
21pub mod registry;
22pub mod types;
23
24// Re-export commonly used items at the crate root
25pub use observability::{
26 init_tracing, AuditLogEntry, ComponentHealth, ComponentHealthTracker, HealthStatus,
27 RequestMetrics,
28};
29
30// Backwards compatibility alias (deprecated, use ComponentHealthTracker)
31#[deprecated(since = "0.2.0", note = "Use ComponentHealthTracker instead")]
32pub type HealthChecker = ComponentHealthTracker;
33
34// Re-export error types
35pub use errors::{SentinelError, SentinelResult};
36
37// Re-export limit types
38pub use limits::{Limits, RateLimiter};
39
40// Re-export identifier types
41pub use ids::{AgentId, CorrelationId, RequestId, RouteId, UpstreamId};
42
43// Re-export common types
44pub use types::{CircuitBreakerConfig, TraceIdFormat};
45
46// Re-export circuit breaker
47pub use circuit_breaker::CircuitBreaker;
48
49// Re-export registry
50pub use registry::Registry;