ホームページ  >  記事  >  Java  >  Spring Boot Actuator メトリクス エンドポイントにメーター データを追加する方法

Spring Boot Actuator メトリクス エンドポイントにメーター データを追加する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 20:16:02286ブラウズ

How to add a meter data into Spring Boot Actuator metrics endpoint

ステップ

まず、次の依存関係を追加します

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- for Prometheus endpoint -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

次に、Web アクセスを通じてエンドポイントを有効にします

src/main/resources/application.properties

management.endpoints.web.exposure.include=prometheus,metrics

シングルトンコンポーネントを追加します

@Component
public class MyMetrics implements MeterBinder {

    private final Random random = new Random();
    private final AtomicInteger counter = new AtomicInteger();

    @Override
    public void bindTo(MeterRegistry registry) {
        // can any value
        Gauge.builder("mymetrics.gauge", this, MyMetrics::getRandom)
                .description("MyMetrics gauge")
                .register(registry);

        // must the same or greater than the value last got, or reset to zero on restart
        FunctionCounter.builder("mymetrics.counter", this, MyMetrics::counterGetAndIncrement)
                .description("MyMetrics counter")
                .register(registry);
    }

    public double getRandom() {
        return random.nextDouble();
    }

    public int counterGetAndIncrement() {
        return counter.getAndIncrement();
    }

}

最後に、

を通じてメトリクス データにアクセスできます。

/actuator/metrics/mymetrics.counter

{"name":"mymetrics.counter","description":"MyMetrics counter","baseUnit":null,"measurements":[{"statistic":"COUNT","value":9.0}],"availableTags":[]}

/actuator/metrics/mymetrics.gauge

{"name":"mymetrics.gauge","description":"MyMetrics gauge","baseUnit":null,"measurements":[{"statistic":"VALUE","value":0.7618330619753056}],"availableTags":[]}

/アクチュエーター/プロメテウス

# HELP mymetrics_counter_total MyMetrics counter
# TYPE mymetrics_counter_total counter
mymetrics_counter_total 8.0
# HELP mymetrics_gauge MyMetrics gauge
# TYPE mymetrics_gauge gauge
mymetrics_gauge 0.1346348968727723

エンドポイント

エンドポイントには org.springframework.boot.actuate.endpoint.annotation.Endpoint のアノテーションが付けられており、これらは Bean であり、Spring の BeanFactory によって管理されます。

エンドポイント クラス 作成者 指標
Endpoint Class Created by
metrics org.springframework.boot.actuate.metrics.MetricsEndpoint org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration#metricsEndpoint
prometheus org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration.PrometheusScrapeEndpointConfiguration#prometheusEndpoint
org.springframework.boot.actuate.metrics.MetricsEndpoint

org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration#metricsEndpoint

プロメテウス org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint

org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration.PrometheusScrapeEndpointConfiguration#prometheusEndpoint

org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping クラス

これは org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration#webEndpointServletHandlerMapping

によって作成されます。エンドポイント情報は、

org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer. によって提供されます。 パスとエンドポイント間のマッピングは、org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping#initHandlerMethods

に登録されます。

org.springframework.web.servlet.HandlerMapping インターフェースを実装しているため、インスタンスはインスタンスの構築中に DispatcherServlet
に登録されます。

spring.jmx.enabled=true
エンドポイントを JMX に公開する

src/main/resources/application.properties

に行を追加するだけです エンドポイントと MBeanServer の関連付けは、org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointAutoConfiguration. によって行われます。

以上がSpring Boot Actuator メトリクス エンドポイントにメーター データを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。