Vlog Query Tool 是一个使用 TOML 配置文件来查询 vlogs(victorialogs) 并在终端打印结果的工具。此工具支持高亮指定字段、格式化输出 JSON、查询单条记录时复制到剪贴板,并且使用 Rich 库实现漂亮的终端输出。
- 使用 TOML 配置文件查询 vlogs 并打印在终端。
- 支持高亮指定字段。
- 支持格式化输出 JSON。
- 支持查询单条记录时复制到剪贴板。
- 使用 Rich 库实现漂亮的终端输出。
- 支持仅打印查询和请求参数(
only_print
参数)。
在使用此工具之前,请确保您已安装以下 Python 库:
pip install requests pyperclip rich
创建一个 TOML 配置文件,例如 config.toml
:
topic = "example_topic"
caller = "*"
limit = 1
start_datetime = "2024-07-29T14:00:13+08:00"
end_datetime = "2024-07-29T16:50:13+08:00"
api_url = "https://your_domain/select/logsql/query"
time_sort_order = "desc"
query = "level:* _msg:handleUpdateVoiceManager debug count _msg:* caller:*"
only_print = true
_msg = ["handleUpdateVoiceManager debug count"]
fields = [
"_msg",
"userId",
"example_field"
]
highlight_fields = [
"userId",
"RequestPath",
"topic",
"request_X-Ht-Uid",
"OriginStatus",
"caller",
"_msg",
"custom_field"
]
[customize]
[stream]
service = "example_service"
python vlog_query.py --conf config.toml
limit
: 查询限制。last_duration
: 持续时间,例如 "5m" 表示过去 5 分钟。fields
: 要显示的字段列表。highlight_fields
: 需要高亮的字段列表。api_url
: vlogs 的查询接口。_msg
: 消息字段,代码日志打印的消息。query
: 自定义查询语句。only_print
: 如果为true
,则只打印查询语句和请求参数。
在配置文件中,通过 highlight_fields
字段指定需要高亮的字段,例如:
highlight_fields = ["RequestPath", "topic", "request_X-Ht-Uid", "OriginStatus", "caller", "_msg", "custom_field"]
当查询限制为 1 条记录时,脚本会格式化输出 JSON,并复制到剪贴板。
脚本使用 Rich 库来实现漂亮的终端输出,支持高亮字段和格式化 JSON。