1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-Gubernator

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
tracing.md 6.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 13:46 e1969a2

OpenTelemetry Tracing

Gubernator поддерживает OpenTelemetry для создания подробных трассировок поведения приложения и отправки их на сервер Jaeger Tracing.

Включение Jaeger Exporter

Jaeger exporter включён по умолчанию и отправляет трассировки на локальный порт 6831/udp.

Настройте с помощью переменных среды:

OTEL_EXPORTER_JAEGER_PROTOCOL=http/thrift.binary
OTEL_EXPORTER_JAEGER_ENDPOINT=http://<jaeger-server>:14268/api/traces

См. спецификацию конфигурации OpenTelemetry (Open Telemetry specification) для полного списка доступных переменных окружения и example.conf для возможных примеров переменных окружения.

Почему не установить OTEL_EXPORTER_JAEGER_AGENT_HOST?

Этот параметр работает путём экспорта дейтаграмм UDP на удалённый хост, а не на localhost. Это будет работать, но есть риск потери данных. Если диапазон экспортируется с достаточным количеством данных, он превысит размер MTU сетевого интерфейса, и дейтаграмма будет отброшена. Эта проблема возникает только при отправке на удаленный хост. Размер MTU петлевого интерфейса обычно намного больше, и эта проблема не возникает. При экспорте через HTTP ограничения MTU нет. Это эффективно обходит Jaeger Agent и отправляет данные напрямую в коллектор Jaeger.

HoneyComb.io

Используйте следующее, чтобы отправлять данные трассировки непосредственно на honeycomb.io. Для большинства рабочих нагрузок рекомендуется настроить Refinery.

OTEL_TRACES_SAMPLER=always_on
OTEL_EXPORTER_OTLP_PROTOCOL=otlp
OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443
OTEL_EXPORTER_OTLP_HEADERS=x-honeycomb-team=<your-api-key>

Выборка

Поскольку Gubernator генерирует трассировку для каждого запроса, объём трассировки может превысить ресурсы Jaeger. В рабочей среде рекомендуется установить OTEL_TRACES_SAMPLER=parentbased_traceidratio тип сэмплера и OTEL_TRACES_SAMPLER_ARG в десятичное число от 0 (нет) до 1 (все) для доли выборок трассировок.

OTEL_TRACES_SAMPLER=always_on
OTEL_TRACES_SAMPLER_ARG=1.0

Распределённые трассировки

OpenTelemetry определяет возможности для клиентов отправлять идентификаторы трассировок нижестоящим службам. Этот сервис свяжет диапазон клиента с диапазоном сервера. Когда клиент и сервер отправляют трассировки одному и тому же серверу Jaeger, трассировка будет отображаться с двумя связанными диапазонами в одном представлении. При отправке gRPC-запросов в Gubernator обязательно используйте otelgrpc interceptor, чтобы передать контекст трассировки клиента на сервер, чтобы он мог добавить диапазоны.

Смотрите раздел gRPC и cmd/gubernator-cli/main.go для примеров использования.

gRPC

Если вы используете Golang gRPC клиент Gubernator, клиент должен быть создан следующим образом:

    import (
        "go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
        "google.golang.org/grpc"
    )

    // ...

    opts := []grpc.DialOption{
        grpc.WithBlock(),
        grpc.WithUnaryInterceptor(otelgrpc.UnaryClientInterceptor()),
        grpc.WithStreamInterceptor(otelgrpc.StreamClientInterceptor()),
    }

    endpoint := "<your-endpoint-url>"
    conn, err := grpc.DialContext(ctx, endpoint, opts...)

HTTP

Если используется HTTP, идентификаторы трассировки должны быть переданы в заголовках HTTP. Обычно это делается с использованием инструментария OpenTelemetry, такого как otelhttp.

Смотрите реестр OpenTelemetry (OpenTelemetry registry) для инструментария с использованием многих других фреймворков HTTP.

Gubernator Standlone

Когда Gubernator развёрнут как отдельный демон, gRPC-сервис Gubernator будет получать встроенные идентификаторы трассировок в запросах от объекта контекста клиента. Для этого клиент должен быть настроен на встраивание идентификаторов трассировок. Кодовую базу как модуль Go, почти все функции Губернитора создают промежутки, связанные с идентификаторами трассировки, встроенными в объект context.

Следуйте тем же шагам, чтобы настроить свою кодовую базу аналогично автономному Губернатору, указанному выше.

Библиотека трассировки Holster

Подробнее читайте по ссылке: https://github.com/mailgun/holster/blob/master/tracing/README.md

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-Gubernator.git
git@api.gitlife.ru:oschina-mirror/mirrors-Gubernator.git
oschina-mirror
mirrors-Gubernator
mirrors-Gubernator
master