如何使用 cm_api api.query_timeseries 设置数据粒度
How to set Data Granularity with cm_api api.query_timeseries
我正在尝试获取过去 1 周的 files_total 和 dfs_capacity_used 指标,代码在 https://cloudera.github.io/cm_api/docs/python-client/
中共享
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)
我正在获取输出。但数据粒度每天都在显示。有没有办法像下面从 Cloudera UI 共享的快照中的选项那样每 6 小时获取一次输出,
query_timeseries 不提供数据粒度选项。它将auto-determine到可以覆盖我们设置的时间段的时间段。
使用下面的get函数我们可以根据数据粒度进行检索
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'。
我正在尝试获取过去 1 周的 files_total 和 dfs_capacity_used 指标,代码在 https://cloudera.github.io/cm_api/docs/python-client/
中共享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)
我正在获取输出。但数据粒度每天都在显示。有没有办法像下面从 Cloudera UI 共享的快照中的选项那样每 6 小时获取一次输出,
query_timeseries 不提供数据粒度选项。它将auto-determine到可以覆盖我们设置的时间段的时间段。
使用下面的get函数我们可以根据数据粒度进行检索
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'。