hi,大家好
我在使用Prometheus Pushgateway 监控 Flink时,metrics.reporter.promgateway.deleteOnShutdown: true 这一配置失效, Flink集群关闭时,pushgateway中仍然存有metrics数据 reporter相关的全部配置为: 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.randomJobNameSuffix: *true* metrics.reporter.promgateway.deleteOnShutdown: *true* Flink版本为1.9.1, pushgateway版本0.9 和1.2都尝试过,一样的问题。 不知道这是不是bug, 有谁有成功的案例么? 谢谢 |
HI 佳宸
跟你介绍下这几个参数的目的 metrics.reporter.promgateway.deleteOnShutdown:这个参数用于控制,当通过stop或者cancel下线一个任务的时候,会把pushgateway内存中缓存的指标进行清理,如果通过yarn kill的方式就不会清除 metrics.reporter.promgateway.randomJobNameSuffix:这个参数用于控制在我们定义的jobName后面加一个随机后缀以区别相同任务的不同container的metric_name,否则会出现覆盖写,也就是你描述的那样,指标不全的问题。原理是:当一个任务启动之后至少会有两个container(一个JM和一个TM),每个container都会往pushgateway推送指标,如果不设置这个参数为true的话,会用同一个jobName进行指标推送,那么此时后一个推送的指标就会前一个指标,就会产生一会是JM的指标,一会是TM的指标,所以要加上这个参数,那么每个container的就会不一样,这样就不会覆盖。 祝好 杨纲 在 2020-05-12 18:25:10,"李佳宸" <[hidden email]> 写道: >hi,大家好 > >我在使用Prometheus Pushgateway 监控 >Flink时,metrics.reporter.promgateway.deleteOnShutdown: >true 这一配置失效, >Flink集群关闭时,pushgateway中仍然存有metrics数据 >reporter相关的全部配置为: > >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.randomJobNameSuffix: *true* > >metrics.reporter.promgateway.deleteOnShutdown: *true* > > >Flink版本为1.9.1, pushgateway版本0.9 和1.2都尝试过,一样的问题。 > > >不知道这是不是bug, > >有谁有成功的案例么? > >谢谢 |
谢谢杨纲的解答。
我之前是简单粗暴地把flink-metrcs-prometheus包中的推送到数据到pushgateway的方式改成了post,重新打包,这样jm和tm的数据就不会互相覆盖了。看来还是只知其一,不知其二。 看到你对metrics.reporter.promgateway.randomJobNameSuffix的解释,才明白了原因。 ---原始邮件--- 发件人: "yanggang_it_job"<[hidden email]> 发送时间: 2020年5月12日(星期二) 晚上10:10 收件人: "user-zh"<[hidden email]>; 主题: Re:Prometheus Pushgateway 监控 Flink 问题 HI 佳宸 跟你介绍下这几个参数的目的 metrics.reporter.promgateway.deleteOnShutdown:这个参数用于控制,当通过stop或者cancel下线一个任务的时候,会把pushgateway内存中缓存的指标进行清理,如果通过yarn kill的方式就不会清除 metrics.reporter.promgateway.randomJobNameSuffix:这个参数用于控制在我们定义的jobName后面加一个随机后缀以区别相同任务的不同container的metric_name,否则会出现覆盖写,也就是你描述的那样,指标不全的问题。原理是:当一个任务启动之后至少会有两个container(一个JM和一个TM),每个container都会往pushgateway推送指标,如果不设置这个参数为true的话,会用同一个jobName进行指标推送,那么此时后一个推送的指标就会前一个指标,就会产生一会是JM的指标,一会是TM的指标,所以要加上这个参数,那么每个container的就会不一样,这样就不会覆盖。 祝好 杨纲 在 2020-05-12 18:25:10,"李佳宸" <[hidden email]> 写道: >hi,大家好 > >我在使用Prometheus Pushgateway 监控 >Flink时,metrics.reporter.promgateway.deleteOnShutdown: >true 这一配置失效, >Flink集群关闭时,pushgateway中仍然存有metrics数据 >reporter相关的全部配置为: > >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.randomJobNameSuffix: *true* > >metrics.reporter.promgateway.deleteOnShutdown: *true* > > >Flink版本为1.9.1, pushgateway版本0.9 和1.2都尝试过,一样的问题。 > > >不知道这是不是bug, > >有谁有成功的案例么? > >谢谢 |
In reply to this post by yanggang_it_job
谢谢您的解答!
意思是说deleteOnShutdown其实只是针对flink作业吗? 因为我想实现的是集群stop后,pushgateway里面和flink有关的所有数据会被清除。 原因是开启randomjobnamesuffix后,集群重启会有新的一组jobname,而之前的信息仍然残留在pushgateway里面(数值停止更新),prometheus就会仍然持续产生之前信息的时间序列数据。 这一块有解决的方法吗?还是只能重启pushgateway? 我理解源码这里好像是会根据jobname删除,那应该是集群维度么? public class PrometheusPushGatewayReporter extends AbstractPrometheusReporter implements Scheduled { private PushGateway pushGateway; private String jobName; private boolean deleteOnShutdown; @Override public void open(MetricConfig config) { super.open(config); String host = config.getString(HOST.key(), HOST.defaultValue()); int port = config.getInteger(PORT.key(), PORT.defaultValue()); String configuredJobName = config.getString(JOB_NAME.key(), JOB_NAME.defaultValue()); boolean randomSuffix = config.getBoolean(RANDOM_JOB_NAME_SUFFIX.key(), RANDOM_JOB_NAME_SUFFIX.defaultValue()); deleteOnShutdown = config.getBoolean(DELETE_ON_SHUTDOWN.key(), DELETE_ON_SHUTDOWN.defaultValue()); if (host == null || host.isEmpty() || port < 1) { throw new IllegalArgumentException("Invalid host/port configuration. Host: " + host + " Port: " + port); } if (randomSuffix) { this.jobName = configuredJobName + new AbstractID(); } else { this.jobName = configuredJobName; } pushGateway = new PushGateway(host + ':' + port); log.info("Configured PrometheusPushGatewayReporter with {host:{}, port:{}, jobName: {}, randomJobNameSuffix:{}, deleteOnShutdown:{}}", host, port, jobName, randomSuffix, deleteOnShutdown); } @Override public void report() { try { pushGateway.push(CollectorRegistry.defaultRegistry, jobName); } catch (Exception e) { log.warn("Failed to push metrics to PushGateway with jobName {}.", jobName, e); } } @Override public void close() { if (deleteOnShutdown && pushGateway != null) { try { pushGateway.delete(jobName); } catch (IOException e) { log.warn("Failed to delete metrics from PushGateway with jobName {}.", jobName, e); } } super.close(); } } yanggang_it_job <[hidden email]> 于2020年5月12日周二 下午10:10写道: > HI 佳宸 > 跟你介绍下这几个参数的目的 > metrics.reporter.promgateway.deleteOnShutdown:这个参数用于控制,当通过stop或者cancel下线一个任务的时候,会把pushgateway内存中缓存的指标进行清理,如果通过yarn > kill的方式就不会清除 > > metrics.reporter.promgateway.randomJobNameSuffix:这个参数用于控制在我们定义的jobName后面加一个随机后缀以区别相同任务的不同container的metric_name,否则会出现覆盖写,也就是你描述的那样,指标不全的问题。原理是:当一个任务启动之后至少会有两个container(一个JM和一个TM),每个container都会往pushgateway推送指标,如果不设置这个参数为true的话,会用同一个jobName进行指标推送,那么此时后一个推送的指标就会前一个指标,就会产生一会是JM的指标,一会是TM的指标,所以要加上这个参数,那么每个container的就会不一样,这样就不会覆盖。 > > 祝好 > 杨纲 > > > > > > > > > > > > > > > > > > 在 2020-05-12 18:25:10,"李佳宸" <[hidden email]> 写道: > >hi,大家好 > > > >我在使用Prometheus Pushgateway 监控 > >Flink时,metrics.reporter.promgateway.deleteOnShutdown: > >true 这一配置失效, > >Flink集群关闭时,pushgateway中仍然存有metrics数据 > >reporter相关的全部配置为: > > > >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.randomJobNameSuffix: *true* > > > >metrics.reporter.promgateway.deleteOnShutdown: *true* > > > > > >Flink版本为1.9.1, pushgateway版本0.9 和1.2都尝试过,一样的问题。 > > > > > >不知道这是不是bug, > > > >有谁有成功的案例么? > > > >谢谢 > |
Free forum by Nabble | Edit this page |