Skip to main content

appcore_ops/
lib.rs

1// =============================================================================
2//        #######
3//     ###       ###     F: lib.rs
4//    ##   ## ##   ##    P: AppCore-Runtime
5//         ## ##
6//                       C: 2026/05/29 20:47:35 by dnettoRaw
7//    ##   ## ##   ##    U: 2026/07/24 16:07:49 by dnettoRaw
8//      ###########      S: 1.0.1-rc.8
9// =============================================================================
10
11//! Observability contracts for runtime health, logging, and heartbeat signals.
12
13#![deny(missing_docs)]
14
15mod availability;
16pub mod health;
17pub mod heartbeat;
18pub mod log;
19mod peer_projection;
20/// Structured logging infrastructure shared by operational observers.
21pub mod logging {
22    pub use appcore_log::{
23        ConfiguredLogger, ConsoleSink, FileArchiveConfig, FileSink, FileSinkConfig, LogConfigError,
24        LogDispatcher, LogEvent, LogField, LogOutputMode, LogPolicy, LogSink, LogStats,
25        LoggerConfig, PathAliases, RingBufferSink, SensitiveDntSink, SensitiveDntSinkConfig,
26        Sensitivity, Severity, Verbosity, LOG_SIZE_16_MIB, LOG_SIZE_1_MIB, LOG_SIZE_2_MIB,
27        LOG_SIZE_32_MIB, LOG_SIZE_4_MIB, LOG_SIZE_64_MIB, LOG_SIZE_8_MIB,
28    };
29}
30pub mod metrics;
31pub mod observation;
32mod observation_file;
33mod observation_flush;
34mod observation_metrics;
35
36pub use availability::{RuntimeAvailabilityReport, RuntimeAvailabilityState};
37pub use health::{BasicHealthCheck, HealthCheck, HealthReport, HealthStatus};
38pub use heartbeat::{Heartbeat, HeartbeatSource, StaticHeartbeatSource};
39pub use log::{
40    InMemoryLogPressure, InMemoryLogger, LogLevel, LogRecord, LogSnapshot, RuntimeLogger,
41    StdoutLogger, MAX_IN_MEMORY_LOG_BYTES, MAX_IN_MEMORY_LOG_RECORDS, MAX_LOG_TARGET_BYTES,
42};
43pub use metrics::{
44    InMemoryMetrics, MetricCounter, MetricRegistryPressure, MetricSnapshot, MAX_IN_MEMORY_METRICS,
45    MAX_IN_MEMORY_METRIC_BYTES, MAX_METRIC_NAME_BYTES,
46};
47pub use observation::{
48    InMemoryObservationPressure, InMemoryObservationSink, ObservationEvent, ObservationKind,
49    ObservationSeverity, ObservationSink, ObservationSnapshot, SharedObservationEvent,
50    MAX_IN_MEMORY_OBSERVATION_BYTES, MAX_IN_MEMORY_OBSERVATION_ITEMS, MAX_OBSERVATION_ATTRIBUTES,
51    MAX_OBSERVATION_DRAINS, MAX_OBSERVATION_KEY_BYTES, MAX_OBSERVATION_NAME_BYTES,
52    MAX_OBSERVATION_TRACE_BYTES, MAX_OBSERVATION_VALUE_BYTES,
53};
54pub use observation_file::{
55    FileObservationSink, FileObservationSinkConfig, FileObservationSinkPressure,
56    FileObservationSinkStats, FILE_OBSERVATION_FLUSH_TIMEOUT, MAX_FILE_OBSERVATION_QUEUE_BYTES,
57    MAX_FILE_OBSERVATION_QUEUE_ITEMS, OBSERVATION_FILE_FORMAT_V1,
58};
59pub use observation_metrics::ObservationMetricsSink;
60
61pub use peer_projection::{
62    DeliveryPhaseV1, DiscoveryScopeV1, OperationalPeerV1, OperationalProjectionV1,
63    OperationalStateV1, MAX_OPERATIONAL_PEERS_V1,
64};