Skip to main content

Crate prom_mock_rs

Crate prom_mock_rs 

Source
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.