菜单
开源

loki.source.heroku

loki.source.heroku 监听Heroku消息通过TCP连接,并将它们转发给其他 loki.* 组件。

该组件为给定的 listener 块启动一个新的heroku监听器,并将传入条目分散到 forward_to 中的接收者列表。

在使用 loki.source.heroku 之前,需要在Heroku中配置Alloy将要监听的URL。按照以下步骤操作 Heroku HTTPS Drains 文档 使用Heroku CLI,以下命令示例:

shell
heroku drains:add [http|https]://HOSTNAME:PORT/heroku/api/v1/drain -a HEROKU_APP_NAME

可以通过为它们提供不同的标签来指定多个 loki.source.heroku 组件。

用法

alloy
loki.source.heroku "LABEL" {
    http {
        listen_address = "LISTEN_ADDRESS"
        listen_port    = LISTEN_PORT
    }
    forward_to = RECEIVER_LIST
}

参数

loki.source.heroku 支持以下参数

名称类型描述默认值必需
use_incoming_timestamp布尔型是否使用从Heroku接收的时间戳。false
labels映射(字符串)与每个接收到的Heroku记录关联的标签。{}
forward_to列表(日志接收者)要发送日志条目的接收者列表。
relabel_rules重新标记规则应用于日志条目的重新标记规则。{}
graceful_shutdown_timeout持续时间服务器优雅关闭的超时时间。如果配置,则必须大于零。“30s”

可以修改 relabel_rules 字段,使用来自 loki.relabel 组件的 rules 导出值来在将日志条目转发到 forward_to 中的接收者列表之前应用一个或多个重新标记规则。

区块

以下区块支持在 loki.source.heroku 的定义内部使用:

层次结构名称描述必需
httphttp配置接收请求的HTTP服务器。
gRPCgRPC配置接收请求的gRPC服务器。

http

http 块配置HTTP服务器。

可以使用以下参数来配置 http 块。任何省略的字段都使用其默认值。

名称类型描述默认值必需
conn_limit整型最大并发HTTP连接数。默认无限制。0
listen_address字符串服务器监听新连接的网络地址。默认为接受所有传入连接。""
listen_port整型服务器监听新连接的端口号。8080
server_idle_timeout持续时间HTTP服务器的空闲超时。"120s"
server_read_timeout持续时间HTTP服务器的读取超时。"30s"
server_write_timeout持续时间HTTP服务器的写入超时。"30s"

gRPC

grpc 块配置 gRPC 服务器。

您可以使用以下参数来配置 grpc 块。任何省略的字段都采用其默认值。

名称类型描述默认值必需
conn_limit整型最大并发HTTP连接数。默认无限制。0
listen_address字符串服务器监听新连接的网络地址。默认为接受所有传入连接。""
listen_port整型服务器监听新连接的端口号。默认为随机空闲端口号。0
max_connection_age_grace持续时间max_connection_age 之后添加的时间段,之后将强制关闭连接。"infinity"
max_connection_age持续时间连接在关闭之前可能存在的最大时长。"infinity"
max_connection_idle持续时间空闲连接关闭的时长。"infinity"
server_max_concurrent_streams整型gRPC 调用的并发流数量限制(0 = 无限制)。100
server_max_recv_msg_size整型服务器可以接收的 gRPC 消息大小限制(字节)。4MB
server_max_send_msg_size整型服务器可以发送的 gRPC 消息大小限制(字节)。4MB

标签

labels 映射应用于组件读取的每条消息。

以下以 __ 为前缀的内部标签都可用,但如果没有重新标记,则会被丢弃

  • __heroku_drain_host
  • __heroku_drain_app
  • __heroku_drain_proc
  • __heroku_drain_log_id

所有 URL 查询参数都将转换为 __heroku_drain_param_<name>

如果设置了 X-Scope-OrgID 标题,则将其转换为 __tenant_id__

导出字段

loki.source.heroku 不导出任何字段。

组件健康状态

loki.source.heroku 仅在配置无效时报告为不健康。

调试信息

loki.source.heroku 针对 Heroku 监听器显示一些调试信息

  • 监听器当前是否正在运行。
  • 监听地址。

调试度量

  • loki_source_heroku_drain_entries_total(计数器):收到 Heroku 目标的成功条目数。
  • loki_source_heroku_drain_parsing_errors_total(计数器):接收 Heroku 消息时的解析错误数。

示例

此示例在指定的端口上监听 Heroku 消息 over TCP,并使用 Heroku 时间戳将它们转发到 loki.write 组件。

alloy
loki.source.heroku "local" {
    http {
        listen_address = "0.0.0.0"
        listen_port    = 4040
    }
    use_incoming_timestamp = true
    labels                 = {component = "loki.source.heroku"}
    forward_to             = [loki.write.local.receiver]
}

loki.write "local" {
    endpoint {
        url = "loki:3100/api/v1/push"
    }
}

使用默认的 http 块设置时,服务器将在端口 8080 上监听新连接。

alloy
loki.source.heroku "local" {
    use_incoming_timestamp = true
    labels                 = {component = "loki.source.heroku"}
    forward_to             = [loki.write.local.receiver]
}

loki.write "local" {
    endpoint {
        url = "loki:3100/api/v1/push"
    }
}

兼容组件

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

注意

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