{"_id":"@aipack-ai/observability-server","_rev":"7-4a1dcd43bdba225aef7150f0e8066a6d","name":"@aipack-ai/observability-server","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@aipack-ai/observability-server","version":"0.0.1","keywords":["aipack","observability","telemetry","metrics","trace","sqlite","dashboard"],"license":"MIT","_id":"@aipack-ai/observability-server@0.0.1","maintainers":[{"name":"luoguoxiong2021","email":"luoguoxiong2021@163.com"}],"bin":{"observability-server":"dist/cli.js"},"dist":{"shasum":"aab99446140fc43bbe2e9210359864c6f0a03206","tarball":"https://registry.npmjs.org/@aipack-ai/observability-server/-/observability-server-0.0.1.tgz","fileCount":13,"integrity":"sha512-6Cvc9Qi7XVoQqrItZEgbrzNEnMIiPYdJALBc5RgbbAFl0cf43nna3aU+uaQuM/UsSengixMun2jQACQ4vqSl3w==","signatures":[{"sig":"MEQCIAarH/poh6TfTyvp8QjaoxRpCcEigjGmSr7nLclrNg3aAiADwiaxSomUCvPVyKgetUNlCfxnDmKrFb4R9oXAvandBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2610328},"main":"./dist/index.js","type":"module","_from":"file:aipack-ai-observability-server-0.0.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test test/observability-server.test.ts","build":"tsup && vite build --config web/vite.config.ts","start":"tsx src/cli.ts","dev:web":"vite --config web/vite.config.ts","prebuild":"pnpm --filter @aipack-ai/observability build || true","build:web":"vite build --config web/vite.config.ts","typecheck":"tsc --noEmit && tsc --noEmit -p web/tsconfig.json"},"_npmUser":{"name":"luoguoxiong2021","email":"luoguoxiong2021@163.com"},"_resolved":"/tmp/48714597833c27a60a0f7c0e607e3a79/aipack-ai-observability-server-0.0.1.tgz","_integrity":"sha512-6Cvc9Qi7XVoQqrItZEgbrzNEnMIiPYdJALBc5RgbbAFl0cf43nna3aU+uaQuM/UsSengixMun2jQACQ4vqSl3w==","_npmVersion":"10.8.2","description":"aipack 可观测性收集服务(S2)：接收 SDK 埋点上报,SQLite 落盘 + 内存聚合 + REST 查询","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"better-sqlite3":"^11.10.0","@aipack-ai/observability":"0.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","antd":"^5.20.0","tsup":"^8.5.1","vite":"^6.4.3","react":"^18.3.1","echarts":"^6.1.0","react-dom":"^18.3.1","typescript":"^5.5.0","@types/node":"^20.12.0","@types/react":"^18.3.12","@aipack-ai/agent":"0.0.1","@types/react-dom":"^18.3.1","react-router-dom":"^7.18.0","@ant-design/icons":"^5.4.0","@vitejs/plugin-react":"^4.3.3","@types/better-sqlite3":"^7.6.11"},"_npmOperationalInternal":{"tmp":"tmp/observability-server_0.0.1_1786894254626_0.08542648100265327","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@aipack-ai/observability-server","version":"0.0.2","description":"aipack 可观测性收集服务(S2)：接收 SDK 埋点上报,SQLite 落盘 + 内存聚合 + REST 查询","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"bin":{"observability-worker":"dist/worker/ingest-worker.js"},"sideEffects":false,"keywords":["aipack","observability","telemetry","metrics","trace","sqlite","dashboard"],"license":"MIT","engines":{"node":">=18.0.0"},"dependencies":{"better-sqlite3":"^11.10.0","ioredis":"^5.4.1","kafkajs":"^2.2.4","mysql2":"^3.11.0","@aipack-ai/observability":"0.0.2"},"devDependencies":{"@ant-design/icons":"^5.4.0","@types/better-sqlite3":"^7.6.11","@types/node":"^20.12.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@vitejs/plugin-react":"^4.3.3","antd":"^5.20.0","echarts":"^6.1.0","react":"^18.3.1","react-dom":"^18.3.1","react-router-dom":"^7.18.0","tsup":"^8.5.1","tsx":"^4.16.0","typescript":"^5.5.0","vite":"^6.4.3","@aipack-ai/agent":"0.0.2"},"scripts":{"build":"tsup && vite build --config web/vite.config.ts","build:web":"vite build --config web/vite.config.ts","prebuild":"pnpm --filter @aipack-ai/observability build || true","dev":"tsx src/main.ts","start":"node dist/main.js","typecheck":"tsc --noEmit && tsc --noEmit -p web/tsconfig.json","test":"node --import tsx --test test/observability-server.test.ts","worker":"tsx src/worker/ingest-worker.ts","dev:web":"vite --config web/vite.config.ts"},"_id":"@aipack-ai/observability-server@0.0.2","_integrity":"sha512-TANCkWKHBbeOhp8bj7TOnAbIAUV/u3KUMc7+iRd3Ncg35gu3XEKWdZqec/cgGUl+FTTLrgR5MvRotMdxVXz5TA==","_resolved":"/tmp/378e0f6c3b16ea401d6b5908e54bea38/aipack-ai-observability-server-0.0.2.tgz","_from":"file:aipack-ai-observability-server-0.0.2.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-TANCkWKHBbeOhp8bj7TOnAbIAUV/u3KUMc7+iRd3Ncg35gu3XEKWdZqec/cgGUl+FTTLrgR5MvRotMdxVXz5TA==","shasum":"29675dc788fd905ebf3b6e62045d265ea5e4f8e4","tarball":"https://registry.npmjs.org/@aipack-ai/observability-server/-/observability-server-0.0.2.tgz","fileCount":13,"unpackedSize":3404722,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC9K2TLdIqSM05qwNGoexKtVXEt73B+BaprPuHfr99H6AiBTWtnPSCh79e9gQJ/G4RFmkTM36l3wEyPS1PkkgnFX/g=="}]},"_npmUser":{"name":"luoguoxiong2021","email":"luoguoxiong2021@163.com"},"directories":{},"maintainers":[{"name":"luoguoxiong2021","email":"luoguoxiong2021@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/observability-server_0.0.2_1787062983115_0.27540045614233555"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-16T15:30:54.473Z","modified":"2026-08-18T14:23:03.603Z","0.2.0":"2026-08-16T05:09:11.060Z","0.2.1":"2026-08-16T06:02:01.005Z","0.3.0":"2026-08-16T14:03:42.441Z","0.0.1":"2026-08-16T15:30:54.874Z","0.0.2":"2026-08-18T14:23:03.337Z"},"license":"MIT","keywords":["aipack","observability","telemetry","metrics","trace","sqlite","dashboard"],"description":"aipack 可观测性收集服务(S2)：接收 SDK 埋点上报,SQLite 落盘 + 内存聚合 + REST 查询","maintainers":[{"name":"luoguoxiong2021","email":"luoguoxiong2021@163.com"}],"readme":"# @aipack-ai/observability-server — aipack 可观测性收集服务（S2）\n\n接收各应用 SDK（`@aipack-ai/observability`）的埋点上报，统一完成 **SQLite 落盘 + 内存聚合 + REST 查询**。\n\n## 启动\n\n```bash\ncp .env.example .env   # 修改 OBS_APPS 为你的 appId:appSecret 白名单\npnpm --filter @aipack-ai/observability-server dev\n```\n\n或构建后全局安装使用 bin：`pnpm --filter @aipack-ai/observability-server build && pnpm --global add .`\n\n## 客户端接入（一行注入）\n\n```ts\nimport { createObservability } from '@aipack-ai/observability';\n\nconst obs = createObservability({\n  appId: 'travel-app',\n  appSecret: 'sk-travel123',        // 与收集服务 OBS_APPS 白名单匹配\n  endpoint: 'http://localhost:8787', // 默认即此地址\n});\ncreateRuntime({ ..., telemetry: obs.telemetry });\n```\n\n上报失败自动写入本地缓存（`./.aipack/observability/{appId}.json`），收集服务恢复后自动补报。\n\n## 查询 API\n\n| 端点 | 说明 |\n|---|---|\n| `GET /metrics/summary?since&until&groupBy=model\\|tool\\|session` | 聚合摘要（requests/successRate/totalTokens/p50/p95/p99/retryRate） |\n| `GET /metrics/timeseries?since&until&step&metric` | 时间序列 |\n| `GET /metrics/tools?since&until` | 工具成功率排行（升序） |\n| `GET /traces?since&until&status&model&tool&page` | 运行列表 |\n| `GET /traces/:traceId` | Trace 明细（spans 时间线） |\n\n## 配置\n\n| 变量 | 默认 | 说明 |\n|---|---|---|\n| `PORT` | `8787` | 监听端口 |\n| `DB_PATH` | `.aipack/collector.db` | SQLite 文件 |\n| `OBS_APPS` | 必填 | `appId:appSecret`，多应用逗号分隔 |\n\n## 数据模型\n\n- `runs`：一次 run/stream（trace 根）\n- `spans`：run / model / tool 时间线（model span 含 attempts/tokens/session_key）\n- `tool_calls`：工具调用明细\n- 权限拦截仅计入聚合计数（`summary.permissionDenied`），不落库\n","readmeFilename":"README.md"}