alicloud-observability-sls-log-query
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCategory: service
Category: service
SLS 日志查询与排障
SLS 日志查询与排障
使用 SLS 的 query|analysis 语法与 Python SDK 做日志检索、过滤与统计分析。
使用SLS的query|analysis语法与Python SDK进行日志检索、过滤与统计分析。
Prerequisites
前提条件
- 安装 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_PROJECTSLS_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_PROJECTSLS_LOGSTORE
Query 组成
查询语句组成
- 查询语句:用于过滤日志(如 )。
status:500 - 分析语句:用于统计聚合,格式为 。
查询语句|分析语句 - 示例:
* | SELECT status, count(*) AS pv GROUP BY status
详细语法见 。
references/query-syntax.md- 查询语句:用于过滤日志(例如 )。
status:500 - 分析语句:用于统计聚合,格式为 。
查询语句|分析语句 - 示例:
* | 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/alicloud-observability-sls-log-query/scripts/query_logs.py \
--query "status:500" \
--last-minutes 15Optional args: , , , , , , .
--project--logstore--endpoint--start--end--last-minutes--limitbash
python skills/observability/sls/alicloud-observability-sls-log-query/scripts/query_logs.py \
--query "status:500" \
--last-minutes 15可选参数:, , , , , , 。
--project--logstore--endpoint--start--end--last-minutes--limitTroubleshooting script
故障排查脚本
bash
python skills/observability/sls/alicloud-observability-sls-log-query/scripts/troubleshoot.py \
--group-field status \
--last-minutes 30 \
--limit 20Optional args: , , , plus the time range args above.
--error-query--group-field--limitbash
python skills/observability/sls/alicloud-observability-sls-log-query/scripts/troubleshoot.py \
--group-field status \
--last-minutes 30 \
--limit 20可选参数:, , ,以及上述时间范围相关参数。
--error-query--group-field--limitWorkflow
操作流程
- 确认 Logstore 已开启索引(未开启会导致查询/分析失败)。
- 编写查询语句,必要时追加分析语句。
- 通过 SDK 或脚本执行查询并查看结果。
- 用 控制返回行数,必要时缩小时间范围。
limit
- 确认Logstore已开启索引(未开启会导致查询/分析失败)。
- 编写查询语句,必要时追加分析语句。
- 通过SDK或脚本执行查询并查看结果。
- 使用控制返回行数,必要时缩小时间范围。
limit
References
参考资料
-
语法与示例:
references/query-syntax.md -
Python SDK 初始化与查询:
references/python-sdk.md -
排障模板:
references/templates.md -
Source list:
references/sources.md
-
语法与示例:
references/query-syntax.md -
Python SDK初始化与查询:
references/python-sdk.md -
排障模板:
references/templates.md -
来源列表:
references/sources.md