use of io.micrometer.core.instrument.Gauge in project micrometer by micrometer-metrics.
the class AppOpticsMeterRegistryTest method writeGaugeShouldDropNanValue.
@Test
void writeGaugeShouldDropNanValue() {
meterRegistry.gauge("my.gauge", Double.NaN);
Gauge gauge = meterRegistry.find("my.gauge").gauge();
assertThat(meterRegistry.writeGauge(gauge).isPresent()).isFalse();
}
use of io.micrometer.core.instrument.Gauge in project micrometer by micrometer-metrics.
the class AppOpticsMeterRegistryTest method writeGaugeShouldDropInfiniteValues.
@Test
void writeGaugeShouldDropInfiniteValues() {
meterRegistry.gauge("my.gauge", Double.POSITIVE_INFINITY);
Gauge gauge = meterRegistry.find("my.gauge").gauge();
assertThat(meterRegistry.writeGauge(gauge).isPresent()).isFalse();
meterRegistry.gauge("my.gauge", Double.NEGATIVE_INFINITY);
gauge = meterRegistry.find("my.gauge").gauge();
assertThat(meterRegistry.writeGauge(gauge).isPresent()).isFalse();
}
use of io.micrometer.core.instrument.Gauge in project apm-agent-java by elastic.
the class MicrometerMeterRegistrySerializer method serializeMetricSet.
boolean serializeMetricSet(List<Tag> tags, List<Meter> meters, long epochMicros, StringBuilder replaceBuilder, JsonWriter jw) {
boolean hasSamples = false;
boolean dedotMetricName = config.isDedotCustomMetrics();
jw.writeByte(JsonWriter.OBJECT_START);
{
DslJsonSerializer.writeFieldName("metricset", jw);
jw.writeByte(JsonWriter.OBJECT_START);
{
DslJsonSerializer.writeFieldName("timestamp", jw);
NumberConverter.serialize(epochMicros, jw);
jw.writeByte(JsonWriter.COMMA);
serializeTags(tags, replaceBuilder, jw);
DslJsonSerializer.writeFieldName("samples", jw);
jw.writeByte(JsonWriter.OBJECT_START);
ClassLoader originalContextCL = Thread.currentThread().getContextClassLoader();
try {
for (int i = 0, size = meters.size(); i < size; i++) {
Meter meter = meters.get(i);
if (internallyDisabledMeters.contains(meter)) {
continue;
}
try {
// Setting the Meter CL as the context class loader during the Meter query operations
Thread.currentThread().setContextClassLoader(meter.getClass().getClassLoader());
if (meter instanceof Timer) {
Timer timer = (Timer) meter;
hasSamples = serializeTimer(jw, timer.getId(), timer.count(), timer.totalTime(TimeUnit.MICROSECONDS), hasSamples, replaceBuilder, dedotMetricName);
} else if (meter instanceof FunctionTimer) {
FunctionTimer timer = (FunctionTimer) meter;
hasSamples = serializeTimer(jw, timer.getId(), (long) timer.count(), timer.totalTime(TimeUnit.MICROSECONDS), hasSamples, replaceBuilder, dedotMetricName);
} else if (meter instanceof LongTaskTimer) {
LongTaskTimer timer = (LongTaskTimer) meter;
hasSamples = serializeTimer(jw, timer.getId(), timer.activeTasks(), timer.duration(TimeUnit.MICROSECONDS), hasSamples, replaceBuilder, dedotMetricName);
} else if (meter instanceof DistributionSummary) {
DistributionSummary timer = (DistributionSummary) meter;
hasSamples = serializeDistributionSummary(jw, timer.getId(), timer.count(), timer.totalAmount(), hasSamples, replaceBuilder, dedotMetricName);
} else if (meter instanceof Gauge) {
Gauge gauge = (Gauge) meter;
hasSamples = serializeValue(gauge.getId(), gauge.value(), hasSamples, jw, replaceBuilder, dedotMetricName);
} else if (meter instanceof Counter) {
Counter counter = (Counter) meter;
hasSamples = serializeValue(counter.getId(), counter.count(), hasSamples, jw, replaceBuilder, dedotMetricName);
} else if (meter instanceof FunctionCounter) {
FunctionCounter counter = (FunctionCounter) meter;
hasSamples = serializeValue(counter.getId(), counter.count(), hasSamples, jw, replaceBuilder, dedotMetricName);
}
} catch (Throwable throwable) {
String meterName = meter.getId().getName();
logger.warn("Failed to serialize Micrometer meter \"{}\" with tags {}. This meter will be " + "excluded from serialization going forward.", meterName, tags);
logger.debug("Detailed info about failure to register Micrometer meter \"" + meterName + "\": ", throwable);
internallyDisabledMeters.add(meter);
}
}
} finally {
Thread.currentThread().setContextClassLoader(originalContextCL);
}
jw.writeByte(JsonWriter.OBJECT_END);
}
jw.writeByte(JsonWriter.OBJECT_END);
}
jw.writeByte(JsonWriter.OBJECT_END);
jw.writeByte(NEW_LINE);
return hasSamples;
}
Aggregations