mcpField
A
alicloud-observability-sls-log-query

alicloud-observability-sls-log-query

github.com/cinience云与 DevOps396340 次安装11 周前更新
代码仓库

关于 alicloud-observability-sls-log-query

用于通过 SLS 查询语法和 Python SDK 搜索及排查 Alibaba Cloud 日志的技能,提供日志过滤、分析和分组排查脚本。

主要功能

  1. 01SLS 日志搜索与过滤
  2. 02查询和分析子句
  3. 03Python SDK 与查询脚本
  4. 04分组故障排查脚本

适用场景

  1. 01查找匹配错误或状态的日志
  2. 02按字段汇总日志数量
  3. 03检查指定时间段内的错误

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cinience/alicloud-skills --skill alicloud-observability-sls-log-query

安装后在 Claude Code 中输入/alicloud-observability-sls-log-query确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
python-sdk.md
query-syntax.md
sources.md
templates.md
scripts/
query_logs.py
troubleshoot.py

详细介绍

Category: 服务

SLS 日志查询与故障排查

使用 SLS query|analysis 语法和 Python SDK 搜索、筛选和分析日志。

前提条件

  • 安装 SDK(建议使用虚拟环境,以避免 PEP 668 限制):
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -U aliyun-log-python-sdk
  • 配置环境变量:
    • ALIBABA_CLOUD_ACCESS_KEY_ID
    • ALIBABA_CLOUD_ACCESS_KEY_SECRET
    • SLS_ENDPOINT(例如 cn-hangzhou.log.aliyuncs.com)
    • SLS_PROJECT
    • SLS_LOGSTORE(支持单个值或逗号分隔的多个值)

查询语句组成

  • 查询子句:筛选日志(例如 status:500)。
  • 分析子句:统计聚合,格式为 query|analysis。
  • 示例:* | SELECT status, count(*) AS pv GROUP BY status

完整语法请参见 references/query-syntax.md。

快速入门(Python SDK)

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 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、--limit、--parallel。

故障排查脚本

python skills/observability/sls/alicloud-observability-sls-log-query/scripts/troubleshoot.py \
  --group-field status \
  --last-minutes 30 \
  --limit 20

可选参数:--error-query、--group-field、--limit、--logstore(可重复使用,也可使用逗号分隔的多个值)、--parallel,以及上述时间范围参数。

工作流

  1. 确认已启用 Logstore 索引(未启用索引时,查询和分析会失败)。
  2. 编写查询子句,并在需要时添加分析子句。
  3. 使用 SDK/脚本执行并检查结果。
  4. 使用 limit 控制返回行数;必要时缩小时间范围。

验证

mkdir -p output/alicloud-observability-sls-log-query
for f in skills/observability/sls/alicloud-observability-sls-log-query/scripts/*.py; do
  python3 -m py_compile "$f"
done
echo "py_compile_ok" > output/alicloud-observability-sls-log-query/validate.txt

通过标准:命令以 0 退出,且已生成 output/alicloud-observability-sls-log-query/validate.txt。

输出与证据

  • 将产物、命令输出和 API 响应摘要保存到 output/alicloud-observability-sls-log-query/ 下。
  • 在证据文件中包含关键参数(区域/资源 ID/时间范围),以便复现。

参考资料

  • 语法和示例:references/query-syntax.md

  • Python SDK 初始化和查询:references/python-sdk.md

  • 故障排查模板:references/templates.md

  • 来源列表:references/sources.md

评论

支持 Markdown