我试图使用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的指标。

通过验证我们所发现的东西

请提供网址参考