一套自托管可观测性栈,兼容 Loki/Prometheus/Tempo/Pyroscope API,统一存查日志、指标、追踪与剖析
gigapipe 独立实现各原生 API,数据存 ClickHouse/S3,Grafana 原生数据源直连无需插件
方案简介
Gigapipe(前身 qryn)是一个轻量、多标准、多语言的可观测性一体化栈,统一接收并存储 日志、指标、追踪和性能剖析 四类数据。它的核心价值在于 drop-in 兼容 Loki、Prometheus、Tempo、Pyroscope 的 API 与查询语言(LogQL、PromQL、TempoQL),因此任何这些系统的现有客户端都可以开箱即用地对接,无需修改 OpenTelemetry 埋点,也不需要中间代理。数据底层由 ClickHouse、DuckDB 或 GigAPI 配合 S3 对象存储承载,使用者完全掌控数据,是对厂商锁定型可观测性方案的开源替代。适合希望自建统一可观测性平台、同时保留 Grafana 生态习惯的团队。
亮点与能力
- Polyglot:一体化,drop-in 兼容 Loki、Prometheus、Tempo、Pyroscope
- Familiar:使用稳定流行的 LogQL、PromQL、TempoQL 查询与可视化数据
- Voracious:支持 OpenTelemetry、Loki、Prometheus、Tempo、Influx、Datadog、Elastic 等多种格式摄入
- Versatile:内置 Explorer 与 CLI 探索数据,或通过原生 Grafana 数据源兼容
- Secure:使用 ClickHouse、DuckDB 或 GigAPI 配合 S3 对象存储,完全掌控数据
- Independent:开源、社区驱动、反锁定的替代方案
- 支持 TraceQL Metrics,从追踪数据直接计算错误率、延迟分布与吞吐
- 支持 OTLP profiles 信号摄入(
profiles/v1development)
组成与分工
- Gigapipe:核心服务,独立实现 Loki/Prometheus/Tempo/Pyroscope 的 API、协议与查询语言,统一接收与查询
- ClickHouse / DuckDB / GigAPI:底层数据存储引擎,保存日志、指标、追踪等数据
- S3:对象存储,承载数据留存
- Grafana:原生数据源直连,浏览与可视化日志、指标、追踪,无需插件
- OpenTelemetry:官方集成的采集端,支持任意日志、追踪或指标格式,无需修改埋点
- Pyroscope SDK:持续剖析数据的客户端来源
前置要求
- gigapipe 开源版部署(README 提供配置与 Docker 快速上手文档)
- 可选存储后端之一:ClickHouse、DuckDB 或 GigAPI,并配合 S3 对象存储
- 可选:Grafana 用于可视化;OpenTelemetry Collector 用于采集
- 环境变量配置详见 docs/configuration.md
实施步骤
1. 部署 gigapipe
按照官方文档的 Configuration & Docker 指引,通过环境变量配置并使用 Docker 部署 gigapipe 开源版。
2. 配置存储后端
选择 ClickHouse、DuckDB 或 GigAPI 之一作为存储引擎,并连接 S3 对象存储,实现数据自主掌控。
3. 接入数据源
- 使用 OpenTelemetry Collector 官方集成摄入任意日志、追踪或指标格式,无需修改埋点
- 或直接使用原生 API 推送 Loki、Prometheus、Tempo/Zipkin、Pyroscope 等协议数据,无需中间代理
- OTLP 指标经
/v1/metrics(protobuf + JSON)摄入,profiles 经/v1development/profiles摄入,追踪等经 OTLP/gRPC 接收器
4. 查询与可视化
用 Grafana 的 Loki、Prometheus、Tempo 原生数据源连接 gigapipe,使用 LogQL、PromQL、TraceQL 查询;也可使用内置 Explorer 与 CLI。
使用与配置要点
查询日志
Grafana Loki 数据源可原生浏览和查询日志并展示提取的时间序列,支持索引统计接口:
GET /loki/api/v1/index/stats?query={job="app"}&start=&end=
增强实时尾随
Tail 服务支持 limit 与 start 参数,WebSocket 响应包含 dropped_entries 字段提示背压丢弃。
TraceQL Metrics
从追踪数据计算指标,例如:
GET /api/metrics/query_range?q={span.http.status_code=200}&since=1h&step=1m
该查询以 1 分钟分辨率统计过去一小时成功 HTTP 请求的 span 数量。
验证成功
任何 Loki / Prometheus / Tempo 兼容客户端均可开箱即用,即接入即可查询即为验证。
优缺点
- ✓ Grafana 原生兼容无需插件
- ✓ 无需改 OpenTelemetry 埋点
- ✕ README 未给完整部署配置细节
出处
本方案挖掘自开源项目 metrico/gigapipe,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。