springboot千分尺如何收集方法的执行时间,而不是Max时间



使用Timer作为timer.record(),得到如下结果

method_metrics_seconds_max{application="mydemo",class="com.demo.service.Impl.MetricsDemoService2Impl",method="getMethod1",} 0.21
method_metrics_seconds_count{application="mydemo",class="com.demo.service.Impl.MetricsDemoService2Impl",method="getMethod4",} 1.0
method_metrics_seconds_sum{application="mydemo",class="com.demo.service.Impl.MetricsDemoService2Impl",method="getMethod4",} 3.603

但是我想要得到真实的执行时间

我找了很多资料,但是没有找到

指标基本上是时间上的聚合数据点。我认为您要求的是原始数据(不是聚合数据)。尽管度量库不会向您提供原始数据(因为它们正在聚合数据),但是您有两个选项:

  1. 你可以使用百分位直方图(推荐),这样你就可以看到请求的数量,例如落在100到200ms之间,你也可以在后端计算百分位
  2. 您可以使用客户端百分位数(不推荐),以便您可以看到百分位数值
  3. 将数据推送到日志中(不推荐)
  4. 使用Spring Cloud Sleuth,这是我们的分布式跟踪解决方案,它可以记录单独HTTP请求的持续时间
  5. 您可以使用Micrometer的新观察API并记录数据,但您愿意(将推荐一旦发布:大约2022年底,Spring Boot 3也将支持此)

相关内容

  • 没有找到相关文章

最新更新