[ https://issues.apache.org/jira/browse/FLINK-10857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16686275#comment-16686275 ]
Truong Duc Kien commented on FLINK-10857: ----------------------------------------- This is due to `AbstractMetricGroup.logicalScopeString` is shared between all reporters, unlike `AbstractMetricGroup.scopeStrings`. Because only JMX and Prometheus use `logicalScopeString`, they conflict when both are used at the same time. > Conflict between JMX and Prometheus Metrics reporter > ---------------------------------------------------- > > Key: FLINK-10857 > URL: https://issues.apache.org/jira/browse/FLINK-10857 > Project: Flink > Issue Type: Bug > Components: Metrics > Affects Versions: 1.6.2 > Reporter: Truong Duc Kien > Priority: Major > > When registering both JMX and Prometheus metrics reporter, the Prometheus > reporter will fail with many exceptions, such as. > > {code:java} > o.a.f.r.m.MetricRegistryImpl Error while registering metric. > java.lang.IllegalArgumentException: Invalid metric name: > flink_jobmanager.Status.JVM.Memory.Mapped_Count > at > org.apache.flink.shaded.io.prometheus.client.Collector.checkMetricName(Collector.java:182) > at > org.apache.flink.shaded.io.prometheus.client.SimpleCollector.<init>(SimpleCollector.java:164) > at > org.apache.flink.shaded.io.prometheus.client.Gauge.<init>(Gauge.java:68) > at > org.apache.flink.shaded.io.prometheus.client.Gauge$Builder.create(Gauge.java:74) > at > org.apache.flink.metrics.prometheus.AbstractPrometheusReporter.createCollector(AbstractPrometheusReporter.java:130) > at > org.apache.flink.metrics.prometheus.AbstractPrometheusReporter.notifyOfAddedMetric(AbstractPrometheusReporter.java:106) > at > org.apache.flink.runtime.metrics.MetricRegistryImpl.register(MetricRegistryImpl.java:329) > at > org.apache.flink.runtime.metrics.groups.AbstractMetricGroup.addMetric(AbstractMetricGroup.java:379) > at > org.apache.flink.runtime.metrics.groups.AbstractMetricGroup.gauge(AbstractMetricGroup.java:323) > at > org.apache.flink.runtime.metrics.util.MetricUtils.instantiateMemoryMetrics(MetricUtils.java:231) > at > org.apache.flink.runtime.metrics.util.MetricUtils.instantiateStatusMetrics(MetricUtils.java:100) > at > org.apache.flink.runtime.metrics.util.MetricUtils.instantiateJobManagerMetricGroup(MetricUtils.java:68) > at > org.apache.flink.runtime.entrypoint.ClusterEntrypoint.startClusterComponents(ClusterEntrypoint.java:342) > at > org.apache.flink.runtime.entrypoint.ClusterEntrypoint.runCluster(ClusterEntrypoint.java:233) > at > org.apache.flink.runtime.entrypoint.ClusterEntrypoint.lambda$startCluster$0(ClusterEntrypoint.java:191) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:422) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1869) > at > org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41) > at > org.apache.flink.runtime.entrypoint.ClusterEntrypoint.startCluster(ClusterEntrypoint.java:190) > at > org.apache.flink.yarn.entrypoint.YarnJobClusterEntrypoint.main(YarnJobClusterEntrypoint.java:176) > {code} > > This is a small program to reproduce the problem: > [https://github.com/dikei/flink-metrics-conflict-test] > > I -- This message was sent by Atlassian JIRA (v7.6.3#76005)