From e7a7cf3eb8080b3dbe2067339ff3216bb68bc55d Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 20 Mar 2023 13:30:21 +0000 Subject: [PATCH] Export events to posthog too --- src/analytics/OtelPosthogExporter.ts | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/analytics/OtelPosthogExporter.ts b/src/analytics/OtelPosthogExporter.ts index d4f8b536..3850e13b 100644 --- a/src/analytics/OtelPosthogExporter.ts +++ b/src/analytics/OtelPosthogExporter.ts @@ -14,8 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -import { SpanExporter } from "@opentelemetry/sdk-trace-base"; -import { ReadableSpan } from "@opentelemetry/sdk-trace-base"; +import { SpanExporter, ReadableSpan } from "@opentelemetry/sdk-trace-base"; import { ExportResult, ExportResultCode } from "@opentelemetry/core"; import { PosthogAnalytics } from "./PosthogAnalytics"; @@ -34,11 +33,23 @@ export class PosthogSpanExporter implements SpanExporter { resultCallback: (result: ExportResult) => void ): Promise { console.log("POSTHOGEXPORTER", spans); - for (let i = 0; i < spans.length; i++) { - const span = spans[i]; - const sendInstantly = - span.name == "otel_callEnded" || - span.name == "otel_otherSentInstantlyEventName"; + for (const span of spans) { + const sendInstantly = [ + "otel_callEnded", + "otel_otherSentInstantlyEventName", + ].includes(span.name); + + for (const spanEvent of span.events) { + await PosthogAnalytics.instance.trackFromSpan( + { + eventName: spanEvent.name, + ...spanEvent.attributes, + }, + { + send_instantly: sendInstantly, + } + ); + } await PosthogAnalytics.instance.trackFromSpan( { eventName: span.name, ...span.attributes },