[
https://issues.apache.org/jira/browse/FLINK-6221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16009654#comment-16009654
]
ASF GitHub Bot commented on FLINK-6221:
---------------------------------------
Github user zentol commented on a diff in the pull request:
https://github.com/apache/flink/pull/3833#discussion_r116377143
--- Diff:
flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusReporter.java
---
@@ -133,61 +136,58 @@ public void notifyOfRemovedMetric(final Metric
metric, final String metricName,
collectorsByMetricName.remove(metricName);
}
+ @SuppressWarnings("unchecked")
+ private static String getLogicalScope(MetricGroup group) {
+ return ((FrontMetricGroup<AbstractMetricGroup<?>>)
group).getLogicalScope(CHARACTER_FILTER, SCOPE_SEPARATOR);
+ }
+
private Collector createGauge(final Gauge gauge, final String name,
final String identifier, final List<String> labelNames, final List<String>
labelValues) {
- return io.prometheus.client.Gauge
- .build()
- .name(name)
- .help(identifier)
- .labelNames(toArray(labelNames, String.class))
- .create()
- .setChild(new io.prometheus.client.Gauge.Child() {
- @Override
- public double get() {
- final Object value = gauge.getValue();
- if (value instanceof Double) {
- return (double) value;
- }
- if (value instanceof Number) {
- return ((Number)
value).doubleValue();
- } else if (value instanceof Boolean) {
- return ((Boolean) value) ? 1 :
0;
- } else {
- log.debug("Invalid type for
Gauge {}: {}, only number types and booleans are supported by this reporter.",
- gauge,
value.getClass().getName());
- return 0;
- }
+ return newGauge(name, identifier, labelNames, labelValues, new
io.prometheus.client.Gauge.Child() {
+ @Override
+ public double get() {
+ final Object value = gauge.getValue();
+ if (value instanceof Double) {
+ return (double) value;
+ }
+ if (value instanceof Number) {
+ return ((Number) value).doubleValue();
+ } else if (value instanceof Boolean) {
+ return ((Boolean) value) ? 1 : 0;
+ } else {
+ LOG.debug("Invalid type for Gauge {}:
{}, only number types and booleans are supported by this reporter.",
+ gauge,
value.getClass().getName());
+ return 0;
}
- }, toArray(labelValues, String.class));
+ }
+ });
}
private static Collector createGauge(final Counter counter, final
String name, final String identifier, final List<String> labelNames, final
List<String> labelValues) {
- return io.prometheus.client.Gauge
- .build()
- .name(name)
- .help(identifier)
- .labelNames(toArray(labelNames, String.class))
- .create()
- .setChild(new io.prometheus.client.Gauge.Child() {
- @Override
- public double get() {
- return (double) counter.getCount();
- }
- }, toArray(labelValues, String.class));
+ return newGauge(name, identifier, labelNames, labelValues, new
io.prometheus.client.Gauge.Child() {
+ @Override
+ public double get() {
+ return (double) counter.getCount();
+ }
+ });
+ }
+
+ private Collector createGauge(final Meter meter, final String name,
final String identifier, final List<String> labelNames, final List<String>
labelValues) {
+ return newGauge(name + "_rate", identifier, labelNames,
labelValues, new io.prometheus.client.Gauge.Child() {
--- End diff --
Meter metrics should contain "rate" in their name already, so we don't have
to append "_rate" here.
> Add Prometheus support to metrics
> ---------------------------------
>
> Key: FLINK-6221
> URL: https://issues.apache.org/jira/browse/FLINK-6221
> Project: Flink
> Issue Type: Improvement
> Components: Metrics
> Affects Versions: 1.2.0
> Reporter: Joshua Griffith
> Assignee: Maximilian Bode
> Priority: Minor
>
> [Prometheus|https://prometheus.io/] is becoming popular for metrics and
> alerting. It's possible to use
> [statsd-exporter|https://github.com/prometheus/statsd_exporter] to load Flink
> metrics into Prometheus but it would be far easier if Flink supported
> Promethus as a metrics reporter. A [dropwizard
> client|https://github.com/prometheus/client_java/tree/master/simpleclient_dropwizard]
> exists that could be integrated into the existing metrics system.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)