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函数与服务调用 Span
  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(...);

在函数顶部附近的一个设置区域中集中配置端点和请求头。采用 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);

信号

  • 跟踪:为函数操作和每次关键的提供方调用创建 span。
  • 日志:针对关键结果记录简洁的结构化 OTLP 日志。
  • 指标:为关键操作记录带租户标签的计数器/直方图。
  • LLM 调用:仅在没有提供方检测功能时采集 llm.tokens.input / llm.tokens.output;为显式令牌计数器添加租户、提供方、模型、用例、调用位置和结果标签。不要在 Edge Function 代码中计算 LLM 成本;Superlog 会根据提供方/模型/令牌数据集中估算成本。

在可用时,使用 EdgeRuntime.waitUntil(...) 或运行时的等效功能,以便在响应返回后仍能完成 OTLP 请求。

评论

支持 Markdown