在 prometheus/grafana 中获取不同标签值的计数

Posted

技术标签:

【中文标题】在 prometheus/grafana 中获取不同标签值的计数【英文标题】:Getting a count of distinct label values in prometheus/grafana 【发布时间】:2020-05-13 02:38:28 【问题描述】:

我正在尝试在 Grafana 中创建一个表格/图表,显示在给定时间范围内(例如过去 24 小时)登录给定应用程序的唯一用户总数。我有一个指标app_request_path,它记录了每分钟到达特定路径的请求数:

app_request_countapp="my-app", path="/login"

这给了我以下信息:

    app_request_countapp="my-app",path="/login",status="200",username="username1"
    app_request_countapp="my-app",path="/login",status="200",username="username2"

现在我想计算唯一用户名的数量,所以我运行:

count_values("username", app_request_countapp="my_app", path="/login")

我得到:

    username="0"
    username="1"
    username="2"
    username="3"
    username="4"
    username="5"

我错过了什么/我做错了什么?理想情况下,我希望获得一个显示过去 24 小时内登录的唯一用户名总数的单个标量值。

非常感谢。

【问题讨论】:

【参考方案1】:

count without (username)(app_request_count)

count_values 用于度量值,count 用于时间序列。也不建议将用户名之类的东西作为标签值,因为它们往往是高基数。它们也可能是 PII,这可能会产生法律影响。

【讨论】:

谢谢!这并没有完全满足我的需要,因为它没有涵盖一个时间段。但是,我确实设法对其进行了调整以实现我想要的:count without (username) (sum(sum_over_time(app_request_countapp="my-app", path="/login"[24h])) by (username)) 非常感谢您的帮助!

以上是关于在 prometheus/grafana 中获取不同标签值的计数的主要内容,如果未能解决你的问题,请参考以下文章

prometheus+grafana简介与linux下的安装

prometheus+grafana监控linux

prometheus+grafana监控rabbitmq

prometheus+grafana监控nginx

prometheus+grafana监控rabbitmq

prometheus+grafana监控linux