菜单
正式发布 (GA) 开源

loki.relabel

loki.relabel 组件通过应用一个或多个重写标签规则,重写传递给其接收器的每个日志条目的标签集,并将结果转发到组件参数中的接收器列表。

如果在应用重写标签规则后没有标签保留,则日志条目将被丢弃。

loki.relabel 最常见的用途是过滤日志条目或标准化传递给一个或多个下游接收器的标签集。rule 块按照它们在配置文件中出现的顺序应用于每个日志条目的标签集。可以通过调用 rules 导出字段中的函数来检索已配置的规则。

如果您正在寻找一种处理日志条目内容的方法,请改用 loki.process 组件

您可以通过为多个 loki.relabel 组件指定不同的标签来区分它们。

用法

alloy
loki.relabel "<LABEL>" {
  forward_to = <RECEIVER_LIST>

  rule {
    ...
  }

  ...
}

参数

您可以将以下参数与 loki.relabel 一起使用

名称类型描述默认值必需
forward_tolist(receiver)重写标签后日志条目的转发目的地。
max_cache_sizeint重写标签缓存中保留的最大元素数量10,000

您可以将以下块与 loki.relabel 一起使用

名称描述必需
rule应用于接收到的日志条目的重写标签规则。

rule

rule 块包含可以应用于输入日志的任何重写标签规则的定义。如果定义了多个 rule 块,则转换按从上到下的顺序应用。

您可以使用以下参数配置 rule。所有参数都是可选的。省略的字段将采用其默认值。

名称类型描述默认值必需
actionstring要执行的重写标签操作。replace
modulusuint一个正整数,用于计算哈希后的源标签值的模。
regexstring一个有效的 RE2 表达式,支持带括号的捕获组。用于匹配使用 source_labelseparator 字段组合提取的值,或在 labelkeep/labeldrop/labelmap 操作期间过滤标签。(.*)
如果正则表达式匹配提取的值,则用于执行正则表达式替换的值。支持先前捕获的组。stringseparator"$1"
用于连接 source_labels 中存在的值的分隔符。stringsource_labels;
list(string)要选择其值的标签列表。其内容使用 separator 连接并与 regex 匹配。target_label
写入结果值的标签。string您可以使用以下操作

drop - 丢弃 regex 匹配使用 source_labelsseparator 提取的字符串的日志。

  • dropequal - 丢弃连接后的 source_labelstarget_label 匹配的目标。
  • hashmod - 对连接后的标签进行哈希处理,计算其对 modulus 的模,并将结果写入 target_label
  • keep - 保留 regex 匹配使用 source_labelsseparator 提取的字符串的日志。
  • keepequal - 丢弃连接后的 source_labelstarget_label 不匹配的目标。
  • labeldrop - 将 regex 与所有标签名称匹配。任何匹配的标签都将从日志的标签集中移除。
  • labelkeep - 将 regex 与所有标签名称匹配。任何不匹配的标签都将从日志的标签集中移除。
  • labelmap - 将 regex 与所有标签名称匹配。任何匹配的标签都将根据 replacement 字段的内容进行重命名。
  • lowercase - 将 target_label 设置为连接后的 source_labels 的小写形式。
  • replace - 将 regex 与连接后的标签匹配。如果匹配成功,则使用 replacement 字段的内容替换 target_label 的内容。
  • uppercase - 将 target_label 设置为连接后的 source_labels 的大写形式。
  • 注意

正则表达式捕获组可以使用 $CAPTURE_GROUP_NUMBER${CAPTURE_GROUP_NUMBER} 表示法引用。

导出字段

以下字段被导出,可以被其他组件引用

receiver

名称类型描述
用于发送日志行以进行重写标签的输入接收器。用于发送日志行以进行重写标签的输入接收器。rules
RelabelRules当前配置的重写标签规则。组件健康状态

只有在给定无效配置时,loki.relabel 才会被报告为不健康。在这种情况下,导出字段将保留其最后健康的数值。

调试信息

loki.relabel 不会暴露任何组件特定的调试信息。

调试指标

loki_relabel_entries_processed (计数器): 已处理的日志条目总数。

  • loki_relabel_entries_written (计数器): 已转发的日志条目总数。
  • loki_relabel_cache_misses (计数器): 缓存未命中总数。
  • loki_relabel_cache_hits (计数器): 缓存命中总数。
  • loki_relabel_cache_size (仪表盘): 重写标签缓存的总大小。
  • 示例

以下示例创建一个 loki.relabel 组件,该组件仅转发其 'level' 值为 'error' 的日志条目。

loki.relabel 可以接受来自以下组件的参数

alloy
loki.relabel "keep_error_only" {
  forward_to = [loki.write.onprem.receiver]

  rule {
    action        = "keep"
    source_labels = ["level"]
    regex         = "error"
  }
}

兼容组件

导出 Loki LogsReceiver 的组件

  • loki.relabel 具有可以被以下组件消费的导出项

消费 Loki LogsReceiver 的组件

  • 连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。

正则表达式捕获组可以使用 $CAPTURE_GROUP_NUMBER${CAPTURE_GROUP_NUMBER} 表示法引用。

此页面是否有帮助?