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 },