Skip to content

Commit 6d7d5a4

Browse files
authored
Do not send metric NaN values (#2119)
* Do not send metric NaN values * feedback * Remove unused
1 parent 3727aed commit 6d7d5a4

File tree

1 file changed

+17
-20
lines changed
  • agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/telemetry

1 file changed

+17
-20
lines changed

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/telemetry/TelemetryClient.java

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
import java.util.List;
5757
import java.util.Map;
5858
import java.util.Set;
59-
import java.util.stream.Collectors;
6059
import javax.annotation.Nullable;
6160
import org.apache.commons.text.StringSubstitutor;
6261
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@@ -155,27 +154,25 @@ public void trackAsync(TelemetryItem telemetry) {
155154
MonitorDomain data = telemetry.getData().getBaseData();
156155
if (data instanceof MetricsData) {
157156
MetricsData metricsData = (MetricsData) data;
158-
List<MetricDataPoint> filteredPoints =
159-
metricsData.getMetrics().stream()
160-
.filter(
161-
point -> {
162-
String metricName = point.getName();
163-
if (nonFilterableMetricNames.contains(metricName)) {
164-
return true;
165-
}
166-
for (MetricFilter metricFilter : metricFilters) {
167-
if (!metricFilter.matches(metricName)) {
168-
return false;
169-
}
170-
}
171-
return true;
172-
})
173-
.collect(Collectors.toList());
174-
175-
if (filteredPoints.isEmpty()) {
157+
if (metricsData.getMetrics().isEmpty()) {
158+
throw new AssertionError("MetricsData has no metric point");
159+
}
160+
MetricDataPoint point = metricsData.getMetrics().get(0);
161+
String metricName = point.getName();
162+
if (!nonFilterableMetricNames.contains(metricName)) {
163+
for (MetricFilter metricFilter : metricFilters) {
164+
if (!metricFilter.matches(metricName)) {
165+
// user configuration filtered out this metric name
166+
return;
167+
}
168+
}
169+
}
170+
171+
if (!Double.isFinite(point.getValue())) {
172+
// TODO (trask) add test for this
173+
// breeze doesn't like these values
176174
return;
177175
}
178-
metricsData.setMetrics(filteredPoints);
179176
}
180177

181178
if (telemetry.getTime() == null) {

0 commit comments

Comments
 (0)