loki.source.heroku
loki.source.heroku
监听Heroku消息通过TCP连接,并将它们转发给其他 loki.*
组件。
该组件为给定的 listener
块启动一个新的heroku监听器,并将传入条目分散到 forward_to
中的接收者列表。
在使用 loki.source.heroku
之前,需要在Heroku中配置Alloy将要监听的URL。按照以下步骤操作 Heroku HTTPS Drains 文档 使用Heroku CLI,以下命令示例:
heroku drains:add [http|https]://HOSTNAME:PORT/heroku/api/v1/drain -a HEROKU_APP_NAME
可以通过为它们提供不同的标签来指定多个 loki.source.heroku
组件。
用法
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
的定义内部使用:
层次结构 | 名称 | 描述 | 必需 |
---|---|---|---|
http | http | 配置接收请求的HTTP服务器。 | 否 |
gRPC | gRPC | 配置接收请求的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
组件。
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 上监听新连接。
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
可以接受来自以下组件的参数
- 导出 Loki
LogsReceiver
的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。有关更多详细信息,请参阅相关文档。