/** * Returns a newly-created {@link PrometheusMeterRegistry} instance with the specified * {@link CollectorRegistry} and {@link Clock}. */ public static PrometheusMeterRegistry newRegistry(CollectorRegistry registry, Clock clock) { final PrometheusMeterRegistry meterRegistry = new PrometheusMeterRegistry( PrometheusConfig.DEFAULT, requireNonNull(registry, "registry"), requireNonNull(clock, "clock")); meterRegistry.config().namingConvention(MoreNamingConventions.prometheus()); meterRegistry.config().pauseDetector(new NoPauseDetector()); return meterRegistry; }
meterRegistry.config().namingConvention(MoreNamingConventions.dropwizard()); meterRegistry.config().pauseDetector(new NoPauseDetector()); return meterRegistry;
/** * Configures the specified {@link MeterRegistry} to use the {@link NamingConvention}s provided by this * class. {@link DropwizardMeterRegistry} and {@link PrometheusMeterRegistry} will be configured to use * {@link #dropwizard()} and {@link #prometheus()} respectively. A {@link CompositeMeterRegistry} will be * configured recursively. */ public static void configure(MeterRegistry registry) { requireNonNull(registry, "registry"); if (registry instanceof CompositeMeterRegistry) { ((CompositeMeterRegistry) registry).getRegistries().forEach(MoreNamingConventions::configure); } if (registryTypeMatches(registry, "io.micrometer.core.instrument.dropwizard.DropwizardMeterRegistry")) { registry.config().namingConvention(dropwizard()); } else if (registryTypeMatches(registry, "io.micrometer.prometheus.PrometheusMeterRegistry")) { registry.config().namingConvention(prometheus()); } else { // Probably OK to use the default. } }
private StackdriverMeterRegistry(StackdriverConfig config, Clock clock, ThreadFactory threadFactory, Callable<MetricServiceSettings> metricServiceSettings) { super(config, clock); this.config = config; try { this.metricServiceSettings = metricServiceSettings.call(); } catch (Exception e) { logger.error("unable to create stackdriver service settings", e); } config().namingConvention(new StackdriverNamingConvention()); start(threadFactory); }
public PrometheusMeterRegistry(PrometheusConfig config, CollectorRegistry registry, Clock clock) { super(clock); this.registry = registry; this.config().namingConvention(new PrometheusNamingConvention()); this.sendDescriptions = config.descriptions(); }
public CloudWatchMeterRegistry(CloudWatchConfig config, Clock clock, AmazonCloudWatchAsync amazonCloudWatchAsync, ThreadFactory threadFactory) { super(config, clock); requireNonNull(config.namespace()); this.amazonCloudWatchAsync = amazonCloudWatchAsync; this.config = config; config().namingConvention(NamingConvention.identity); start(threadFactory); }
/** * Meter registry customizer for the legacy metrics model. * * @return The customizer for the legacy model. */ @Bean public MeterRegistryCustomizer<GraphiteMeterRegistry> legacyMeterFilters() { return r -> r.config() .namingConvention(NamingConvention.dot) .meterFilter(MeterFilter.replaceTagValues(MetricsTags.TAG_HOST, host -> host.replace('.', '_'))) .meterFilter(MeterFilter.replaceTagValues(MetricsTags.TAG_TENANT, tenant -> tenant.replace('.', '_'))) .meterFilter(MeterFilter.ignoreTags(MetricsTags.TAG_COMPONENT)) .meterFilter(meterTypeMapper()); }
private void updateIfNamingConventionChanged() { NamingConvention next = config.namingConvention(); if (this.namingConvention != next) { this.namingConvention = next; this.names = HashTreePMap.empty(); this.nameNoStat = null; } }
private String event(Meter.Id id, Iterable<Tag> extraTags, Attribute... attributes) { StringBuilder tagsJson = new StringBuilder(); for (Tag tag : getConventionTags(id)) { tagsJson.append(",\"").append(escapeJson(tag.getKey())).append("\":\"").append(escapeJson(tag.getValue())).append("\""); } NamingConvention convention = config().namingConvention(); for (Tag tag : extraTags) { tagsJson.append(",\"").append(escapeJson(convention.tagKey(tag.getKey()))) .append("\":\"").append(escapeJson(convention.tagValue(tag.getValue()))).append("\""); } return Arrays.stream(attributes) .map(attr -> ",\"" + attr.getName() + "\":" + DoubleFormat.decimalOrWhole(attr.getValue().doubleValue())) .collect(Collectors.joining("", "{\"eventType\":\"" + escapeJson(getConventionName(id)) + "\"", tagsJson + "}")); }
public GraphiteMeterRegistry(GraphiteConfig config, HierarchicalNameMapper nameMapper, Clock clock) { super(nameMapper, clock); this.config = config; this.config().namingConvention(new GraphiteNamingConvention()); final PickledGraphite pickledGraphite = new PickledGraphite(new InetSocketAddress(config.host(), config.port())); this.reporter = GraphiteReporter.forRegistry(getDropwizardRegistry()) .convertRatesTo(config.rateUnits()) .convertDurationsTo(config.durationUnits()) .build(pickledGraphite); if(config.enabled()) start(); }
private KairosMeterRegistry(KairosConfig config, Clock clock, ThreadFactory threadFactory, HttpSender httpClient) { super(config, clock); config().namingConvention(new KairosNamingConvention()); this.config = config; this.httpClient = httpClient; start(threadFactory); }
private WavefrontMeterRegistry(WavefrontConfig config, Clock clock, ThreadFactory threadFactory, HttpSender httpClient) { super(config, clock); this.config = config; this.httpClient = httpClient; if (directToApi() && config.apiToken() == null) { throw new MissingRequiredConfigurationException("apiToken must be set whenever publishing directly to the Wavefront API"); } config().namingConvention(new WavefrontNamingConvention(config.globalPrefix())); start(threadFactory); }
private NewRelicMeterRegistry(NewRelicConfig config, Clock clock, ThreadFactory threadFactory, HttpSender httpClient) { super(config, clock); this.config = config; this.httpClient = httpClient; requireNonNull(config.accountId()); requireNonNull(config.apiKey()); config().namingConvention(new NewRelicNamingConvention()); start(threadFactory); }
private String etsyName(@Nullable Statistic stat) { return nameMapper.toHierarchicalName(stat != null ? id.withTag(stat) : id, config.namingConvention()) .replace(':', '_'); } }
@Bean public MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() { return registry -> { registry.config().commonTags(APP_TAG_KEY, appName); registry.config().commonTags(HOST_TAG_KEY, HostUtil.getHost(HostUtil.getMXBeanName())); registry.config() .commonTags(IP_TAG_KEY, registry.config().namingConvention().tagKey(HostUtil.HOST_IP)); registry.config().commonTags(PROFILE_KEY, profile); }; }
String getMetricName(Meter.Id id, @Nullable String suffix) { String name = suffix != null ? id.getName() + "." + suffix : id.getName(); return config().namingConvention().name(name, id.getType(), id.getBaseUnit()); }
String getMetricName(Meter.Id id, @Nullable String suffix) { return nameMapper.toHierarchicalName(id.withName(suffix != null ? id.getName() + "." + suffix : id.getName()), config().namingConvention()); }
private DatadogMeterRegistry(DatadogConfig config, Clock clock, ThreadFactory threadFactory, HttpSender httpClient) { super(config, clock); requireNonNull(config.apiKey()); config().namingConvention(new DatadogNamingConvention()); this.config = config; this.httpClient = httpClient; start(threadFactory); }
private ElasticMeterRegistry(ElasticConfig config, Clock clock, ThreadFactory threadFactory, HttpSender httpClient) { super(config, clock); config().namingConvention(new ElasticNamingConvention()); this.config = config; this.httpClient = httpClient; start(threadFactory); }
private NoopMeterRegistry() { super(Clock.SYSTEM); config().namingConvention(MoreNamingConventions.identity()); }