私は数日を費やしましたが、春の計装は初めてで、機能しませんでした。
私はスプリングブート2アプリを持っています。pom.xml
私が定義した:
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-statsd</artifactId>
<version>1.1.5</version>
</dependency>
でapplication.conf
:
management.metrics.export.statsd.host=localhost
management.metrics.export.statsd.port=8125
management.metrics.export.statsd.flavor=etsy
management.metrics.export.statsd.step=2m
management.metrics.export.statsd.enabled=true
management.endpoints.web.exposure.include=health,metrics
アプリの起動時に、新しいメトリック (カウンター) をエクスポートしたい:
@SpringBootApplication
public class MyApplication {
private static final Logger LOG = LoggerFactory.getLogger(MyApplication.class);
private static final StatsdConfig config = new StatsdConfig() {
@Override
public String get(String k) { return null; }
@Override
public StatsdFlavor flavor() { return StatsdFlavor.ETSY; }
};
private static final MeterRegistry registry = new StatsdMeterRegistry(config, Clock.SYSTEM);
public static void main(String[] args) {
// globalRegistry is composite hence was hoping they will unite into one
Metrics.globalRegistry.add(registry);
Counter myCounter = Counter
.builder("myCounter")
.description("indicates instance count of the object")
.tags("dev", "performance")
.register(registry);
// .register(Metrics.globalRegistry);
myCounter.increment(2.0);
LOG.info("Counter: " + myCounter.count());
SpringApplication.run(MyApplication.class, args);
}
}
上記のようにコーディングすると、http://localhost:8081/actuator/metrics/myCounterでは利用できません。しかし.register(Metrics.globalRegistry);
、前の行のコメントを外してコメントすると、http://localhost:8081/actuator/metrics/myCounter0.0
にメトリックが含まれますが、その値は2.0
.
私が望むのは、アプリケーション全体で定義されたカスタム メトリックを含むカスタム レジストリを作成し、正しく登録してメトリック エンドポイントで使用できるようにし、それを StatsD にエクスポートできるようにすることです。上記で何が欠けているか分かりますか?
これらのドキュメントhttps://www.baeldung.com/micrometerおよびhttps://micrometer.io/docs/registry/statsDに従いました。コードの Bean を作成する方法、または Spring Boot によって自動構成されたレジストリを使用する方法は?