# 任务：后台Go项目接入 Loki 成本评估与实施方案 (ALIGNMENT) - 性能分析版

## 1. 核心问题：性能消耗分析
用户疑问：**"Loki + Promtail + Grafana 这个组合消耗性能么"**

### 1.1 结论先行
在**极简模式**（只采服务端日志）下，**消耗非常低**。
对于现代开发机（或 2核4G 以上服务器），**几乎无感**。

### 1.2 详细资源开销预估 (以每天产生 100MB 日志为例)

| 组件 | 作用 | 内存 (RAM) | CPU (平时) | CPU (查询时) | 磁盘 IO | 评价 |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| **Promtail** | 搬运工 | ~50MB | < 1% | - | 极低 (仅读取) | **极轻**，就像运行了一个 `tail -f` 命令 |
| **Loki** | 存储 | ~150MB - 300MB | < 2% | 10% - 30% | 低 (顺序写入) | **轻量**，不像 ES 那样建全文索引，只压缩存储，不做繁重计算 |
| **Grafana** | 界面 | ~100MB - 200MB | 0% (Idle) | 5% - 10% | 忽略不计 | **静默**，没人访问网页时几乎不干活 |
| **总计** | **全套** | **约 400MB - 600MB** | **日常忽略不计** | **查询时微升** | **可控** | **安全** |

### 1.3 为什么这么省？
1.  **不建全文索引**: Loki 的设计哲学是 "Log everything, index only labels"。它不像 Elasticsearch (ELK) 那样对每个词都建索引（那样极耗内存和CPU）。Loki 只索引 "时间" 和 "标签" (如 `app=bindbox-game`)。
2.  **流式压缩**: 日志被压缩成块存储，占用很少写 IO。
3.  **按需计算**: 只有当你发起查询（比如搜 "error"）时，CPU 才会工作去解压和匹配数据。平时它只是在静静地写文件。

### 1.4 极端情况
- **甚至可以更省**: 我们可以限制 docker 容器的内存上限。
- **对比 ELK**: ELK 动辄需要 2G-4G 起步内存，Loki 是专为云原生和低资源环境设计的轻量级替代品。

---

## 2. 极简实施方案 (Server Logs Only)
### 2.1 架构调整
- **Log Source**: 仅采集 `bindbox-game` 容器。
- **采集过滤**: 在 Promtail 配置中设置 Filter，**丢弃** 所有非 `bindbox-game` 的日志。

### 2.2 资源进一步优化
- 由于只采集核心服务，Loki 和 Promtail 的 CPU/内存消耗将降至最低。
- 磁盘占用将非常小。

---

## 3. 实施步骤
1.  **配置 Promtail**: 编写 `promtail-config.yaml`，只监听 `container_name="bindbox-game"`。
2.  **配置 Docker Compose**: 添加 Loki, Promtail, Grafana 服务。
3.  **配置 Grafana**: 预配置好 Loki 数据源，开箱即用。

## 4. 结论
可以放心接入。这套组合主要消耗的是**几百兆内存**，对 CPU 和磁盘的影响极小，完全适合本地开发和中小型服务器部署。
