当前位置: 首页 > 知识库问答 >
问题:

Spring Boot执行器endpoint的漂亮打印JSON输出

曾修真
2023-03-14

Spring Boot Actuctor提供了几个endpoint来监控应用程序:

/metrics
/beans
/health
...

使用以下方法检查endpoint:

curl http://localhost:8080/metrics

结果如下:

{"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}

这对机器消费很好,但人类很难读懂。

我想对Spring Boot执行器endpoint的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,
  ...
}

我试过设置

http.mappers.json-pretty-print=true 

但此设置并不影响执行器的输出。

是否有一个配置来启用Spring Boot执行器JSON输出的漂亮打印?

更新:

http.mappers.jsonPrettyPrint=true

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

安装jsonpp(例如,对于OS X):

brew install jsonpp

然后通过jsonpp管道输出curl,该jsonpp实时格式化json文件

curl http://localhost:8080/metrics | jsonpp
{
  "counter.status.200.env": 1,
  "counter.status.200.health": 1,
  "counter.status.200.info": 2,
  "counter.status.200.metrics": 2,
  ...
}

共有1个答案

公良安邦
2023-03-14

根据http://docs.Spring.io/spring-boot/docs/current/reference/html/howto-spring-mvc.html#howto-customize-the-jackson-objectmapper,在Spring Boot(至少1.2.2)中使用Jackson启用漂亮打印的正式方法是设置以下属性:

 # Pretty-print JSON responses
 spring.jackson.serialization.indent_output=true
 类似资料:
  • 我有一个Spring Boot控制台应用程序,我通过JMX访问执行器endpoint。问题是返回的文本打印得不好,也不是JSON。它看起来像这样: 将其转换为可读格式的最佳方法是什么?是否可以将JMX执行器配置为漂亮打印?是否可以将JMX执行器配置为使用JSON? 有一个关于Spring Boot Actuatorendpoint的漂亮打印JSON输出的相关问题,但在这种情况下,我被JMX卡住了,

  • 问题内容: 如果有人对JSON的打印非常了解,那么我将不胜感激! 我正在使用以下功能将JSON字符串移动到文件中,以将复杂的python字符串转换为JSON格式: 问题是我遇到了方括号的语法错误,因为这对我来说是个新话题,我不知道该如何解决。我需要的JSON格式如下: 我正在使用Google Visualization API,您可能对此比较熟悉,但是我需要动态图。上面的代码是API创建图形所需的

  • 问题内容: 我正在构建一个PHP脚本,该脚本将JSON数据提供给另一个脚本。我的脚本将数据构建到一个大的关联数组中,然后使用来输出数据。这是一个示例脚本: 上面的代码产生以下输出: 如果您的数据量很少,那就太好了,但是我希望遵循以下几点: 有没有办法在PHP中做到这一点而又没有丑陋的破解?似乎有人在Facebook上找到了答案。 问题答案: PHP 5.4提供了用于调用的选项。 http://ph

  • 问题内容: 我正在尝试使用javax.json API漂亮地打印json 我当前使用的代码如下: 我收到以下异常: 问题答案: 您应该使用JsonWriter而不是JsonGenerator。 替换这些行: 用这些:

  • 问题内容: 我使用以下代码将a漂亮地打印到JSON中: 输出: 这有点 太多了 (每个列表元素的换行!)。 我应该使用哪种语法: 代替? 问题答案: 几年后,我找到了带有内置模块的解决方案: 输出:

  • 在我的应用程序执行器的健康endpoint返回以下JSON: 而不是一个字符串,我想返回漂亮的打印JSON。 我已将以下配置添加到中: 已更新 这是我的 这是父pom.xml