Вот настройки, которые у меня есть на данный момент.
Мне выдал экземпляр EC2 от DevOps от моей команды, и экземпляр EC2 претерпел некоторые изменения.
Насколько я понимаю, datadog-agent (версия 6) работает на экземпляре EC2, который у меня есть в данный момент. Запуск sudo datadog-agent status
дал следующее:
===============
Agent (v6.11.0)
===============
...
Выполнение следующего кода (с использованием библиотеки datadogpy
) на моем хосте EC2 позволяет мне загружать свои пользовательские метрики в datadog:
from datadog import statsd
statsd.gauge(CUSTOMISED_CPU_USAGE,
value=percentageCPUUse,
tags=[])
По сути, метрика берется из AWS (а затем манипулирует ею), с чем у меня нет проблем. Инициализация не требуется. Это устаревший код.
Однако, как только я попробую тот же код в Docker-контейнере (используя Docker на основе Alpine), метрики в Datadog не отображаются. Другими словами, datadog не установлен в контейнере Docker.
Вот что я пробовал:
(1) Использование docker bind
для предоставления /etc/datadog-agent/datadog.yaml
контейнеру Docker - более конкретно, -v /etc/datadog-agent/:/etc/datadog-agent/
, чтобы позволить Docker-контейнеру иметь доступ к ключу API в datadog.yaml
(2) На основе докера на изображении из журнала данных. Тем не менее, я понимаю, что одновременно может работать только одна служба данных.
(3) Установите non_local_traffic: yes
и перезапустите службу, как указано здесь: агент данных недоступен изнутри док-контейнера
Я пытался отладить это довольно долго, и это довольно головная боль.