llm_cost_ops/
lib.rs

1//! LLM-CostOps - Core library for cost operations
2//!
3//! This is the core library providing cost tracking, forecasting, and optimization
4//! for Large Language Model deployments.
5
6pub 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
16// Re-export commonly used types
17pub 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    // Configuration
37    ObservabilityConfig,
38    ObservabilityMetricsConfig,
39    TracingConfig, TracingFormat,
40    LoggingConfig, LoggingFormat, HealthConfig, OtlpConfig,
41    // Metrics
42    MetricsRegistry, MetricsError, Timer, start_timer,
43    // Tracing
44    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    // Logging
51    LogLevel, LogEntry, StructuredLogger, PerformanceLogger,
52    // Health
53    HealthStatus, ComponentHealth, SystemHealth,
54    HealthCheck, HealthChecker,
55    DatabaseHealthCheck, CacheHealthCheck, ExternalServiceHealthCheck,
56    FunctionHealthCheck,
57    // Stack
58    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    // Formats
71    ExportFormat, ExportData, Exporter, create_exporter,
72    // Reports
73    ReportType, ReportRequest, ReportResponse, ReportGenerator,
74    CostReport, UsageReport, ForecastReport, AuditReport,
75    ReportFilters, ReportSummary, DateRange,
76    // Configuration
77    ExportConfig, EmailConfig, StorageConfig, ScheduledReportConfig,
78    DeliveryTarget, ReportFiltersConfig,
79    // Delivery
80    DeliveryMethod, DeliveryRequest, DeliveryResponse, DeliveryStatus,
81    ReportDelivery, EmailDelivery, StorageDelivery, WebhookDelivery,
82    DeliveryCoordinator,
83    // Scheduler
84    ReportScheduler, CronScheduler, ScheduledReportStatus, ScheduledExecutionResult,
85    // Errors
86    ExportError, ExportResult,
87};
88
89/// Library version
90pub const VERSION: &str = env!("CARGO_PKG_VERSION");
91
92/// Initialize the library with default configuration
93pub fn init() -> Result<()> {
94    // Initialize observability
95    observability::init_tracing();
96    Ok(())
97}