Java 向PushGateway报告Flink度量时每个作业的不同作业名
我正在使用Flink 1.9.1和PrometheusPushGateway来报告我的指标。 报告度量的jobName在flink-conf.yaml文件中定义,该文件使集群上运行的所有作业的jobName相同,但我希望为每个运行的作业报告不同的jobName。 为此,我尝试在执行流之前覆盖作业中的配置值:Java 向PushGateway报告Flink度量时每个作业的不同作业名,java,apache-flink,prometheus,metrics,Java,Apache Flink,Prometheus,Metrics,我正在使用Flink 1.9.1和PrometheusPushGateway来报告我的指标。 报告度量的jobName在flink-conf.yaml文件中定义,该文件使集群上运行的所有作业的jobName相同,但我希望为每个运行的作业报告不同的jobName。 为此,我尝试在执行流之前覆盖作业中的配置值: Configuration=GlobalConfiguration.loadConfiguration(); conf.setString( “metrics.reporter.promga
Configuration=GlobalConfiguration.loadConfiguration();
conf.setString(
“metrics.reporter.promgateway.jobName”,
conf.getString(“metrics.reporter.promgateway.jobName”,”)+“-”+管道
);
最终StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment();
env.getConfig().setGlobalJobParameters(conf);
当管道
是字符串变量时
在本地运行作业时,它起作用。但是现在我在高可用性模式下运行flink,它不再工作了:(代码中我覆盖的配置被忽略,只使用集群的flink-conf.yaml文件中的值)
那么,我如何才能更改每个作业的作业名?如果我不能,有没有办法在报告指标时设置其他标签?因为我还没有看到这样的选项
谢谢:)您可以使用以下步骤来实现此目的:
jobName
作为命令参数传递,如:--jobName MyJobName
publicstaticvoidmain(字符串[]args)引发异常{
final ParameterTool命令=ParameterTool.fromArgs(args);
字符串jobName=command.getRequired(“jobName”);
StreamExecutionEnvironment env=StreamExecutionEnvironment.getExecutionEnvironment();
配置全局配置=新配置();
globalConfiguration.setString(“jobName”,jobName);
env.getConfig().setGlobalJobParameters(globalConfiguration);
}
ParameterTool参数=(ParameterTool)getRuntimeContext().getExecutionConfig().getGlobalJobParameters();
参数。getRequired(“jobName”);
这里有一个链接也可能对您有所帮助:
这和我做的有什么不同?我不是那个使用参数
metrics.reporter.promgateway.jobName
的人。这是编写的PrometheusPushGatewayReporter的open
函数。