Создавать инстансы opentelemetrycollector в различных режимах.
Создавать шаблон sidecar контейнера который будет запущен в тех подах на которые повесим нужную аннотацию.
Создавать объекты instrumentation которые (при соответствующей аннотации) автоматически настроят код сервиса на работу с otel.
Установка
cert-manager
OpenTelemetry Operator
Jaeger
Это лишь бэкенд для хранения метрик. Можно настроить любую другую систему
Otelcoll
Этот коллектор otel в текущем примере будет являться общим шлюзом получающим данные от sidecar контейнеров. Таким образом достаточно поменять лишь его настройки, а основную систему не трогать.
SIdecar
Это в своём роде шаблон контейнера который будет запускаться внутри каждого пода имеющего соответствующую аннотацию.
Instrumentation
Ресурс k8s, что определяет настройки otel которые будут вставлены в запущенный сервис. Иными словами например Инициализация OTEL в go не требуется. Достаточно создать такой объект и повесить нужные аннотации.
Аннотации сервиса
sidecar.opentelemetry.io/inject: "sidecar" - подключит в pod sidecar.
instrumentation.opentelemetry.io/inject-java: "true" - подключит код внутрь запущенного сервиса. На GolangS у меня не завелось