将指标从 AWS lambda 函数推送到 Prometheus Pushgateway

Ron*_*ang 5 amazon-web-services aws-lambda prometheus

我有一个应用程序,我必须每 5 分钟监控一次。但是,该应用程序没有 Prometheus 可以直接从中抓取的 /metrics 端口,我对该应用程序没有任何控制权。

作为一种解决方法,我编写了一个 Python 程序来手动抓取数据,并将这些数据转换为我自己的指标,例如仪表和计数器。然后我将这些指标推送到 pushgateway,供 Prometheus 从中获取。

在当地一切正常。现在,我想更进一步,使用 AWS Lambda 函数每 5 分钟为我提取一次数据并生成指标(这样我就不必让 python 程序在我的笔记本电脑上运行)。

我的问题是,而不是使用:

push_to_gateway(gateway='localhost:9091', job="Monitor", registry=registry)
Run Code Online (Sandbox Code Playgroud)

将我的指标推送到 pushgateway,这在 lambda 函数中会是什么?另外,我相信 pushgateway 应该托管在某个地方,以便 AWS 访问。我们如何做到这一点?

小智 5

您可以创建 lambda 并使用 cloudwatch 规则每 5 分钟运行一次。在 lambda 内部,您可以只卷曲 pushgateway,而不是调用 push_to_gateway。请参阅此处的示例。确保可以从 lambda 访问网关 - 在公共 ELB 后面或将它们都放在同一个 vpc 中。