> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # PosthogExporter Envoie les données de Tracing à PostHog pour l’observabilité et l’analyse de l’IA. ## Constructeur ```typescript new PosthogExporter(config: PosthogExporterConfig) ``` ## `PosthogExporterConfig` ```typescript interface PosthogExporterConfig extends BaseExporterConfig { apiKey?: string host?: string flushAt?: number flushInterval?: number serverless?: boolean defaultDistinctId?: string enablePrivacyMode?: boolean } ``` Étend `BaseExporterConfig`, qui comprend : - `logger?: IMastraLogger` - Instance du logger - `logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error'` - Niveau de log (valeur par défaut : INFO) ## Méthodes ### `exportTracingEvent` ```typescript async exportTracingEvent(event: TracingEvent): Promise ``` Exporte un événement de tracing vers PostHog. ### `onFeedbackEvent` ```typescript async onFeedbackEvent(event: FeedbackEvent): Promise ``` Exporte un événement de retour vers PostHog. Consultez la section [Exportation des retours](#feedback-export). ### flush ```typescript async flush(): Promise ``` Force l’envoi vers PostHog de tous les événements mis en mémoire tampon sans arrêter l’exportateur. Cette méthode est utile dans les environnements serverless où vous devez vous assurer que les spans sont exportés avant l’arrêt du runtime. ### shutdown ```typescript async shutdown(): Promise ``` Envoie les lots d’événements en attente et arrête le client PostHog. ## Utilisation ### Sans configuration (avec des variables d’environnement) ```typescript import { PosthogExporter } from '@mastra/posthog' // Reads from POSTHOG_API_KEY, POSTHOG_HOST const exporter = new PosthogExporter() ``` ### Configuration explicite ```typescript import { PosthogExporter } from '@mastra/posthog' const exporter = new PosthogExporter({ apiKey: process.env.POSTHOG_API_KEY!, host: 'https://us.i.posthog.com', serverless: true, }) ``` ## Correspondance des types de spans | Type de span Mastra | Type d’événement PostHog | | ------------------------- | ------------------------ | | `MODEL_GENERATION` | `$ai_generation` | | `MODEL_STEP` | `$ai_generation` | | `MODEL_CHUNK` | `$ai_span` | | `TOOL_CALL` | `$ai_span` | | `MCP_TOOL_CALL` | `$ai_span` | | `PROVIDER_TOOL_CALL` | `$ai_span` | | `PROCESSOR_RUN` | `$ai_span` | | `AGENT_RUN` | `$ai_span` | | `WORKFLOW_RUN` | `$ai_span` | | Tous les autres Workflows | `$ai_span` | | `GENERIC` | `$ai_span` | ## Exportation des retours Les retours enregistrés avec [`addFeedback()`](https://mastra.zisheng.pro/fr/docs/observability/feedback) sont exportés vers PostHog comme événements natifs `$ai_feedback`. PostHog les affiche sous l’intitulé **User feedback** dans la trace associée. Aucune configuration supplémentaire n’est nécessaire. ```typescript const trace = await mastra.observability.getRecordedTrace({ traceId }) await trace.addFeedback({ feedbackType: 'thumbs', value: 'down', comment: 'Wrong answer', }) ``` Les événements de retour correspondent aux propriétés PostHog suivantes : | Champ de retour Mastra | Propriété PostHog | | -------------------------------------------------- | ------------------------- | | `traceId` | `$ai_trace_id` | | `comment` (ou `value` en l’absence de commentaire) | `$ai_feedback_text` | | `feedbackId` | `feedback_id` | | `feedbackType` | `feedback_type` | | `value` | `feedback_value` | | `feedbackSource` | `feedback_source` | | `spanId` | `span_id` | | `sourceId` | `source_id` | | `metadata.sessionId` | `$ai_session_id` | | `metadata` (autres clés) | propriétés personnalisées | Les retours dépourvus de `traceId` sont abandonnés, car PostHog les associe à une trace au moyen de `$ai_trace_id`. L’ID distinct de l’événement est résolu à partir de `feedbackUserId`, puis de `metadata.userId`, de `defaultDistinctId` et enfin de `anonymous`.