Prometheus從根本上將所有數據存儲爲時間序列:帶有時間戳值的數據流屬於同一度量標準和同一組標籤維度。除了存儲的時間序列,Prometheus可能會生成臨時的導出時間序列作爲查詢的結果。
指標名稱和標籤
每個時間序列都由其 metric name和稱爲labels的可選鍵值對唯一標識。
metric name 指定了所測量系統的一般功能(例如http_requests_total-收到的HTTP請求總數)。它可能包含ASCII字母和數字,以及下劃線和冒號。它必須與正則表達式 [a-zA-Z_:] [a-zA-Z0-9_:] * 相匹配。
注意:冒號是爲用戶定義的記錄規則保留的。exporters或direct instrumentation不應使用它們。
標籤啓用Prometheus的維度數據模型:具有相同度量標準名稱的標籤的任何給定組合都可以標識該度量標準的特定維度實例(例如:所有使用方法POST到/api/tracks處理程序的HTTP請求)。查詢語言允許基於這些維度進行過濾和聚合。更改任何標籤值,包括添加或刪除標籤,都會創建一個新的時間序列。
標籤名稱可能包含ASCII字母,數字和下劃線。它們必須匹配正則表達式 [a-zA-Z_][a-zA-Z0-9_]*。以__開頭的標籤名稱保留供內部使用。
標籤值可以包含任何Unicode字符。
示例
示例構成實際的時間序列數據。 每個樣本包括:
- 一個float64值
- 毫秒精度的時間戳
符號
給定度量標準名稱和一組標籤,通常使用以下表示法標識時間序列:
<metric name>{<label name>=<label value>, ...}
例如,度量標準名稱api_http_requests_total和標籤 method="POST" 和 handler="/messages"的時間序列可以這樣寫:
api_http_requests_total{method="POST", handler="/messages"}