Grafana Loki 中的静态标签与动态标签是什么?

问题描述 投票:0回答:4

Loki 文档声明如下:

尝试将值限制在尽可能小的集合内。对于 Loki 可以处理的内容,我们没有完美的指导,但可以考虑动态标签的个位数或 10 个值。这对于静态标签来说不太重要。例如,如果您的环境中有 1,000 台主机,那么主机标签包含 1,000 个值就可以了。

根据我的理解,Loki 中的每个标签组合都会创建一个新的流。因此

request=GET,host=my-host-1
将写入与
request=POST,host=my-host-1
不同的文件。

但是什么是动态标签和静态标签?搜索“loki 静态与动态标签”不会产生有用的结果。

我最好的猜测是——如果我们将标签描述为键、值对——那么静态标签是键固定但值可以是任何内容的标签,动态标签是键和值都可以是任何内容的标签。

grafana grafana-loki
4个回答
0
投票

我认为静态标签和动态标签之间唯一的根本区别在于,第二个标签通常具有无界或无限的标签值。这个不受控制的事实可能会给洛基带来一个大问题。如果值的数量有限且受控,则动态标签并不比静态标签更差。无论如何,请始终牢记以下规则:“在知道需要某物之前,不要为某物添加标签!”。

您可以在以下位置找到很多有价值的信息:

Loki 中的标签如何使日志查询更快更容易


0
投票

据我了解(文档中并不是100%清楚)

安装指南中所示的静态标签是根据环境(应用程序、操作系统、容器名称等)编译的

动态标签在运行时添加(用户 ID、事件类型等),这就是为什么应谨慎使用它们,因为键/值可能是无限的。


0
投票

只有一种标签!

区别在于用法。如果标签的值数量有限,则称为“静态”,如果可能性是无限的,则称为“动态”。 不要过度使用标签,仅在绝对关键的情况下使用它们,例如应用程序和环境。检查普罗米修斯不要过度使用标签,他们与洛基有相同的理念。

切勿在可能具有不可预测数量的值(例如 user_id 或请求 IP)的内容上使用标签。 查看

Loki 标签最佳实践

Loki 有两种类型的

日志流选择器

0
投票

线路滤波器

标签过滤器
  1. line filter
  2. 表达式对来自匹配日志流的聚合日志执行分布式
grep

。 这意味着 Loki 必须对所有内容和流进行 grep。

另一方面,如果定义大量静态标签,则会增加“基数”成本,并可能导致性能显着下降。
高基数导致 Loki 构建一个巨大的索引并将数千个小块刷新到对象存储中。
那么我们该怎么办?

使用动态标签;摄入期间避免 regex

high cardinality

问题。 为了处理动态标签,我们需要使用

结构化元数据

    

© www.soinside.com 2019 - 2024. All rights reserved.