Как передать флаг «enable-go-instrumentation» оператору OpenTelemetry?

Я пытаюсь инструментировать пример приложения 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.

Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
3
0
181
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как мы видим из кода здесь https://github.com/open-telemetry/opentelemetry-operator/blob/db1598095161ea75389165ee374f05fb46ee4bf3/main.go#L153, это флаг командной строки для оператора. Вот как бы я это включил.

  1. Загрузите ЯМЛ
curl -O https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

  1. Отредактируйте спецификацию, включив в нее инструменты включения.
...
    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
...
  1. Сохраните и примените
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

Другие вопросы по теме