.append(Collector.doubleToGoString(sample.value)) .append('\n');
public SummaryMetricFamily addMetric(List<String> labelValues, double count, double sum, List<Double> quantiles) { if (labelValues.size() != labelNames.size()) { throw new IllegalArgumentException("Incorrect number of labels."); } if (this.quantiles.size() != quantiles.size()) { throw new IllegalArgumentException("Incorrect number of quantiles."); } samples.add(new Sample(name + "_count", labelNames, labelValues, count)); samples.add(new Sample(name + "_sum", labelNames, labelValues, sum)); List<String> labelNamesWithQuantile = new ArrayList<String>(labelNames); labelNamesWithQuantile.add("quantile"); for (int i = 0; i < quantiles.size(); i++) { List<String> labelValuesWithQuantile = new ArrayList<String>(labelValues); labelValuesWithQuantile.add(Collector.doubleToGoString(this.quantiles.get(i))); samples.add(new Sample(name, labelNamesWithQuantile, labelValuesWithQuantile, quantiles.get(i))); } return this; } }
writer.write(Collector.doubleToGoString(sample.value)); if (sample.timestampMs != null){ writer.write(' ');
private double getQuantile(double q) { return defaultRegistry.getSampleValue(name, QUANTILE_LABEL, new String[] { Collector.doubleToGoString(q) }) .doubleValue(); }
public SummaryMetricFamily addMetric(List<String> labelValues, double count, double sum, List<Double> quantiles) { if (labelValues.size() != labelNames.size()) { throw new IllegalArgumentException("Incorrect number of labels."); } if (this.quantiles.size() != quantiles.size()) { throw new IllegalArgumentException("Incorrect number of quantiles."); } samples.add(new Sample(name + "_count", labelNames, labelValues, count)); samples.add(new Sample(name + "_sum", labelNames, labelValues, sum)); List<String> labelNamesWithQuantile = new ArrayList<String>(labelNames); labelNamesWithQuantile.add("quantile"); for (int i = 0; i < quantiles.size(); i++) { List<String> labelValuesWithQuantile = new ArrayList<String>(labelValues); labelValuesWithQuantile.add(Collector.doubleToGoString(this.quantiles.get(i))); samples.add(new Sample(name, labelNamesWithQuantile, labelValuesWithQuantile, quantiles.get(i))); } return this; } }
static void writeMetricsCollectedByPrometheusClient(Writer w, CollectorRegistry registry) throws IOException { Enumeration<MetricFamilySamples> metricFamilySamples = registry.metricFamilySamples(); while (metricFamilySamples.hasMoreElements()) { MetricFamilySamples metricFamily = metricFamilySamples.nextElement(); for (int i = 0; i < metricFamily.samples.size(); i++) { Sample sample = metricFamily.samples.get(i); w.write(sample.name); w.write('{'); for (int j = 0; j < sample.labelNames.size(); j++) { if (j != 0) { w.write(", "); } w.write(sample.labelNames.get(j)); w.write("=\""); w.write(sample.labelValues.get(j)); w.write('"'); } w.write("} "); w.write(Collector.doubleToGoString(sample.value)); w.write('\n'); } } } }
.append(Collector.doubleToGoString(sample.value)) .append('\n');
writer.write(Collector.doubleToGoString(sample.value)); if (sample.timestampMs != null){ writer.write(' ');
.append(Collector.doubleToGoString(sample.value)) .append('\n');
List<String> labelValuesWithQuantile = new ArrayList<String>(labelValues); labelValuesWithQuantile.add( doubleToGoString(valueAtPercentile.getPercentile() / 100)); samples.add( new MetricFamilySamples.Sample(
doubleToGoString( i < boundaries.size() ? boundaries.get(i) : Double.POSITIVE_INFINITY); labelValuesWithLe.add(bucketBoundary);
private static void generateSystemMetrics(SimpleTextOutputStream stream, String cluster) { Enumeration<MetricFamilySamples> metricFamilySamples = CollectorRegistry.defaultRegistry.metricFamilySamples(); while (metricFamilySamples.hasMoreElements()) { MetricFamilySamples metricFamily = metricFamilySamples.nextElement(); for (int i = 0; i < metricFamily.samples.size(); i++) { Sample sample = metricFamily.samples.get(i); stream.write(sample.name); stream.write("{cluster=\"").write(cluster).write("\","); for (int j = 0; j < sample.labelNames.size(); j++) { stream.write(sample.labelNames.get(j)); stream.write("=\""); stream.write(sample.labelValues.get(j)); stream.write("\","); } stream.write("} "); stream.write(Collector.doubleToGoString(sample.value)); stream.write('\n'); } } } }
@Override public Stream<MetricFamilySamples.Sample> collect() { Stream.Builder<MetricFamilySamples.Sample> samples = Stream.builder(); if (quantiles != null) { for (Double q : quantiles.monitored()) { List<String> quantileValues = new LinkedList<>(tagValues); quantileValues.add(Collector.doubleToGoString(q)); samples.add(new MetricFamilySamples.Sample(name, quantileKeys, quantileValues, quantiles.get(q))); } } if (histogram != null) { for (Bucket<?> b : histogram.getBuckets()) { List<String> histogramValues = new LinkedList<>(tagValues); histogramValues.add(b.getTag(bucket -> bucket instanceof Double ? Collector.doubleToGoString((Double) bucket) : bucket.toString())); samples.add(new MetricFamilySamples.Sample(name + "_bucket", histogramKeys, histogramValues, b.getValue())); } } samples.add(new MetricFamilySamples.Sample(countName, tagKeys, tagValues, count.sum())); samples.add(new MetricFamilySamples.Sample(sumName, tagKeys, tagValues, sum.sum())); return samples.build(); }
@Override public Stream<MetricFamilySamples.Sample> collect() { Stream.Builder<MetricFamilySamples.Sample> samples = Stream.builder(); if (quantiles != null) { for (Double q : quantiles.monitored()) { List<String> quantileValues = new LinkedList<>(tagValues); quantileValues.add(Collector.doubleToGoString(q)); samples.add(new MetricFamilySamples.Sample(name, quantileKeys, quantileValues, quantiles.get(q))); } } if (histogram != null) { for (Bucket<?> b : histogram.getBuckets()) { List<String> histogramValues = new LinkedList<>(tagValues); histogramValues.add(b.getTag(bucket -> bucket instanceof Double ? Collector.doubleToGoString((Double) bucket) : bucket.toString())); samples.add(new MetricFamilySamples.Sample(name + "_bucket", histogramKeys, histogramValues, b.getValue())); } } samples.add(new MetricFamilySamples.Sample(countName, tagKeys, tagValues, count.sum())); samples.add(new MetricFamilySamples.Sample(sumName, tagKeys, tagValues, sum.sum())); return samples.build(); }
private static void generateSystemMetrics(SimpleTextOutputStream stream, String cluster) { Enumeration<MetricFamilySamples> metricFamilySamples = CollectorRegistry.defaultRegistry.metricFamilySamples(); while (metricFamilySamples.hasMoreElements()) { MetricFamilySamples metricFamily = metricFamilySamples.nextElement(); // Write type of metric stream.write("# TYPE ").write(metricFamily.name).write(' ') .write(getTypeStr(metricFamily.type)).write('\n'); for (int i = 0; i < metricFamily.samples.size(); i++) { Sample sample = metricFamily.samples.get(i); stream.write(sample.name); stream.write("{cluster=\"").write(cluster).write('"'); for (int j = 0; j < sample.labelNames.size(); j++) { stream.write(","); stream.write(sample.labelNames.get(j)); stream.write("=\""); stream.write(sample.labelValues.get(j)); stream.write('"'); } stream.write("} "); stream.write(Collector.doubleToGoString(sample.value)); stream.write('\n'); } } }