--ak / --skBCE_BLS_ACCESS_KEY / BCE_BLS_SECRET_KEY~/.bce_bls/credentials(INI,[default] section)所有命令统一前缀:python3
| 子命令 | 作用 | 关键参数 |
|---|---|---|
| --- | --- | --- |
list-projects | 列出 Project | --name 过滤、--page-no/--page-size |
list-logstores | 列出/搜索日志集 | --project(可选)、--logstore-name(模糊匹配,可跨项目)、分页 |
describe-index | 查看日志集索引配置 | --logstore(必填)、--project(可选) |
query | 执行检索/SQL 分析 | --logstore、--query、--start/--end(UTC,可省)、--marker 翻页 |
起点选择(避免无谓调用):
describe-index / query,跳过 list-logstores。list-logstores --logstore-name ,从结果中精确匹配 logStoreName 拿到 project。不要先 list-projects。list-logstores --project 。查询语句生成(必须先 describe-index 确认索引状态):
match keywordmatch field:value,统计可用 SQL@raw 是 JSON → 优先建议用户去 BLS 控制台为目标字段开启索引;用户坚持立即查询才用 SQL + JSON_EXTRACT_SCALAR(\@raw\, '$.field') 兜底(扫描成本高、性能差)@raw 非 JSON → 无法有效查询,提示用户去 BLS 控制台开启索引match ... | select ...查询格式:
matchmatch ... | select ...时间处理:
2026-01-10T13:00:00Z)--start / --end 省略时默认最近 1 小时结果展示:
columns + rows@raw 原文datasetScanInfo.isTruncated == true → 提示用户可翻页(--marker ),仅 match 支持翻页,SQL 不支持-- 关键词搜索
match error
match status=500 and msg:"some keyword"
-- Top N 统计
select uid, count(*) as cnt group by uid order by cnt desc limit 10
-- 时间趋势
select histogram(cast(`@timestamp` as timestamp), interval 1 hour) as hour, count(*) as cnt group by hour order by hour
-- 慢请求
select path, avg(latency) as avg_lat, max(latency) as max_lat, count(*) as cnt group by path order by avg_lat desc limit 10
-- 提取非索引 JSON 字段(兜底方案:无索引时通过 @raw 字段解析;性能差且扫描成本高,
-- 应优先建议用户去 BLS 控制台为该字段开启索引后再用 match/SQL 查询)
select JSON_EXTRACT_SCALAR(`@raw`, '$.field') as f, count(*) as cnt group by f order by cnt desc limit 10
-- 先过滤后统计
match level:error | select caller, count(*) as cnt group by caller order by cnt desc limit 10
共 1 个版本