MetricImpl(String registryType, Metadata metadata) { super(metadata.getName(), metadata.getDisplayName(), metadata.getDescription(), metadata.getTypeRaw(), metadata.getUnit(), tagsToSimpleString(metadata)); this.registryType = registryType; }
private <T extends Metric> MetricImpl toImpl(Metadata metadata, T metric) { switch (metadata.getTypeRaw()) { case COUNTER: return HelidonCounter.create(type.getName(), metadata, (Counter) metric); case GAUGE: return HelidonGauge.create(type.getName(), metadata, (Gauge<?>) metric); case HISTOGRAM: return HelidonHistogram.create(type.getName(), metadata, (Histogram) metric); case METERED: return HelidonMeter.create(type.getName(), metadata, (Meter) metric); case TIMER: return HelidonTimer.create(type.getName(), metadata, (Timer) metric); case INVALID: default: throw new IllegalArgumentException("Unexpected metric type " + metadata.getType() + ": " + metric.getClass() .getName()); } }
public String getTypeRaw() { return value.getTypeRaw().name(); }
private void registerDropwizardMetrics(MetricRegistry registry, MetricSet metricSet, Map<String, Metadata> metadataMap) { for (Map.Entry<String, Metric> entry : metricSet.getMetrics().entrySet()) { Metadata metadata = metadataMap.get(entry.getKey()); if(metadata != null) { registry.register(metadata, convertMetric(entry.getValue(), metadata.getTypeRaw())); } } }
void afterDeploymentValidation(@Observes final AfterDeploymentValidation afterDeploymentValidation, final BeanManager beanManager) { registrations.values().stream().filter(m -> m.getTypeRaw() == MetricType.GAUGE) .forEach(registration -> { final Gauge<?> gauge = gaugeFactories.get(registration.getName()).apply(beanManager); applicationRegistry.register(registration, gauge); }); producersRegistrations.forEach(Runnable::run); producersRegistrations.clear(); gaugeFactories.clear(); registrations.clear(); // mainly for tck, to drop if we add real vendor metrics vendorRegistry.counter("startTime").inc(System.currentTimeMillis()); if (!Boolean.getBoolean("geronimo.metrics.base.skip")) { new BaseMetrics(baseRegistry).register(); } }
private StringBuilder toPrometheus(final String registryKey, final String keyBase, final String keyUnit, final Snapshot snapshot, final Metadata metadata) { final Function<Map<String, String>, Metadata> metaFactory = tag -> new Metadata(metadata.getName(), metadata.getDisplayName(), metadata.getDescription(), metadata.getTypeRaw(), metadata.getUnit(), Stream.concat(metadata.getTags().entrySet().stream(), tag.entrySet().stream()) .map(e -> e.getKey() + '=' + e.getValue()) .collect(joining(","))); final String completeKey = keyBase + keyUnit; return new StringBuilder() .append(value(registryKey, keyBase + "_min" + keyUnit, snapshot.getMin(), metadata)) .append(value(registryKey, keyBase + "_max" + keyUnit, snapshot.getMax(), metadata)) .append(value(registryKey, keyBase + "_mean" + keyUnit, snapshot.getMean(), metadata)) .append(value(registryKey, keyBase + "_stddev" + keyUnit, snapshot.getStdDev(), metadata)) .append(value(registryKey, completeKey, snapshot.getMedian(), metaFactory.apply(singletonMap("quantile", "0.5")))) .append(value(registryKey, completeKey, snapshot.get75thPercentile(), metaFactory.apply(singletonMap("quantile", "0.75")))) .append(value(registryKey, completeKey, snapshot.get95thPercentile(), metaFactory.apply(singletonMap("quantile", "0.95")))) .append(value(registryKey, completeKey, snapshot.get98thPercentile(), metaFactory.apply(singletonMap("quantile", "0.98")))) .append(value(registryKey, completeKey, snapshot.get99thPercentile(), metaFactory.apply(singletonMap("quantile", "0.99")))) .append(value(registryKey, completeKey, snapshot.get999thPercentile(), metaFactory.apply(singletonMap("quantile", "0.999")))); }
.filter(it -> prefixFilter == null || prefixFilter.test(it.prometheusKey)) .map(entry -> { switch (entry.metadata.getTypeRaw()) { case COUNTER: { final String key = toPrometheusKey(entry.metadata);
@Override @Deprecated public <T extends Metric> T register(String name, T t, Metadata metadata) throws IllegalArgumentException { Metadata metadataCopy = new Metadata(name, metadata.getDisplayName(), metadata.getDescription(), metadata.getTypeRaw(), metadata.getUnit(), metadata.getTagsAsString()); metadataCopy.setReusable(metadata.isReusable()); metadataCopy.setName(name); return register(metadataCopy, t); }
private Holder(final T metric, final Metadata metadata) { this.metric = metric; this.metadata = new Metadata(metadata.getName(), metadata.getDisplayName(), metadata.getDescription(), metadata.getTypeRaw(), metadata.getUnit()); this.metadata.setReusable(metadata.isReusable()); this.metadata.setTags(metadata.getTags()); } }
@Override public <T extends Metric> T register(Metadata metadata, T t) throws IllegalArgumentException { // add default tags ServiceConfigInfo configInfo = ServiceConfigInfo.getInstance(); if(configInfo.shouldAddToTags()) { metadata.addTag("environment=" + configInfo.getEnvironment()); metadata.addTag("serviceName=" + configInfo.getServiceName()); metadata.addTag("serviceVersion=" + configInfo.getServiceVersion()); metadata.addTag("instanceId=" + configInfo.getInstanceId()); } Optional<String> tagsFromConfig = ConfigurationUtil.getInstance().get("MP_METRICS_TAGS"); tagsFromConfig.ifPresent(metadata::addTags); try { metricRegistry.register(metadata.getName(), new MetricAdapter(t, metadata)); } catch (IllegalArgumentException e) { com.codahale.metrics.Metric m = metricRegistry.getMetrics().get(metadata.getName()); if (m instanceof MetricAdapter) { Metadata existingMetadata = ((MetricAdapter) m).getMetadata(); if (existingMetadata.isReusable() && metadata.isReusable() && existingMetadata.getTypeRaw().equals(metadata.getTypeRaw())) { return t; } else { throw e; } } } return t; }
switch (registration.getTypeRaw()) { case GAUGE: addBean(afterBeanDiscovery, name, Gauge.class, new MetricImpl(registration), new Gauge<Object>() {