social components inlay.at
atproto components sdui
86
fork

Configure Feed

Select the types of activity you want to include in your feed.

add axiom

+25 -1
+23 -1
instrumentation.ts
··· 1 1 import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; 2 2 import { resourceFromAttributes } from "@opentelemetry/resources"; 3 + import type { ReadableSpan, SpanExporter } from "@opentelemetry/sdk-trace-node"; 3 4 import { 4 5 NodeTracerProvider, 5 6 SimpleSpanProcessor, 6 7 } from "@opentelemetry/sdk-trace-node"; 7 8 import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions"; 8 9 10 + class FilteringSpanProcessor extends SimpleSpanProcessor { 11 + constructor(exporter: SpanExporter) { 12 + super(exporter); 13 + } 14 + onEnd(span: ReadableSpan) { 15 + const events = span.events || []; 16 + const isInlayMissing = events.some( 17 + (e) => 18 + e.name === "exception" && 19 + String(e.attributes?.["exception.message"] ?? "").startsWith( 20 + "INLAY_MISSING:" 21 + ) 22 + ); 23 + if (isInlayMissing) return; 24 + super.onEnd(span); 25 + } 26 + } 27 + 9 28 export function register() { 10 29 if (process.env.AXIOM_TOKEN) { 11 30 const provider = new NodeTracerProvider({ ··· 13 32 [ATTR_SERVICE_NAME]: "inlay", 14 33 }), 15 34 spanProcessors: [ 16 - new SimpleSpanProcessor( 35 + new FilteringSpanProcessor( 17 36 new OTLPTraceExporter({ 18 37 url: "https://api.axiom.co/v1/traces", 19 38 headers: { ··· 26 45 }); 27 46 28 47 provider.register(); 48 + console.log("[otel] trace provider registered, exporting to Axiom"); 49 + } else { 50 + console.log("[otel] AXIOM_TOKEN not set, skipping"); 29 51 } 30 52 31 53 if (process.env.NEXT_RUNTIME === "nodejs") {
+1
package-lock.json
··· 27 27 "@codemirror/view": "^6.39.12", 28 28 "@inlay/core": "*", 29 29 "@inlay/render": "*", 30 + "@opentelemetry/api": "^1.9.1", 30 31 "@opentelemetry/exporter-trace-otlp-http": "^0.214.0", 31 32 "@opentelemetry/resources": "^2.6.1", 32 33 "@opentelemetry/sdk-trace-node": "^2.6.1",
+1
package.json
··· 47 47 "@codemirror/view": "^6.39.12", 48 48 "@inlay/core": "*", 49 49 "@inlay/render": "*", 50 + "@opentelemetry/api": "^1.9.1", 50 51 "@opentelemetry/exporter-trace-otlp-http": "^0.214.0", 51 52 "@opentelemetry/resources": "^2.6.1", 52 53 "@opentelemetry/sdk-trace-node": "^2.6.1",