Expand description
§Prometheus Mock Library
A library for creating mock Prometheus HTTP API servers for integration testing.
This library provides components for:
- Fixture-based API Mock: Returns predefined responses from YAML fixtures
- Remote Write Sink: Accepts remote write data and stores it in memory for querying
- Label Matching: Extensible label filtering for time series queries
- In-Memory Storage: Fast storage backend for metrics data
§Examples
use std::sync::Arc;
use prom_mock_rs::{MemoryStorage, SimpleQueryEngine, http::build_router};
// Create storage and query engine
let storage = Arc::new(MemoryStorage::new());
let engine = SimpleQueryEngine::new(storage.clone());
// Build HTTP router with state
let state = prom_mock_rs::http::AppState::builder()
.with_storage(storage)
.build()?;
let app = build_router(state);Re-exports§
pub use fixtures::FixtureBook;pub use matchers::EqualMatcher;pub use matchers::LabelMatcher;pub use matchers::NotEqualMatcher;pub use matchers::NotRegexMatcher;pub use matchers::RegexMatcher;pub use query_engine::SimpleQueryEngine;pub use storage::Label;pub use storage::MemoryStorage;pub use storage::Sample;pub use storage::Storage;pub use storage::TimeSeries;
Modules§
- fixtures
- Fixture definitions for predefined API responses and route matching.
- http
- HTTP server with Prometheus-compatible API endpoints and configurable mock behavior.
- matchers
- Label matching implementations for filtering time series.
- query_
engine - Simple query engine for basic metric selectors without full
PromQL. - storage
- Time series storage implementations and abstractions.
- timeutil
- Time utilities for parsing relative time expressions.