in aliyun/log/ext/jupyter_magic.py [0:0]
def log_imp(self, line, cell=None):
from_time, to_time, query = self._get_log_param(line, cell)
print(u"根据查询统计语句,从日志服务查询数据(时间范围:{0} ~ {1}),结果将保存到变量{2}中,请稍等……".format(from_time, to_time, DEFAULT_DF_NAME))
res = self.client().get_log_all(g_default_project, g_default_logstore, from_time=from_time, to_time=to_time,
query=query)
is_complete = True
logs = []
try:
for data in res:
if not data.is_completed():
is_complete = False
logs.extend(data.body)
except Exception as ex:
print(ex)
return
df1 = pd.DataFrame(logs)
is_stat = re.match(r'.+\|\s+select\s.+|^\s*select\s+.+', query.lower(), re.I) is not None
if is_stat:
if "__time__" in df1:
del df1["__time__"]
if "__source__" in df1:
del df1["__source__"]
else:
# change time to date time
if "__time__" in df1:
df1['__time__'] = pd.to_datetime(df1["__time__"].apply(parse_timestamp))
df1.set_index('__time__', inplace=True)
clear_output()
if is_complete:
print(u"变量名:{0}".format(DEFAULT_DF_NAME))
elif is_stat:
print(u"变量名:{0},结果非完整精确结果。".format(DEFAULT_DF_NAME))
else:
print(u"变量名:{0},部分结果非完整精确结果。".format(DEFAULT_DF_NAME))
self.shell.user_ns[DEFAULT_DF_NAME] = df1
return df1