feat(observability): Prometheus /metrics 端点——接入 Grafana 生态
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 45/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- docker-compose, grafana, prometheus, typescript
- Lĩnh vực
- backend, devops, observability
Hướng nghiên cứu
Bắt đầu bằng cách lần theo đường đi hiện có của request-logger, các chuyển đổi trạng thái của circuit-breaker và logic tiếp nhận vào hàng đợi được đề cập trong issue. Kiểm tra cách dịch vụ TypeScript cung cấp các endpoint đã xác thực và cách docker-compose cấu hình việc triển khai. Được xem là hoàn thành khi một endpoint /metrics đã xác thực và có thể được bật tùy chọn cung cấp các metric Prometheus được liệt kê, với cardinality của label được kiểm soát và không có truy vấn cơ sở dữ liệu.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
背景
请求量、错误率、耗时、熔断状态、队列深度等运行数据目前只活在自建面板(dashboard / live pulse / rankings)里,无法接入外部监控生态。生产环境已是 docker-compose 部署,加一个 Prometheus 抓取端点即可挂进 Grafana / Alertmanager 等标准工具链。
方案:/metrics 端点
暴露 Prometheus 文本格式的指标端点,首批指标:
| 指标 | 类型 | 标签 |
|---|---|---|
| 请求总数 / 错误数 | counter | upstream, capability, status_class |
| 请求耗时 / 首字节耗时 | histogram | upstream, capability |
| token 用量(输入/输出) | counter | upstream, model |
| 熔断器状态 | gauge | upstream |
| 上游健康状态 | gauge | upstream |
| 并发占用 / 队列深度 | gauge | upstream |
| 累计花费 | counter | upstream |
设计要点
- 指标在进程内存中累计(prom-client 或等价轻量实现),不查库,抓取零成本;进程重启计数归零符合 Prometheus counter 语义。
- 埋点挂在现有链路节点:
request-logger记录处、熔断状态迁移处、队列准入处,避免新增旁路统计。 - 端点鉴权:Bearer token(可复用 ADMIN_TOKEN 或独立的 METRICS_TOKEN 环境变量),未配置时端点关闭。
- 标签基数控制:model 标签需白名单或截断口径,防止任意请求模型名撑爆基数。
- 上游标签用 ID+名称,注意与“下游响应不携带上游身份”的约束区分——metrics 是管理侧出口,不受该约束,但需鉴权保护。
后续可扩展(本期不做)
- OpenAI 兼容的 usage/dashboard API,供第三方用量统计工具直读。
- Grafana dashboard JSON 模板随文档发布。
- Ngôn ngữ chính
- TypeScript
- Star
- 4
- Fork
- 0
- Merge trung bình
- 10 phút
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của g1331/AutoRouter
-
feature
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
g1331/AutoRouter#235 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feature
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 42/100
g1331/AutoRouter#234 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của g1331/AutoRouter
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
g1331/phantom-circuit#93 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
compiler
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
HerringtonDarkholme/hd-lang#1699 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
account bug communication lecture
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày