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 Iroh Online project dashboard.
Create behavioral aggregations to monitor the health of your software.
Connections
The number of successful and active connections made through the relay servers.
Latency
The time it takes for a request to travel from one endpoint to another.
Throughput
The amount of data processed by the relay server in a given time period.
Holepunching Rate
The success rate of holepunching attempts made by the relay server.
Uptime
The amount of time the relay server is operational and available to handle requests.
Error reporting
Information about any UPnP probes or NAT traversal failures that occur.
For a list of all metrics, see the metrics glossary.
Some metrics are aggregated 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.
You can also define and collect custom metrics specific to your application's needs. This allows you to monitor application-specific events and performance indicators.
Read more about custom metrics →Pro
Detailed metrics are available for each endpoint added to the network. These metrics are available at the endpoint level, so you can drill down into specific behaviors to better understand performance issues.
Read more about endpoint metrics →Once an iroh endpoint is integrated in your Rust program, add an iroh_n0des::Client to begin sending metrics to the Iroh Online platform.
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.
Call endpoint.online().await before creating the Client. The endpoint must be online before the client is instantiated to authenticate to the platform.
Once authenticated, endpoints will start sending granular-level data about their behavior and connection status.
Every 10 seconds, the Iroh Online 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(())
}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.
Project-level metrics are retained based on your events plan. Please refer to the pricing page for more details on plan features and benefits.
Endpoint level metrics are only available on Pro and Enterprise. For projects on these plans, the amount of endpoint-level raw data retained is calculated on your purchased metrics package. Contact us if you need custom support.