Хорошо, поэтому я собираюсь ответить на это, основываясь на том, что вы сказали здесь:
Или лучший подход , если нет какой-либо поддержки / плагина для того же.
То, как я это делаю, используется нами через Прометей , в сочетании с cloudwatch_exporter
и alertmanager
.
Конфигурация cloudwatch_exporter
для мониторинга SQS будет выглядеть примерно так (это всего лишь две метрики, вам нужно будет добавить больше в зависимости от того, что вы хотите отслеживать):
tasks:
- name: ec2_cloudwatch
default_region: us-west-2
metrics:
- aws_namespace: "AWS/SQS"
aws_dimensions: [QueueName]
aws_metric_name: NumberOfMessagesReceived
aws_statistics: [Sum]
range_seconds: 600
- aws_namespace: "AWS/SQS"
aws_dimensions: [QueueName]
aws_metric_name: ApproximateNumberOfMessagesDelayed
aws_statistics: [Sum]
Затем вам нужно будет настроить прометей для очистки конечной точки cloudwatch_exporter
с интервалом, для чего я буду делать:
- job_name: 'somename'
scrape_timeout: 60s
dns_sd_configs:
- names:
- "some-endpoint"
metrics_path: /scrape
params:
task: [ec2_cloudwatch]
region: [us-east-1]
relabel_configs:
- source_labels: [__param_task]
target_label: task
- source_labels: [__param_region]
target_label: region
Затем вы настроите alertmanager
для оповещения на основе этихочищенные метрики;Я не предупреждаю об этих показателях, поэтому не могу привести пример.Но, чтобы дать вам представление об этой архитектуре, диаграмма ниже:
Если вам нужно использовать что-то вроде statsd
, вы можетеиспользуйте statsd_exporter
.И, на случай, если вам интересно, да Графана поддерживает Прометей .