# stream-metrics-route
**Repository Path**: mickeybee/stream-metrics-route
## Basic Information
- **Project Name**: stream-metrics-route
- **Description**: Stream Metrics Route is a Golang application that receives monitoring metrics from Prometheus remote write and distributes them to various backend destinations based on route configuration
- **Primary Language**: Go
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-06-21
- **Last Updated**: 2026-05-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Stream Metrics Route(指标流路由)
[](https://github.com/mickeyzzc/stream-metrics-route/releases/latest) [](https://goreportcard.com/report/github.com/mickeyzzc/stream-metrics-route) [](https://github.com/mickeyzzc/stream-metrics-route/actions/workflows/release.yml)
Stream Metrics Route 是一个高性能指标路由网关,支持 Prometheus Remote Write 协议和 Kafka 分发,具备**Jump Consistent Hash 调度**确保同维度指标一致路由。
## 文档导航
| 语言 | 文档链接 |
|------|----------|
| English | [docs/README.md](docs/README.md) |
| 中文 | [docs/README_zh.md](docs/README_zh.md) |
详细文档:
- [架构设计(英文)](docs/architecture.md) | [架构设计(中文)](docs/architecture_zh.md)
## 快速开始
### 架构概览
```mermaid
flowchart LR
subgraph 采集层
P1[Prometheus/Agent]
end
subgraph 网关层
SMR[stream-metrics-route
Jump Consistent Hash
Relabel 过滤]
end
subgraph 后端层
VM0[vmagent-0]
VM1[vmagent-1]
K1[Kafka Topic]
end
P1 -->|Remote Write| SMR
SMR -->|stream_task_id 分片| VM0
SMR -->|stream_task_id 分片| VM1
SMR -->|分流| K1
```
### 源码构建
```bash
git clone https://github.com/mickeyzzc/stream-metrics-route.git
cd stream-metrics-route
go mod tidy
go build -o stream-metrics-route ./cmd/stream-metrics-route
```
### Docker 部署
```bash
docker build -t stream-metrics-route:latest .
docker run -p 8080:8080 -v $(pwd)/config.yaml:/app/config.yaml stream-metrics-route:latest
```
### Kubernetes 部署
```bash
kubectl apply -f docs/deploy/kubernetes.yaml
```
## 核心特性
| 特性 | 描述 |
|------|------|
| **Jump Consistent Hash 调度** | 确保同维度指标路由到同一后端节点 |
| **Prometheus Remote Write** | 原生支持 Prometheus remote write 协议 |
| **Kafka 集成** | 可选 Kafka 生产者实现异步消息分发 |
| **熔断器** | 内置熔断器模式,防止级联故障 |
| **Relabel 规则** | 完整支持 Prometheus relabeling 规则 |
| **Prometheus 指标** | 全面的监控指标,便于可观测性 |
## API 接口
| 端点 | 方法 | 描述 |
|------|------|------|
| `/api/v1/write` | POST | Prometheus remote write 端点 |
| `/metrics` | GET | Prometheus 指标 |
| `/stats` | GET | 路由统计信息 |
| `/-/health` | GET | 健康检查 |
| `/-/ready` | GET | 就绪检查 |
## 配置示例
```yaml
router_rule:
- router_name: "route-to-vmagent"
hash_labels:
mode: "hashmod"
labels:
- "__name__"
- "job"
up_streams:
up_streams_type: "RemoteWriter"
upstream_urls:
- "http://vmagent-0:8429/api/v1/write"
- "http://vmagent-1:8429/api/v1/write"
- router_name: "route-to-kafka"
up_streams:
up_streams_type: "Kafka"
kafka_config:
kafka_broker_list: "kafka:9092"
kafka_topic: "metrics"
```
## 项目结构
```
stream-metrics-route/
├── .github/workflows/ # GitHub Actions 工作流
│ └── release.yml # 自动发布工作流
├── cmd/stream-metrics-route/ # 程序入口
├── pkg/
│ ├── router/ # 路由核心(Jump Consistent Hash)
│ ├── remote/ # Remote Write 客户端 + 熔断器
│ ├── kafkaclient/ # Kafka 生产者
│ ├── receive/ # HTTP 接收层
│ └── setting/ # 配置管理
├── docs/ # 详细文档
│ ├── README.md # 英文文档
│ ├── README_zh.md # 中文文档
│ ├── architecture.md # 架构设计(英文)
│ ├── architecture_zh.md # 架构设计(中文)
│ └── images/ # 图片资源
├── docs/deploy/ # Kubernetes 部署清单
├── CHANGELOG.md # 版本变更记录
├── Makefile
├── Dockerfile
└── README.md
```
## CI/CD 自动发布
项目配置了 GitHub Actions 自动发布流程,当推送以 `v` 开头的标签时会自动触发:
```bash
# 打标签并推送,触发自动发布
git tag -a v0.2.0 -m "Release v0.2.0"
git push origin v0.2.0
```
### 发布内容包括:
- ✅ 多架构 Docker 镜像(amd64/arm64)推送至 `ghcr.io`
- ✅ Linux 平台二进制文件(amd64/arm64)
- ✅ GitHub Release 页面自动生成
- ✅ 自动从 `CHANGELOG.md` 提取发布说明
### 使用 Docker 镜像:
```bash
# 从 ghcr.io 拉取
docker pull ghcr.io/mickeyzzc/stream-metrics-route:latest
# 或指定版本
docker pull ghcr.io/mickeyzzc/stream-metrics-route:v0.1.2
```
## 相关链接
- [详细英文文档](docs/README.md)
- [详细中文文档](docs/README_zh.md)
- [CHANGELOG 版本变更](CHANGELOG.md)
- [VictoriaMetrics 官方文档](https://docs.victoriametrics.com/)
- [Prometheus Remote Write 规范](https://prometheus.io/docs/prometheus/latest/storage/)