Observability

Monitor the health of your network with comprehensive metrics collection. Track connections, latency, throughput, and custom application-specific metrics.

Overview

When you add endpoints to your network, various metrics are collected to help improve performance and user experience. By monitoring these metrics, you can identify bottlenecks and areas for improvement in your application.

All endpoints added to your network can have these metrics collected and reported to the web dashboard.

For a list of all metrics, see the metrics glossary.

ConnectionsLatencyThroughputCustomΣAggregatorDashboardMobileServerIoT

Scales with you

Start for free, and then grow as your application needs.

Project Metrics

Free

Iroh aggregates metrics at the project level, to provide insights into overall network performance. This aggregated data helps in understanding trends and patterns without exposing individual endpoint details.

  • Network-wide insights
  • No setup required
  • Connections, latency, and throughput
  • Custom metrics support

Granular Metrics

$49/month and up

Detailed metrics are available for each relay or endpoint added to the network. These metrics are available at a more granular level, so you can drill down into specific behaviors to better understand performance issues.

  • Per-relay and per-endpoint analytics
  • Holepunching Rate, Uptime, Error Reporting
  • Drill down into specific behaviors
  • Extended data retention plans available

How it Works

  1. 1

    Once an iroh endpoint is integrated in your Rust program, add an iroh_n0des::Client to begin sending metrics to the platform.

  2. 2

    The client will automatically detect any running iroh instance and begin sending metrics as long as the secret and SSH key match your project setup.

  3. 3

    Call endpoint.online().await before creating the Client. The endpoint must be online before the client is instantiated to authenticate to the platform.

  4. 4

    Once authenticated, endpoints will start sending granular-level data about their behavior and connection status.

  5. 5

    Every 10 seconds, the platform will aggregate key project-level metrics which are visible in the project dashboard.

use iroh::Endpoint;
use iroh_n0des::Client;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let endpoint = Endpoint::builder().bind().await?;
    endpoint.online().await;
    
    let client = Client::new(&endpoint, "YOUR_API_KEY").await?;
    
    // Report a custom metric
    client.metric("document_written", 1).await?;
    
    Ok(())
}

Privacy

All metrics collected are anonymized and aggregated to ensure user privacy. No personally identifiable information (PII) is collected or stored. The focus is on overall network performance rather than individual user behavior.

If you have concerns about data collection, please refer to the privacy policy.

Start Monitoring Your Network

Get started with free project-level metrics, or upgrade to Pro for detailed endpoint analytics.