1pub mod domain;
7pub mod engine;
8pub mod storage;
9pub mod config;
10pub mod observability;
11pub mod metrics;
12pub mod compression;
13pub mod forecasting;
14pub mod export;
15
16pub use domain::{
18 CostOpsError, Result, Provider, UsageRecord, CostRecord,
19 PricingTable, PricingStructure, Currency,
20};
21
22pub use engine::{CostCalculator, TokenNormalizer, CostAggregator};
23
24pub use storage::{
25 CostRepository, PricingRepository, UsageRepository,
26};
27
28pub use metrics::{init_metrics, MetricsConfig};
29
30pub use compression::{
31 CompressionAlgorithm, CompressionLevel, CompressionConfig,
32 Compressor, compress, decompress, CompressionLayer, compression_layer,
33};
34
35pub use observability::{
36 ObservabilityConfig,
38 ObservabilityMetricsConfig,
39 TracingConfig, TracingFormat,
40 LoggingConfig, LoggingFormat, HealthConfig, OtlpConfig,
41 MetricsRegistry, MetricsError, Timer, start_timer,
43 CorrelationId, RequestId, TraceContext,
45 init_tracing_with_config, create_span_with_context,
46 info_span_with_context, debug_span_with_context, trace_span_with_context,
47 warn_span_with_context, error_span_with_context,
48 extract_trace_context_from_headers, inject_trace_context_into_headers,
49 TraceContextLayer,
50 LogLevel, LogEntry, StructuredLogger, PerformanceLogger,
52 HealthStatus, ComponentHealth, SystemHealth,
54 HealthCheck, HealthChecker,
55 DatabaseHealthCheck, CacheHealthCheck, ExternalServiceHealthCheck,
56 FunctionHealthCheck,
57 init_observability, ObservabilityStack,
59};
60
61pub use forecasting::{
62 DataPoint, TimeSeriesData, ForecastConfig, ForecastHorizon, TrendDirection,
63 SeasonalityPattern, ForecastModel, LinearTrendModel, MovingAverageModel,
64 ExponentialSmoothingModel, ForecastEngine, ForecastRequest, ForecastMetrics,
65 AnomalyDetector, AnomalyResult, AnomalyMethod, BudgetForecaster,
66 BudgetForecast, BudgetAlert, AlertSeverity,
67};
68
69pub use export::{
70 ExportFormat, ExportData, Exporter, create_exporter,
72 ReportType, ReportRequest, ReportResponse, ReportGenerator,
74 CostReport, UsageReport, ForecastReport, AuditReport,
75 ReportFilters, ReportSummary, DateRange,
76 ExportConfig, EmailConfig, StorageConfig, ScheduledReportConfig,
78 DeliveryTarget, ReportFiltersConfig,
79 DeliveryMethod, DeliveryRequest, DeliveryResponse, DeliveryStatus,
81 ReportDelivery, EmailDelivery, StorageDelivery, WebhookDelivery,
82 DeliveryCoordinator,
83 ReportScheduler, CronScheduler, ScheduledReportStatus, ScheduledExecutionResult,
85 ExportError, ExportResult,
87};
88
89pub const VERSION: &str = env!("CARGO_PKG_VERSION");
91
92pub fn init() -> Result<()> {
94 observability::init_tracing();
96 Ok(())
97}