观测云工具包 / OpenWay 类
「OpenWay 类」是用于操作 OpenWay 的组件,可实现通过工作空间 Token 查询对应工作空间内的数据。
1. 快速开始
从guance_toolkit__guance
导入OpenWay
,并使用工作空间 Token 初始化OpenWay
后即可使用。
Python |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 | import json
from guance_toolkit__guance import OpenWay
def run():
openway = OpenWay('tkn_xxxxx')
# 典型使用方式
dql = '''M::cpu:(load5s)'''
dql_res = openway.dql_query(dql, limit=1)
print('典型使用方式:\n', json.dumps(dql_res, indent=2))
# 日志类通过 time_range, search_after 翻页
search_after = []
time_range = [
'2022-09-14T12:00:00+08:00',
'2022-09-14T12:00:01+08:00',
]
# 演示目的,只翻 2 页面
for i in range(2):
dql = '''L::re(`.*`):(message){ `source` IN ['gin'] }'''
dql_res = openway.dql_query(dql, limit=1, time_range=time_range, search_after=search_after)
print(f'日志类第【{i+1}】页:\n', json.dumps(dql_res, indent=2))
# 下一页开始标志
search_after = dql_res['content'][0]['search_after']
|
输出如下:
Text Only |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 | [2022-09-20 17:37:05.707] [+0ms] 典型使用方式:
{
"content": [
{
"series": [
{
"name": "cpu",
"columns": [ "time", "load5s" ],
"values": [
[ 1663027200056, 10 ]
]
}
],
"points": "",
"cost": "19.265169ms",
"is_running": false,
"async_id": ""
}
]
}
[2022-09-20 17:37:05.908] [+201ms] 日志类第【1】页:
{
"content": [
{
"series": [
{
"columns": [ "time", "message" ],
"values": [
[
1663128000997,
"[GIN] 2022/09/14 - 04:00:00 | 200 | 3.317484ms | 10.120.0.70 | GET \"/v1/datakit/pull?token=****************24f2f97128a9c6813289c&filters=true\""
]
]
}
],
"points": "",
"cost": "63ms",
"total_hits": 1697,
"search_after": [ 1663128000997, "L_1663128000997_ccgl3h2rnkq7doms8f10" ],
"is_running": false,
"async_id": ""
}
]
}
[2022-09-20 17:37:06.060] [+151ms] 日志类第【2】页:
{
"content": [
{
"series": [
{
"columns": [ "time", "message" ],
"values": [
[
1663128000997,
"[GIN] 2022/09/14 - 04:00:00 | 200 | 13.559498ms | 10.120.0.6 | POST \"/v1/election?token=****************24f2f97128a9c6813289c&namespace=k8s-03&id=k8s03-node08\""
]
]
}
],
"points": "",
"cost": "67ms",
"total_hits": 1697,
"search_after": [ 1663128000997, "L_1663128000997_ccgl3h2rnkq7doms8f0g" ],
"is_running": false,
"async_id": ""
}
]
}
|
2. OpenWay 类
OpenWay
类用于生成操作 OpenWay 的对象。
参数列表:
参数 |
类型 |
必须/默认值 |
说明 |
workspace_token |
str |
必须 |
工作空间 Token |
guance_node |
str |
|
观测云节点,默认国内杭州节点 详细见 观测云工具包 / 连接到其他观测云节点 |
dql_query(...)
OpenWay.dql_query(...)
函数用于执行 DQL 语句,并返回 DQL 查询结果。
参数列表:
参数 |
类型 |
必须/默认值 |
说明 |
dql |
str |
必须 |
DQL 语句 |
time_range |
[str, str] |
|
符合 ISO 格式的时间列表 如:[ '2022-01-01T00:00:00+08:00', '2022-01-01T00:01:00+08:00' ] |
更多参数 |
- |
- |
请参考 观测云文档 / DataKit API |
自动重试
本函数在执行后,如果产生错误,会自动在 1、2、5、10、10 秒后自动重试,并在 5 次重试后依然失败才会抛出错误。