[英]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.