prometheus输出器
功能描述
能够配置多个自定义的prometheus指标来收集请求的相关信息,向外部的Prometheus应用提供指标的收集接口。
具备以下特性:
- 包含请求总数,请求耗时等九种收集类型
- 可自定义指标的收集数据的类型
- 可自定义指标的标签
OpenAPI配置日志
配置参数说明
参数 | 说明 | 是否必填 | 默认值 | 值可能性 |
---|---|---|---|---|
name | 实例名 | 是 | string | |
driver | 驱动名 | 是 | "prometheus" | |
description | 描述 | 否 | string | |
scopes | 作用域 | 否 | array_string | |
path | Metrics请求路径 | 是 | 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->objectives | quantiles分位数值配置,每个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_status | req_status | $status |
apinto | 使用常量apinto | apinto | apinto |
apinto as program | 使用常量apinto,并且标签名取别名program | program | apinto |
标签变量取值范围
变量可取范围如下:
- 应用的标签:比如某个应用配置了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插件。