mcpField
O
otel-flask-style

otel-flask-style

github.com/superloglabs開発13320 回インストール21 週間前に更新
リポジトリ

otel-flask-style について

Flask アプリケーションに OpenTelemetry の可観測性を追加するためのスタイルスキルです。Flask のネイティブ計装、初期化時期、モジュールスコープのテレメトリーオブジェクト、ログ連携、LLM のトークン計測を説明します。

主な機能

  1. 01Flask のネイティブ計装
  2. 02トラフィック受付前の初期化
  3. 03モジュールスコープのトレーサーとメーター
  4. 04OTLP ログブリッジの要件
  5. 05LLM トークン計測の指針

活用シーン

  1. 01Flask アプリの可観測性設定
  2. 02補助処理へのスパン追加
  3. 03相関情報付き Python ログの転送
  4. 04LLM の入力・出力トークン追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/superloglabs/skills --skill otel-flask-style

インストール後、Claude Code で/otel-flask-styleを入力して読み込まれたか確認します。

詳細

OTel Flask スタイル

ネイティブの Flask インストルメンテーションを使用してください。スパンを作成するためだけに、リクエスト処理を手動のミドルウェアに置き換えないでください。

from flask import Flask
from opentelemetry.instrumentation.flask import FlaskInstrumentor

def init_observability(app: Flask) -> bool:
    ...
    FlaskInstrumentor().instrument_app(app)
    return True

ブートストラップの構成を把握しやすくするため、FlaskInstrumentor().instrument_app(app) はほかのオブザーバビリティ設定と一緒に保持してください。サインアップがまだ進行中で生成されたトークンが未登録でも、プロバイダーを初期化して問題ありません。ブラウザーのフローが完了するまで、取り込み時にエクスポートが拒否される場合があります。

エントリーポイント

ユーザーのトラフィックを受け付ける前に初期化してください。

app = Flask(__name__)
init_observability(app)

有界な処理

自動インストルメンテーションされた HTTP スパンでは捕捉できないヘルパーには、モジュールスコープの OTel オブジェクトとデコレーターを使用してください。

tracer = trace.get_tracer("mugline.api")
meter = metrics.get_meter("mugline.api")

@tracer.start_as_current_span("mug.recommend")
def recommend_mug(*, tenant_id: str, preference: str) -> dict[str, str]:
    span = trace.get_current_span()
    span.set_attribute("tenant.id", tenant_id)
    ...

ログ

OTLP に転送する標準ライブラリのログでは、次のすべてを設定してください。

  • LoggerProvider
  • set_logger_provider(logger_provider)
  • OTLPLogExporter
  • LoggingHandler
  • LoggingInstrumentor().instrument(...)

LLM 呼び出し

LLM を呼び出すルートでは、次のトークン情報を計測する必要があります。

  • llm.tokens.input
  • llm.tokens.output

プロバイダーのインストルメンテーションでトークン使用量を捕捉できない場合に限り、テナント、プロバイダー、モデル、ユースケース、呼び出し元、結果を明示的なトークンカウンターにタグ付けしてください。アプリ側で LLM のコストメトリクスや料金表を追加しないでください。Superlog は、プロバイダー、モデル、トークンのデータからコストを一元的に推定します。

コメント