我正在使用flink1.9.1和prometheuspushgateway来报告我的度量。报告度量的jobname是在flink-conf.yaml文件中定义的,该文件使集群上运行的所有作业的jobname相同,但我希望为每个运行的作业报告不同的jobname。为此,我尝试在执行流之前重写作业内的配置值:
Configuration conf = GlobalConfiguration.loadConfiguration();
conf.setString(
"metrics.reporter.promgateway.jobName",
conf.getString("metrics.reporter.promgateway.jobName", "") + "-" + pipeline
);
final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.getConfig().setGlobalJobParameters(conf);
什么时候 pipeline
是字符串变量。
在本地运行作业时,它起作用。但是现在我在高可用性模式下运行flink,它不再工作了:(代码中我覆盖的配置被忽略,只使用集群的flink-conf.yaml文件中的值)。
那么如何更改每个作业的作业名呢?如果我做不到,有没有办法在报告指标时设置额外的标签?因为我还没有看到这样的选择。
谢谢:)
1条答案
按热度按时间g6ll5ycj1#
您可以使用以下步骤来实现这一点:
通过
jobName
作为命令参数,例如:--jobName MyJobName
设置全局参数:使用它:
以下链接也可能对您有所帮助:https://ci.apache.org/projects/flink/flink-docs-stable/dev/best_practices.html#parsing-命令行参数并在flink应用程序中传递它们