AWS Лучшая практика использования пользовательских метрик CloudWatch - PullRequest
0 голосов
/ 09 марта 2020

Я запускаю свое Python веб-приложение на EC2 и хочу, чтобы оно сообщало некоторые пользовательские (на уровне приложения) метрики в CloudWatch.

Примерные показатели - это длительность запроса (восходящая линия связи) и аналогичные.

Из того, что я понимаю, для этого мне нужно использовать либо boto3, либо CLI AWS. Однако:

  1. Мое приложение не использует boto3 для функциональности, поэтому использование его только для отчетности по метрикам кажется излишним
  2. Я должен пройти проверку подлинности - в отличие от Lambda, просто тот факт, что я работаю в EC2, не означает, что я автоматически аутентифицируюсь.

Какая лучшая практика здесь? У моего приложения нет для запуска на EC2 (его можно запустить на GCP, Azure или на пользовательском сервере), поэтому я действительно не хочу импортировать boto3 в код.

Ответы [ 2 ]

2 голосов
/ 09 марта 2020
  • Вы можете прикрепить роль и получить доступ к AWS службам без учетных данных.
  • Все зависит от вашего показателя c. Вероятно, вам не нужно использовать CloudWatch Metrics, но в некоторых случаях X-Ray.
  • Если ваше приложение не использует оба варианта3, это не означает, что вам нужно это использовать, но это самый простой способ вызвать AWS API
  • Если вы используете GCP или Azure, пожалуйста, используйте их услуги мониторинга.
  • Если вам нужно собрать какие-либо пользовательские метрики из любого места, воспользуйтесь сервисом метрик или внедрите собственный API
1 голос
/ 10 марта 2020

Вы можете посмотреть Формат встроенных метрик CloudWatch (EMF) .

Вам потребуется установить и настроить Агент CloudWatch на вашем экземпляре EC2, а затем вы можете используйте python библиотеку EMF для публикации sh метрик.

При таком подходе:

  • Ваше приложение не вызывает API-интерфейсы CloudWatch напрямую. Агент CloudWatch выполняет публикацию.
  • Вы получаете пользовательские метрики и записи журнала EMF в журналах CloudWatch, которые затем можно использовать с Insight Logs Insight и Insight Contributor.

Но вам все еще нужно предоставить агенту CloudWatch способ аутентификации в API-интерфейсах CloudWatch. На экземплярах EC2 это делается через роль, которую выполняет ваш экземпляр.

...