0Pricing
C# Academy · Урок

Экспорт в серверные системы

Передавайте телеметрию сборщикам и инструментам OTLP.

«Экспорт в серверные системы» — бесплатный урок C# Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 4 уроков всего.

Передача телеметрии

Создание трасс и метрик — лишь половина задачи: необходимо экспортировать их в серверную систему, которая хранит, запрашивает и визуализирует данные. Для этого OpenTelemetry использует экспортёры.

Экспортёры

Экспортёр отправляет телеметрию в место назначения. Разные экспортёры предназначены для разных систем: консоли (для разработки), OTLP (стандартного протокола) и систем, предоставляемых конкретными поставщиками.

Консольный экспортёр

Консольный экспортёр выводит телеметрию в терминал и отлично подходит для проверки инструментирования во время разработки.

builder.Services.AddOpenTelemetry()
    .WithTracing(t => t.AddConsoleExporter())
    .WithMetrics(m => m.AddConsoleExporter());

Что такое OTLP

OTLP (OpenTelemetry Protocol) — это независимый от поставщика формат передачи телеметрии. Экспорт через OTLP позволяет отправлять данные в любую серверную систему, совместимую с OTLP, не изменяя код приложения.

dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol

Настройка экспортёра OTLP

Добавьте AddOtlpExporter и укажите конечную точку сборщика или серверной системы.

builder.Services.AddOpenTelemetry()
    .WithTracing(t => t.AddOtlpExporter(o =>
    {
        o.Endpoint = new Uri("http://localhost:4317");
    }))
    .WithMetrics(m => m.AddOtlpExporter());

Сборщик OpenTelemetry

Сборщик — это отдельный процесс, который принимает телеметрию, обрабатывает её (объединяет в пакеты, фильтрует и дополняет), а затем пересылает в одну или несколько серверных систем. Он отделяет приложение от конкретных поставщиков.

Зачем нужен сборщик

При прямой отправке данных поставщику приложение оказывается связанным с ним. Сборщик позволяет сменить поставщика или распределять данные между несколькими серверными системами, централизованно применять сэмплирование и удаление конфиденциальных данных, а также снижать нагрузку на службы.

Распространённые серверные системы

Трассы часто отправляются в Jaeger или Tempo, метрики — в Prometheus, а панели мониторинга — в Grafana. Журналы могут передаваться в Loki или стек ELK. Все эти системы могут получать OTLP через сборщик.

Объединение всех компонентов

Обычно ресурс, источники, измерители и экспортёр OTLP настраиваются в одном блоке, благодаря чему трассы и метрики передаются в сборщик.

builder.Services.AddOpenTelemetry()
    .ConfigureResource(r => r.AddService("checkout-api"))
    .WithTracing(t => t
        .AddAspNetCoreInstrumentation()
        .AddSource("Checkout.Orders")
        .AddOtlpExporter())
    .WithMetrics(m => m
        .AddAspNetCoreInstrumentation()
        .AddMeter("Checkout.Orders")
        .AddOtlpExporter());

Экспорт журналов

OpenTelemetry также экспортирует журналы. Подключите его к конвейеру журналирования, чтобы записи журналов содержали тот же контекст трассы и передавались в серверную систему через OTLP.

builder.Logging.AddOpenTelemetry(o =>
{
    o.AddOtlpExporter();
});

Пакетная обработка и надёжность

Экспортёры объединяют телеметрию в пакеты, чтобы снизить накладные расходы, и повторяют попытку при сбое. Настройте размер пакета и время ожидания в соответствии с объёмом данных и отдавайте предпочтение сборщику, который поглощает всплески нагрузки, чтобы потоки приложения никогда не блокировались во время экспорта.

Быстрая проверка

Проверьте экспорт в серверные системы.

Повторение

Экспортёры передают телеметрию в серверные системы. Консольный экспортёр помогает при разработке, а OTLP — это независимый от поставщика протокол, используемый с AddOtlpExporter. Отправка OTLP в сборщик OpenTelemetry отделяет приложение от поставщиков, централизует пакетную обработку, сэмплирование и маршрутизацию, а также распределяет данные по таким серверным системам, как Jaeger, Prometheus и Grafana. Журналы экспортируются таким же способом и содержат контекст трассы.

Часто задаваемые вопросы

Урок «Экспорт в серверные системы» бесплатный?

Да — полный текст урока «Экспорт в серверные системы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 4 уроков всего.

Чему я научусь в уроке «Экспорт в серверные системы»?

Передавайте телеметрию сборщикам и инструментам OTLP. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Экспорт в серверные системы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Три столпа наблюдаемости
  2. Распределённая трассировка
  3. Сбор метрик
  4. Экспорт в серверные системы
← Назад к C# Academy