Log Service的時序資料類型遵循Prometheus的定義規範,在時序庫中所有的資料都按照時序類型儲存。時序資料由時序標識和資料點組成,相同時序標識的資料群組成時間軸。
時序標識
每條時間軸都有一個唯一的時序標識,由Metric name和Labels組成。
Metric name是一個字串類型的標識符,用於標識指標類型。Metric name需遵循Regex[a-zA-Z_:][a-zA-Z0-9_:]* 。例如http_request_total表示接收到的HTTP請求的總數。
Labels由一組組索引值對組成,各組索引值對之間使用豎線(|)分割,用於標識指標的相關屬性。Key需遵循Regex [a-zA-Z_][a-zA-Z0-9_]* ,Value不能包含豎線( | ),其它不做限制。例如method為POST, URL為/api/v1/get 。
資料點
資料點代表時間軸在具體某個時間點的值,每個資料點由時間戳記和值組成。其中時間戳記精度為納秒,值的類型為double。
編碼方式
時序資料的寫入協議和日誌寫入協議一致,使用Protobuf的資料編碼方式。時序標識和資料點都在content欄位中,具體表示方式如下所示。
欄位 | 說明 | 樣本 |
__name__ | Metric名稱。 | nginx_ingress_controller_response_size |
__labels__ | Label資訊,格式為{key}#$#{value}|{key}#$#{value}|{key}#$#{value} 。說明
| app#$#ingress-nginx|controller_class#$#nginx|controller_namespace#$#kube-system|controller_pod#$#nginx-ingress-controller-589877c6b7-hw9cj |
__time_nano__ | 時間戳記,單位為納秒。 | 1585727297293000000 |
__value__ | 值。 | 36.0 |