我试图使用ADOT Collector将Amazon ECS的指标数据可视化在Prometheus和Grafana上
首先
在上一篇文章中,我们介绍了如何在Amazon ECS上使用Container Insights进行监控。使用AWS CLI的仅一个命令,即可快速启用Container Insights,这是其特点之一。
我认为在Container Insights中可以进行足够的操作,但个人有一个疑虑。在Container Insights中,无法获取到任务单位的过去指标。虽然可以获取到最新的指标,但无法回溯到过去进行确认。虽然可以获取到服务单位的过去指标,这已经足够了。但个人有时想查看任务单位的过去指标,所以会尝试验证其他方法。
用Prometheus和Grafana进行可视化
在ECS中,可以利用ADOT Collector(AWS Distro for OpenTelemetry Collector)来收集容器的指标数据。通过使用它,可以按任务单位获取和可视化过去的指标数据。本次整理将介绍如何使用ADOT Collector来使用Prometheus和Grafana的托管服务。
首先介绍一下可视化的方式,以下是一个简单的可视化示例,可以根据每个ECS任务获取内存和CPU的使用率。由于可视化可以自动按照ECS任务的增加、减少或重新创建而实时更新,因此可以方便地进行监控。
在图表中,可以看到由「5b59c2643a7e4dba9749b8ad98d86ecb」和「c3b87ca3f42540689ac3f0a00f23843f」组成的字符串序列,这些是ECS的任务ID。黄色和绿色的线表示两个任务的状态。
那么,让我们来确认一下使用 ADOT Collector 的配置方法吧!
亚马逊提供的Prometheus托管服务
亚马逊管理的Prometheus服务(AMP)已经创建好了。在AMP的详细页面中,可以看到Endpoint – remote write URL的显示。
创建ECS任务定义
创建ECS的任务定义。在任务定义中,有一个启用ADOT收集器的选项。选择创建新的任务定义。
我会随便填写一个名字。
选择第一个容器映像并随意指定。内容可以是任何东西,该容器是一个独立应用程序的容器位置。
同样地,也要随意指定第二个容器图像。
按下”下一步”按钮。
指定角色。以下是授予 ADOT Collector 相关权限的角色。
日志收集部分保持默认设置。
这里是与ADOT Collector相关的重要部分。通过以下方式指定,可以在ECS任务内启动ADOT Collector容器。
-
- Use trace colelction : on
-
- Use metric collection : on
- Amazon Managed Service for Prometheus の [Endpoint – remote write URL] を指定
点击“Create”。
任務的定义已经创建完成。
- Container に、自動的に aws-otel-collector が入っている。これは、AWS Distro for OpenTelemetry Collector のコンテナイメージとなる。
创建服务
使用创建的 ECS 任务来创建适当的服务。
随意设定并部署。
已经部署完成了。
ADOT Collector的日志
在 CloudWatch Logs 中,存在一个关于 ADOT Collector 的日志组。
如果你随意选择的话
有各种各样的日志信息。
Grafana权限设置
亚马逊托管的Grafana (AMG) 已预先启用,但需要进行权限设置才能访问AMP。
关于AMP,我们启用它。
更新中。
經過一段時間後,變成了「Active」。
使用Grafana进行数据可视化。
展示Grafana页面。
我选择使用AWS服务。
选择普罗米修斯。
选择地区并指定AMP,然后点击添加1个数据源。
打开仪表盘。
添加一个新的面板。
更改数据源,并选择AMP。
请按下“应用”按钮来指定以下字符串。每个任务都可以获取到 CPU 使用率。
ecs_task_cpu_utilized
{{aws_ecs_task_id}}
ECS CPU Utilized
另外,点击第二个“添加面板”按钮。
添加
添加有关内存的面板。
ecs_task_memory_utilized
{{aws_ecs_task_id}}
如此,已成功获取了有关内存和CPU的指标。
通过验证我们所发现的东西
请提供网址参考