> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # PostHog 수출업체 [포스트호그](https://posthog.com/)LLM 애플리케이션 모니터링을 위한 AI 관찰 기능을 갖춘 분석 플랫폼입니다. PostHog 내보내기는 추적을 구조화된 이벤트로 PostHog에 전송하여 토큰 사용, 비용, 대기 시간 및 대화 흐름에 대한 통찰력을 제공합니다. ## 설치 **npm**: ```bash npm install @mastra/posthog@latest ``` **pnpm**: ```bash pnpm add @mastra/posthog@latest ``` **Yarn**: ```bash yarn add @mastra/posthog@latest ``` **Bun**: ```bash bun add @mastra/posthog@latest ``` ## 구성 ### 전제조건 1. **포스트호그 계정**: 가입하세요[posthog.com](https://posthog.com/) 2. **프로젝트 API 키**: PostHog 설정 → 프로젝트 API 키에서 프로젝트 API 키를 가져옵니다. 3. **환경 변수**: 자격 증명을 설정하세요 ```bash # Required POSTHOG_API_KEY=phc_xxxxxxxxxxxxxxxx # Optional POSTHOG_HOST=https://us.i.posthog.com # or eu.i.posthog.com for EU region ``` ### 제로 구성 설정 환경 변수가 설정된 경우 구성 없이 내보내기를 사용합니다. ```typescript 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()], }, }, }), }) ``` ### 명시적 구성 자격 증명을 직접 전달할 수도 있습니다(환경 변수보다 우선 적용됨). ```typescript 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, }), ], }, }, }), }) ``` ## 구성 옵션 ### 완전한 구성 ```typescript 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 }) ``` ### 서버리스 모드 서버리스 환경에 최적화된 일괄 처리: ```typescript new PosthogExporter({ apiKey: process.env.POSTHOG_API_KEY!, serverless: true, // Configures smaller batches for faster flushing }) ``` ### 개인 정보 보호 모드 토큰 측정항목을 보존하면서 생성 이벤트에서 입력/출력 데이터를 제외합니다. ```typescript new PosthogExporter({ apiKey: process.env.POSTHOG_API_KEY!, enablePrivacyMode: true, // Removes $ai_input and $ai_output_choices }) ``` ### 그룹 분석 이벤트를 [PostHog 그룹](https://posthog.com/docs/product-analytics/group-analytics)에 연결하려면 `tracingOptions.metadata`에 `$groups` 객체를 추가하세요. 내보내기는 해당 값을 PostHog 캡처 호출의 최상위 `groups` 필드로 전송하므로 그룹별 LLM 비용과 같은 분석 데이터를 분류할 수 있습니다. ```ts await agent.generate(input, { tracingOptions: { metadata: { $groups: { publication: 'publication-1', }, }, }, }) ``` ## 관련된 - [추적 개요](https://mastra.zisheng.pro/ko/docs/observability/tracing/overview) - [포스트호그 문서](https://posthog.com/docs)