> For the complete documentation index, see [llms.txt](https://docs.rumi.systems/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rumi.systems/rumi-core/guides/developing-applications/authoring-user-code/monitoring.md).

# Monitoring

This section covers how to expose custom statistics and telemetry from your microservice for monitoring and observability.

## Overview

Rumi automatically collects extensive statistics about message processing, transactions, and system resources. You can augment this with application-specific metrics to monitor business logic and operational characteristics.

Custom statistics are exposed through heartbeat logs and can be queried in real-time or analyzed offline.

## Statistic Types

Rumi supports four types of custom statistics:

* **Gauges** - Current value measurements (e.g., queue depth, cache size)
* **Counters** - Monotonically increasing counts (e.g., orders processed, errors)
* **Series** - Collections of measurements (e.g., order sizes, processing times)
* **Latencies** - Timing measurements with percentile tracking

## Topics

* [**Exposing Application Stats**](/rumi-core/guides/developing-applications/authoring-user-code/monitoring/exposing-application-statistics.md) - Define custom statistics using `@AppStat` annotations

## Related Topics

* [Operating Model](/rumi-core/concepts/operating-model.md) - Conceptual overview of monitoring and operations
* [Container Heartbeats](/rumi-core/guides/operating-applications/monitoring/container-heartbeats.md) - Server-level statistics
* [Engine Stats](/rumi-core/guides/operating-applications/monitoring/engine-statistics.md) - Engine-level metrics
* [Configuring Monitoring](/rumi-core/guides/developing-applications/configuring-the-runtime/monitoring.md) - Configure statistics collection
