用途:OpenObserve(O2)用于统一采集与查询日志、指标、追踪、仪表盘、告警和真实用户监控(RUM),可自托管。
主要能力:单一二进制整合通常需多套工具的功能;Parquet 列式存储与 S3 原生架构,资料称存储成本较 Elasticsearch 低 140 倍;日志与追踪用 SQL 查询,指标用 SQL 或 PromQL;原生支持 OpenTelemetry OTLP;首次摄入自动创建 stream;支持摄入管道做富化、脱敏、削减与转换;通过组织实现多租户与数据隔离;单机可扩展至 TB 级,HA 模式可达 PB 级;数据不可变,记录不可单独修改或删除,只能按保留期整体删除。
使用方式:资料建议写代码前先用 WebFetch 读取实时文档(https://openobserve.ai/docs/quickstart/),按主题取 https://openobserve.ai/docs/ 对应页面。Docker 快速启动:docker run -d --name openobserve -v $PWD/data:/data -p 5080:5080 -e ZO_ROOT_USER_EMAIL="root@example.com" -e ZO_ROOT_USER_PASSWORD="Complexpass#123" public.ecr.aws/zinclabs/openobserve:latest,UI 在 http://localhost:5080,默认组织为 default。HTTP JSON 端点形如 /api/{organization}/{stream_name}/_json;也支持 Fluent Bit HTTP/es 输出、Prometheus remote_write、OTLP HTTP(POST /api/{organization}/traces)。关键环境变量包括 ZO_ROOT_USER_EMAIL、ZO_ROOT_USER_PASSWORD、ZO_DATA_DIR、ZO_S3_PROVIDER、ZO_S3_BUCKET_NAME 等。
适用场景:需要自托管、统一观测栈并控制存储成本,或希望避免专有查询语言的团队。
限制与注意事项:_timestamp 必须为微秒,否则时间排序错误且无报错;stream 首次摄入自动创建并推断 schema,字段类型不一致可能导致后续查询失败;每个 API 端点按组织作用域,组织名拼写错误会静默创建新组织;生产环境不应使用本地磁盘存储,且无法从本地磁盘迁移到 S3;stream 与组织名区分大小写,仅用小写字母、数字和下划线;Basic 认证在需显式请求头时须 base64 编码,注意避免重复编码。