У нас была одна и та же задача, и было два подхода:
- Пометить экземпляр EC2 на основе запущенных задач, а затем найти экземпляры EC2 в Prometheus на основе тегов. Это хорошо работает, когда у нас есть одна задача на экземпляр, потому что порт метрик известен. Возможно, есть способы расширить это и поддержать множество задач.
- Запускать задачу для каждого экземпляра EC2, который используется в качестве экспортера для всех задач, запущенных в этом экземпляре. Он опрашивает ECS, обнаруживает, что задачи и порты прослушивания для каждой задачи и очищает все задачи. В Prometheus вы можете найти все экземпляры EC2 в кластере и очистить этот экспортер в каждом. Очевидно, вам нужно будет пометить метрики в зависимости от задачи, из которой они были прочитаны.
если бы мне пришлось делать это снова, я бы подумал об использовании Consul для регистрации задач и их обнаружения в Prometheus. если вы уже пользуетесь консулом, вам стоит попробовать это направление.
Надеюсь, это поможет.