如何通过 Scrapy 将指标发送到 Prometheus?

How to send Metrics via Scrapy to Prometheus?

我是 Prometheus 的新手。

我也需要将抓取的项目数量发送到 Prometheus 并在 Grafana 中的图表上显示它们。

我安装了Prometheus, Scrapy-Prometheus, and Grafana.

在 Scrapy 设置中我添加了

STATS_CLASS = 'scrapy_prometheus.PrometheusStatsCollector'
# Prometheus pushgateway host
PROMETHEUS_PUSHGATEWAY = 'http://0.0.0.0:9090'   
# Metric name prefix
PROMETHEUS_METRIC_PREFIX = 'scrapy_prometheus'   
# Timeout for pushing metrics to pushgateway
PROMETHEUS_PUSH_TIMEOUT = 5  
# Method to use when pushing metrics
PROMETHEUS_PUSH_METHOD = 'POST'  # default
PROMETHEUS_SUPPRESS_TYPE_CHECK = False
# job label value, applied to all metrics.
PROMETHEUS_JOB = 'scrapy' 
PROMETHEUS_GROUPING_KEY = {'instance': 'localhost'}

Grafana的设置我是这样配置的

Documentation中我们有

stat foo: 67 whill produce metric

scrapy_prometheus_foo{instance="...",job="scrapy",spider="..."} 67

我的问题是如何将抓取的项目数量作为指标发送给 Prometheus?

从阅读文档看来 scrapy-prometheus 只是将所有统计数据发送到:

<prefix><stats name with / replaced by _>

默认前缀为 scrapy_prometheus,您正在寻找已抓取物品的统计数据为 item_scraped_count,因此您应该寻找 scrapy_prometheus_item_scraped_count stat,它应该默认发送。