-
Notifications
You must be signed in to change notification settings - Fork 774
/
PrometheusMetricReaderProvider.java
45 lines (37 loc) · 1.44 KB
/
PrometheusMetricReaderProvider.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.exporter.prometheus.internal;
import io.opentelemetry.exporter.internal.ExporterBuilderUtil;
import io.opentelemetry.exporter.prometheus.PrometheusHttpServer;
import io.opentelemetry.exporter.prometheus.PrometheusHttpServerBuilder;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import io.opentelemetry.sdk.autoconfigure.spi.internal.ConfigurableMetricReaderProvider;
import io.opentelemetry.sdk.metrics.export.MetricReader;
/**
* SPI implementation for {@link PrometheusHttpServer}.
*
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
public class PrometheusMetricReaderProvider implements ConfigurableMetricReaderProvider {
@Override
public MetricReader createMetricReader(ConfigProperties config) {
PrometheusHttpServerBuilder prometheusBuilder = PrometheusHttpServer.builder();
Integer port = config.getInt("otel.exporter.prometheus.port");
if (port != null) {
prometheusBuilder.setPort(port);
}
String host = config.getString("otel.exporter.prometheus.host");
if (host != null) {
prometheusBuilder.setHost(host);
}
ExporterBuilderUtil.configureExporterMemoryMode(config, prometheusBuilder::setMemoryMode);
return prometheusBuilder.build();
}
@Override
public String getName() {
return "prometheus";
}
}