mcpField
A
aliyun-sls-log-query

aliyun-sls-log-query

github.com/cinienceクラウド・DevOps396105 回インストール11 週間前に更新
リポジトリ

aliyun-sls-log-query について

SLSのクエリ構文とPython SDKでログを検索、フィルタリング、分析するスキルです。エラーやログデータを調べる運用担当者向けに、クエリ用スクリプトとフィールド別のトラブルシューティング手順を備えています。

主な機能

  1. 01条件によるログ検索とフィルタリング
  2. 02分析句によるデータ集計
  3. 03スクリプトで時間範囲と結果件数を指定
  4. 04フィールド別のエラー分類と調査
  5. 05複数のLogstoreを検索

活用シーン

  1. 01直近のHTTP 500エラーログを検索
  2. 02ステータスコードごとの件数を集計
  3. 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.yaml
references/
python-sdk.md
query-syntax.md
sources.md
templates.md
scripts/
query_logs.py
troubleshoot.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_ID
    • ALIBABACLOUD_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["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、および上記の時間範囲の引数。

ワークフロー

  1. Logstore のインデックスが有効になっていることを確認します(インデックスがないと、クエリや分析に失敗します)。
  2. クエリ句を記述し、必要に応じて分析句を追加します。
  3. SDK またはスクリプトを実行し、結果を確認します。
  4. 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

コメント