猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Grafana/Prometheus 可视化多个 ips 作为查询
我想要一个图表,其中所有最近请求我的网络服务器的 IP 都显示为总请求数。这样的事情可行吗?我可以
通过
Prometheus 添加查询并在之后删除它吗?
有只小跳蛙
浏览 196
回答 1
1回答
ITMISS
从技术上讲,是的。您将需要:在您的服务器中公开一些指标(可能是一个计数器) - 例如,requests_count带有标签;说,ip每当您收到请求时,inc标签设置为请求者 IP 的指标在 Grafana 中,绘制指标图表,可能通过 IP 地址对其求和,以处理您有多个水平扩展的服务器处理请求的情况sum(your_prometheus_namespace_requests_count) by (ip)将LegendGrafana 中的图表设置为在{{ ip }}其代表的 IP 地址之后“命名”每一行然而,一个指标的每一个不同的标签值都会导致一个全新的指标存在于 Prometheus 时间序列数据库中;您可以认为一个指标在消耗内存方面requests_count{ip="192.168.0.1"}=1有点相似requests_count_ip_192_168_0_1{}=1。当前保存在 Prometheus TSDB 头中的每个指标实例都需要大约 3kB 的量级才能存在。这意味着,如果您要处理数百万个请求,那么仅凭这一指标,您就会用千兆字节的数据淹没 Prometheus 的内存。关于这个问题的更详细的解释存在于这个其他答案中:https ://stackoverflow.com/a/69167162/511258考虑到这一点,如果您确实知道您希望连接少量 IP 地址(可能在内部 Intranet 上,或者您分发给少数已知客户端的客户端),那么这种方法是有意义的,但是如果您正计划部署到网络,这将为人们提供一种非常简单的方法(在不知不觉中,很可能)使您的监控系统崩溃。您可能想要研究替代方案——例如,Grafana 能够从一些常见的日志聚合平台获取数据,因此也许您可以进行一些结构化(例如 JSON)日志记录,将其保存在 Elasticsearch 中,然后从中创建一个图表其中保存的数据。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Go
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续