# metrics-rs/metrics

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/metrics-rs-metrics).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

1,422 stars · 210 forks · Rust · mit

## Links

- GitHub: https://github.com/metrics-rs/metrics
- awesome-repositories: https://awesome-repositories.com/repository/metrics-rs-metrics.md

## Topics

`metrics` `rust-lang` `telemetry`

## Description

This project is a unified observability framework for Rust applications, designed to capture, aggregate, and report performance telemetry. It provides a comprehensive toolkit for instrumenting code to track counters, gauges, and histograms, enabling developers to monitor application health and operational performance through a standardized interface.

The library distinguishes itself by decoupling instrumentation sites from specific backend implementations through a global registry and trait-based abstractions. This architecture allows developers to swap telemetry exporters at runtime without modifying application logic. It further supports granular data analysis by attaching structured key-value labels to metrics, which can be correlated with distributed tracing spans to provide deeper context during performance debugging.

The framework covers a broad range of operational observability needs, including automatic instrumentation for web server traffic and HTTP client activity. It supports a variety of reporting destinations, such as Prometheus, Datadog, NewRelic, and StatsD, while offering tools for metric lifecycle management, unit assignment, and real-time data visualization.

The library is designed for high-throughput environments, utilizing lock-free data structures for concurrent metric updates and macro-based instrumentation to minimize runtime overhead.

## Tags

### System Administration & Monitoring

