#open-telemetry #insight #applications #azure #tracing #exporter #microsoft-azure

opentelemetry-application-insights

OpenTelemetry exporter for Azure Application Insights

36 breaking releases

0.37.0 Nov 12, 2024
0.35.0 Sep 16, 2024
0.34.0 Jul 20, 2024
0.30.0 Mar 8, 2024
0.1.2 Jul 25, 2020

#87 in Debugging

Download history 28767/week @ 2024-08-19 33341/week @ 2024-08-26 25210/week @ 2024-09-02 29557/week @ 2024-09-09 28853/week @ 2024-09-16 31631/week @ 2024-09-23 32925/week @ 2024-09-30 31164/week @ 2024-10-07 31859/week @ 2024-10-14 33239/week @ 2024-10-21 32327/week @ 2024-10-28 33459/week @ 2024-11-04 28263/week @ 2024-11-11 8797/week @ 2024-11-18 4903/week @ 2024-11-25 5542/week @ 2024-12-02

48,450 downloads per month
Used in 2 crates (via axum-insights)

MIT license

165KB
3K SLoC

Crates.io Documentation Workflow Status

opentelemetry-application-insights

An Azure Application Insights exporter implementation for OpenTelemetry Rust.

Disclaimer: This is not an official Microsoft product.

Usage

Configure a OpenTelemetry pipeline using the Application Insights exporter and start creating spans (this example requires the opentelemetry-http/reqwest feature):

use opentelemetry::trace::Tracer as _;

fn main() {
    let connection_string = std::env::var("APPLICATIONINSIGHTS_CONNECTION_STRING").unwrap();
    let tracer = opentelemetry_application_insights::new_pipeline_from_connection_string(connection_string)
        .expect("valid connection string")
        .with_client(reqwest::blocking::Client::new())
        .install_simple();

    tracer.in_span("main", |_cx| {});
}

See documentation for more:

Application Insights integration

Thanks

Huge thanks goes to Denis Molokanov for the amazing appinsights crate. Check it out if you want a more direct integration with Application Insights.

Documentation

The only official documentation I could find is this one. Follow the links to see the data model and endpoint description.

Can I send telemetry to the Application Insights portal?

We recommend you use our SDKs and use the SDK API. There are variants of the SDK for various platforms. These SDKs handle buffering, compression, throttling, retries, and so on. However, the ingestion schema and endpoint protocol are public.

-- https://docs.microsoft.com/en-us/azure/azure-monitor/faq#can-i-send-telemetry-to-the-application-insights-portal

Dependencies

~5–37MB
~585K SLoC