Я пытаюсь инструментировать пример приложения Go с помощью автоматического инструмента OTel, однако, когда я запускаю kubectl logs -l app.kubernetes.io/name=opentelemetry-operator --container manager -n opentelemetry-operator-system --follow, он возвращает:
{"level": "ERROR", timestamp: "2024-06-02T14:58:46.515432187Z", "message": "поддержка автоматического инструментирования Go не включена", "namespace": "default"}.
Согласно документам OTel:
Если вы хотите использовать автоматическое инструментирование Go, вам необходимо включить функцию Gate. Подробности см. в разделе «Управление возможностями инструментов».
Следовательно, я предполагаю, что моя проблема связана с этой ссылкой https://github.com/open-telemetry/opentelemetry-operator?tab=readme-ov-file#controlling-instrumentation-capabilities, однако это не так. ясно, как установить флаг включения-го-инструментации как true.

Как мы видим из кода здесь https://github.com/open-telemetry/opentelemetry-operator/blob/db1598095161ea75389165ee374f05fb46ee4bf3/main.go#L153, это флаг командной строки для оператора. Вот как бы я это включил.
curl -O https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml
...
spec:
containers:
- args:
- --metrics-addr=127.0.0.1:8080
- --enable-leader-election
- --zap-log-level=info
- --zap-time-encoding=rfc3339nano
- --enable-nginx-instrumentation=true
- --enable-go-instrumentation=true
env:
- name: SERVICE_ACCOUNT_NAME
valueFrom:
fieldRef:
fieldPath: spec.serviceAccountName
image: ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.101.0
...
kubectl apply -f my-modified-opentelemetry-operator.yaml
Если вы используете helm, вы также можете использовать следующую команду helmupgrade -i:
--set manager.extraArgs = {"--enable-go-instrumentation=true"}
или обновите файл значений для Manager.extraArgs [] следующим образом:
extraArgs:
- --enable-go-instrumentation=true