请求Prometheus的黑盒出口商超时

时间:2018-12-18 03:44:27

标签: prometheus prometheus-blackbox-exporter

我有一些关于blackbox_exporter的问题,如下所示:
我将prometheus.yml配置如下:

global:
    scrape_interval:     30s
    scrape_timeout:      5s
    evaluation_interval: 30s

scrape_configs:
############################################################
###################### node exporter #######################
############################################################
  - job_name: 'Demo'
    static_configs:
        - targets: ['127.0.0.1:9100']
############################################################
##################### blackbox exporter ####################
############################################################
  - job_name: 'blackbox'
    metrics_path: /probe
    params:
      module: [http_post_2xx]
    static_configs:
    - targets:
######################## Test ##############################
      - 127.0.0.1:2014/translate
############################################################
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9115
############################################################

我的blackbox_exporter.yml是:

modules:
  http_post_2xx:
    prober: http
    timeout: 10s
    http:
      method: POST
      headers:
        Content-Type: application/json
      body: '{"text": "hi"}'

当我通过grafana可视化来自目标服务器的结果时,一切都很好。检查请求返回值是0、200还是500?太好了,至少它能够在收到客户投诉之前改变我自己,确定哪个服务器已关闭。谢谢Prometheus和grafana。 :)

这几天,当我尝试使用wrk-HTTP基准测试工具评估服务器性能时,还有另一种困扰我的情况。我想知道我的服务器在来自wrk的“大规模攻击”下的处理能力如何:

sudo wrk -t4 -c2000 -d20m -T10s --script=post.lua --latency http://10.0.100.199:2001/translate

而post.lua是:

wrk.method = "POST"
wrk.headers["Content-Type"] = "application/json"
wrk.body = '{"text": "日本国民は、正当に選挙された国会における代表者を通じて行動し"}'

当服务器受到来自wrk的巨大“压力”时,Blackbox_exporter无法获取probe_http_status_code。 probe_http_status_code将变为0,但我想将这些情况清楚地分开:

  1. 请求已发送,但是服务器无法处理此请求,因为它承受着巨大的“压力”。 (我认为这是服务器超时的情况。)
  2. 服务器已关闭,根本无法处理任何请求。

两个条件的probe_http_status_code在Prometheus中都将表示为0。是否有任何方法可以分离这些条件?

0 个答案:

没有答案