fraiseql-wire 2.3.2

Streaming JSON query engine for Postgres 17
Documentation
//! Metrics and observability for fraiseql-wire
//!
//! This module provides comprehensive metrics collection for production observability:
//!
//! - **Query metrics**: submissions, completions, latencies, row/byte counts
//! - **Error metrics**: error counts by category and phase
//! - **Stream metrics**: row processing, filtering, deserialization per-type
//! - **Connection metrics**: creation, authentication, state transitions
//! - **Channel metrics**: send latency (backpressure indicator)
//!
//! # Usage
//!
//! Metrics are recorded automatically throughout the query execution pipeline.
//! The `metrics` crate provides a framework-agnostic API that can be used with
//! various exporters (Prometheus, `OpenTelemetry`, `DataDog`, etc.).
//!
//! # Example
//!
//! ```no_run
//! // Requires: live Postgres server.
//! use fraiseql_wire::metrics;
//!
//! # async fn example() -> fraiseql_wire::Result<()> {
//! // Metrics are recorded automatically during query execution
//! let client = fraiseql_wire::FraiseClient::connect("postgres://...").await?;
//! let mut stream = client.query::<serde_json::Value>("users").execute().await?;
//!
//! // Metrics are now being collected:
//! // - fraiseql_queries_total{entity="users", ...}
//! // - fraiseql_query_startup_duration_ms{entity="users"}
//! // - fraiseql_rows_processed_total{entity="users", status="ok"}
//! // - fraiseql_query_total_duration_ms{entity="users"}
//! # Ok(())
//! # }
//! ```

pub mod counters;
pub mod gauges;
pub mod histograms;
pub mod labels;

pub use counters::*;
pub use gauges::*;
pub use histograms::*;
pub use labels::*;

#[cfg(test)]
mod tests;