1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//! # Observability Infrastructure
//!
//! Production-grade observability infrastructure for `SciRS2` Core providing
//! comprehensive monitoring, tracing, and auditing capabilities for enterprise
//! deployments and regulated environments.
//!
//! ## Modules
//!
//! - `tracing`: Distributed tracing system with OpenTelemetry integration
//! - `audit`: Audit logging for security events and compliance
//!
//! ## Features
//!
//! - OpenTelemetry-compatible distributed tracing
//! - Enterprise-grade audit logging
//! - Real-time security monitoring
//! - Compliance reporting capabilities
//! - Integration with SIEM systems
//! - Performance attribution and analysis
//!
//! ## Example
//!
//! ```rust
//! use scirs2_core::observability::{tracing, audit};
//!
//! // Initialize tracing
//! let tracing_config = tracing::TracingConfig::default();
//! tracing::init_tracing(tracing_config)?;
//!
//! // Initialize audit logging
//! let audit_config = audit::AuditConfig::default();
//! let auditlogger = audit::AuditLogger::new(audit_config)?;
//!
//! // Use tracing
//! if let Some(tracer) = tracing::global_tracer() {
//! let span = tracer.start_span("data_processing")?;
//! span.in_span(|| {
//! // Your code here
//! });
//! }
//!
//! // Log audit events
//! auditlogger.log_data_access("user123", "dataset", "read", None)?;
//! # Ok::<(), Box<dyn std::error::Error>>(())
//! ```
// Re-export main types for convenience
pub use ;
pub use integrate_with_metrics_system;
/// Install the pure-Rust OxiTLS CryptoProvider (oxitls-rustcrypto-provider)
/// as the process-default rustls provider if the application has not
/// already installed one. Applications that want a different provider
/// simply install it before first use of SciRS2 networking.
///
/// Called immediately before every eager `reqwest` client construction in this crate
/// ([`tracing::HttpExporter::new`] and the `audit` webhook alerter): the workspace `reqwest`
/// dependency is built with `rustls-no-provider` (see the "PURE RUST BLOCKER (reqwest)" note
/// in the workspace root `Cargo.toml`), so client construction panics without a
/// process-default provider.
pub
pub use ;
pub use S3Credentials;
pub use AsyncAuditLogger;