通过pushgateway服务将scrapy统计数据导出为prometheus度量

scrapy-prometheus的Python项目详细描述


https://img.shields.io/pypi/status/scrapy_prometheus.svghttps://travis-ci.org/sashgorokhov/scrapy_prometheus.svg?branch=masterhttps://img.shields.io/github/license/sashgorokhov/scrapy_prometheus.svghttps://img.shields.io/pypi/pyversions/scrapy_prometheus.svghttps://badge.fury.io/py/scrapy_prometheus.svg

scrapy stats收集器,通过pushgateway服务将scrapy stats导出为普罗米修斯度量。

安装

通过PIP:

pip install scrapy_prometheus

用法

若要开始使用,请将scrapy_prometheus.PrometheusStatsCollector添加到统计类设置:

STATS_CLASS='scrapy_prometheus.PrometheusStatsCollector'

这个stats收集器的工作方式与vanilla收集器完全相同(因为它是它的子类),但是 创建普罗米修斯度量并将其推送到蜘蛛关闭信号上的pushgateway服务。

它支持两种度量类型:CounterGauge。stat度量类型由上使用的操作确定 stat:stats.inc_value将创建一个Counter度量,而其他方法, stats.set_valuestats.max_valuestats.min_value,将创建Gauge

所有指标都将有一个带有蜘蛛名称的蜘蛛标签。

stat值必须是intfloat

注意,试图对一个度量执行操作,不应该与此一起使用 操作(在计数器上设置值或在仪表上增加值)将产生 scrapy_prometheus.InvalidMetricType错误。要抑制它,请将PROMETHEUS_SUPPRESS_TYPE_CHECK设置为true。

如果要创建自定义度量,可以使用stats.get_registry(spider)访问spider的collectorregistry。

可用设置

# Prometheus pushgateway hostPROMETHEUS_PUSHGATEWAY='localhost:9091'# default# Metric name prefixPROMETHEUS_METRIC_PREFIX='scrapy_prometheus'# default# Timeout for pushing metrics to pushgatewayPROMETHEUS_PUSH_TIMEOUT=5# default# Method to use when pushing metrics# Read https://github.com/prometheus/pushgateway#put-methodPROMETHEUS_PUSH_METHOD='POST'# default# Do not raise scrapy_prometheus.InvalidMetricType when stat is accessed as different type metric.# For example, doing stats.inc_value('foo', 1) and then stats.set_value('foo', 2) will raise an error,# Because metric of type Counter was already created for stat foo.PROMETHEUS_SUPPRESS_TYPE_CHECK=False# job label value, applied to all metrics.PROMETHEUS_JOB='scrapy'# default# grouping label dict, applied to all metrics.# by default it is an instance key with hostname value.PROMETHEUS_GROUPING_KEY={'instance':<hostname>}

如何创建指标

度量名称是从PROMETHEUS_METRIC_PREFIX和stat name生成的,其中所有/都替换为_

例如:

  • statfoo: 67将生成度量值scrapy_prometheus_foo{instance="...",job="scrapy",spider="..."} 67
  • statfoo/bar: 67将生成度量值scrapy_prometheus_foo_bar{instance="...",job="scrapy",spider="..."} 67
  • statfoo/bar/baz: 67将生成度量值scrapy_prometheus_foo_bar_baz{instance="...",job="scrapy",spider="..."} 67

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用Eclipse Helios for Web项目   java指定行。作为编译器设置的分隔符?   osm映射中带有osmdroid的java标记   java Android ClassNotFoundException在路径:DexPathList上未找到类   java从j2me调用GWT方法   更新到java 8后的aspectj问题   如何仅从根元素java,com提取文本内容。滴虫软件。是的。html   安卓公司。谷歌。火基。数据库DatabaseException:未能转换java类型的值。将字符串改为长字符串   从java中的方法返回arraylist变量   java如果将引用重新分配给同步块内的锁对象,会是什么?   java下载。使用spring mvc的资源文件中的xlsx文件   java Eclipse提供了什么工具来运行Eclipse中未包含的程序?   spring boot Java泛型如何读取传递给泛型方法的类型上的字段或调用方法   Javacard中的javaecdsa签名