基本概念
指标(Metric)
用于衡量系统和应用程序性能及运行情况的度量值,例如 CPU 利用率、内存使用率、访问吞吐量、响应耗时和响应成功率等。指标一般会定时产生,每一个时刻都会有一个值,随着时间变化形成一个序列,这个序列一般被称为时间序列(time series),简称时序。
日志服务(Cloud Log Service,CLS)兼容 Prometheus 指标数据模型,将相同指标名称(metric name)、相同维度(labels)的包含时间戳的指标数据保存为时间序列(time series)。在时间序列中每个数据点称为样本(sample),样本则由时间戳及样本值构成。
例如系统在2020/12/30 15:35:23.123时某一接口的请求总量就是一个样本,其数据如下:
requests_total{method="POST", handler="/messages"} 217
其由如下几部分构成:
指标名称:requests_total
维度:{method="POST", handler="/messages"} ,即接口名称为 messages,请求方式为 POST。
时间戳:2020/12/30 15:35.123
样本值:217
被监控系统实际上往往同时有多个指标,其在某一时刻具备大量不同的指标名称和维度,例如 Nginx 监控指标如下:
# HELP nginx_http_requests_total The total number of HTTP requests# TYPE nginx_http_requests_total counternginx_http_requests_total 10234# HELP nginx_http_requests_duration_seconds The HTTP request duration in seconds# TYPE nginx_http_requests_duration_seconds histogramnginx_http_requests_duration_seconds_bucket{le="0.005"} 2405nginx_http_requests_duration_seconds_bucket{le="0.01"} 5643nginx_http_requests_duration_seconds_bucket{le="0.025"} 7890nginx_http_requests_duration_seconds_bucket{le="0.05"} 9234nginx_http_requests_duration_seconds_bucket{le="0.1"} 10021nginx_http_requests_duration_seconds_bucket{le="0.25"} 10234nginx_http_requests_duration_seconds_bucket{le="0.5"} 10234nginx_http_requests_duration_seconds_bucket{le="1"} 10234nginx_http_requests_duration_seconds_bucket{le="2.5"} 10234nginx_http_requests_duration_seconds_bucket{le="5"} 10234nginx_http_requests_duration_seconds_bucket{le="10"} 10234nginx_http_requests_duration_seconds_bucket{le="+Inf"} 10234nginx_http_requests_duration_seconds_sum 243.56nginx_http_requests_duration_seconds_count 10234# HELP nginx_http_connections Number of HTTP connections# TYPE nginx_http_connections gaugenginx_http_connections{state="active"} 23nginx_http_connections{state="reading"} 5nginx_http_connections{state="writing"} 7nginx_http_connections{state="waiting"} 11# HELP nginx_http_response_count_total The total number of HTTP responses sent# TYPE nginx_http_response_count_total counternginx_http_response_count_total{status="1xx"} 123nginx_http_response_count_total{status="2xx"} 9123nginx_http_response_count_total{status="3xx"} 456nginx_http_response_count_total{status="4xx"} 567nginx_http_response_count_total{status="5xx"} 65# HELP nginx_up Is the Nginx server up# TYPE nginx_up gaugenginx_up 1
其中指标含义如下:
nginx_http_requests_total:Nginx 处理的 HTTP 请求总数。
nginx_http_requests_duration_seconds:HTTP 请求的持续时间,使用 Histogram 类型提供不同区间的请求数量。
nginx_http_connections:当前 Nginx 的 HTTP 连接数,分为 active、reading、writing 和 waiting 状态。
nginx_http_response_count_total:Nginx 返回的 HTTP 响应总数,按状态码分类。
nginx_up:Nginx 服务器的运行状态。1表示运行中;0表示未运行。
指标主题
是指标数据在日志服务平台进行采集、存储、检索和分析的基本单元,采集到的指标数据以指标主题为单元进行管理,包括保存时间配置及检索分析等。指标主题兼容 Prometheus 指标数据模型及指标查询接口,相当于一个 Prometheus 实例,不同应用/服务的指标只要指标名称不发生冲突,且数据量未超过产品规格与限制,就可以存储在一个指标主题中。实际应用中,一般将业务系统生产环境、测试环境、开发环境的指标分别存储在不同的指标主题中。
说明:
功能特性
指标采集:
指标上报:支持 Prometheus Remote Write 协议,可使用兼容该协议的各类采集器采集指标并上报至指标主题,例如 vmagent 及 telegraf。
日志转指标:可通过定时 SQL 将日志主题中的日志转化为指标,适用于长期低成本存储系统关键指标,且基于指标进行可视化分析时性能往往更高。
指标查询:使用 PromQL 查询指标。
指标可视化:可使用 仪表盘 可视化展示指标数据,支持表格、时序图、单值图和计量仪等形式。也可直接 使用 Grafana 展示指标数据。
监控告警:可为指标主题配置 告警策略,指标发生异常时通过短信、微信、电话、邮件和企业微信等多种渠道通知用户。
产品优势
指标主题兼容 Prometheus 指标数据模型及指标查询接口,可无缝与各类兼容 Prometheus 的开源项目对接,例如 Grafana。
相比自建 Prometheus,无需部署及维护,能够降低大量人力成本。
可与日志结合使用,集中采集、存储、分析指标及日志数据,搭建统一监控平台,提升运维效率。
费用说明
规格与限制
限制项 | 说明 |
指标名称(metric name) | 支持英文字母、数字、下划线及冒号,即需符合正则表达式 [a-zA-Z_:][a-zA-Z0-9_:]* |
维度名称(label name) | 支持英文字母、数字、下划线,即需符合正则表达式 [a-zA-Z_][a-zA-Z0-9_]* |
维度值(label value) | 无特殊限制,支持各类 Unicode 字符 |
样本值(sample value) | float64类型数值 |
样本时间戳(sample timestamp) | 毫秒精度 |
查询并发 | 单个指标主题支持15并发 |
查询数据量 | 单次查询涉及 time series 不超过20万,查询结果中单个 time series 最大1.1万个时间点 |
指标上传频控 | 25000QPS |
指标上传流控 | 250MB/s |