配置Prometheus进行Spring Boot运行状况检查监视

时间:2018-10-14 19:59:54

标签: spring-boot prometheus

我们很少有实现健康检查的Spring Boot应用程序。这些检查的响应已基于@Thiru的suggestion更改为JSON格式。我现在收到以下响应:

enter image description here

Prometheus服务器正在Ubuntu实例上运行。在Windows服务器2016上运行必须监视的Spring Boot服务。看到this帖子后,我在Windows服务器上安装了 blackbox-exporter (版本0.12.0.windows-amd64)。

以下更改是在172.16.x.yz的客户端(IP为blackbox.yml的Windows服务器)上完成的:

modules:
  http_2xx:
    prober: http
    http:
  http_post_2xx:
    prober: http
    timeout: 5s
    http:
      method: POST
      headers:
        Content-Type: application/json
      body: '{"status": "UP"}'
  ...
  ...

在Prometheus服务器上,prometheus.yml的内容如下:

...
...
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      #module: [http_2xx]  # Look for a HTTP 200 response.
      module: [http_post_2xx]  # Look for a HTTP 200 response.
    static_configs:
      - targets:
        - http://172.16.x.yz:6300/serviceA/actuator/health
        - http://172.16.x.yz:6340/serviceB/actuator/health
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 172.16.x.yz:9115  # The blackbox exporter's real hostname:port.

在客户端和服务器上进行了上述更改之后,当我同时重新启动blackbox-exporterprometheus时,我发现Prometheus总是将State显示为UP如果出口商正在监视的两项服务出现故障。似乎Prometheus正在显示blackbox-exporter的状态,而不是服务的状态。有什么建议我可以解决吗?

enter image description here

2 个答案:

答案 0 :(得分:2)

我建议使用某种工具,这些方法可以帮助以普罗米修斯出口商的身份出口春季保健。基本上,导出程序可使用jsonpath来帮助将Http数据中的json数据转换为prometheus指标,例如:

答案 1 :(得分:0)

我认为,普罗米修斯目标实际上表明刮擦目标处于上升或下降状态。这与运行状况检查端点状态无关。您只能在probe_success指标中检查运行状况检查端点状态(1处于打开状态,0处于关闭状态)。您可以查看以下屏幕截图。 对不起,我的英语不好。

Targets status

Real Status of endpoint