Menu Close
Settings Close

Language and Page Formatting Options

8.6.3. Micrometer 向けのプレーンな Java OptaPlanner アプリケーションの設定

Micrometer を使用するようにプレーンな Java OptaPlanner アプリケーションを設定するには、選択したモニタリングシステムの Micrometer 依存関係および設定情報をプロジェクトの POM.XML ファイルに追加する必要があります。

前提条件

  • プレーンな Java OptaPlanner アプリケーションがある。

手順

  1. 以下の依存関係をアプリケーションの pom.xml ファイルに追加します。< MONITORING_SYSTEM > は Micrometer で設定されるモニタリングシステムで、< VERSION > は使用している Micrometer のバージョンに置き換えます。

    <dependency>
     <groupId>io.micrometer</groupId>
     <artifactId>micrometer-registry-<MONITORING_SYSTEM></artifactId>
     <version><VERSION></version>
    </dependency>
    <dependency>
     <groupId>io.micrometer</groupId>
     <artifactId>micrometer-core</artifactId>
     <version>`<VERSION>`</version>
    </dependency>
  2. 監視システムの Micrometer 設定情報をプロジェクトの pom.xml ファイルの先頭に追加します。詳細は、Micrometer の Web サイト を参照してください。
  3. 設定情報の下に以下の行を追加します。&lt ;MONITORING_SYSTEM> は、追加した監視システムに置き換えます。

    Metrics.addRegistry(<MONITORING_SYSTEM>);

    以下の例は、Prometheus モニタリングシステムを追加する方法を示しています。

    PrometheusMeterRegistry prometheusRegistry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT);
    try {
        HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
        server.createContext("/prometheus", httpExchange -> {
            String response = prometheusRegistry.scrape();
            httpExchange.sendResponseHeaders(200, response.getBytes().length);
            try (OutputStream os = httpExchange.getResponseBody()) {
                os.write(response.getBytes());
            }
        });
        new Thread(server::start).start();
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
    Metrics.addRegistry(prometheusRegistry);
  4. モニタリングシステムを開き、OptaPlanner プロジェクトのメトリクスを表示します。以下のメトリクスが公開されます。

    注記

    メトリクスの名前と形式はレジストリーによって異なります。

    • OptaPlanner.solver.errors.total: 測定開始から解決中に発生したエラーの合計数。
    • optaplanner.solver.solve-length.active-count: 現在解決しているソルバーの数。
    • optaplanner.solver.solve-length.seconds-max: 現在アクティブなソルバーの実行時間。
    • optaplanner.solver.solve-length.seconds-duration-sum: アクティブなソルバーの解決時間の合計。たとえば、アクティブなソルバーが 2 つあり、そのソルバーが 3 分間実行され、もう 1 分間 1 分間動作している場合には、解決時間の合計は 4 分です。