Створення власних трейсів та метрик
Автоматична інструменталізація налаштовує TracerProvider та MeterProvider, щоб ви могли додати власну ручну інструменталізацію. Використовуючи як автоматичну, так і ручну інструменталізацію, ви можете краще інструментувати логіку та функціональність ваших застосунків, клієнтів та фреймворків.
Трейси
Щоб створити власні трейси вручну, виконайте наступні кроки:
Додайте залежність
System.Diagnostics.DiagnosticSourceдо вашого проєкту:<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="8.0.0" />Створіть екземпляр
ActivitySource:private static readonly ActivitySource RegisteredActivity = new ActivitySource("Examples.ManualInstrumentations.Registered");Створіть
Activity. За бажанням, встановіть теґи:using (var activity = RegisteredActivity.StartActivity("Main")) { activity?.SetTag("foo", "bar1"); // ваша логіка для Main activity }Зареєструйте ваш
ActivitySourceв OpenTelemetry.AutoInstrumentation, встановивши змінну середовищаOTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES. Ви можете встановити значення якExamples.ManualInstrumentations.Registered, так іExamples.ManualInstrumentations.*, що реєструє весь префікс.
Activity, створений для NonRegistered.ManualInstrumentations ActivitySource, не обробляється автоматичною інструменталізацією OpenTelemetry.
Метрики
Щоб створити власні метрики вручну, виконайте наступні кроки:
Додайте залежність
System.Diagnostics.DiagnosticSourceдо вашого проєкту:<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="8.0.0" />Створіть екземпляр
Meter:using var meter = new Meter("Examples.Service", "1.0");Створіть
Instrument:var successCounter = meter.CreateCounter<long>("srv.successes.count", description: "Number of successful responses");Оновіть значення
Instrument. За бажанням, встановіть теґи:successCounter.Add(1, new KeyValuePair<string, object?>("tagName", "tagValue"));Зареєструйте ваш
Meterв OpenTelemetry.AutoInstrumentation, встановивши змінну середовищаOTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCES:OTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCES=Examples.ServiceВи можете встановити значення як
Examples.Service, так іExamples.*, що реєструє весь префікс.
Додаткові матеріали
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!