upplib 2.9.9__py3-none-any.whl → 3.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- upplib/__init__.py +2 -0
- upplib/clean_up_msg.py +36 -12
- upplib/db.py +0 -4
- upplib/file.py +88 -48
- upplib/file_text.py +980 -0
- upplib/format_data.py +198 -0
- upplib/index.py +16 -973
- upplib/query_log.py +51 -7
- upplib/redis_tool.py +1 -1
- upplib/util.py +2 -0
- {upplib-2.9.9.dist-info → upplib-3.2.2.dist-info}/METADATA +1 -1
- upplib-3.2.2.dist-info/RECORD +23 -0
- {upplib-2.9.9.dist-info → upplib-3.2.2.dist-info}/WHEEL +1 -1
- upplib-2.9.9.dist-info/RECORD +0 -21
- {upplib-2.9.9.dist-info → upplib-3.2.2.dist-info}/licenses/LICENSE +0 -0
- {upplib-2.9.9.dist-info → upplib-3.2.2.dist-info}/top_level.txt +0 -0
upplib/query_log.py
CHANGED
|
@@ -16,13 +16,19 @@ def query_sls_logs(logstore_name: str = '',
|
|
|
16
16
|
query_sql: str = None,
|
|
17
17
|
trace_id_fixed_length: int = None,
|
|
18
18
|
replace_n_t: bool = True,
|
|
19
|
+
order_by_desc: bool = True,
|
|
19
20
|
remove_repeat_content: bool = False,
|
|
20
21
|
time_use_in_content: bool = True,
|
|
21
22
|
config_name: str = '',
|
|
22
23
|
country: str = '',
|
|
23
24
|
start_time: datetime | str | None = None,
|
|
25
|
+
forward_seconds: int = 2,
|
|
26
|
+
backward_seconds: int = 2,
|
|
27
|
+
method_length: int = 31,
|
|
24
28
|
end___time: datetime | str | None = None,
|
|
25
29
|
append_file: bool = False,
|
|
30
|
+
only_date_msg: bool = False,
|
|
31
|
+
msg_delete_prefix: int = 0,
|
|
26
32
|
file_name_suffix: str = '',
|
|
27
33
|
clean_up_msg_type: int = 0,
|
|
28
34
|
default_tz: str = '+07:00') -> None:
|
|
@@ -31,15 +37,26 @@ def query_sls_logs(logstore_name: str = '',
|
|
|
31
37
|
query_sql : 当有 query_sql 的时候 query 就会被 覆盖
|
|
32
38
|
replace_n_t: 转义 \\n, \\t 这些符号
|
|
33
39
|
file_name_suffix: 在输出的文件后面加一个后缀
|
|
40
|
+
forward_seconds: 往前查询的秒数
|
|
41
|
+
backward_seconds: 往后查询的秒数
|
|
34
42
|
"""
|
|
35
43
|
if start_time is None and end___time is None:
|
|
36
44
|
start_time, end___time = (t[0], t[1]) if (t := get_from_txt()) and t[0] is not None else (get_timestamp() - 60 * minute, get_timestamp())
|
|
45
|
+
|
|
46
|
+
if start_time is None and end___time is not None:
|
|
47
|
+
start_time = end___time
|
|
48
|
+
end___time = end___time
|
|
49
|
+
|
|
50
|
+
if start_time is not None and end___time is None:
|
|
51
|
+
start_time = start_time
|
|
52
|
+
end___time = start_time
|
|
53
|
+
|
|
37
54
|
if query_sql is not None:
|
|
38
55
|
query = query_sql
|
|
39
56
|
if ' limit ' not in query.lower():
|
|
40
57
|
query += ' LIMIT ' + str(limit)
|
|
41
|
-
start_time = get_timestamp(start_time)
|
|
42
|
-
end___time = get_timestamp(end___time)
|
|
58
|
+
start_time = get_timestamp(start_time) - forward_seconds
|
|
59
|
+
end___time = get_timestamp(end___time) + backward_seconds
|
|
43
60
|
if not append_file:
|
|
44
61
|
to_print_file(country, logstore_name, mode='w', file_path='', file_name=logstore_name + '_' + str(country) + str(file_name_suffix))
|
|
45
62
|
to_print_file(f'start_time : {to_datetime_str(start_time, tz=default_tz)}')
|
|
@@ -60,8 +77,10 @@ def query_sls_logs(logstore_name: str = '',
|
|
|
60
77
|
if (
|
|
61
78
|
msg := clean_up_msg(
|
|
62
79
|
get_log_msg(log.contents, replace_n_t=replace_n_t, default_tz=default_tz, time_use_in_content=time_use_in_content),
|
|
80
|
+
method_length=method_length,
|
|
63
81
|
trace_id_fixed_length=trace_id_fixed_length,
|
|
64
82
|
clean_up_type=clean_up_msg_type)) is not None:
|
|
83
|
+
msg = simplify_msg(msg, only_date_msg=only_date_msg, msg_delete_prefix=msg_delete_prefix)
|
|
65
84
|
if remove_repeat_content:
|
|
66
85
|
log_set.add(msg)
|
|
67
86
|
else:
|
|
@@ -69,6 +88,8 @@ def query_sls_logs(logstore_name: str = '',
|
|
|
69
88
|
if len(log_set) > 0:
|
|
70
89
|
log_list = list(log_set)
|
|
71
90
|
log_list.sort()
|
|
91
|
+
if order_by_desc:
|
|
92
|
+
log_list.reverse()
|
|
72
93
|
to_print_file(f"从日志库中查询, 一共获得 {response.get_count()} 条日志, 处理完了以后, 共 {len(log_list)} 条日志")
|
|
73
94
|
for log in log_list:
|
|
74
95
|
to_print_file(log)
|
|
@@ -82,6 +103,7 @@ def query_lts_logs(logstore_name: str = '',
|
|
|
82
103
|
trace_id_fixed_length: int = None,
|
|
83
104
|
query_sql: str = None,
|
|
84
105
|
replace_n_t: bool = True,
|
|
106
|
+
order_by_desc: bool = True,
|
|
85
107
|
remove_repeat_content: bool = False,
|
|
86
108
|
time_use_in_content: bool = True,
|
|
87
109
|
config_name: str = 'mx_huaweiyun_lts',
|
|
@@ -89,8 +111,13 @@ def query_lts_logs(logstore_name: str = '',
|
|
|
89
111
|
log_stream_id='f9555059-d0a8-4a8a-acd2-796ac9aeef2e',
|
|
90
112
|
country: str = '',
|
|
91
113
|
start_time: datetime | str | None = None,
|
|
114
|
+
forward_seconds: int = 2,
|
|
115
|
+
backward_seconds: int = 2,
|
|
116
|
+
method_length: int = 31,
|
|
92
117
|
end___time: datetime | str | None = None,
|
|
93
118
|
append_file: bool = False,
|
|
119
|
+
only_date_msg: bool = False,
|
|
120
|
+
msg_delete_prefix: int = 0,
|
|
94
121
|
file_name_suffix: str = '',
|
|
95
122
|
clean_up_msg_type: int = 0,
|
|
96
123
|
default_tz: str = '-06:00') -> None:
|
|
@@ -102,12 +129,21 @@ def query_lts_logs(logstore_name: str = '',
|
|
|
102
129
|
"""
|
|
103
130
|
if start_time is None and end___time is None:
|
|
104
131
|
start_time, end___time = (t[0], t[1]) if (t := get_from_txt()) and t[0] is not None else (get_timestamp() - 60 * minute, get_timestamp())
|
|
132
|
+
|
|
133
|
+
if start_time is None and end___time is not None:
|
|
134
|
+
start_time = end___time
|
|
135
|
+
end___time = end___time
|
|
136
|
+
|
|
137
|
+
if start_time is not None and end___time is None:
|
|
138
|
+
start_time = start_time
|
|
139
|
+
end___time = start_time
|
|
140
|
+
|
|
105
141
|
if query_sql is not None:
|
|
106
142
|
query = query_sql
|
|
107
143
|
if ' limit ' not in query.lower():
|
|
108
144
|
query += ' LIMIT ' + str(limit)
|
|
109
|
-
start_time = get_timestamp_ms(start_time)
|
|
110
|
-
end___time = get_timestamp_ms(end___time)
|
|
145
|
+
start_time = get_timestamp_ms(start_time) - forward_seconds * 1000
|
|
146
|
+
end___time = get_timestamp_ms(end___time) + backward_seconds * 1000
|
|
111
147
|
if not append_file:
|
|
112
148
|
to_print_file(country, logstore_name, mode='w', file_path='', file_name=logstore_name + '_' + str(country) + str(file_name_suffix))
|
|
113
149
|
to_print_file(f'start_time : {to_datetime_str(start_time, tz=default_tz)}')
|
|
@@ -127,8 +163,12 @@ def query_lts_logs(logstore_name: str = '',
|
|
|
127
163
|
whether_to_rows=True,
|
|
128
164
|
time_range=TimeRange(
|
|
129
165
|
sql_time_zone="UTC",
|
|
130
|
-
start_time=start_time,
|
|
131
|
-
end_time=end___time,
|
|
166
|
+
# start_time=start_time,
|
|
167
|
+
# end_time=end___time,
|
|
168
|
+
# 兼容问题, 因为 lts 日志库的时间是 utc 时间, 所以要减去 14 小时
|
|
169
|
+
# 具体的原因可以参考 https://support.huaweicloud.com/intl/zh-cn/api-lts/ListStructuredLogsWithTimeRange.html
|
|
170
|
+
start_time=start_time - 14 * 60 * 60 * 1000,
|
|
171
|
+
end_time=end___time - 14 * 60 * 60 * 1000,
|
|
132
172
|
start_time_gt=False,
|
|
133
173
|
end_time_lt=False
|
|
134
174
|
),
|
|
@@ -136,14 +176,16 @@ def query_lts_logs(logstore_name: str = '',
|
|
|
136
176
|
query=query,
|
|
137
177
|
)
|
|
138
178
|
response = client.list_structured_logs_with_time_range(request)
|
|
139
|
-
to_print_file(f"从日志库中查询, 一共获得 {len(response.body['result'])} 条日志")
|
|
179
|
+
# to_print_file(f"从日志库中查询, 一共获得 {len(response.body['result'])} 条日志")
|
|
140
180
|
log_set = set()
|
|
141
181
|
log_list = []
|
|
142
182
|
for log in response.body['result']:
|
|
143
183
|
if (msg := clean_up_msg(
|
|
144
184
|
get_log_msg(log, replace_n_t=replace_n_t, default_tz=default_tz, time_use_in_content=time_use_in_content),
|
|
185
|
+
method_length=method_length,
|
|
145
186
|
trace_id_fixed_length=trace_id_fixed_length,
|
|
146
187
|
clean_up_type=clean_up_msg_type)) is not None:
|
|
188
|
+
msg = simplify_msg(msg, only_date_msg=only_date_msg, msg_delete_prefix=msg_delete_prefix)
|
|
147
189
|
if remove_repeat_content:
|
|
148
190
|
log_set.add(msg)
|
|
149
191
|
else:
|
|
@@ -151,6 +193,8 @@ def query_lts_logs(logstore_name: str = '',
|
|
|
151
193
|
if len(log_set) > 0:
|
|
152
194
|
log_list = list(log_set)
|
|
153
195
|
log_list.sort()
|
|
196
|
+
if order_by_desc:
|
|
197
|
+
log_list.reverse()
|
|
154
198
|
to_print_file(f"从日志库中查询, 一共获得 {len(response.body['result'])} 条日志, 处理完了以后, 共 {len(log_list)} 条日志")
|
|
155
199
|
for log in log_list:
|
|
156
200
|
to_print_file(log)
|
upplib/redis_tool.py
CHANGED
upplib/util.py
CHANGED
|
@@ -37,6 +37,8 @@ def get_log_msg(contents: dict,
|
|
|
37
37
|
_time_ = to_datetime_str(time_str, default_tz=default_tz)
|
|
38
38
|
if content is None:
|
|
39
39
|
return None
|
|
40
|
+
if level is not None and content.strip().startswith(level + ' '):
|
|
41
|
+
content = content[len(level + ' '):].strip()
|
|
40
42
|
return ' '.join(filter(lambda s: s is not None, [_time_, level, content.replace('\n', '\\n').replace('\t', '\\t') if replace_n_t else content]))
|
|
41
43
|
|
|
42
44
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
upplib/__init__.py,sha256=AzQ1nB4NdyU5Kjnhi6aqjotkljhA2oNioQ1pgxpe8no,828
|
|
2
|
+
upplib/chart.py,sha256=DEcfhr1HlWdITaPWTVlL0CVSr3GiJTV_bWyOPb1UoyA,27667
|
|
3
|
+
upplib/chart_html.py,sha256=39CTD2LbN7LNN3wtb3n-ojN2r_X7RJMWappPgiLSJG4,23144
|
|
4
|
+
upplib/clean_up_msg.py,sha256=yR4D2fIXOT8z9VpClfhBjVnjhexObgNZDhvPu5v_5Y4,19237
|
|
5
|
+
upplib/common_package.py,sha256=2-u66k4WbZnX6-PUaYy8wsblnz41nvtX4Hwo3J5hjO0,832
|
|
6
|
+
upplib/db.py,sha256=-3ZALQSzP92-zIhye6ckrXIctbHsVmwoLiCVOlTyDyo,7058
|
|
7
|
+
upplib/file.py,sha256=R753ZBNE1PxbWNqu9eQ8VvcimahwBkvtu4mlx3qTFoE,8643
|
|
8
|
+
upplib/file_text.py,sha256=JYoRSatwPMVOqXpJ2wszfJ2pVx1Ot2rQ2Jnxm_vj_YY,43106
|
|
9
|
+
upplib/format_data.py,sha256=Qxq-OZ8v6HBRJ-tUcNFem1Imbauk3Y5qJTrAGT0CC4I,10153
|
|
10
|
+
upplib/http_util.py,sha256=8Xya5qpeCKGaglxKnirOlOnbnBU3K52FGV5Y9c8HH9k,16119
|
|
11
|
+
upplib/index.py,sha256=VvQzOzx6vtSLAmFARplPCVNTMq0DKYpMBFRgr7ge1dc,25887
|
|
12
|
+
upplib/mail.py,sha256=pe1ZZlKsah_TiB_Ag3scgiIQegyOznul2awdHur2m4Y,7550
|
|
13
|
+
upplib/mail_html.py,sha256=W2_WT9WhFykmAFageboJ-6E0dnBHBGMG1vQlBb9__M8,4001
|
|
14
|
+
upplib/markdown.py,sha256=YXh2Rtb5gvZ755Ecr3r5FcMoDtd2YcqtOFHFv92jWOQ,5803
|
|
15
|
+
upplib/multi_thread.py,sha256=zOeWG5HGYIzwqiPvef-4ak5bzorf0S3q6Ht8wPit_M0,2705
|
|
16
|
+
upplib/query_log.py,sha256=m93f8wyZeatVs_PF8O5eyC6U5yJfohg7x6muXPUMOJA,9204
|
|
17
|
+
upplib/redis_tool.py,sha256=I1kOqBwfQWVIOAY-hQaaOn1Zrx8BNlK83u-pk4uHPCA,707
|
|
18
|
+
upplib/util.py,sha256=0JXo9eIEC67Cnby-s8IELkbP9m7a6deB4pX7OIGb3zg,4709
|
|
19
|
+
upplib-3.2.2.dist-info/licenses/LICENSE,sha256=WI5JtXXhjcqnIcPllDA1ZtuxNnZ515xjElcILo7z28o,1073
|
|
20
|
+
upplib-3.2.2.dist-info/METADATA,sha256=2xELIy6Z_vIUT8ilixMTe0IVVQz7W9CMt2eyN0v237g,940
|
|
21
|
+
upplib-3.2.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
22
|
+
upplib-3.2.2.dist-info/top_level.txt,sha256=VwdHDDPP79e1LqtRu5_w30hHB4gT0zlj1weuQYOqFoA,7
|
|
23
|
+
upplib-3.2.2.dist-info/RECORD,,
|
upplib-2.9.9.dist-info/RECORD
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
upplib/__init__.py,sha256=nWDutqy89i9JQVsFyjuzCSsFDpT0fPcU7BQv0X7BmgM,764
|
|
2
|
-
upplib/chart.py,sha256=DEcfhr1HlWdITaPWTVlL0CVSr3GiJTV_bWyOPb1UoyA,27667
|
|
3
|
-
upplib/chart_html.py,sha256=39CTD2LbN7LNN3wtb3n-ojN2r_X7RJMWappPgiLSJG4,23144
|
|
4
|
-
upplib/clean_up_msg.py,sha256=qATu9YBCUuHwt-0YR6hjDgCLR1aUn6d_JJ7tcveHbRM,18186
|
|
5
|
-
upplib/common_package.py,sha256=2-u66k4WbZnX6-PUaYy8wsblnz41nvtX4Hwo3J5hjO0,832
|
|
6
|
-
upplib/db.py,sha256=4wkKL1vaoIWacAseQ6wnKa39X9Sfe0JlTvIALEawLBo,7162
|
|
7
|
-
upplib/file.py,sha256=1K9hrIQHIZnkXqkJop2ynQB8-wr92erdIYas_gEhZaQ,6828
|
|
8
|
-
upplib/http_util.py,sha256=8Xya5qpeCKGaglxKnirOlOnbnBU3K52FGV5Y9c8HH9k,16119
|
|
9
|
-
upplib/index.py,sha256=c9_vetGpLbOX1M-IccTfnrKy4uA566heq9IM_Q-phKE,67679
|
|
10
|
-
upplib/mail.py,sha256=pe1ZZlKsah_TiB_Ag3scgiIQegyOznul2awdHur2m4Y,7550
|
|
11
|
-
upplib/mail_html.py,sha256=W2_WT9WhFykmAFageboJ-6E0dnBHBGMG1vQlBb9__M8,4001
|
|
12
|
-
upplib/markdown.py,sha256=YXh2Rtb5gvZ755Ecr3r5FcMoDtd2YcqtOFHFv92jWOQ,5803
|
|
13
|
-
upplib/multi_thread.py,sha256=zOeWG5HGYIzwqiPvef-4ak5bzorf0S3q6Ht8wPit_M0,2705
|
|
14
|
-
upplib/query_log.py,sha256=lzV_sxNOpPt4NQ1cV8fOiqspxJJZVZ5RfC3_TLUsR6w,7246
|
|
15
|
-
upplib/redis_tool.py,sha256=BJUOGnyC7K0wLz11Jny02e-JTI7KYTcYO3xBBCd5QpA,706
|
|
16
|
-
upplib/util.py,sha256=mg6AKh1NVXBgcxK3i2IEGFmrELeqYqQyQVWR4p8R4lo,4586
|
|
17
|
-
upplib-2.9.9.dist-info/licenses/LICENSE,sha256=WI5JtXXhjcqnIcPllDA1ZtuxNnZ515xjElcILo7z28o,1073
|
|
18
|
-
upplib-2.9.9.dist-info/METADATA,sha256=E-Z68PQNoPm-uNOLhNsTe2lz7Q7J97ZJbyrAUp5EqCY,940
|
|
19
|
-
upplib-2.9.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
20
|
-
upplib-2.9.9.dist-info/top_level.txt,sha256=VwdHDDPP79e1LqtRu5_w30hHB4gT0zlj1weuQYOqFoA,7
|
|
21
|
-
upplib-2.9.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|