跳至主要內容

PostHog Exporter

PostHog 是一個分析平台,具備監控 LLM 應用程式的 AI Observability 功能。PostHog Exporter 會將 Trace 作為結構化 event 傳送至 PostHog,提供 token 用量、成本、延遲與對話流程的深入資訊。

安裝
「安裝」的直接連結

npm install @mastra/posthog@latest

設定
「設定」的直接連結

必要條件
「必要條件」的直接連結

  1. PostHog 帳號:前往 posthog.com 註冊
  2. 專案 API Key:從 PostHog Settings → Project API Key 取得專案 API Key
  3. 環境變數:設定你的憑證
.env
# Required
POSTHOG_API_KEY=phc_xxxxxxxxxxxxxxxx

# Optional
POSTHOG_HOST=https://us.i.posthog.com # or eu.i.posthog.com for EU region

零設定
「零設定」的直接連結

設定環境變數後,即可使用不帶任何設定的 Exporter:

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { PosthogExporter } from '@mastra/posthog'

export const mastra = new Mastra({
observability: new Observability({
configs: {
posthog: {
serviceName: 'my-service',
exporters: [new PosthogExporter()],
},
},
}),
})

明確設定
「明確設定」的直接連結

你也可以直接傳入憑證(優先於環境變數):

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { Observability } from '@mastra/observability'
import { PosthogExporter } from '@mastra/posthog'

export const mastra = new Mastra({
observability: new Observability({
configs: {
posthog: {
serviceName: 'my-service',
exporters: [
new PosthogExporter({
apiKey: process.env.POSTHOG_API_KEY,
}),
],
},
},
}),
})

設定選項
「設定選項」的直接連結

完整設定
「完整設定」的直接連結

new PosthogExporter({
// Required credentials
apiKey: process.env.POSTHOG_API_KEY!,

// Optional settings
host: 'https://us.i.posthog.com', // Default: US region
// or "https://eu.i.posthog.com" for EU region
// or your self-hosted URL

// Batching configuration
flushAt: 20, // Batch size (default: 20)
flushInterval: 10000, // Flush interval in ms (default: 10000)
serverless: false, // Serverless mode: flushAt=10, flushInterval=2000

// User identification
defaultDistinctId: 'anonymous', // Fallback if no userId in metadata

// Privacy settings
enablePrivacyMode: false, // Excludes input/output from generation events

// Diagnostic logging
logLevel: 'info', // debug | info | warn | error
})

Serverless 模式
「Serverless 模式」的直接連結

針對 Serverless 環境最佳化批次處理:

new PosthogExporter({
apiKey: process.env.POSTHOG_API_KEY!,
serverless: true, // Configures smaller batches for faster flushing
})

隱私模式
「隱私模式」的直接連結

在保留 token 指標的同時,從生成 event 中排除輸入/輸出資料:

new PosthogExporter({
apiKey: process.env.POSTHOG_API_KEY!,
enablePrivacyMode: true, // Removes $ai_input and $ai_output_choices
})

群組分析
「群組分析」的直接連結

若要將 event 附加至 PostHog 群組,請將 $groups object 加入 tracingOptions.metadata。Exporter 會在 PostHog capture 呼叫上將這些值作為頂層 groups 欄位傳送,讓你能依群組細分 LLM 成本等分析資料。

await agent.generate(input, {
tracingOptions: {
metadata: {
$groups: {
publication: 'publication-1',
},
},
},
})