use of io.prometheus.client.Gauge.Child in project promregator by promregator.
the class MetricsFetcherSimulatorTest method testCall.
@Test
void testCall() throws Exception {
AbstractMetricFamilySamplesEnricher mfse = new CFAllLabelsMetricFamilySamplesEnricher("testOrgName", "testSpaceName", "testapp", "testinstance1:0");
Gauge up = Gauge.build("up_test", "help test").labelNames(CFAllLabelsMetricFamilySamplesEnricher.getEnrichingLabelNames()).create();
Child upChild = up.labels(mfse.getEnrichedLabelValues(new LinkedList<>()).toArray(new String[0]));
MetricsFetcherSimulator subject = new MetricsFetcherSimulator("accessUrl", new NullEnricher(), mfse, Mockito.mock(MetricsFetcherMetrics.class), upChild);
HashMap<String, MetricFamilySamples> result = subject.call();
Assertions.assertEquals(3, result.size());
}
use of io.prometheus.client.Gauge.Child in project bookkeeper by apache.
the class PrometheusMetricsProvider method start.
@Override
public void start(Configuration conf) {
int httpPort = conf.getInt(PROMETHEUS_STATS_HTTP_PORT, DEFAULT_PROMETHEUS_STATS_HTTP_PORT);
InetSocketAddress httpEndpoint = InetSocketAddress.createUnresolved("0.0.0.0", httpPort);
this.server = new Server(httpEndpoint);
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new PrometheusServlet(this)), "/metrics");
try {
server.start();
} catch (Exception e) {
throw new RuntimeException(e);
}
// Include standard JVM stats
new StandardExports().register(registry);
new MemoryPoolsExports().register(registry);
new GarbageCollectorExports().register(registry);
new ThreadExports().register(registry);
// Add direct memory allocated through unsafe
Gauge.build("jvm_memory_direct_bytes_used", "-").create().setChild(new Child() {
@Override
public double get() {
return directMemoryUsage != null ? directMemoryUsage.longValue() : Double.NaN;
}
}).register(registry);
Gauge.build("jvm_memory_direct_bytes_max", "-").create().setChild(new Child() {
@Override
public double get() {
return PlatformDependent.maxDirectMemory();
}
}).register(registry);
executor = Executors.newSingleThreadScheduledExecutor(new DefaultThreadFactory("metrics"));
int latencyRolloverSeconds = conf.getInt(PROMETHEUS_STATS_LATENCY_ROLLOVER_SECONDS, DEFAULT_PROMETHEUS_STATS_LATENCY_ROLLOVER_SECONDS);
executor.scheduleAtFixedRate(() -> {
rotateLatencyCollection();
}, 1, latencyRolloverSeconds, TimeUnit.SECONDS);
log.info("Started Prometheus stats endpoint at {}", httpEndpoint);
}
Aggregations