otelcol.receiver.file_stats
otelcol.receiver.file_stats 从使用 glob 模式指定的文件和文件夹收集指标。
注意
otelcol.receiver.file_stats是上游 OpenTelemetry Collectorotelcol-contrib分发版中filestats接收器的封装。如果需要,Bug 报告或功能请求将重定向到上游仓库。
可以通过为其提供不同的标签来指定多个 otelcol.receiver.file_stats 组件。
警告
otelcol.receiver.file_stats仅在 macOS、Linux 和 Windows 上工作。
用法
otelcol.receiver.file_stats "LABEL" {
include = "GLOB_PATTERN"
output {
metrics = [...]
}
}参数
otelcol.receiver.file_stats 支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
include | string | 用于收集统计信息的路径的 Glob 模式。 | 是 | |
collection_interval | duration | 收集统计信息的频率。 | "1m" | 否 |
initial_delay | duration | 收集统计信息前的初始等待时间。 | "1s" | 否 |
timeout | duration | 收集的超时时间;0s 表示无超时。 | "0s" | 否 |
include 是一个 glob 模式,用于指定从哪些路径(文件和文件夹)收集统计信息。* 字符匹配目录中的条目,而 ** 包括子目录。例如,/var/log/**/*.log 匹配 /var/log 目录中所有递归地以 .log 结尾的文件和目录。
timeout 参数控制由 collection_interval 指定的每次收集的超时时间。超时适用于 include 参数匹配到的所有路径的整个收集过程。
块
otelcol.receiver.file_stats 的定义中支持以下块
| 层级 | 块 | 描述 | 必需 |
|---|---|---|---|
| metrics | metrics | 配置哪些指标将被发送到下游组件。 | 否 |
| metrics > file.atime | file.atime | 配置 file.atime 指标。 | 否 |
| metrics > file.count | file.count | 配置 file.count 指标。 | 否 |
| metrics > file.ctime | file.ctime | 配置 file.ctime 指标。 | 否 |
| metrics > file.mtime | file.mtime | 配置 file.mtime 指标。 | 否 |
| metrics > file.size | file.size | 配置 file.size 指标。 | 否 |
| resource_attributes | resource_attributes | 为发送到下游组件的指标配置资源属性。 | 否 |
| resource_attributes > file.name | file.name | 配置 file.name 资源属性。 | 否 |
| resource_attributes > file.name > metrics_include | metrics_include | 包含 file.name 资源属性的指标。 | 否 |
| resource_attributes > file.name > metrics_exclude | metrics_exclude | 排除 file.name 资源属性的指标。 | 否 |
| resource_attributes > file.path | file.path | 配置 file.path 资源属性。 | 否 |
| resource_attributes > file.path > metrics_include | metrics_include | 包含 file.path 资源属性的指标。 | 否 |
| resource_attributes > file.path > metrics_exclude | metrics_exclude | 排除 file.path 资源属性的指标。 | 否 |
| debug_metrics | debug_metrics | 配置此组件为监控其状态而生成的指标。 | 否 |
| output | output | 配置将接收到的遥测数据发送到何处。 | 是 |
metrics 块
metrics 块配置将发送到下游组件的指标集。它不接受参数,但包含其他块用于配置单个指标
关于该指标是否默认启用,请参阅各个指标块的文档。
file.atime 块
file.atime 块配置 file.atime 指标。file.atime 跟踪自文件或文件夹最后一次访问以来的经过时间(以 Unix 纪元秒为单位)。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
enabled | boolean | 是否收集 file.atime 指标。 | false | 否 |
file.count 块
file.count 块配置 file.count 指标。file.count 跟踪指定 glob 模式中的文件和文件夹数量。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
enabled | boolean | 是否收集 file.count 指标。 | false | 否 |
file.ctime 块
file.ctime 块配置 file.ctime 指标。file.ctime 跟踪自文件或文件夹最后一次更改以来的经过时间(以 Unix 纪元秒为单位)。更改包括权限、所有权和时间戳。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
enabled | boolean | 是否收集 file.ctime 指标。 | false | 否 |
file.mtime 块
file.mtime 块配置 file.mtime 指标。file.mtime 跟踪自文件或文件夹最后一次修改以来的经过时间(以 Unix 纪元秒为单位)。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
enabled | boolean | 是否收集 file.mtime 指标。 | true | 否 |
file.size 块
file.size 块配置 file.size 指标。file.size 跟踪文件或文件夹的大小(以字节为单位)。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
enabled | boolean | 是否收集 file.size 指标。 | true | 否 |
resource_attributes 块
resource_attributes 块为发送到下游组件的指标配置资源属性。它不接受参数,但包含其他块用于配置单个资源属性
关于该资源属性是否默认启用,请参阅各个资源属性块的文档。
file.name 块
file.name 块配置 file.name 资源属性。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
enabled | boolean | 是否包含 file.name 资源属性。 | true | 否 |
当 enabled 为 true 时,file.name 属性将包含在所有指标中。
子块 metrics_include 和 metrics_exclude 可用于进一步过滤哪些指标被赋予 file.name 属性。如果某个指标匹配所有 metrics_include 块且不匹配任何 metrics_exclude 块,则会添加 file.name 属性。
metrics_include 块
metrics_include 块配置一个用于匹配指标的过滤器。metrics_include 块可以多次指定。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
strict | string | 要包含的指标的确切名称。 | 是* | |
regexp | string | 要包含的指标的正则表达式。 | 是* |
必须且只能指定 strict 或 regexp 中的一个。
metrics_exclude 块
metrics_exclude 块配置一个用于排除指标的过滤器。metrics_exclude 块可以多次指定。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
strict | string | 要排除的指标的确切名称。 | 是* | |
regexp | string | 要排除的指标的正则表达式。 | 是* |
必须且只能指定 strict 或 regexp 中的一个。
file.path 块
file.path 块配置 file.path 资源属性。
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
enabled | boolean | 是否包含 file.path 资源属性。 | false | 否 |
当 enabled 为 true 时,file.path 属性将包含在所有指标中。子块 metrics_include 和 metrics_exclude 可用于进一步过滤哪些指标被赋予 file.path 属性。如果某个指标匹配所有 metrics_include 块且不匹配任何 metrics_exclude 块,则会添加 file.path 属性。
debug_metrics 块
debug_metrics 块配置此组件为监控其状态而生成的指标。
支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
disable_high_cardinality_metrics | boolean | 是否禁用某些高基数指标。 | true | 否 |
disable_high_cardinality_metrics 是 Grafana Alloy 中 OpenTelemetry Collector 的 telemetry.disableHighCardinalityMetrics 功能门的等效项。它会移除可能导致高基数指标的属性。例如,关于 HTTP 和 gRPC 连接的指标中带有 IP 地址和端口号的属性会被移除。
注意
如果配置了
disable_high_cardinality_metrics,它仅适用于otelcol.exporter.*和otelcol.receiver.*组件。
output 块
output 块配置一组组件,用于将生成的遥测数据转发到这些组件。
支持以下参数
| 名称 | 类型 | 描述 | 默认值 | 必需 |
|---|---|---|---|---|
logs | list(otelcol.Consumer) | 发送日志到消费者列表。 | [] | 否 |
metrics | list(otelcol.Consumer) | 发送指标到消费者列表。 | [] | 否 |
traces | list(otelcol.Consumer) | 发送链路追踪到消费者列表。 | [] | 否 |
您必须指定 output 块,但其所有参数都是可选的。默认情况下,遥测数据会被丢弃。相应地配置 metrics、logs 和 traces 参数以将遥测数据发送到其他组件。
导出的字段
otelcol.receiver.file_stats 不导出任何字段。
组件健康状态
otelcol.receiver.file_stats 在以下情况被报告为不健康:
- 配置无效。
- 在不支持的操作系统上运行。
调试信息
otelcol.receiver.file_stats 不暴露任何特定于组件的调试信息。
示例
此示例将 /var/log 中以 .log 扩展名结尾的文件和文件夹的文件统计信息通过批处理器转发,最后发送到支持 OTLP 的端点
otelcol.receiver.file_stats "default" {
include = "/var/log/**/*.log"
output {
metrics = [otelcol.processor.batch.default.input]
}
}
otelcol.processor.batch "default" {
output {
metrics = [otelcol.exporter.otlp.default.input]
}
}
otelcol.exporter.otlp "default" {
client {
endpoint = sys.env("OTLP_ENDPOINT")
}
}兼容组件
otelcol.receiver.file_stats 可以接受来自以下组件的参数
注意
某些组件的连接可能不合理,或者组件可能需要进一步配置才能使连接正常工作。更多详情请参阅相关文档。



