builder = builder.buckets(buckets);
private void configureBucketsForBuilder(Histogram.Builder builder, List<Double> configurationBuckets) { builder.buckets( configurationBuckets.stream() .mapToDouble(Double::doubleValue) .toArray() ); }
@Override public void accept(Histogram.Builder builder) { if (metrics == MetricsType.EXPONENTIAL) { builder.exponentialBuckets(exponentialStart, exponentialFactor, exponentialCount); } else if (metrics == MetricsType.LINEAR) { builder.linearBuckets(linearStart, linearWidth, linearCount); } else if (metrics == MetricsType.DISTINCT) { builder.buckets(distinctBuckets); } else if (metrics == MetricsType.DEFAULT) { // nothing to do } else { throw new IllegalStateException("unknown enum state " + metrics); } } }).register(registry);
.buckets(configuredBuckets) .help("Overall file size distribution") .create(); .name(FsImageCollector.METRIC_PREFIX_GROUP + FSIZE) .labelNames(FsImageCollector.LABEL_GROUP_NAME) .buckets(configuredBuckets) .help("Per group file size distribution.").create(); createGroupStats = groupName -> new GroupStats(groupName, new HistogramMetricAdapter(histogram.labels(groupName))); .name(FsImageCollector.METRIC_PREFIX_USER + FSIZE) .labelNames(FsImageCollector.LABEL_USER_NAME) .buckets(configuredBuckets) .help("Per user file size distribution").create(); createUserStat = userName -> new UserStats(userName, Histogram histogram = Histogram.build() .name(FsImageCollector.METRIC_PREFIX_PATH + FSIZE) .buckets(configuredBuckets) .labelNames(FsImageCollector.LABEL_PATH) .help("Path specific file size distribution").create(); Histogram histogram = Histogram.build() .name(FsImageCollector.METRIC_PREFIX_PATH_SET + FSIZE) .buckets(configuredBuckets) .labelNames(FsImageCollector.LABEL_PATH_SET) .help("Path set specific file size distribution").create();
.help("JDBC query duration") .name("tomcat_jdbc_query_seconds") .buckets(buckets) .labelNames("status"); globalQueryStats = builder.register(); .help("JDBC slow query duration in seconds") .name("tomcat_jdbc_slowquery_seconds") .buckets(slowQueryBuckets) .labelNames("query"); slowQueryStats = builder.register();
@Override public void init(FilterConfig filterConfig) throws ServletException { if (servletLatency == null) { Histogram.Builder servletLatencyBuilder = Histogram.build() .name("servlet_request_seconds") .help("The time taken fulfilling servlet requests") .labelNames("context", "method"); if ((filterConfig.getInitParameter(BUCKET_CONFIG_PARAM) != null) && (!filterConfig.getInitParameter(BUCKET_CONFIG_PARAM).isEmpty())) { String[] bucketParams = filterConfig.getInitParameter(BUCKET_CONFIG_PARAM).split(","); double[] buckets = new double[bucketParams.length]; for (int i = 0; i < bucketParams.length; i++) { buckets[i] = Double.parseDouble(bucketParams[i].trim()); } servletLatencyBuilder.buckets(buckets); } else { servletLatencyBuilder.buckets(.01, .05, .1, .25, .5, 1, 2.5, 5, 10, 30); } servletLatency = servletLatencyBuilder.register(); Gauge.Builder servletConcurrentRequestBuilder = Gauge.build() .name("servlet_request_concurrent_total") .help("Number of concurrent requests for given context.") .labelNames("context"); servletConcurrentRequest = servletConcurrentRequestBuilder.register(); Gauge.Builder servletStatusCodesBuilder = Gauge.build() .name("servlet_response_status_total") .help("Number of requests for given context and status code.") .labelNames("context", "status"); servletStatusCodes = servletStatusCodesBuilder.register(); } }
private PrometheusClientInstanceProfiler() { this.outboundCounter = Counter.build() .labelNames(DEST_LABELS) .name(OUTBOUND_BYTES) .help("Total bytes sent to client.") .create(); this.packetsCounter = Counter.build() .labelNames(new String[]{DEST, "packetType"}) .name(PACKET_TYPE) .help("Total packets sent to client.") .create(); this.emptyBatchesCounter = Counter.build() .labelNames(DEST_LABELS) .name(EMPTY_BATCHES) .help("Total empty batches sent to client.") .create(); this.errorsCounter = Counter.build() .labelNames(new String[]{DEST, "errorCode"}) .name(ERRORS) .help("Total client request errors.") .create(); this.responseLatency = Histogram.build() .labelNames(DEST_LABELS) .name(LATENCY) .help("Client request latency.") // buckets in milliseconds .buckets(2.5, 10.0, 25.0, 100.0) .create(); }
public LatencyHistogram(String name, String help, String... labels) { histogram = Histogram.build().buckets(1, 5, 10, 30, 60, 300, 600, 3600) .name(name).help(help).labelNames(labels).register(); }
private PrometheusClientInstanceProfiler() { this.outboundCounter = Counter.build() .labelNames(DEST_LABELS) .name(OUTBOUND_BYTES) .help("Total bytes sent to client.") .create(); this.packetsCounter = Counter.build() .labelNames(new String[]{DEST, "packetType"}) .name(PACKET_TYPE) .help("Total packets sent to client.") .create(); this.emptyBatchesCounter = Counter.build() .labelNames(DEST_LABELS) .name(EMPTY_BATCHES) .help("Total empty batches sent to client.") .create(); this.errorsCounter = Counter.build() .labelNames(new String[]{DEST, "errorCode"}) .name(ERRORS) .help("Total client request errors.") .create(); this.responseLatency = Histogram.build() .labelNames(DEST_LABELS) .name(LATENCY) .help("Client request latency.") // buckets in milliseconds .buckets(2.5, 10.0, 25.0, 100.0) .create(); }
@Setup(Level.Trial) public void setup() { double[] micrometerBuckets = Doubles.toArray(PercentileHistogramBuckets.buckets( DistributionStatisticConfig.builder().minimumExpectedValue(0L).maximumExpectedValue(Long.MAX_VALUE) .percentilesHistogram(true).build())); histogram = io.prometheus.client.Histogram.build("histogram", "A histogram") .buckets(micrometerBuckets).create(); }