Рубрики
Uncategorized

Все, что вам нужно знать о opentelemetry Collector 🚀

Первым шагом в настройке распределенных систем мониторинга и отслеживания является контрольно-измеритель, который … с меткой DEVOPS, мониторинга, микросервисами, OpenTelemetry.

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

Вот где opentelemetry Collector входит в картину.

Opentelemetry Collector предоставляет поставщик-нейтральный способ собирать, процесс и экспортировать данные телеметрии (журналы, метрики и следы) на бэкэнды анализа по вашему выбору.

Архитектура — как opentelemetry вписывается в архитектуру приложений. Collector Otel относится к коллекционеру OpenTelemetry

Перед глубоким погружением в коллекционеры Openentelemetry, давайте сделаем короткий объем, чтобы понять, что такое opentelemetry.

Что такое opentelemetry?

OpenTelemetry — это набор API, SDK, библиотек и интеграции, направленные на стандартизацию генерации, сбора и управления данными телеметрии (журналы, метрики и следы). OpenTelemetry — это проект фонда нативного вычисления облачных нативных вычислений, созданный после слияния OpenCensus (из Google) и OpenCess (от Uber).

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

Зачем использовать коллектор OpenTelemetry?

Сборщик Opentelemetry имеет три основных функция — собирать, процесс и экспортировать собранные данные телеметрии. Но прежде чем пытаться узнать больше о openteleметрии коллекционеров, давайте сначала понять, почему это критический компонент вашей архитектуры мониторинга. Почему вы не можете отправлять данные телеметрии непосредственно на инструмент «Анализ Backend» на ваш выбор?

Spentelemetry Collector предоставляет вам гибкость для обработки нескольких форматов данных и перегружать ответственность от приложения для управления данными телеметрии.

Список причин, почему использовать OpenTelemetry Collector:

  • Предоставляет поставщик-агностический способ собирать данные телеметрии
  • Перегружает ответственность от приложения для управления данными телеметрии, тем самым уменьшая накладные расходы
  • Вносит изменения в путь управления данными телеметрии проще
  • Включает экспорт данных в нескольких форматах, несколько поставщиков на ваш выбор
  • Включает быстрые обновления на основе конфигурации, тривиальные для обновления файла конфигурации для получения данных в другом формате

Архитектура коллекционера opentelemetry

Сцентелеметрический коллектор состоит из трех основных компонентов:

  • Приемники

Приемники используются для получения данных в коллектор. Вы можете использовать его для настройки портов и форматов Коллектор может принимать данные в. Это может быть нажимается или натяжной. Вы можете получать данные в нескольких форматах. Он имеет формат OTLP по умолчанию, но вы также можете получать данные в других популярных форматах с открытым исходным кодом, такими как Jeger или Premetheus. Signoz использует формат OTLP по умолчанию для приема данных телеметрии.

  • Процессоры

Процессоры используются для выполнения любой обработки, необходимой для собранных данных, таких как данные массажа данных, манипулированием данных или любые изменения данных, поскольку он протекает через коллектор. Он также может быть использован для удаления данных PII из собранных данных телеметрии, которые могут быть очень полезны. Вы также можете делать такие вещи, как добивание данных, прежде чем отправлять его, повторное вручение в случае неудачи, добавляя метаданные, отборы на основе хвоста.

  • Экспортеры

Экспортеры используются для экспорта данных на инструмент BackeND, например Signoz Отказ Вы можете отправлять данные в нескольких форматах данных.

Архитектура opentelemetry Collector с приемниками, процессорами и экспортерами.

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

Как настроить коллектор OpenTelemetry?

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

Приемники

В призовом коде, показанном ниже, у нас есть два приемника:

  1. OTLP по умолчанию OpenentElemetry Protocol для передачи данных телеметрии. Signoz получает данные телеметрии в формате OTLP.
  2. Jaeger Вы также можете получить следы данных в формате JAEGER, который является популярным инструментом распределенного трассировки.
receivers:
      otlp:
        protocols:
          grpc:
          http:
      jaeger:
        protocols:
          grpc:
          thrift_http:

Процессоры

В образце кода есть три процессора, показанные ниже:

  1. Пакет Дозировка помогает лучше сжать данные и уменьшить количество исходящих соединений, необходимых для передачи данных. Этот процессор поддерживает как размер, так и на основе времени дозирования.

  2. Ограничитель памяти Процессор ограничителя памяти используется для предотвращения нарушений ситуаций на память на коллекторе. Учитывая, что количество и тип данных Коллекционные процессы — это специфические для окружающей среды и использование ресурсов коллекционера также зависит от настроенных процессоров, важно помещать проверки в отношении использования памяти.

  3. Очередное повторение Этот процессор настоятельно рекомендуется настроить для каждого коллектора, поскольку он минимизирует вероятность сброшенного данных из-за задержек в обработке или выпусках экспортировки данных.

processors:
      batch:
        send_batch_size: 1000
        timeout: 10s
      memory_limiter:
        # Same as --mem-ballast-size-mib CLI argument
        ballast_size_mib: 683
        # 80% of maximum memory up to 2G
        limit_mib: 1500
        # 25% of limit up to 2G
        spike_limit_mib: 512
        check_interval: 5s
      queued_retry:
        num_workers: 4
        queue_size: 100
        retry_on_failure: true

