# seecoder-analysis-backend SeeCoder 日志分析后端,当前实现 D4 指标接口。服务从 Elasticsearch 的 `k8s-logs-*` 索引读取业务埋点日志,解析 `business_info` 中的 `key=value|key=value` 字段并返回前端可直接使用的统计结果。 ## 技术栈 - Java 17 - Spring Boot 3.3.5 - Elasticsearch Java Client / Spring Boot Data Elasticsearch - Docker 多阶段构建 ## 配置 云平台部署时通过环境变量配置 Elasticsearch: ```bash ELASTICSEARCH_URIS=http://environment-27-45.seec.svc.cluster.local:9200 ELASTICSEARCH_USERNAME= ELASTICSEARCH_PASSWORD= ``` 可选配置: ```bash D4_METRICS_INDEX_PATTERN=k8s-logs-* D4_METRICS_DEFAULT_RANGE_DAYS=30 D4_METRICS_PAGE_SIZE=500 D4_METRICS_MAX_EVENTS_TO_SCAN=10000 D4_METRICS_DEFAULT_TASK_SLA_MS=86400000 SERVER_PORT=8080 ``` ## 接口 ```http GET /api/d4/metrics ``` 查询参数: - `from`: 起始时间,ISO-8601,例如 `2026-03-30T00:00:00Z` - `to`: 结束时间,ISO-8601 - `projectId`: 可选,按项目过滤 - `taskType`: 可选,例如 `fileReview` 或 `branchReview` - `userId`: 可选,匹配 `creatorId/reviewerId/operatorId/resolverId/receiverId` - `slaMs`: 可选,按时完成 SLA,默认 1 天 示例: ```bash curl "http://localhost:8080/api/d4/metrics?from=2026-03-30T00:00:00Z&to=2026-03-31T00:00:00Z&projectId=50" ``` 返回指标包含: - 协作任务完成率:`completedCount / assignedCount` - 按时完成率:`taskDurationMs <= slaMs` 的完成任务数 / 完成任务总数 - 团队沟通平均响应耗时:`avg(responseMs)` - 有效协作次数:`count(D4_COLLAB_EFFECTIVE)` - 协作冲突解决次数和解决率:`resolved / created` ## 本地运行 ```bash ./mvnw spring-boot:run ``` ## 构建与部署 ```bash ./mvnw clean package docker build -t seecoder-analysis-backend:latest . docker run --rm -p 8080:8080 \ -e ELASTICSEARCH_URIS=http://localhost:9200 \ seecoder-analysis-backend:latest ``` ## 健康检查: ```http GET /actuator/health ```