Loki 文档声明如下:
尝试将值限制在尽可能小的集合内。对于 Loki 可以处理的内容,我们没有完美的指导,但可以考虑动态标签的个位数或 10 个值。这对于静态标签来说不太重要。例如,如果您的环境中有 1,000 台主机,那么主机标签包含 1,000 个值就可以了。
根据我的理解,Loki 中的每个标签组合都会创建一个新的流。因此
request=GET,host=my-host-1
将写入与 request=POST,host=my-host-1
不同的文件。
但是什么是动态标签和静态标签?搜索“loki 静态与动态标签”不会产生有用的结果。
我最好的猜测是——如果我们将标签描述为键、值对——那么静态标签是键固定但值可以是任何内容的标签,动态标签是键和值都可以是任何内容的标签。
我认为静态标签和动态标签之间唯一的根本区别在于,第二个标签通常具有无界或无限的标签值。这个不受控制的事实可能会给洛基带来一个大问题。如果值的数量有限且受控,则动态标签并不比静态标签更差。无论如何,请始终牢记以下规则:“在知道需要某物之前,不要为某物添加标签!”。
您可以在以下位置找到很多有价值的信息:
据我了解(文档中并不是100%清楚)
安装指南中所示的静态标签是根据环境(应用程序、操作系统、容器名称等)编译的
动态标签在运行时添加(用户 ID、事件类型等),这就是为什么应谨慎使用它们,因为键/值可能是无限的。
线路滤波器
标签过滤器line filter
grep
。 这意味着 Loki 必须对所有内容和流进行 grep。
另一方面,如果定义大量静态标签,则会增加“基数”成本,并可能导致性能显着下降。 高基数导致 Loki 构建一个巨大的索引并将数千个小块刷新到对象存储中。那么我们该怎么办?使用动态标签;摄入期间避免 regex
和
high cardinality
问题。 为了处理动态标签,我们需要使用
结构化元数据。