prometheus输出器

功能描述

能够配置多个自定义的prometheus指标来收集请求的相关信息,向外部的Prometheus应用提供指标的收集接口。

具备以下特性:

  • 包含请求总数,请求耗时等九种收集类型
  • 可自定义指标的收集数据的类型
  • 可自定义指标的标签

OpenAPI配置日志

配置参数说明

参数说明是否必填默认值值可能性
name实例名string
driver驱动名"prometheus"
description描述string
scopes作用域array_string
pathMetrics请求路径string
metrics指标列表array_object
metrics->metric指标名string
metrics->description指标描述["line","json"]
metrics->collector收集类型可选其一:["request_total","request_timing","request_retry","request_req","request_resp","proxy_total","proxy_timing","proxy_req","proxy_resp"]
metrics->objectivesquantiles分位数值配置,每个quantile用,分隔"0.5:0.05,0.9:0.01,0.99:0.001"string
metrics->labels标签列表array_string

备注

  • 同一输出器下,指标名metric不可重复

  • 不同输出器下,Metrics请求路径path不可重复

  • 多个指标可以配置相同的收集类型collector

  • quantiles分位数值配置objectives: 当收集类型所对应prometheus指标类型为Summary时生效

收集类型配置说明
收集类型类型说明对应的prometheus指标类型
request_total请求总数Counter
request_timing请求耗时Summary
request_retry请求重试次数Summary
request_req请求的request_body大小Summary
request_resp请求的response_body大小Summary
proxy_total转发总数Counter
proxy_timing转发耗时Summary
proxy_req转发的request_body大小Summary
proxy_resp转发的response_body大小Summary
标签列表配置说明

标签列表用于配置指标的标签信息,单个标签的配置可指定标签名和标签值所指定的值。标签名可用as进行指定,标签值可以用常量和变量,变量用$表示。

示例如下:

标签配置配置说明标签名标签值
$status取变量 请求状态码status$status
$status as req_status取变量 请求状态码,并且标签名取别名req_statusreq_status$status
apinto使用常量apintoapintoapinto
apinto as program使用常量apinto,并且标签名取别名programprogramapinto
标签变量取值范围

变量可取范围如下:

  • 应用的标签:比如某个应用配置了key为app_label,value为test的标签,当请求通过了这个应用,使用$app_label作为标签配置就能获取test作为指标的标签值。
  • 系统可用值: 系统可用值的字段前加$即可取系统可用值。注意:由于一次请求可能会有多次转发,proxy_开头的收集类型,若要获取当次转发的相关信息则使用proxy_开头的系统可用值。而request_开头的收集类型,使用proxy_开头的系统可用值会获取最后一次转发的信息。
  • 内置标签
    • $api: 该请求命中的路由名
    • $service: 该请求命中的服务名
    • $application: 该请求命中的应用名
    • $handler:内容处理器,标示响应内容由什么模块处理的,如正常转发为 proxy,如果是熔断是 fuse,如果是缓存,则是 cache

系统可用值的教程点此进行跳转

创建prometheus输出器示例

示例说明:prometheus实际拉取的metrics请求路径为/apinto/test(默认在配置的路径前加上/apinto/),配置指标名为apinto_request_total,采集request_total请求总数。

指标配置的标签分别为:

标签名标签值
api$api表示取变量 该请求的路由名
service$service表示取变量 该请求的服务名

prometheus输出器使用

通过prometheus插件绑定prometheus输出器,输出器能够接收并处理来自prometheus插件的相关指标信息。外部的Prometheus应用调用输出器配置的metrics路径即可获取收集的指标信息。

点此跳转至prometheus插件。