NVIDIA DeepStream SDK API Reference
9.2 Release
9.2/includes/opentelemetry/metrics/provider.h
Go to the documentation of this file.
1
// Copyright The OpenTelemetry Authors
2
// SPDX-License-Identifier: Apache-2.0
3
4
#pragma once
5
6
#include <mutex>
7
8
#include "opentelemetry/common/spin_lock_mutex.h"
9
#include "opentelemetry/metrics/meter_provider.h"
10
#include "opentelemetry/metrics/noop.h"
11
#include "opentelemetry/nostd/shared_ptr.h"
12
#include "opentelemetry/version.h"
13
14
OPENTELEMETRY_BEGIN_NAMESPACE
15
namespace
metrics
16
{
17
21
class
Provider
22
{
23
public
:
30
static
nostd::shared_ptr<MeterProvider>
GetMeterProvider
() noexcept
31
{
32
std::lock_guard<common::SpinLockMutex> guard(GetLock());
33
return
nostd::shared_ptr<MeterProvider>
(GetProvider());
34
}
35
39
static
void
SetMeterProvider
(
const
nostd::shared_ptr<MeterProvider>
&tp) noexcept
40
{
41
std::lock_guard<common::SpinLockMutex> guard(GetLock());
42
GetProvider() = tp;
43
}
44
45
private
:
46
OPENTELEMETRY_API_SINGLETON
static
nostd::shared_ptr<MeterProvider>
&GetProvider() noexcept
47
{
48
static
nostd::shared_ptr<MeterProvider>
provider(
new
NoopMeterProvider
);
49
return
provider;
50
}
51
52
OPENTELEMETRY_API_SINGLETON
static
common::SpinLockMutex
&GetLock() noexcept
53
{
54
static
common::SpinLockMutex
lock;
55
return
lock;
56
}
57
};
58
59
}
// namespace metrics
60
OPENTELEMETRY_END_NAMESPACE
nostd::shared_ptr
Provide a type-erased version of std::shared_ptr that has ABI stability.
Definition:
includes/opentelemetry/nostd/shared_ptr.h:28
metrics::NoopMeterProvider
No-op implementation of a MeterProvider.
Definition:
includes/opentelemetry/metrics/noop.h:237
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition:
includes/opentelemetry/version.h:21
common::SpinLockMutex
A Mutex which uses atomic flags and spin-locks instead of halting threads.
Definition:
includes/opentelemetry/common/spin_lock_mutex.h:52
metrics::Provider::SetMeterProvider
static void SetMeterProvider(const nostd::shared_ptr< MeterProvider > &tp) noexcept
Changes the singleton MeterProvider.
Definition:
9.2/includes/opentelemetry/metrics/provider.h:39
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition:
includes/opentelemetry/version.h:24
OPENTELEMETRY_API_SINGLETON
#define OPENTELEMETRY_API_SINGLETON
Definition:
includes/opentelemetry/common/macros.h:335
metrics::Provider::GetMeterProvider
static nostd::shared_ptr< MeterProvider > GetMeterProvider() noexcept
Returns the singleton MeterProvider.
Definition:
9.2/includes/opentelemetry/metrics/provider.h:30
metrics
Definition:
includes/opentelemetry/metrics/async_instruments.h:10
Privacy Policy
|
Your Privacy Choices
|
Terms of Service
|
Accessibility
|
Corporate Policies
|
Product Security
|
Contact
© 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
NVIDIA Confidential | Subject to Change | For test and development only.
Wed Oct 28 2026 12:02:36 | PR-09318-R32