調用GetEmonMonitorData,查詢Elasticsearch實例的Grafana指標監控數據。
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
請求頭
該接口使用公共請求頭,無特殊請求頭。請參見公共請求參數文檔。
請求語法
POST /openapi/emon/projects/{ProjectId}/metrics/query HTTP/1.1
請求參數
名稱 | 類型 | 位置 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|---|
ProjectId | String | Path | 是 | es-185320276651**** | 項目ID,格式為 |
String | Body | 否 | { "start": 1522127381471, "queries": [ { "metric": "elasticbuild.elasticsearch.source.total_doc_count", "aggregator": "sum", "downsample": "avg", "tags": { "taskName": "et-testtsk", "userId":"123456" }, "granularity": "1m" } ], "limit": "", "end": 1522129151000 } | 指定指標監控參數。 |
RequestBody
參數名 |
類型 |
是否必填 |
示例值 |
描述 |
---|---|---|---|---|
start |
Long |
是 |
1522127381471 |
指標監控開始的時間戳。單位:毫秒。 |
expression |
String |
否 |
a+b |
指標數據查詢表達式。 |
queries |
List |
是 |
指標查詢條件。 |
|
└id |
String |
否 |
a |
查詢條件queries如果用到了表達式expression,queries json數組里會描述expression里參與運算的指標,id就是每個指標在expression里的代數符號,真正的指標名稱在queries數組的每個元素里。 |
└metric |
String |
是 |
elasticbuild.elasticsearch.source.total_doc_count |
指標名稱。 |
└aggregator |
String |
是 |
sum |
指標按tags維度聚合方式。即對指標按給定的tags group by,進行sum、avg、max、min等聚合運算。 |
└downsample |
String |
是 |
avg |
指標按時間精度聚合方式。即對指標在[start,end]窗口內的時間線,在時間維度降精度,例如把20s精度聚合為1min、10min、1hour精度,根據時間窗口的大小會自動降精度。 |
└tags |
Map |
是 |
[env,dev] |
指標查詢標簽。格式為[key,value],key要明確指定,value支持通配符,使用通配符可返回滿足條件的多序列數據。 |
└granularity |
String |
是 |
1m |
指標查詢的時間精度。范圍為[start,end]。單位:毫秒。 |
limit |
String |
是 |
"100 " |
限定返回結果集的大小。為空則不限制,返回所有查詢數據。一般用于tags里value使用通配符,返回結果集非常大的情況。 |
end |
String |
是 |
1522129151000 |
指標監控結束的時間戳。單位:毫秒。 |
示例如下。
{
"start": 1522127381471,
"queries": [
{
"metric": "elasticbuild.elasticsearch.source.total_doc_count",
"aggregator": "sum",
"downsample": "avg",
"tags": {
"taskName": "et-testtsk",
"userId":"123456"
},
"granularity": "1m"
}
],
"limit": "",
"end": 1522129151000
}
返回數據
名稱 | 類型 | 示例值 | 描述 |
---|---|---|---|
Code | String | 200 | 請求狀態碼。 |
Message | String | "" | 請求結果。 |
RequestId | String | 2D184B55-FA51-43F7-A1EF-E68A0545**** | 請求ID。 |
Success | Boolean | true | 請求是否成功:
|
Result | Array of result | 返回結果。 |
|
integrity | Float | 1.0 | 指標查詢返回的結果里,時序曲線數據點的完整度。1.0表示100%完整。 |
summary | Float | 10 | queries里如果有通配符,result會包含多條匹配到的時間序列數據,summary是在每個時間點上對這些時間線的value集合,按照query里提供的aggregator類型來聚合。目前聚合方式僅支持avg。 |
messageWatermark | Long | 1522127381471 | 請求到達服務端的時間戳,用于排查問題。 |
dps | Map | 指標實時監控數據。格式為 |
|
tags | Map | 查詢標簽。 |
|
metric | String | elasticbuild.elasticsearch.source.total_doc_count | 指標名稱。 |
以下返回示例中,本文只保證包含返回數據列表中的參數,而未提到的參數僅供參考,程序中不能強制依賴獲取這些參數。
示例
請求示例
POST /openapi/emon/projects/es-185320276651****/metrics/query HTTP/1.1
公共請求頭
{
"start": 1522127381471,
"queries": [
{
"metric": "elasticbuild.elasticsearch.source.total_doc_count",
"aggregator": "sum",
"downsample": "avg",
"tags": {
"taskName": "et-testtsk",
"userId":"123456"
},
"granularity": "1m"
}
],
"limit": "",
"end": 1522129151000
}
正常返回示例
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"Success" : true,
"Code" : "200",
"Message" : "",
"RequestId" : "2D184B55-FA51-43F7-A1EF-E68A0545****",
"Result" : [ {
"dps" : {
"1583469212" : 10
},
"integrity" : 1,
"messageWatermark" : 1583469212345,
"metric" : "elasticbuild.elasticsearch.source.total_doc_count",
"summary" : 10,
"tags" : {
"taskName" : "et-testtsk",
"userId" : "123456"
}
} ]
}
錯誤碼
HttpCode | 錯誤碼 | 錯誤信息 | 描述 |
---|---|---|---|
400 | InstanceActivating | Instance is activating. | 實例目前處于生效中。 |
400 | InstanceNotFound | The instanceId provided does not exist. | 實例找不到,請核對實例狀態。 |
訪問錯誤中心查看更多錯誤碼。