关于 otel-supabase-edge-style
otel-supabase-edge-style 是面向托管式 Supabase Edge Functions 的中立 OpenTelemetry 风格埋点规范,涵盖追踪、日志和指标。
主要功能
- 01中立的追踪适配层
- 02函数与服务调用 Span
- 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(...);
在函数顶部附近的一个设置区域中集中配置端点和请求头。采用 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