执行 pipeline。
请求体:
{
"common": {"user_id": "123", "user_age": 25},
"items": []
}响应体:
{
"common": {"user_id": "123", "user_age": 25},
"items": [
{"item_id": "a", "item_score": 0.95}
],
"warnings": [],
"trace": [
{"name": "recall_static_ABA9A7", "duration_ms": 0.123, "skipped": false}
]
}Trace 通过 common._return_trace = true 控制是否返回。
健康检查。返回 {"status": "ok"}。
引擎运行统计:
{
"operators": {"<name>": {"exec_count": 100, "skip_count": 0}},
"scheduler": {"run_count": 100, "peak_concurrency": 4},
"server": {"reload_count": 3, "reload_error_count": 0, "last_reload_duration_ns": 5234000},
"operator_detail": {"<name>": {"borrow_count": 100}}
}operators:per-operator 累计统计scheduler:调度器级统计server:配置热重载统计operator_detail:实现StatsProvider接口的算子自定义统计
返回 DAG 结构可视化。
| 参数 | 值 | 说明 |
|---|---|---|
format |
dot(默认)/ mermaid |
输出格式 |
collapse |
0(默认)/ 1 / 2 / ... |
按 SubFlow 层级折叠 |
curl -s http://localhost:8080/dag | dot -Tsvg -o dag.svg
curl http://localhost:8080/dag?format=mermaid
curl http://localhost:8080/dag?format=dot&collapse=1GET /stats 端点基于 atomic 计数器,零外部依赖。
通过 pkg/metrics.Provider 接口支持外部指标导出,核心库不依赖 prometheus/client_golang。
实现前先读契约:
pine-go/pkg/metrics/metrics.go的 package doc 定义了四件从签名看不出来的事——Observe/Inc/Set/Add/With会被并发调用、duration 的单位是秒、HistogramOpts.Buckets只是建议值(出厂 Provider 并不读它)、With之后可能不跟随Observe。 其中并发一条影响正确性而非精度。完整适配器示例(含NewHistogram)见 可观测性设计文档。
注入方式:
mp := promadapter.New(prometheus.DefaultRegisterer)
server.Run(server.Config{
ConfigPath: *configPath,
Addr: *addr,
Metrics: mp,
})算子可选实现 StatsProvider 接口暴露自定义统计到 /stats,或实现 MetricsAware 接口注册 Prometheus 指标。
详见 可观测性设计文档。