public MicrometerGauge(MeterRegistry meterRegistry, MetricId id) { super(id); io.micrometer.core.instrument.Gauge.builder(id.getName(), value, DoubleAdder::sum) .description(id.getDescription()) .tags(id.getTags().stream().map(tag -> Tag.of(tag.getKey(), tag.getValue())) .collect(Collectors.toList())).register(meterRegistry); }
@Override public Gauge register(MetricRegistry registry) { return registry.gauge(new MetricId(name, description, tags), statisticConfigs.toArray( new StatisticConfig[statisticConfigs.size()])); }
Set<Tag> tagSet = new HashSet<>(); Tags.tags(tagSet, tagMap); Metric metric = DefaultMetricRegistry.getInstance().lookup(new MetricId(metricName, "", tagSet)); StructureTypeInfo counterStructInfo = observePackage.getStructInfo(COUNTER); BMap counter = BLangVMStructs.createBStruct(counterStructInfo, metricId.getName(), metricId.getDescription(), getTags(metricId)); counter.addNativeData(METRIC_NATIVE_INSTANCE_KEY, metric); context.setReturnValues(counter); StructureTypeInfo gaugeStructInfo = observePackage.getStructInfo(GAUGE); BMap bGauge = BLangVMStructs.createBStruct(gaugeStructInfo, metricId.getName(), metricId.getDescription(), getTags(metricId), Utils.createBStatisticConfig(gauge.getStatisticsConfig(), context)); bGauge.addNativeData(METRIC_NATIVE_INSTANCE_KEY, metric); StructureTypeInfo gaugeStructInfo = observePackage.getStructInfo(GAUGE); BMap bGauge = BLangVMStructs.createBStruct(gaugeStructInfo, metricId.getName(), metricId.getDescription(), getTags(metricId), Utils.createBStatisticConfig(null, context)); bGauge.addNativeData(METRIC_NATIVE_INSTANCE_KEY, metric);
metricId.getName(), metricId.getDescription(), getTags(metricId), metricType, metricValue, summary); bMetrics.add(metricIndex, metricStruct);
/** * Removes the metric with the given name. * * @param name the name of the metric */ public void remove(String name) { List<MetricId> ids = metrics.keySet().stream() .filter(id -> id.getName().equals(name)).collect(Collectors.toList()); ids.forEach(metrics::remove); }
private BMap<String, BString> getTags(MetricId metricId) { BMap<String, BString> bTags = new BMap<>(new BMapType(BTypes.typeString)); Set<Tag> tags = metricId.getTags(); for (Tag tag : tags) { bTags.put(tag.getKey(), new BString(tag.getValue())); } return bTags; } }
private BMap<String, BString> getTags(MetricId metricId) { BMap<String, BString> bTags = new BMap<>(new BMapType(BTypes.typeString)); Set<Tag> tags = metricId.getTags(); for (Tag tag : tags) { bTags.put(tag.getKey(), new BString(tag.getValue())); } return bTags; } }
public <T> MicrometerCallbackGauge(MeterRegistry meterRegistry, MetricId id, T obj, ToDoubleFunction<T> toDoubleFunction) { super(id); gauge = io.micrometer.core.instrument.Gauge.builder(id.getName(), obj, toDoubleFunction) .description(id.getDescription()) .tags(id.getTags().stream().map(tag -> Tag.of(tag.getKey(), tag.getValue())) .collect(Collectors.toList())).register(meterRegistry); }
@Override public Counter register(MetricRegistry registry) { return registry.counter(new MetricId(name, description, tags)); } }
public MicrometerCounter(MeterRegistry meterRegistry, MetricId id) { super(id); counter = io.micrometer.core.instrument.Counter.builder(id.getName()) .description(id.getDescription()) .tags(id.getTags().stream().map(tag -> Tag.of(tag.getKey(), tag.getValue())) .collect(Collectors.toList())).register(meterRegistry); }
private Gauge getInprogressGauge(String connectorName, Set<Tag> tags) { return metricRegistry.gauge(new MetricId(connectorName + "_inprogress_requests", "Inprogress Requests", tags)); }
public MicrometerTimer(MeterRegistry meterRegistry, MetricId id) { super(id); timer = io.micrometer.core.instrument.Timer.builder(id.getName()) .description(id.getDescription()) .tags(id.getTags().stream().map(tag -> Tag.of(tag.getKey(), tag.getValue())) .collect(Collectors.toList())) .publishPercentiles(0.5, 0.75, 0.98, 0.99, 0.999) .register(meterRegistry); }
@Override public PolledGauge register(MetricRegistry registry) { return registry.polledGauge(new MetricId(name, description, tags), obj, valueFunction); }
public MicrometerSummary(MeterRegistry meterRegistry, MetricId id) { super(id); summary = io.micrometer.core.instrument.DistributionSummary.builder(id.getName()) .description(id.getDescription()) .tags(id.getTags().stream().map(tag -> Tag.of(tag.getKey(), tag.getValue())) .collect(Collectors.toList())) .publishPercentiles(0.5, 0.75, 0.98, 0.99, 0.999) .register(meterRegistry); }
@Override public Gauge build() { return DefaultMetricRegistry.getInstance().getMetricProvider(). newGauge(new MetricId(name, description, tags), statisticConfigs.toArray( new StatisticConfig[statisticConfigs.size()])); } }
@Override public PolledGauge build() { return DefaultMetricRegistry.getInstance().getMetricProvider(). newPolledGauge(new MetricId(name, description, tags), obj, valueFunction); } }
public Counter build() { return DefaultMetricRegistry.getInstance().getMetricProvider(). newCounter(new MetricId(name, description, tags)); }
private void incrementHttpStatusCodeCounters(int statusCode, String connectorName, Set<Tag> tags) { metricRegistry.counter(new MetricId(connectorName + "_1XX_requests_total", "Total number of requests that resulted in HTTP 1xx informational responses", tags)).register(); metricRegistry.counter(new MetricId(connectorName + "_2XX_requests_total", "Total number of requests that resulted in HTTP 1xx informational responses", tags)).register(); metricRegistry.counter(new MetricId(connectorName + "_3XX_requests_total", "Total number of requests that resulted in HTTP 1xx informational responses", tags)).register(); metricRegistry.counter(new MetricId(connectorName + "_4XX_requests_total", "Total number of requests that resulted in HTTP 1xx informational responses", tags)).register(); metricRegistry.counter(new MetricId(connectorName + "_5XX_requests_total", "Total number of requests that resulted in HTTP 1xx informational responses", tags)).register(); if (statusCode >= 100 && statusCode < 200) { metricRegistry.counter(new MetricId(connectorName + "_1XX_requests_total", "Total number of requests that resulted in HTTP 1xx informational responses", tags)) .increment(); } else if (statusCode < 300) { metricRegistry.counter(new MetricId(connectorName + "_2XX_requests_total", "Total number of requests that resulted in HTTP 2xx successful responses", tags)) .increment(); } else if (statusCode < 400) { metricRegistry.counter(new MetricId(connectorName + "_3XX_requests_total", "Total number of requests that resulted in HTTP 3xx redirections", tags)).increment(); } else if (statusCode < 500) { metricRegistry.counter(new MetricId(connectorName + "_4XX_requests_total", "Total number of requests that resulted in HTTP 4xx client errors", tags)).increment(); } else if (statusCode < 600) { metricRegistry.counter(new MetricId(connectorName + "_5XX_requests_total", "Total number of requests that resulted in HTTP 5xx server errors", tags)).increment(); } }
long duration = System.nanoTime() - startTime; getInprogressGauge(connectorName, mainTagSet).decrement(); metricRegistry.gauge(new MetricId(connectorName + "_response_time_seconds", "Response Time", allTags), responseTimeStatisticConfigs).setValue(duration / 1E9); metricRegistry.counter(new MetricId(connectorName + "_requests_total", "Total number of requests", allTags)).increment(); metricRegistry.counter(new MetricId(connectorName + "_failed_requests_total", "Total number of failed requests", allTags)).increment();