otel-supabase-edge-style について
otel-supabase-edge-styleは、ホスト型Supabase Edge Functions向けのベンダー中立なOpenTelemetry形式の計装ガイドです。トレース、ログ、メトリクスを扱います。
主な機能
- 01ベンダー中立のトレース用シム
- 02関数とプロバイダー呼び出しのスパン
- 03構造化OTLPログレコード
- 04テナントタグ付きカウンターとヒストグラム
- 05対応ランタイムでのOTLP送信遅延
活用シーン
- 01ホスト型Supabase Edge Functionsの計装
- 02重要なプロバイダー呼び出しの追跡
- 03テナントタグ付き操作メトリクスの記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ superloglabs/ skills --skill otel-supabase-edge-styleインストール後、Claude Code で/otel-supabase-edge-styleを入力して読み込まれたか確認します。
詳細
OTel Supabase Edge のスタイル
ホスト型 Supabase Edge Functions は、現時点では通常のネイティブ OTel SDK のライフサイクルをサポートしていません。ネイティブサポートが導入されたら削除できる、OTel に似たプロバイダーに依存しない小さなシムを使用してください。
再利用に適した API 名:
tracer.startActiveSpan("edge.chat", async (span) => { ... });
span.setAttributes({ "tenant.id": tenantId });
span.setStatus({ code: SpanStatusCode.ERROR });
meter.createCounter("llm.tokens.input").add(tokens, attrs);
histogram.record(durationMs, attrs);
再利用に適さない API 名:
sendSuperlogSpan(...);
recordCounter(...);
trackSuperlogEvent(...);
エンドポイントとヘッダーの設定は、関数の上部近くにある 1 か所のセットアップ領域にまとめてください。otel-onboarding-style のソースコードレベルの公開 Superlog 設定パターンを使用してください。公開プロジェクトトークンは書き込み専用であり、セットアップブロック内のエンドポイントと一緒に配置します。
const SUPERLOG_ENDPOINT = "https://intake.superlog.sh";
const SUPERLOG_PUBLIC_TOKEN = "sl_public_...";
// The token MUST be sent as the `x-api-key` header. Ingest only reads
// `x-api-key` or `Authorization: Bearer <token>`; any other header name 401s.
function superlogHeaders(token: string): Record<string, string> {
return { "x-api-key": token };
}
const OTEL_HEADERS = superlogHeaders(SUPERLOG_PUBLIC_TOKEN);
シグナル
- トレース:関数の処理と、重要なプロバイダー呼び出しごとにスパンを設定します。
- ログ:重要な結果を簡潔な構造化 OTLP ログレコードとして記録します。
- メトリクス:重要な処理について、テナントタグ付きのカウンター/ヒストグラムを記録します。
- LLM 呼び出し:プロバイダーの計装を利用できない場合に限り、
llm.tokens.input/llm.tokens.outputを記録します。明示的なトークンカウンターには、テナント、プロバイダー、モデル、ユースケース、呼び出し元、結果のタグを付けてください。エッジ関数のコードで LLM のコストを計算しないでください。Superlog がプロバイダー/モデル/トークンのデータから一元的に推定します。
利用可能な場合は EdgeRuntime.waitUntil(...) またはランタイムの同等の機能を使用し、レスポンスの返却後も OTLP のフェッチが完了できるようにしてください。
コメント
Markdown 対応