Вы можете найти подробную информацию об этих процессорах и многое другое в Opentelemetry Collector Github Reppo Отказ

Экспортеры

В этом примерном коде мы создали два экспортеров.

  1. Кафка/следы Это форварды собрали следы, чтобы написать в тему кафки, названной как otlp_spans Отказ

  2. Кафка/Метрики Это форварды собрали метрики, чтобы написать в тему кафки, названной как otlp_metrics Отказ

exporters:
      kafka/traces:
        brokers:
          - signoz-kafka:9092
        topic: 'otlp_spans'
        protocol_version: 2.0.0
      kafka/metrics:
        brokers:
          - signoz-kafka:9092
        topic: 'otlp_metrics'
        protocol_version: 2.0.0

Вы также можете настроить расширения, которые обеспечивают такие вещи, как мониторинг здоровья коллектора OpenTelemetry.

Расширения

Расширения предоставляют возможности на вершине первичной функциональности коллектора OpenTelemetry.

В этом примере мы позволили два расширения.

  1. Проверка здоровья Это позволяет URL-адрес, который можно использовать для проверки состояния коллектора OpenTelemetry.

  2. ZPages Он позволяет конечной точкой HTTP, которая обеспечивает живые данные для отладки различных компонентов коллектора OpenTelemetry.

extensions:
      health_check: {}
      zpages: {}

Настройка раздела обслуживания и трубопроводы для передачи данных

Все настроенные компоненты должны быть включены через трубопроводы в разделе службы. Если компонент не определен в разделе службы, то он не включен. Трубопроводы делают коллектор OpenTelemetry A Moan-есть компонент в вашей архитектуре. Он обеспечивает гибкость получения и экспорта данных в нескольких форматах.

В приведенном ниже примере, показанном ниже, мы позволили два трубопровода.

  1. Следы в этом трубопроводе мы можем получить следы в jaeger и otlp. форматы. Затем мы используем три процессора на собранных следах, а именно memory_limiter , партия и queued_retry. . Мы экспортируем обработанные следы в темы Кафки.
  2. Метрики в трубопроводе, мы получаем метрики в ОТЛП форматы. Процесс собранных метрик с использованием пакетного процессора, а затем экспортируйте обработанные метрики в темы кафки.
service:
      extensions: [health_check, zpages]
      pipelines:
        traces:
          receivers: [jaeger, otlp]
          processors: [memory_limiter, batch, queued_retry]
          exporters: [kafka/traces]
        metrics:
          receivers: [otlp]
          processors: [batch]
          exporters: [kafka/metrics]

Образец файла конфигурации коллектора OpenTelemetry Collector. (Источник: Signoz )

apiVersion: v1
kind: ConfigMap
metadata:
  name: otel-collector-conf
  labels:
    app: opentelemetry
    component: otel-collector-conf
data:
  otel-collector-config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:
      jaeger:
        protocols:
          grpc:
          thrift_http:
    processors:
      batch:
        send_batch_size: 1000
        timeout: 10s
      memory_limiter:
        # Same as --mem-ballast-size-mib CLI argument
        ballast_size_mib: 683
        # 80% of maximum memory up to 2G
        limit_mib: 1500
        # 25% of limit up to 2G
        spike_limit_mib: 512
        check_interval: 5s
      queued_retry:
        num_workers: 4
        queue_size: 100
        retry_on_failure: true
    extensions:
      health_check: {}
      zpages: {}
    exporters:
      kafka/traces:
        brokers:
          - signoz-kafka:9092
        topic: 'otlp_spans'
        protocol_version: 2.0.0
      kafka/metrics:
        brokers:
          - signoz-kafka:9092
        topic: 'otlp_metrics'
        protocol_version: 2.0.0
    service:
      extensions: [health_check, zpages]
      pipelines:
        traces:
          receivers: [jaeger, otlp]
          processors: [memory_limiter, batch, queued_retry]
          exporters: [kafka/traces]
        metrics:
          receivers: [otlp]
          processors: [batch]
          exporters: [kafka/metrics]

Начало работы с opentelemetry

OpenTelemetry предоставляет поставщик-агностический способ собирать и управлять телеметрическими данными. Следующим шагом является выбор инструмента «Анализ Backend», который может помочь вам понять ощущение собранных данных. Signoz Это платформа мониторинга и наблюдаемой платформы мониторинга производительности приложений с открытым исходным стеком.

Если у вас установлен Docker, начать работу с SignoD просто требует трех простых шагов в командной строке:

git clone https://github.com/SigNoz/signoz.git
cd signoz/deploy/
./install.sh

Вы можете узнать больше о развертывании Signoz из его Документация Отказ

Signoz можно использовать для визуализации метрик и следов с графиками, которые могут включать быстрые идеи для ваших команд.

Signoz UI, показывающий обзор приложений, такие как RPS, 50-й/90-й/99-й процентильный задержка, и частота ошибок

Вы можете попробовать SignoD, посетив его GitHub Repo 👇

Оригинал: «https://dev.to/signoz/everything-you-need-to-know-about-opentelemetry-collector-l7f»