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 scoped_metrics;
23pub mod scoped_registry;
24pub mod types;
25
26// Re-export commonly used items at the crate root
27pub use observability::{
28 init_tracing, AuditLogEntry, ComponentHealth, ComponentHealthTracker, HealthStatus,
29 RequestMetrics,
30};
31
32// Backwards compatibility alias (deprecated, use ComponentHealthTracker)
33#[deprecated(since = "0.2.0", note = "Use ComponentHealthTracker instead")]
34pub type HealthChecker = ComponentHealthTracker;
35
36// Re-export error types
37pub use errors::{SentinelError, SentinelResult};
38
39// Re-export limit types
40pub use limits::{Limits, RateLimiter};
41
42// Re-export identifier types
43pub use ids::{AgentId, CorrelationId, QualifiedId, RequestId, RouteId, Scope, UpstreamId};
44
45// Re-export common types
46pub use types::{CircuitBreakerConfig, TraceIdFormat};
47
48// Re-export circuit breaker
49pub use circuit_breaker::CircuitBreaker;
50
51// Re-export registries
52pub use registry::Registry;
53pub use scoped_registry::ScopedRegistry;
54
55// Re-export scoped metrics
56pub use scoped_metrics::{ScopedMetrics, ScopeLabels};