PostHog exporter
PostHog 是一個具備 AI 可觀測性功能的分析平台,可用於監察 LLM 應用程式。PostHog exporter 會將你的 Trace 以結構化事件形式傳送至 PostHog,讓你深入了解 token 使用量、成本、延遲及對話流程。
安裝安裝 的直接連結
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/posthog@latest
pnpm add @mastra/posthog@latest
yarn add @mastra/posthog@latest
bun add @mastra/posthog@latest
配置配置 的直接連結
先決條件先決條件 的直接連結
- PostHog 帳戶:在 posthog.com 註冊
- 項目 API 金鑰:前往 PostHog Settings → Project API Key 取得項目 API 金鑰
- 環境變數:設定你的憑證
.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
})
私隱模式私隱模式 的直接連結
從 generation 事件中排除輸入/輸出資料,同時保留 token 指標:
new PosthogExporter({
apiKey: process.env.POSTHOG_API_KEY!,
enablePrivacyMode: true, // Removes $ai_input and $ai_output_choices
})
群組分析群組分析 的直接連結
如要將事件連結至 PostHog 群組,請將 $groups 物件加入 tracingOptions.metadata。exporter 會在呼叫 PostHog capture 時,將這些值作為頂層 groups 欄位傳送,讓你可以按群組細分 LLM 成本等分析資料。
await agent.generate(input, {
tracingOptions: {
metadata: {
$groups: {
publication: 'publication-1',
},
},
},
})