Перейти к основному содержанию
Перейти к основному содержанию

Миграция SDKs из Elastic

The Elastic Stack предоставляет два типа языковых SDK для инструментирования приложений:

  1. Официальные APM-агенты Elastic – они разработаны специально для использования с Elastic Stack. В настоящее время для этих SDK нет возможности прямой миграции. Приложения, использующие их, потребуется переинструментировать с использованием соответствующих ClickStack SDK.

  2. Дистрибутивы OpenTelemetry от Elastic (EDOT SDK) – это дистрибутивы стандартных OpenTelemetry SDK от Elastic, доступные для .NET, Java, Node.js, PHP и Python. Если ваше приложение уже использует EDOT SDK, повторно инструментировать код не требуется. Вместо этого вы можете просто перенастроить SDK для экспорта телеметрии в OTLP Collector, входящий в состав ClickStack. Подробности смотрите в разделе «Migrating EDOT SDKs».

Используйте ClickStack SDK, когда это возможно

Хотя стандартные OpenTelemetry SDK поддерживаются, мы настоятельно рекомендуем использовать для каждого языка распространяемые ClickStack SDK. Эти дистрибутивы включают дополнительное инструментирование, улучшенные значения по умолчанию и специальные расширения, разработанные для бесшовной работы с конвейером ClickStack и интерфейсом HyperDX. Используя ClickStack SDK, вы сможете задействовать расширенные возможности, такие как стек-трейсы исключений, которые недоступны в «чистых» OpenTelemetry или EDOT SDK.

Миграция EDOT SDKs

Аналогично ClickStack SDKS на базе OpenTelemetry, Elastic Distributions of the OpenTelemetry SDKs (EDOT SDKs) представляют собой модифицированные версии официальных OpenTelemetry SDKs. Например, EDOT Python SDK — это дистрибутив OpenTelemetry Python SDK, модифицированный вендором и предназначенный для бесшовной работы с Elastic Observability.

Поскольку эти SDKS основаны на стандартных библиотеках OpenTelemetry, миграция на ClickStack тривиальна — повторная инструментация не требуется. Достаточно скорректировать конфигурацию, чтобы направлять данные телеметрии в ClickStack OpenTelemetry Collector.

Конфигурирование выполняется по стандартным механизмам OpenTelemetry. Для Python это обычно делается через переменные окружения, как описано в документации OpenTelemetry Zero-Code Instrumentation.

Типичная конфигурация EDOT SDK может выглядеть следующим образом:

export OTEL_RESOURCE_ATTRIBUTES=service.name=<имя-приложения>
export OTEL_EXPORTER_OTLP_ENDPOINT=https://my-deployment.ingest.us-west1.gcp.cloud.es.io
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=ApiKey P....l"

Для миграции на ClickStack обновите endpoint так, чтобы он указывал на локальный OTLP Collector, и измените заголовок авторизации:

export OTEL_RESOURCE_ATTRIBUTES=service.name=<имя-приложения>
export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
export OTEL_EXPORTER_OTLP_HEADERS="authorization=<ВАШ_КЛЮЧ_API_ПРИЁМА>"

Ваш ключ API для приёма данных генерируется приложением HyperDX и его можно найти в разделе Team Settings → API Keys.

Ingestion keys