monitoring-observability について
Prometheus、Grafana、OpenTelemetry、Langfuseを使う開発者向けの、OrchestKitの監視・オブザーバビリティスキルです。ダッシュボード、LLMトレース、エージェントのサイレント障害検知に関するプロジェクト固有の方針をまとめています。
主な機能
- 01GrafanaダッシュボードとSLO/SLIのルール
- 02LangfuseによるLLMトレース
- 03ツール呼び出しのスキップ検知
- 04品質低下とループの特定
- 05トークン急増のアラート
活用シーン
- 01サービス健全性のダッシュボード作成
- 02複数段階のLLMワークフローの追跡
- 03想定したツールを呼ばないエージェントの検出
- 04品質低下やトークン急増の検知
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ yonatangross/ orchestkit --skill monitoring-observabilityインストール後、Claude Code で/monitoring-observabilityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
metadata.jsontest-cases.jsonexamples/orchestkit-monitoring-dashboard.mdreferences/dashboards.mdlangfuse-js-v5.mdmetrics-collection.mddev-agent-lens.mdevaluation-scores.mdexperiments-api.mdork-delta.mdstructured-logging.mdsession-tracking.mdrules/_sections.mdsilent-degraded-quality.mdsilent-alerting.md_template.mdsilent-tool-skipping.mdmonitoring-grafana.mdllm-langfuse-traces.mdscripts/alerting-rules.ymlhealth-checks.tscallback-handler.pyopentelemetry-tracing.tsprometheus-metrics.tsstructured-logging.tsobserve-decorator.py詳細
モニタリングとオブザーバビリティ
Prometheus、Grafana、OpenTelemetry、Langfuse を再解説するのではなく、それらをラップするものです。このスキルでは OrchestKit 独自の差分(バージョンの下限、プロジェクト内の決定事項、実体験から得た教訓)を扱い、それ以外はすべてベンダーの情報を参照します。まず references/ork-delta.md を確認してください。
上流ドキュメントでカバーされる内容(再記述しない)
以下のトピックは公式ドキュメントで網羅されています。ソースを読み、ローカルに複製しないでください。
クイックリファレンス
| カテゴリ | ルール | 影響度 | 使用場面 |
|---|---|---|---|
| インフラストラクチャのモニタリング | 1 | CRITICAL | Grafana ダッシュボード、ゴールデンシグナル、SLO/SLI |
| LLM オブザーバビリティ | 1 | HIGH | Langfuse トレース、オブザベーションタイプ、エージェントグラフ |
| サイレント障害 | 3 | HIGH | ツールのスキップ、品質の低下、ループ/トークン急増のアラート |
全 3 カテゴリに 5 つのルールがあります。 ドリフト検出、コスト追跡、評価スコアリング、Prometheus の計装、アラートルールの作成は、上記の上流ソースに移管されました。
クイックスタート
# Langfuse v4 LLM tracing: semantic as_type plus inline scoring
from langfuse import observe, get_client
@observe(as_type="generation", name="analyze_content")
async def analyze_content(content: str):
get_client().update_current_trace(
user_id="user_123", session_id="session_abc",
tags=["production", "orchestkit"],
)
result = await llm.generate(content)
get_client().score_current_span(name="response_quality", value=0.85)
return result
# Prometheus RED method, wired the way this repo expects (bounded labels only)
from prometheus_client import Counter, Histogram
http_requests = Counter('http_requests_total', 'Total requests', ['method', 'endpoint', 'status'])
http_duration = Histogram('http_request_duration_seconds', 'Request latency',
buckets=[0.01, 0.05, 0.1, 0.5, 1, 2, 5])
インフラストラクチャのモニタリング
ダッシュボードとヘルスチェックのパターンを扱います。メトリクスの計装とアラートルールの構文は上流ドキュメントを参照してください。
| ルール | ファイル | 主なパターン |
|---|---|---|
| Grafana ダッシュボード | rules/monitoring-grafana.md | ゴールデンシグナル、SLO/SLI、ヘルスチェック |
CC 2.1.161 — OTEL リソース属性をメトリクスラベルとして使用:
OTEL_RESOURCE_ATTRIBUTESの値がメトリクスのデータポイントにラベルとして付与されるようになりました。これにより、使用状況メトリクスをカスタムディメンション(チーム、リポジトリ、環境)で分類できます。マルチテナント/チーム別のコストおよび使用状況を追跡するには、ダッシュボードにラベルセレクターを追加してください。
LLM オブザーバビリティ
Langfuse ベースの LLM アプリケーション向けトレースです。コスト追跡、スコアリング、ドリフト統計は上流ドキュメントを参照してください。ここでは、このリポジトリでトレースをどのように構成しているかを扱います。
| ルール | ファイル | 主なパターン |
|---|---|---|
| Langfuse トレース | rules/llm-langfuse-traces.md | @observe デコレーター、OTEL スパン、エージェントグラフ |
サイレント障害
LLM エージェントのサイレント障害を検出し、アラートを送信します。
| ルール | ファイル | 主なパターン |
|---|---|---|
| ツールのスキップ | rules/silent-tool-skipping.md | 予想されたツール呼び出しと実際のツール呼び出し、Langfuse トレース |
| 品質の低下 | rules/silent-degraded-quality.md | ヒューリスティックと LLM-as-judge、z スコアのベースライン |
| サイレントアラート | rules/silent-alerting.md | ループ検出、トークンの急増、エスカレーションワークフロー |
CC 2.1.169 — OTEL クライアント証明書のパスには信頼が必要です: 信頼されていないプロジェクト設定では、信頼の確認なしに OTEL クライアント証明書のパスを設定できなくなりました。OTEL エクスポーターがプロジェクトの
.claude/settings.jsonで設定したクライアント証明書を使用する場合、信頼されていないプロジェクトでの初回使用時に一度だけ信頼確認のプロンプトが表示されます。2.1.169 以降にテレメトリーがひそかに送信されなくなった場合、通常はコレクターではなく、この制限が原因です。
主な決定事項
| 決定事項 | 推奨事項 | 理由 |
|---|---|---|
| メトリクスの手法 | RED メソッド(レート、エラー、継続時間) | 業界標準であり、サービスの健全性に不可欠な要素を網羅します |
| ログ形式 | 構造化 JSON | 機械で解析でき、ログの集約に対応します |
| トレーシング | OpenTelemetry | ベンダーに依存せず、自動計装に対応し、幅広いエコシステムを備えています |
| LLM のオブザーバビリティ | Langfuse(LangSmith ではなく) | オープンソースでセルフホスト可能、プロンプト管理機能を内蔵しています |
| LLM トレーシング API | @observe(as_type=...) + score_current_span() | v4:セマンティック型、インラインスコアリング、スパンフィルタリング |
| Langfuse API | Observations API v2 + Metrics API v2 | v4(2026年3月):クエリの高速化、大規模な集計 |
| フックのテレメトリー転送 | ~/.claude/analytics/ 配下の JSONL。SDK をプロセス内で使用しないでください | フックはイベントごとに起動するプロセスです。SDK の初期化は起動のたびにコストが発生します(references/ork-delta.md) |
詳細ドキュメント
| リソース | 説明 |
|---|---|
references/ork-delta.md | まずはこちらをお読みください。 上流のドキュメントには記載されていない最低基準、プロジェクト内の決定事項、過去の問題 |
references/langfuse-js-v5.md | JS/TS SDK v5 と Python 4.x の差分:パッケージ一覧、存在しないパッケージ、SpanProcessor と exporter の違い。JS で Langfuse のコードを書く前にお読みください |
references/experiments-api.md | このリポジトリで使用する Langfuse の実験とデータセットの実行 |
references/evaluation-scores.md | スコアの形式とスコアリングパイプラインの接続方法 |
references/session-tracking.md | 複数ステップのワークフローにおけるセッションとユーザーのグループ化 |
references/metrics-collection.md | Claude Code の OTEL メトリクス一覧とコレクター側での結合 |
references/dashboards.md | ダッシュボードのレイアウト規約 |
references/structured-logging.md | 構造化ログのフィールド規約 |
references/dev-agent-lens.md | API 境界のオブザーバビリティを実現する LiteLLM プロキシレイヤー |
examples/orchestkit-monitoring-dashboard.md | 監視ダッシュボードの実例 |
scripts/ | テンプレート:Prometheus、OpenTelemetry、ヘルスチェック、Langfuse |
関連スキル
defense-in-depth- セキュリティアーキテクチャの一部としてのレイヤー 8 オブザーバビリティdevops-deployment- CI/CD および Kubernetes とのオブザーバビリティ統合resilience-patterns- サーキットブレーカーと障害シナリオの監視llm-evaluation- Langfuse のスコアリングと統合する評価パターンcaching- Langfuse で追跡するコストを削減するキャッシュ戦略