🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 数据模型 用于把当前需要输出的数据以 Prometheus 的格式输出 ### 数据样本 数据样本构成实际的时间序列数据。每个数据样本包括: - 64 位浮点型数值 - 毫秒精度的时间戳 ### 表示方式 格式 ``` <metric name>{<label name>=<label value>, ...} ``` 示例 ``` api_http_requests_total{method="POST", handler="/messages"} //or upantbiz_server_cpu{server="UpOrgServer"} 0.000479 ``` ### 基础单位 | Family | Base unit | Remark | | --- | --- | --- | | 时间 | seconds | | | 热度| celsius | 出于实际原因,优选摄氏度而不是开尔文。在特殊情况下,例如色温或温度必须是绝对的情况下,开尔文可以作为基本单位。| | 长度 | meters | | | 字节(Bytes)| bytes | | | 比特(Bits) | bytes | 为了避免混淆不同的度量,总是使用字节,即使比特看起来更常见。 | | 百分比| ratio | 值为0-1(而不是0-100)。ratio仅用作disk_use_ratio等名称的后缀。通常的度量名称遵循模式A_per_B。| | 电压| volts | | | 电流 | amperes | | | 能量| joules | | | 力| | 优先导出焦耳计数器,然后rate(joules[5m])以瓦特为单位给出功率。 | | 重量 | grams(克) | 为避免千克前缀出现问题,应优先使用克而不是千克。 | ## 最佳实践 ### 指标名称 #### 应该有一个与指标所属域相关的(单词)应用程序前缀 ``` prometheus_notifications_total (特定于 Prometheus 服务器) process_cpu_seconds_total (许多客户端库都导出) http_request_duration_seconds (针对所有 HTTP 请求) ``` #### 应使用基本单位(例如秒、字节、米 - 而不是毫秒、兆字节、公里) #### 应有一个描述单位的后缀,以复数形式表示。 `total`如果适用,累积计数除了单位外,还具有后缀。 ``` http_request_duration_seconds node_memory_usage_bytes http_requests_total (用于无单位累计计数) process_cpu_seconds_total (用于有单位的累计计数) foobar_build_info(用于提供有关正在运行的二进制文件的元数据 的伪指标) data_pipeline_last_record_processed_timestamp_seconds (用于跟踪数据处理管道中处理的最新记录的时间的时间戳) ``` ### 标签 #### 使用标签来区分被测量事物的特征: ``` api_http_requests_total- 区分请求类型:operation="create|update|delete" api_request_duration_seconds- 区分请求阶段:stage="extract|transform|load" ``` >[warning] 注意:请记住,每个唯一的键值标签对组合都代表一个新的时间序列,这会大大增加存储的数据量。请勿使用标签来存储基数较高的维度(许多不同的标签值),例如用户 ID、电子邮件地址或其他无界值集。