Monitoring 如何覆盖Apache Flink中的配置值?

Monitoring 如何覆盖Apache Flink中的配置值?,monitoring,apache-flink,prometheus,Monitoring,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 met

我正试图从阿帕奇·弗林克到普罗米修斯收集数据。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作业群集时,可以通过指定动态属性来修改有效配置。假设要部署到,该命令将如下所示:

bin/flink run -m yarn-cluster -yD metrics.reporter.promgateway.jobName=myCustomJob <USER_CODE_JAR>
bin/flink run-m纱线簇-yD metrics.reporter.promgateway.jobName=myCustomJob

动态属性被发送到纱线簇并覆盖现有的配置键值对。

如果启动作业后要加载属性的新值,会发生什么情况?这有可能吗?这是不可能的。在群集启动时,配置只会被读取一次。如果我没有使用纱线部署该怎么办?我只是使用高可用性模式?然后您应该使用相应的配置选项配置
flink-conf.yml