Лог и трассировка - System. Diagnostics

Page / - Изменено Alexandr Fokin в 2022/12/03 05:18

System. Diagnostics

Изменено Alexandr Fokin

в 2022/12/03 05:18

Оглавление

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