- [Application Observability](https://awesome-repositories.com/f/system-administration-monitoring/application-observability.md) — Provides a comprehensive toolkit for capturing, labeling, and reporting structured diagnostic events and performance metrics.
- [Application Performance Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/application-performance-monitoring.md) — Provides tools for tracking counters, gauges, and histograms to monitor application health and performance.
- [Macro-Based Instrumentation](https://awesome-repositories.com/f/system-administration-monitoring/dimensional-application-instrumentation/macro-based-instrumentation.md) — Provides macros to collect counters, gauges, and histograms throughout an application to track performance and operational state. ([source](https://github.com/metrics-rs/metrics#readme))
- [Global Metric Registries](https://awesome-repositories.com/f/system-administration-monitoring/global-metric-registries.md) — Provides a process-wide singleton registry that decouples instrumentation sites from specific telemetry backend implementations.
- [Custom Metric Reporters](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry/metric-data-ingestion/batch-metric-ingestion/metric-report-batching/custom-metric-reporters.md) — Sends telemetry data to configured backends like logging or external monitoring services to track performance over time. ([source](https://docs.rs/opinionated_metrics))
- [Telemetry Collection and Aggregation](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/telemetry-collection-aggregation.md) — Aggregates performance data from instrumented code and exports it to various monitoring and observability platforms.
- [Trace Context Extraction](https://awesome-repositories.com/f/system-administration-monitoring/observability-tracing/trace-context-extraction.md) — Extracts active tracing spans from the execution context and automatically applies them as labels to recorded metrics. ([source](https://github.com/metrics-rs/metrics/tree/main/metrics-tracing-context))
- [Prometheus Exporters](https://awesome-repositories.com/f/system-administration-monitoring/prometheus-exporters.md) — Transmits recorded application telemetry to a compatible endpoint for collection and visualization within Prometheus. ([source](https://github.com/metrics-rs/metrics/tree/main/metrics-exporter-prometheus))
- [Telemetry Exporters](https://awesome-repositories.com/f/system-administration-monitoring/telemetry-exporters.md) — Transmits collected metrics to external monitoring systems by decoupling instrumentation logic from specific backend storage implementations. ([source](https://github.com/metrics-rs/metrics#readme))
- [Function Auto-Instrumentation Macros](https://awesome-repositories.com/f/system-administration-monitoring/automatic-tracing-instrumentation/function-auto-instrumentation-macros.md) — Uses procedural macros to instrument code at compile time, minimizing runtime overhead for performance-critical paths.
- [Telemetry Metadata Attachment](https://awesome-repositories.com/f/system-administration-monitoring/distributed-tracing-contexts/telemetry-metadata-attachment.md) — Attaches structured key-value labels to metrics to enable granular filtering and correlation with distributed tracing spans.
- [StatsD Exporters](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/server-metrics/statsd-exporters.md) — Transmits application telemetry to monitoring systems by mapping internal metric types to StatsD protocol formats. ([source](https://docs.rs/metrics-exporter-statsd))
- [Thread-Local Metric Aggregation](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/metric-performance-monitors/virtual-thread-monitors/thread-safe-metric-counters/thread-local-metric-aggregation.md) — Uses thread-local storage to record metrics in multi-threaded applications to prevent write contention.
- [Datadog Exporters](https://awesome-repositories.com/f/system-administration-monitoring/observability-tracing/batch-export-utilities/trace-exporters/datadog-exporters.md) — Transmits application telemetry data to Datadog agents using standard protocols for centralized monitoring. ([source](https://github.com/metrics-rs/metrics/tree/main/metrics-exporter-dogstatsd))
- [Application Metrics Exporters](https://awesome-repositories.com/f/system-administration-monitoring/prometheus-exporters/prometheus-based-metric-exporters/application-metrics-exporters.md) — Exposes application-level performance metrics in Prometheus format for centralized monitoring and visualization.
- [Cardinality Controls](https://awesome-repositories.com/f/system-administration-monitoring/service-metrics-monitoring/route-performance-metrics/cardinality-controls.md) — Configures specific path parameters as distinct labels in metrics to allow granular analysis of high-traffic or variable routes. ([source](https://docs.rs/actix-web-metrics))
- [Structured Log Field Attachments](https://awesome-repositories.com/f/system-administration-monitoring/structured-logging/structured-log-field-attachments.md) — Associates key-value pairs with log records to provide additional metadata and context for improved searchability and analysis. ([source](https://docs.rs/log))

### Programming Languages & Runtimes

- [Instrumentation Frameworks](https://awesome-repositories.com/f/programming-languages-runtimes/rust-backend-frameworks/instrumentation-frameworks.md) — Provides a unified framework for recording counters, gauges, and histograms in Rust applications.

### Software Engineering & Architecture

- [Backend Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/trait-based-service-abstractions/backend-abstractions.md) — Uses trait-based interfaces to decouple instrumentation logic from telemetry exporters, allowing runtime backend swapping.

### Data & Databases

- [Throughput and Size Unit Scalings](https://awesome-repositories.com/f/data-databases/date-and-time-libraries/unit-conversions/throughput-and-size-unit-scalings.md) — Scales and labels numeric values using human-readable units and time-based abbreviations to improve the clarity of telemetry data. ([source](https://github.com/metrics-rs/metrics/tree/main/metrics-observer))
- [Metric Metadata Assignment](https://awesome-repositories.com/f/data-databases/historical-metric-stores/metric-metadata-assignment.md) — Attaches specific measurement units to telemetry data to ensure accurate interpretation and visualization of performance values. ([source](https://docs.rs/metrics-exporter-sentry))
- [Telemetry Customizers](https://awesome-repositories.com/f/data-databases/label-based-data-selection/metadata-labelers/telemetry-customizers.md) — Attaches user-defined metadata to recorded metrics to allow for granular filtering and grouping of request data. ([source](https://docs.rs/reqwest-metrics))

### Development Tools & Productivity

- [Request Metrics Telemetry](https://awesome-repositories.com/f/development-tools-productivity/execution-middleware/request-response-middleware/request-metrics-telemetry.md) — Records standard telemetry metrics including request duration, active request counts, and payload sizes for web server endpoints. ([source](https://docs.rs/actix-web-metrics))
- [NewRelic Integrations](https://awesome-repositories.com/f/development-tools-productivity/telemetry-service-integrations/newrelic-integrations.md) — Transmits application telemetry data to the monitoring platform by periodically pushing metrics to the service for visualization. ([source](https://docs.rs/metrics-exporter-newrelic))

### DevOps & Infrastructure

- [Telemetry Routing Interfaces](https://awesome-repositories.com/f/devops-infrastructure/storage-backend-integrations/telemetry-routing-interfaces.md) — Decouples instrumentation logic from storage backends to route performance data to various logging and monitoring services.

### Networking & Communication

- [Correlation Tracing](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/request-processing-architectures/request-processing/middleware-based-request-pipelines/correlation-tracing.md) — Links application metrics with active tracing spans to provide deeper context for performance debugging.

### Testing & Quality Assurance

- [HTTP Client Monitoring](https://awesome-repositories.com/f/testing-quality-assurance/http-request-clients/http-client-monitoring.md) — Automatically records telemetry data for outgoing HTTP requests, tracking metrics such as latency and request counts. ([source](https://docs.rs/reqwest-metrics))

### Web Development

- [Web Server Monitoring](https://awesome-repositories.com/f/web-development/http-servers/web-server-monitoring.md) — Automatically records request latency, throughput, and payload sizes for web service endpoints.
