不错的 statsD 集成

Flink statsD integration

我们在 EMR 5.29 上使用 Flink 1.9.1,并启用了多主机模式。我们将以下配置添加到 conf 文件夹中的 flink-conf.yaml 文件,并将 jar flink-metrics-statsd-1.9.1.jar 添加到 flink/lib 文件夹。

metrics.scope.jm: <host>.jobmanager
metrics.scope.jm.job: <host>.jobmanager.<job_name>
metrics.scope.tm: <host>.taskmanager.<tm_id>
metrics.scope.tm.job: <host>.taskmanager.<tm_id>.<job_name>
metrics.scope.task: <host>.taskmanager.<tm_id>.<job_name>.<task_name>.<subtask_index>
metrics.scope.operator: <host>.taskmanager.<tm_id>.<job_name>.<operator_name>.<subtask_index>

metrics.reporters: stsd
metrics.reporter.stsd.factory.class: org.apache.flink.metrics.statsd.StatsDReporter
metrics.reporter.stsd.host: localhost
metrics.reporter.stsd.port: 8130
metrics.reporter.stsd.interval: 60 SECONDS

当我们监听 statsD 端口时,我们没有得到任何指标。有什么我们错过的吗?有没有办法检查某些参数是否未通过?

正如其他答案之一所建议的,我们也尝试提供主机的 IP 地址。好像不行。

使用Flink 1.9,需要将reporter的jar文件复制到集群中每台机器的lib目录下。所以将 flink-metrics-statsd-1.9.1.jaropt 复制到 lib.

如果这不能解决问题,请检查日志 -- 那里应该有线索。

此外,statsd 通常使用端口 8125。您确定它正在侦听 8130 吗?

发现问题: 这应该被使用: metrics.reporter.stsd.class: org.apache.flink.metrics.statsd.StatsDReporter 代替: metrics.reporter.stsd.factory.class: org.apache.flink.metrics.statsd.StatsDReporter