@genkit-ai/core
Version:
Genkit AI framework core libraries.
1 lines • 4.57 kB
Source Map (JSON)
{"version":3,"sources":["../../src/tracing/processor.ts"],"sourcesContent":["/**\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport type {\n ReadableSpan,\n Span,\n SpanProcessor,\n} from '@opentelemetry/sdk-trace-base';\nimport { ATTR_PREFIX } from './instrumentation.js';\n\n// Experimental, WIP\n\nexport class GenkitSpanProcessorWrapper implements SpanProcessor {\n constructor(private processor: SpanProcessor) {}\n\n forceFlush(): Promise<void> {\n return this.processor.forceFlush();\n }\n\n onStart(span: Span, parentContext: Context): void {\n return this.processor.onStart(span, parentContext);\n }\n\n onEnd(span: ReadableSpan): void {\n if (\n Object.keys(span.attributes).find((k) => k.startsWith(ATTR_PREFIX + ':'))\n ) {\n return this.processor.onEnd(new FilteringReadableSpanProxy(span));\n } else {\n return this.processor.onEnd(span);\n }\n }\n\n async shutdown(): Promise<void> {\n return this.processor.shutdown();\n }\n}\n\nclass FilteringReadableSpanProxy implements ReadableSpan {\n constructor(private span: ReadableSpan) {}\n\n get name() {\n return this.span.name;\n }\n get kind() {\n return this.span.kind;\n }\n get parentSpanId() {\n return this.span.parentSpanId;\n }\n get startTime() {\n return this.span.startTime;\n }\n get endTime() {\n return this.span.endTime;\n }\n get status() {\n return this.span.status;\n }\n get attributes() {\n const out = {} as Record<string, any>;\n for (const [key, value] of Object.entries(this.span.attributes)) {\n if (!key.startsWith(ATTR_PREFIX + ':')) {\n out[key] = value;\n }\n }\n return out;\n }\n get links() {\n return this.span.links;\n }\n get events() {\n return this.span.events;\n }\n get duration() {\n return this.span.duration;\n }\n get ended() {\n return this.span.ended;\n }\n get resource() {\n return this.span.resource;\n }\n get instrumentationLibrary() {\n return this.span.instrumentationLibrary;\n }\n get droppedAttributesCount() {\n return this.span.droppedAttributesCount;\n }\n get droppedEventsCount() {\n return this.span.droppedEventsCount;\n }\n get droppedLinksCount() {\n return this.span.droppedLinksCount;\n }\n\n spanContext() {\n return this.span.spanContext();\n }\n}\n"],"mappings":"AAsBA,SAAS,mBAAmB;AAIrB,MAAM,2BAAoD;AAAA,EAC/D,YAAoB,WAA0B;AAA1B;AAAA,EAA2B;AAAA,EAE/C,aAA4B;AAC1B,WAAO,KAAK,UAAU,WAAW;AAAA,EACnC;AAAA,EAEA,QAAQ,MAAY,eAA8B;AAChD,WAAO,KAAK,UAAU,QAAQ,MAAM,aAAa;AAAA,EACnD;AAAA,EAEA,MAAM,MAA0B;AAC9B,QACE,OAAO,KAAK,KAAK,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,cAAc,GAAG,CAAC,GACxE;AACA,aAAO,KAAK,UAAU,MAAM,IAAI,2BAA2B,IAAI,CAAC;AAAA,IAClE,OAAO;AACL,aAAO,KAAK,UAAU,MAAM,IAAI;AAAA,IAClC;AAAA,EACF;AAAA,EAEA,MAAM,WAA0B;AAC9B,WAAO,KAAK,UAAU,SAAS;AAAA,EACjC;AACF;AAEA,MAAM,2BAAmD;AAAA,EACvD,YAAoB,MAAoB;AAApB;AAAA,EAAqB;AAAA,EAEzC,IAAI,OAAO;AACT,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,OAAO;AACT,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,eAAe;AACjB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,YAAY;AACd,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,UAAU;AACZ,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,aAAa;AACf,UAAM,MAAM,CAAC;AACb,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,KAAK,KAAK,UAAU,GAAG;AAC/D,UAAI,CAAC,IAAI,WAAW,cAAc,GAAG,GAAG;AACtC,YAAI,GAAG,IAAI;AAAA,MACb;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,SAAS;AACX,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,WAAW;AACb,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,QAAQ;AACV,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,WAAW;AACb,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,yBAAyB;AAC3B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,yBAAyB;AAC3B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,qBAAqB;AACvB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EACA,IAAI,oBAAoB;AACtB,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,cAAc;AACZ,WAAO,KAAK,KAAK,YAAY;AAAA,EAC/B;AACF;","names":[]}