PostHog 是一个开源的一站式产品开发平台,旨在解决现代产品开发中工具链碎片化的问题。传统上,团队可能需要同时使用 Google Analytics(流量分析)、Mixpanel(产品分析)、Hotjar(会话回放)、LaunchDarkly(功能开关)和 Sentry(错误追踪)等多种 SaaS 工具。PostHog 将这些能力整合到单一平台中,提供数据管道、分析和行动的闭环。
- 数据主权与隐私:支持 Self-hosted(自托管),满足合规要求,数据不出域
- 产品全生命周期覆盖:从最初的流量监控到深入的用户行为分析,再到功能灰度发布和 A/B 测试,最后到错误监控和用户反馈
- 开发者友好:提供丰富的 SDK、SQL 查询接口和 API,支持自动捕获事件,降低埋点成本
| 模块 | 功能描述 |
|---|
| Product Analytics | 核心分析引擎,支持自动捕获事件或手动埋点;提供趋势、漏斗、留存、路径分析;支持 HogQL(基于 SQL 的方言)直接查询底层数据 |
| Web Analytics | 类似 Google Analytics 的仪表盘,专注流量监控、Web Vitals(性能指标)、收入追踪 |
| LLM Analytics | 专为 AI 应用设计,捕获 LLM 的 traces(调用链)、generations(生成内容)、延迟与 Token 成本 |
| 模块 | 功能描述 |
|---|
| Session Replays | 用户会话回放,记录用户在 Web 或移动端的真实操作,结合控制台日志,用于诊断问题和理解用户意图 |
| Error Tracking | 错误追踪与监控,自动捕获前端/后端异常,提供分组、告警和与 Session Replay 的关联跳转 |
| 模块 | 功能描述 |
|---|
| Feature Flags | 功能开关,支持基于用户 ID、群组或百分比的灰度发布;保证高性能,支持服务端渲染 |
| Experiments | A/B 测试与多变量测试,测量变更对核心指标的影响;支持无需代码的配置 |
| Surveys | 问卷与反馈,提供无代码模板或自定义问卷构建器 |
| 模块 | 功能描述 |
|---|
| Data Warehouse | 数据仓库集成,同步外部数据源,与 PostHog 的产品数据联合查询 |
| Data Pipelines (CDP) | 客户数据平台,实时将事件数据转发至 25+ 第三方工具或 Webhook |
| Workflows | 自动化工作流,基于事件触发消息发送或数据流转 |
- 每月 100万事件
- 5k 会话录制
- 100万 Feature Flag 请求
- 10万异常
- 1500 问卷回复
- 产品经理分析用户激活、留存和转化漏斗
- 开发者通过 Session Replay 复现用户报错场景,结合 Error Tracking 快速定位 Bug
- 工程团队实施 Feature Flags 进行安全发布,并利用 Experiments 验证功能价值
- 数据工程师通过 Data Pipeline (CDP) 将产品数据同步至数据仓库
- AI 团队监控 LLM 应用的调用链、成本与延迟
| 前端 | 移动端 | 后端 |
|---|
| JavaScript | React Native | Python |
| Next.js | Android | Node |
| React | iOS | PHP |
| Vue | Flutter | Ruby |
额外支持:Go, .NET/C#, Django, Angular, WordPress, Webflow 等
# Linux + Docker(推荐 4GB 内存)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"
<script>
!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([].slice.call(arguments))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagValue reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures getActiveMatchingSurveys getSurveys onSessionId".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[]);
posthog.init('<YOUR_API_KEY>', {api_host: '<YOUR_HOST>'})
</script>
import posthog
posthog.capture('user_id', 'event_name', {'property': 'value'})
PostHog 采用大型 Monorepo 项目结构,正从单体向垂直切片架构转移:
- 垂直切片:每个产品拥有独立的全栈实现(DB -> API -> UI),减少跨模块耦合
- 模块边界约束:使用
tach 工具检查 Python 模块依赖,使用 Turborepo 管理构建依赖
- HogQL:PostHog 的核心查询层,将 SQL-like 语法转换为 ClickHouse 查询
pyproject.toml - Python 依赖与工具配置
pnpm-workspace.yaml - 前端 monorepo 配置
docker-compose.hobby.yml - 自托管 Docker Compose
turbo.json - Turborepo 构建配置