簡體   English   中英

如何使用 cm_api api.query_timeseries 設置數據粒度

[英]How to set Data Granularity with cm_api api.query_timeseries

我正在嘗試使用https://cloudera.github.io/cm_api/docs/python-client/中共享的代碼獲取過去 1 周的 files_total 和 dfs_capacity_used 指標

import time
import datetime

from_time = datetime.datetime.fromtimestamp(time.time() - 1800)
to_time = datetime.datetime.fromtimestamp(time.time())
query = "select files_total, dfs_capacity_used " \
        "where serviceName = HDFS-1 " \
        "  and category = SERVICE"

result = api.query_timeseries(query, from_time, to_time)
ts_list = result[0]
for ts in ts_list.timeSeries:
  print "--- %s: %s ---" % (ts.metadata.entityName, ts.metadata.metricName)
  for point in ts.data:
    print "%s:\t%s" % (point.timestamp.isoformat(), point.value)

我得到的是 output。 但是數據粒度每天都在顯示。 有沒有辦法每 6 小時獲取一次 output,就像從 Cloudera UI 共享的快照中的選項一樣,如下所示,

在此處輸入圖像描述

query_timeseries 不提供數據粒度選項。 它將自動確定可以覆蓋我們設置的時間段的時間段。

通過以下獲取 function 我們可以根據數據粒度進行檢索

api=ApiResource('CM_HOST',username='admin',password='admin') api.get(relpath='timeseries',params={'query':'select files_total, dfs_capacity_used where serviceName = HDFS-1 and category = SERVICE','desiredRollup':'RAW','mustUseDesiredRollup':'True','from':'2020-08-10','to':2020-08-17})

如果我們不想將粒度設置為 6 小時一次,那么我們可以將“desiredRollup”設置為“SIX_HOURLY”,將“mustUseDesiredRollup”設置為“True”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM