tokuhirom's blog

RxNetty のメトリクス取得について

RxNetty でサーバー運用するにあたっては、メトリクスを取得したくなるとおもいますが、デフォルトでは spectator がサポートされています。 spectator は netflix 製のライブラリですが netflix 以外ではほとんど利用されていない様子。情報が極めて少ないです。

コード例などは見当たらないのですが、以下のように Global の metrics に Dropwizard の MetricRepository を紐付けてやれば良いです。

RxNetty.useMetricListenersFactory(new SpectatorEventsListenerFactory());

MetricRegistry metricRegistry = new MetricRegistry();
MetricsRegistry registry = new MetricsRegistry(Clock.SYSTEM, metricRegistry);
Spectator.globalRegistry().add(registry);

JmxReporter.forRegistry(metricRegistry).build().start();

依存は以下のような感じ

        <dependency>
            <groupId>io.reactivex</groupId>
            <artifactId>rxnetty-spectator</artifactId>
            <version>0.4.19</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.spectator</groupId>
            <artifactId>spectator-reg-metrics3</artifactId>
            <version>0.43.0</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.spectator</groupId>
            <artifactId>spectator-api</artifactId>
            <version>0.43.0</version>
        </dependency>

取得されるデータは以下のような感じです。一応データとして取得はできていますが、ちょっとコレジャナイ感じもありますね。

https://gyazo.com/afee897ec9e9f919f9155d41f439a55b

Created: 2016-11-12 09:54:53 +0000
Updated: 2016-11-12 09:54:53 +0000