You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2019/02/15 12:54:23 UTC
[flink] branch release-1.7 updated: [FLINK-11424][metrics] Properly
remove string/failing gauges
This is an automated email from the ASF dual-hosted git repository.
chesnay pushed a commit to branch release-1.7
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/release-1.7 by this push:
new 9004371 [FLINK-11424][metrics] Properly remove string/failing gauges
9004371 is described below
commit 90043718f5ac5e859d77cf984d0be7cf1a36de46
Author: lining <ji...@gmail.com>
AuthorDate: Fri Feb 15 20:51:22 2019 +0800
[FLINK-11424][metrics] Properly remove string/failing gauges
---
.../apache/flink/metrics/datadog/DatadogHttpReporter.java | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporter.java b/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporter.java
index b7e1c24..5462b32 100644
--- a/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporter.java
+++ b/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporter.java
@@ -118,6 +118,7 @@ public class DatadogHttpReporter implements MetricReporter, Scheduled {
public void report() {
DatadogHttpRequest request = new DatadogHttpRequest();
+ List<Gauge> gaugesToRemove = new ArrayList<>();
for (Map.Entry<Gauge, DGauge> entry : gauges.entrySet()) {
DGauge g = entry.getValue();
try {
@@ -125,11 +126,19 @@ public class DatadogHttpReporter implements MetricReporter, Scheduled {
// Flink uses Gauge to store many types other than Number
g.getMetricValue();
request.addGauge(g);
+ } catch (ClassCastException e) {
+ LOGGER.info("The metric {} will not be reported because only number types are supported by this reporter.", g.getMetric());
+ gaugesToRemove.add(entry.getKey());
} catch (Exception e) {
- // Remove that Gauge if it's not of Number type
- gauges.remove(entry.getKey());
+ if (LOGGER.isDebugEnabled()) {
+ LOGGER.debug("The metric {} will not be reported because it threw an exception.", g.getMetric(), e);
+ } else {
+ LOGGER.info("The metric {} will not be reported because it threw an exception.", g.getMetric());
+ }
+ gaugesToRemove.add(entry.getKey());
}
}
+ gaugesToRemove.forEach(gauges::remove);
for (DCounter c : counters.values()) {
request.addCounter(c);