我正试图将Apache Flink的度量收集到Prometheus中。Flink文档说我需要在我的Flink-conf.yaml:中添加以下行
metrics.reporter.promgateway.class: org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter
metrics.reporter.promgateway.host: localhost
metrics.reporter.promgateway.port: 9091
metrics.reporter.promgateway.jobName: myJob
我想在普罗米修斯内部用不同的名字标记不同的工作。如何在每个作业的基础上覆盖配置参数metrics.reporter.promgateway.jobName(每个作业都在自己的Flink集群会话中运行(?
有几个问题:
- 我无法覆盖flink-conf.yaml。我只找到了flink_conf_DIR参数来覆盖整个配置目录。但是,覆盖每个作业的配置目录并不是一个正确的解决方案
- 我无法覆盖StreamExecutionEnvironment的初始配置,因为它是在StreamExecutionEnvironment.getExecutionEnvironment方法内部构建的,在环境初始化后无法修改
您可以在启动Flink作业集群时通过指定动态属性来修改有效配置。假设您正在部署到Yarn,则命令将如下所示:
bin/flink run -m yarn-cluster -yD metrics.reporter.promgateway.jobName=myCustomJob <USER_CODE_JAR>
动态属性被发送到Yarn集群并覆盖现有的配置键值对。