8938b951fb
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
68 lines
2.1 KiB
Markdown
68 lines
2.1 KiB
Markdown
# OpenObserve 本地部署(接口 QPS / 耗时可观测)
|
||
|
||
app-server 通过中间件采集每个接口的 QPS + 耗时 + 错误率,批量上报到这里。
|
||
设计见 [../../docs/superpowers/specs/2026-07-06-openobserve-api-metrics-design.md](../../docs/superpowers/specs/2026-07-06-openobserve-api-metrics-design.md)。
|
||
|
||
## 启动
|
||
|
||
```bash
|
||
cd deploy/openobserve
|
||
docker compose up -d
|
||
```
|
||
|
||
- Web UI:http://localhost:5080
|
||
- 登录:`admin@shaguabijia.local` / `Complexpass#123`(见 `docker-compose.yml`)
|
||
- 数据落 `deploy/openobserve/data/`(已挂卷持久化;该目录已 gitignore)
|
||
|
||
## 让 app-server 上报
|
||
|
||
在项目根的 `.env` 打开观测(`OBSERVE_*`,账号密码与 compose 里 root 一致):
|
||
|
||
```dotenv
|
||
OBSERVE_ENABLED=true
|
||
OBSERVE_ENDPOINT=http://localhost:5080
|
||
OBSERVE_ORG=default
|
||
OBSERVE_STREAM=app_requests
|
||
OBSERVE_USER=admin@shaguabijia.local
|
||
OBSERVE_PASSWORD=Complexpass#123
|
||
```
|
||
|
||
重启 app-server,随便打几个接口。stream `app_requests` **首次上报自动创建**,
|
||
在 UI 的 Logs → 选 `app_requests` 就能看到逐条请求事件(字段:`method` / `route` /
|
||
`status` / `duration_ms` / `service` / `env`)。
|
||
|
||
> 未开 `OBSERVE_ENABLED` 或缺账号密码时,中间件透传、worker 不启动,整套 no-op,不影响业务。
|
||
|
||
## 查询(Logs 页 SQL,或建 Dashboard 面板)
|
||
|
||
各接口 QPS(1 分钟分桶,面板里再除 60 得每秒):
|
||
|
||
```sql
|
||
SELECT route, histogram(_timestamp, '1 minute') AS ts, count(*) AS cnt
|
||
FROM app_requests GROUP BY route, ts ORDER BY ts
|
||
```
|
||
|
||
各接口 P95 耗时(毫秒):
|
||
|
||
```sql
|
||
SELECT route, approx_percentile_cont(duration_ms, 0.95) AS p95_ms
|
||
FROM app_requests GROUP BY route ORDER BY p95_ms DESC
|
||
```
|
||
|
||
各接口错误率(5xx 占比):
|
||
|
||
```sql
|
||
SELECT route,
|
||
count(*) FILTER (WHERE status >= 500) * 100.0 / count(*) AS err_pct
|
||
FROM app_requests GROUP BY route ORDER BY err_pct DESC
|
||
```
|
||
|
||
## 停止 / 清数据
|
||
|
||
```bash
|
||
docker compose down # 停止(保留数据)
|
||
docker compose down -v && rm -rf data # 停止并清空数据
|
||
```
|
||
|
||
> 生产部署(持久化规格、独立 ingest 账号、鉴权收紧)见 spec 第 9 节,本期不做。
|