aliyun-sls-log-query
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCategory: service
分类:服务
SLS Log Query and Troubleshooting
SLS 日志查询与故障排查
Use SLS query|analysis syntax and Python SDK for log search, filtering, and analytics.
使用SLS查询|分析语法和Python SDK进行日志搜索、过滤和分析。
Prerequisites
前置要求
- Install SDK (virtual environment recommended to avoid PEP 668 restrictions):
bash
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -U aliyun-log-python-sdk- Configure environment variables:
ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET- (e.g.
SLS_ENDPOINT)cn-hangzhou.log.aliyuncs.com SLS_PROJECT- (supports a single value or comma-separated values)
SLS_LOGSTORE
- 安装SDK(推荐使用虚拟环境以避免PEP 668限制):
bash
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -U aliyun-log-python-sdk- 配置环境变量:
ALIBABA_CLOUD_ACCESS_KEY_IDALIBABA_CLOUD_ACCESS_KEY_SECRET- (例如
SLS_ENDPOINT)cn-hangzhou.log.aliyuncs.com SLS_PROJECT- (支持单个值或逗号分隔的多个值)
SLS_LOGSTORE
Query Composition
查询结构
- Query clause: filters logs (e.g. ).
status:500 - Analysis clause: statistical aggregation, format .
query|analysis - Example:
* | SELECT status, count(*) AS pv GROUP BY status
See for full syntax.
references/query-syntax.md- 查询子句:过滤日志(例如 )。
status:500 - 分析子句:统计聚合,格式为 。
query|analysis - 示例:
* | SELECT status, count(*) AS pv GROUP BY status
完整语法请参考 。
references/query-syntax.mdQuickstart (Python SDK)
快速入门(Python SDK)
python
import os
import time
from aliyun.log import LogClient, GetLogsRequest
client = LogClient(
os.environ["SLS_ENDPOINT"],
os.environ["ALIBABA_CLOUD_ACCESS_KEY_ID"],
os.environ["ALIBABA_CLOUD_ACCESS_KEY_SECRET"],
)
project = os.environ["SLS_PROJECT"]
logstore = os.environ["SLS_LOGSTORE"]
query = "status:500"
start_time = int(time.time()) - 15 * 60
end_time = int(time.time())
request = GetLogsRequest(project, logstore, start_time, end_time, query=query)
response = client.get_logs(request)
for log in response.get_logs():
print(log.contents)python
import os
import time
from aliyun.log import LogClient, GetLogsRequest
client = LogClient(
os.environ["SLS_ENDPOINT"],
os.environ["ALIBABA_CLOUD_ACCESS_KEY_ID"],
os.environ["ALIBABA_CLOUD_ACCESS_KEY_SECRET"],
)
project = os.environ["SLS_PROJECT"]
logstore = os.environ["SLS_LOGSTORE"]
query = "status:500"
start_time = int(time.time()) - 15 * 60
end_time = int(time.time())
request = GetLogsRequest(project, logstore, start_time, end_time, query=query)
response = client.get_logs(request)
for log in response.get_logs():
print(log.contents)Script quickstart
脚本快速入门
bash
python skills/observability/sls/aliyun-sls-log-query/scripts/query_logs.py \
--query "status:500" \
--last-minutes 15Optional args: , (repeatable, or comma-separated values), , , , , , .
--project--logstore--endpoint--start--end--last-minutes--limit--parallelbash
python skills/observability/sls/aliyun-sls-log-query/scripts/query_logs.py \
--query "status:500" \
--last-minutes 15可选参数:、(可重复指定,或使用逗号分隔的值)、、、、、、。
--project--logstore--endpoint--start--end--last-minutes--limit--parallelTroubleshooting script
故障排查脚本
bash
python skills/observability/sls/aliyun-sls-log-query/scripts/troubleshoot.py \
--group-field status \
--last-minutes 30 \
--limit 20Optional args: , , , (repeatable, or comma-separated values), , plus the time range args above.
--error-query--group-field--limit--logstore--parallelbash
python skills/observability/sls/aliyun-sls-log-query/scripts/troubleshoot.py \
--group-field status \
--last-minutes 30 \
--limit 20可选参数:、、、(可重复指定,或使用逗号分隔的值)、,以及上述的时间范围参数。
--error-query--group-field--limit--logstore--parallelWorkflow
工作流程
- Ensure Logstore indexing is enabled (queries/analysis fail without index).
- Write query clause and append analysis clause when needed.
- Execute with SDK/script and inspect results.
- Control returned rows with ; narrow time range when needed.
limit
- 确保已开启Logstore索引(未开启索引会导致查询/分析失败)。
- 编写查询子句,需要时追加分析子句。
- 使用SDK/脚本执行查询并检查结果。
- 使用控制返回行数;需要时缩小时间范围。
limit
Validation
验证
bash
mkdir -p output/aliyun-sls-log-query
for f in skills/observability/sls/aliyun-sls-log-query/scripts/*.py; do
python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/aliyun-sls-log-query/validate.txtPass criteria: command exits 0 and is generated.
output/aliyun-sls-log-query/validate.txtbash
mkdir -p output/aliyun-sls-log-query
for f in skills/observability/sls/aliyun-sls-log-query/scripts/*.py; do
python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/aliyun-sls-log-query/validate.txt通过标准:命令退出码为0且生成文件。
output/aliyun-sls-log-query/validate.txtOutput And Evidence
输出与凭证
- Save artifacts, command outputs, and API response summaries under .
output/aliyun-sls-log-query/ - Include key parameters (region/resource id/time range) in evidence files for reproducibility.
- 将产物、命令输出和API响应摘要保存在目录下。
output/aliyun-sls-log-query/ - 在凭证文件中包含关键参数(地域/资源ID/时间范围)以便复现。
References
参考资料
-
Syntax and examples:
references/query-syntax.md -
Python SDK initialization and queries:
references/python-sdk.md -
Troubleshooting templates:
references/templates.md -
Source list:
references/sources.md
- 语法与示例:
references/query-syntax.md - Python SDK初始化与查询:
references/python-sdk.md - 故障排查模板:
references/templates.md - 来源列表:
references/sources.md