繁体   English   中英

在 Grafana LOKI 上为发送日志的顶级客户创建每日摄取警报

[英]Create daily ingestion alerts on Grafana LOKI for top clients sending logs

有什么方法可以知道每个应用程序向 Grafana Loki 推送了多少数据?

例如,以下查询将计算标签“group”等于“tools”的日志行数,并按标签“instance”汇总它们:

sum by(instance) (count_over_time({group="tools"} [24h]))

您只能看到前 10 个,例如:

topk(10, sum by(instance) (count_over_time({group="tools"} [24h])))

找到了一种适用于我的问题的解决方案。

promtail_file_bytes_total 

该指标将给出从 promtail 推送到 Loki 的数据量。

但问题是这些指标只有关于节点的数据。

像这样

promtail_file_bytes_total{Env="prod"
app_kubernetes_io_instance="loki-distributed"
app_kubernetes_io_name="promtail"
cluster="prod-cluster"
cluster_name="prod-cluster"
controller_revision_hash="bf54474f9"
instance="10.200.16.204:3101"
job="kubernetes-pods"
kubernetes_namespace="<logging ns>"
kubernetes_pod_name="loki-distributed-promtail-<ID>"
origin_prometheus="production-cluster"
path="/var/log/pods/<namespace>_<podname>_<deployemntID>-<some other IDs>/0.log"
pod_template_generation="6"}

但路径 label 的文件路径包含有关应用程序的详细信息。

我使用label_replace选项创建了一个带有应用程序名称的新 label。

sum (label_replace(sort_desc(delta(promtail_file_bytes_total{path =~ "/var/log/pods/.*().*"}[24h])),  "app", "$1", "path", "/var/log/pods/(.*_.{9})-.*" )) by (app) /1024/1024

另一种选择是使用内置在 Prometheus 或 Grafana 上的录制规则。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM