System.Diagnostics
Open Telemetry
System.Diagnostics Пространство имен
https://learn.microsoft.com/ru-ru/dotnet/api/system.diagnostics?view=net-7.0
Замечания:
- ActivitySource не создает экземпляры Activity (возвращает null), если нет ни одного активного ActivityListener.
- !!! Нижеприведенный код после публикации сборки (и в Release и в Debug) может никогда не выполниться, в случае, если к полю _Listener (и к классу FakeListener) нет других обращений.
И Activity не будут создаваться.
private static readonly FakeListener _Listener = new FakeListener();
internal class FakeListener
{
public FakeListener()
{
ActivityListener = new ActivityListener()
{
ShouldListenTo = (source) => true,
SampleUsingParentId = (ref ActivityCreationOptions<string> activityOptions) => ActivitySamplingResult.AllData,
Sample = (ref ActivityCreationOptions<ActivityContext> activityOptions) => ActivitySamplingResult.AllData
};
ActivitySource.AddActivityListener(
ActivityListener
);
}
}
Metric | System.Diagnostics.Metrics https://learn.microsoft.com/ru-ru/dotnet/api/system.diagnostics.metrics?view=net-7.0 NonObservable | Хранит значение метрики самостоятельно | Observable | Использует внешний делегат, для получения текущего значения метрики. Предполагается, что внешний код будет периодически снимать показания. |
Наблюдаемые инструменты | Instrument ObservableInstrument | Базовый класс | | Counter ObservableCounter | Допускает неотрицательные числовые значения. Выполняет агрегацию поступающих значений, суммируя их. | Add | Histogram | Допускает числовые значения. Без агрегации, просто фиксирует само значение. | Record | UpDownCounter ObservableUpDownCounter | Допускает числовые значения. Выполняет агрегацию поступающих значений, вычисляя дельты (изменения) значения (в сравнении с предыдущим). | Add | ObservableGauge | | | Инфраструктура | Meter | Создание и отслеживание | | MeterListener | Прослушивание | |
|
Tracing | DiagnosticSource | System.Diagnostics.DiagnosticSource DiagnosticSource | DiagnosticListener |
|
Activity | ActivitySource | | Activity | 1 | OperationName | Имя | Duration | Длительность | 2 | Tags | Key-value коллекция | Baggage | Key-value коллекция элементов, передаваемых дочерним Activity | Events | Набор событий ActivityEvent. | Context | Набор атрибутов, идентифицирующих Activity. | Links | Набор ссылок ActivityLink. | | Custom properties | Коллекция прикрепленных объектов |
В момент вызова Dispose activity фиксирует остановку и выполняется оповещение: (Activity -> ActivitySource -> ActivityListener -> OpenTelemetry.SpanProcessor -> OpenTelemetry.Exporter). | ActivityListener | | ActivityEvent | | ActivityLink | |
|