当前位置:   article > 正文

SpringBoot:定制-Actuator,高薪程序员必会_endpoints.enabled

endpoints.enabled
endpoints: 
 enabled: false 
 metrics: 
 enabled: true
  • 1
  • 2
  • 3
  • 4

正如以上片段所示,endpoints.enabled设置为false就能禁用Actuator的全部端点,然后将endpoints.metrics.enabled设置为true重新启用/metrics端点。

三、添加自定义度量信息

你可能还想定义自己的度量,用来捕获应用程序中的特定信息。

比方说,我们想要知道用户往阅读列表里保存了多少次图书,最简单的方法就是在每次调用ReadingListControlleraddToReadingList()方法时增加计数器值。计数器很容易实现,但这个不断变化的总计值如何同/metrics端点发布的度量信息一起发布出来呢?

再假设我们想要获得最后保存图书的时间戳。时间戳可以通过调用System.currentTime-Millis()来获取,但如何在/metrics端点里报告该时间戳呢?

实际上,自动配置允许Actuator创建CounterService的实例,并将其注册为Spring的应用程序上下文中的Bean。CounterService这个接口里定义了三个方法,分别用来增加、减少或重置 特定名称的度量值,代码如下:

package org.springframework.boot.actuate.metrics; 
public interface CounterService {
    
 void increment(String metricName); 
 void decrement(String metricName); 
 void reset(String metricName); 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Actuator的自动配置还会配置一个GaugeService类型的Bean。该接口与CounterService类似,能将某个值记录到特定名称的度量值里。GaugeService看起来是这样的:

package org.springframework.boot.actuate.metrics; 
public interface GaugeService {
    
 void submit(String metricName, double value); 
}
  • 1
  • 2
  • 3
  • 4
  • 5

你无需实现这些接口。Spring Boot已经提供了两者的实现。我们所要做的就是把它们的实例注入所需的Bean,在适当的时候调用其中的方法,更新想要的度量值。

针对上文提到的需求,我们需要把CounterServiceGaugeService Bean注入Reading-ListController,然后在addToReadingList()方法里调用其中的方法。

使用注入的CounterServiceGaugeService

@Controller 
@RequestMapping("/") 
@ConfigurationProperties("amazon") 
public class ReadingListController {
    
 ... 
 private CounterService counterService; 
 @Autowired 
 public ReadingListController( 
 ReadingListRepository readingListRepository, 
 AmazonProperties amazonProperties, 
 CounterService counterService, 
 GaugeService gaugeService) {
    
 this.readingListRepository = readingListRepository; 
 this.amazonProperties = amazonProperties; 
 this.counterService = counterService; 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/262986
推荐阅读
相关标签
  

闽ICP备14008679号