syn2mas/
telemetry.rs

1// Copyright 2025 New Vector Ltd.
2//
3// SPDX-License-Identifier: AGPL-3.0-only
4// Please see LICENSE in the repository root for full details.
5
6use std::sync::LazyLock;
7
8use opentelemetry::{InstrumentationScope, metrics::Meter};
9use opentelemetry_semantic_conventions as semcov;
10
11static SCOPE: LazyLock<InstrumentationScope> = LazyLock::new(|| {
12    InstrumentationScope::builder(env!("CARGO_PKG_NAME"))
13        .with_version(env!("CARGO_PKG_VERSION"))
14        .with_schema_url(semcov::SCHEMA_URL)
15        .build()
16});
17
18pub static METER: LazyLock<Meter> =
19    LazyLock::new(|| opentelemetry::global::meter_with_scope(SCOPE.clone()));