メインコンテンツへ移動

PosthogExporter

AI の Observability と分析のために Tracing データを PostHog へ送信します。

コンストラクター
コンストラクターへの直接リンク

new PosthogExporter(config: PosthogExporterConfig)

PosthogExporterConfig
posthogexporterconfigへの直接リンク

interface PosthogExporterConfig extends BaseExporterConfig {
apiKey?: string
host?: string
flushAt?: number
flushInterval?: number
serverless?: boolean
defaultDistinctId?: string
enablePrivacyMode?: boolean
}

BaseExporterConfig を拡張し、次の項目を含みます。

  • logger?: IMastraLogger - Logger インスタンス
  • logLevel?: LogLevel | 'debug' | 'info' | 'warn' | 'error' - ログレベル(デフォルト:INFO)

メソッド
メソッドへの直接リンク

exportTracingEvent
exporttracingeventへの直接リンク

async exportTracingEvent(event: TracingEvent): Promise<void>

Tracing イベントを PostHog へエクスポートします。

onFeedbackEvent
onfeedbackeventへの直接リンク

async onFeedbackEvent(event: FeedbackEvent): Promise<void>

フィードバックイベントを PostHog へエクスポートします。フィードバックのエクスポートを参照してください。

flush
flushへの直接リンク

async flush(): Promise<void>

exporter をシャットダウンせず、バッファー内のすべてのイベントを PostHog へ強制的にフラッシュします。ランタイム終了前に Span が確実にエクスポートされるようにする必要があるサーバーレス環境で役立ちます。

shutdown
shutdownへの直接リンク

async shutdown(): Promise<void>

保留中のバッチイベントをフラッシュし、PostHog クライアントをシャットダウンします。

使用方法
使用方法への直接リンク

ゼロコンフィグ(環境変数を使用)
ゼロコンフィグ(環境変数を使用)への直接リンク

import { PosthogExporter } from '@mastra/posthog'

// Reads from POSTHOG_API_KEY, POSTHOG_HOST
const exporter = new PosthogExporter()

明示的な設定
明示的な設定への直接リンク

import { PosthogExporter } from '@mastra/posthog'

const exporter = new PosthogExporter({
apiKey: process.env.POSTHOG_API_KEY!,
host: 'https://us.i.posthog.com',
serverless: true,
})

Span タイプのマッピング
Span タイプのマッピングへの直接リンク

Mastra Span タイプ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
その他すべての Workflow$ai_span
GENERIC$ai_span

フィードバックのエクスポート
フィードバックのエクスポートへの直接リンク

addFeedback() で記録されたフィードバックは、ネイティブの $ai_feedback イベントとして PostHog へエクスポートされます。PostHog では、リンクされた Trace 上に ユーザーフィードバック として表示されます。追加設定は不要です。

const trace = await mastra.observability.getRecordedTrace({ traceId })
await trace.addFeedback({
feedbackType: 'thumbs',
value: 'down',
comment: 'Wrong answer',
})

フィードバックイベントは、次の PostHog プロパティにマッピングされます。

Mastra フィードバックフィールドPostHog プロパティ
traceId$ai_trace_id
comment(ない場合は value$ai_feedback_text
feedbackIdfeedback_id
feedbackTypefeedback_type
valuefeedback_value
feedbackSourcefeedback_source
spanIdspan_id
sourceIdsource_id
metadata.sessionId$ai_session_id
metadata(その他のキー)カスタムプロパティ

PostHog は $ai_trace_id を介してフィードバックを Trace に紐付けるため、traceId のないフィードバックは破棄されます。イベントの distinct ID は、feedbackUserIdmetadata.userIddefaultDistinctIdanonymous の順で決定されます。