mcpField
O
otel-supabase-edge-style

otel-supabase-edge-style

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

otel-supabase-edge-style について

otel-supabase-edge-styleは、ホスト型Supabase Edge Functions向けのベンダー中立なOpenTelemetry形式の計装ガイドです。トレース、ログ、メトリクスを扱います。

主な機能

  1. 01ベンダー中立のトレース用シム
  2. 02関数とプロバイダー呼び出しのスパン
  3. 03構造化OTLPログレコード
  4. 04テナントタグ付きカウンターとヒストグラム
  5. 05対応ランタイムでのOTLP送信遅延

活用シーン

  1. 01ホスト型Supabase Edge Functionsの計装
  2. 02重要なプロバイダー呼び出しの追跡
  3. 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 のフェッチが完了できるようにしてください。

コメント