将从 AWS Fargate Task 公开的自定义应用程序指标集成到 prometheus

Posted

技术标签:

【中文标题】将从 AWS Fargate Task 公开的自定义应用程序指标集成到 prometheus【英文标题】:Integrate custom application metrics exposed from AWS Fargate Task to prometheus 【发布时间】:2020-10-21 12:39:28 【问题描述】:

我有一个在 AWS Fargate 中作为任务运行的 java 应用程序,该应用程序公开了自定义应用程序指标。

MaxwellMetrics_transaction_execution_timequantile="0.5", 0.0

最终需要与 Prometheus 集成。这是第 3 方应用程序,在最坏的情况下触摸代码。日志在 AWS Cloudwatch 中可用。同样,我们可以在 Cloud Watch 中获取指标吗?

附加信息

每当以 FARGATE 类型启动任务时,都会创建一组新的公共和私有 IP,并且此应用程序需要将其关闭并启动,因此需要更好的方法来访问 /metric 端点​​暴露。使用指标导出器需要更改源代码以发出日志以存储中间体。

如前所述,这将是最后的选择。

【问题讨论】:

【参考方案1】:

您说您的指标在 CW 中可用。您是否考虑过使用Prometheus CW exporter?

【讨论】:

指标在应用程序 api 端点而不是 CW 处公开。我的问题是,我们如何获得 CW 中的指标。 对不起,我误读了您的问题。您的应用如何公开这些指标?他们会吐到标准输出吗?它们在文件中可用吗?它们是否可以通过 REST 端点获得?我没有受过教育的猜测是,如果您需要将它们作为自定义指标降落在 CW 中,您需要编写一些逻辑来提取它们,然后将它们 put 像 this 一样放到 CW 中。也许通过将此逻辑作为 sidecar 运行以防止更改您的应用程序?

以上是关于将从 AWS Fargate Task 公开的自定义应用程序指标集成到 prometheus的主要内容,如果未能解决你的问题,请参考以下文章

指定 aws ECS/Fargate 容器依赖项无法部署

AWS ECS Fargate 不带负载均衡器用于内部服务

Terraform Fargate 任务定义请求执行角色

AWS Fargate

AWS Fargate 免费套餐定价

AWS Fargate 启动时间