我正在将Java Spring项目从Java 8迁移到Java 11。所以我需要用千分尺取代dropwizard指标。Dropwizard指标记录了到达某个端点时的状态和响应。例如:端点localhost:8080/my_service/v1/api/some/endpoint
—>>记录指标metrics.prefix.counter.status.200.v1.api.some.endpoint
metrics.prefix.gauge.response.v1.api.some.endpoint
是否有一种方法可以在千分尺中实现相同的功能?我知道有@Counted
注释,但由于某种原因它不起作用。(我把它放在端点方法)。
我的属性文件(仅与度量相关的值):
management.metrics.export.statsd.enabled=true
management.metrics.export.statsd.host=****
management.metrics.export.statsd.port=8125
management.metrics.export.statsd.flavor=etsy
management.metrics.export.statsd.prefix=metrics.prefix
management.metrics.export.statsd.polling-frequency=10s
management.metrics.web.server.auto-time-requests=:true
如果你使用Spring创建端点(mvc或webflux),你不需要做任何事情来查看这些指标。
你应该看到http.server.requests
有所有的细节(作为标签),你在上面的名字(uri,状态)和更多。
为了使@Counted
(和/或@Timed
工作),你需要创建一个CountedAspect
(和/或TimedAspect
)@Bean
,但正如我所说,如果你只在控制上使用它,它们是不需要的。