aliyun-sls-log-query について
SLSのクエリ構文とPython SDKでログを検索、フィルタリング、分析するスキルです。エラーやログデータを調べる運用担当者向けに、クエリ用スクリプトとフィールド別のトラブルシューティング手順を備えています。
主な機能
- 01条件によるログ検索とフィルタリング
- 02分析句によるデータ集計
- 03スクリプトで時間範囲と結果件数を指定
- 04フィールド別のエラー分類と調査
- 05複数のLogstoreを検索
活用シーン
- 01直近のHTTP 500エラーログを検索
- 02ステータスコードごとの件数を集計
- 03ステータス別にインシデントを分類して確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cinience/ alicloud-skills --skill aliyun-sls-log-queryインストール後、Claude Code で/aliyun-sls-log-queryを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/python-sdk.mdquery-syntax.mdsources.mdtemplates.mdscripts/query_logs.pytroubleshoot.py詳細
Category: service
SLS ログのクエリとトラブルシューティング
SLS のクエリ構文と分析構文、および Python SDK を使用してログを検索、フィルタリング、分析します。
前提条件
- SDK をインストールします(PEP 668 の制限を回避するため、仮想環境を推奨します)。
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -U aliyun-log-python-sdk
- 環境変数を設定します。
ALIBABACLOUD_ACCESS_KEY_IDALIBABACLOUD_ACCESS_KEY_SECRETSLS_ENDPOINT(例:cn-hangzhou.log.aliyuncs.com)SLS_PROJECTSLS_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["ALIBABACLOUD_ACCESS_KEY_ID"],
os.environ["ALIBABACLOUD_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/aliyun-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/aliyun-sls-log-query/scripts/troubleshoot.py \
--group-field status \
--last-minutes 30 \
--limit 20
オプションの引数:--error-query、--group-field、--limit、--logstore(複数回指定、またはカンマ区切りの値を指定可能)、--parallel、および上記の時間範囲の引数。
ワークフロー
- Logstore のインデックスが有効になっていることを確認します(インデックスがないと、クエリや分析に失敗します)。
- クエリ句を記述し、必要に応じて分析句を追加します。
- SDK またはスクリプトを実行し、結果を確認します。
limitで返される行数を制御し、必要に応じて時間範囲を絞り込みます。
検証
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.txt が生成されること。
出力とエビデンス
- 成果物、コマンド出力、API レスポンスの概要を
output/aliyun-sls-log-query/に保存します。 - 再現性を確保するため、エビデンスファイルに主なパラメーター(リージョン/リソース ID/時間範囲)を含めます。
参考資料
-
構文と例:
references/query-syntax.md -
Python SDK の初期化とクエリ:
references/python-sdk.md -
トラブルシューティングのテンプレート:
references/templates.md -
ソース一覧:
references/sources.md