小编Ber*_*hka的帖子

Spring Boot Actuator端点的漂亮打印JSON输出

春季启动器提供了几个端点,以监视应用程序为:

/metrics
/beans
/health
...
Run Code Online (Sandbox Code Playgroud)

检查端点:

curl http://localhost:8080/metrics
Run Code Online (Sandbox Code Playgroud)

结果是:

{"counter.status.200.env":1,"counter.status.200.health":1,"counter.status.200.info":2,"counter.status.200.metrics":2,"gauge.response.env":5.0,"gauge.response.health":22.0,"gauge.response.info":1.0,"gauge.response.metrics":1.0,"mem":1030144,"mem.free":56118,"processors":8,"uptime":5108095,"instance.uptime":5102906,"heap.committed":1030144,"heap.init":262144,"heap.used":974031,"heap":3728384,"threads.peak":81,"threads.daemon":21,"threads":77,"classes":8854,"classes.loaded":8860,"classes.unloaded":6,"gc.ps_scavenge.count":119,"gc.ps_scavenge.time":7223,"gc.ps_marksweep.count":12,"gc.ps_marksweep.time":17573}
Run Code Online (Sandbox Code Playgroud)

对机器消耗很好,很难人类阅读.

我想格式化(即打印)Spring Boot Actuator端点的JSON输出,以便操作人员更容易阅读.

就像是:

{
  "counter.status.200.env":1,
  "counter.status.200.health":1,
  "counter.status.200.info":2,
  "counter.status.200.metrics":2,
  "gauge.response.env":5.0,
  "gauge.response.health":22.0,
  "gauge.response.info":1.0,
  ...
}
Run Code Online (Sandbox Code Playgroud)

我尝试过设置

http.mappers.json-pretty-print=true 
Run Code Online (Sandbox Code Playgroud)

但此设置不会影响执行器输出.

是否有一个配置,以实现优质打印的的春天启动器JSON输出?

更新:

官方样片对我的作品.

遵循@DaveSyer的评论非常重要:要设置的属性是

http.mappers.jsonPrettyPrint=true
Run Code Online (Sandbox Code Playgroud)

调查仍在进行中.

与此同时,我使用json pretty print 命令行作为解决方法:

安装jsonpp(例如OS X):

brew install jsonpp
Run Code Online (Sandbox Code Playgroud)

然后通过jsonpp管理curl输出,jsonpp可以动态格式化json文件:

curl http://localhost:8080/metrics | jsonpp
Run Code Online (Sandbox Code Playgroud)

结果是: …

spring json spring-boot

27
推荐指数
5
解决办法
3万
查看次数

标签 统计

json ×1

spring ×1

spring-boot ×1