9. 监控与可观测
9.1 业务指标
核心业务指标
代码生成指标
- 代码生成次数:每日/每周/每月的代码生成总次数
- 代码生成成功率:代码生成成功次数 / 总请求次数,目标≥95%
- 代码生成平均响应时间:P50/P95/P99响应时间,目标P95<3s
- 代码生成准确率:生成代码的语法正确率,目标≥90%
代码质量指标
- 平均代码质量评分:生成代码的平均质量评分,目标≥0.85
- 代码审查问题发现率:代码审查发现问题的比例,目标≤5%
- 代码审查问题修复率:问题修复比例,目标≥90%
- 生产环境bug率:生产环境bug数量,目标减少60%
测试覆盖率指标
- 单元测试覆盖率:单元测试覆盖率,目标≥75%
- 集成测试覆盖率:集成测试覆盖率,目标≥60%
- E2E测试覆盖率:E2E测试覆盖率,目标≥40%
- 测试生成准确率:测试生成准确率,目标≥80%
用户使用指标
- 活跃用户数:每日/每周/每月活跃用户数
- 用户留存率:用户留存率,目标≥80%
- 用户满意度:用户满意度评分,目标≥4.5/5.0
- API调用量:API调用总量和峰值QPS
指标监控
监控系统架构
指标采集
使用Prometheus采集指标数据。
采集方式:
- 应用埋点:在应用中埋点采集业务指标
- 系统指标:采集系统指标(CPU、内存、网络等)
- 自定义指标:采集自定义业务指标
指标示例:
# Prometheus指标采集示例
from prometheus_client import Counter, Histogram, Gauge
# 代码生成次数
code_generation_total = Counter(
'code_generation_total',
'Total number of code generations',
['project_id', 'language', 'status']
)
# 代码生成响应时间
code_generation_duration = Histogram(
'code_generation_duration_seconds',
'Code generation duration',
['project_id', 'language']
)
# 代码质量评分
code_quality_score = Gauge(
'code_quality_score',
'Average code quality score',
['project_id']
)
# 记录指标
code_generation_total.labels(
project_id='proj_123',
language='python',
status='success'
).inc()
code_generation_duration.labels(
project_id='proj_123',
language='python'
).observe(1.2)
code_quality_score.labels(
project_id='proj_123'
).set(0.92)
指标可视化
使用Grafana可视化指标数据。
仪表盘配置:
- 概览仪表盘:显示系统整体运行情况
- 业务仪表盘:显示业务指标
- 性能仪表盘:显示性能指标
- 成本仪表盘:显示成本指标
告警机制
告警规则
# Prometheus告警规则示例
groups:
- name: code_generation_alerts
rules:
- alert: HighCodeGenerationFailureRate
expr: rate(code_generation_total{status="failed"}[5m]) > 0.1
for: 5m
labels:
severity: warning
annotations:
summary: "代码生成失败率过高"
description: "代码生成失败率超过10%,当前值:{{ $value }}"
- alert: HighCodeGenerationLatency
expr: histogram_quantile(0.95, code_generation_duration_seconds) > 3
for: 5m
labels:
severity: warning
annotations:
summary: "代码生成响应时间过长"
description: "P95响应时间超过3秒,当前值:{{ $value }}秒"
- alert: LowCodeQualityScore
expr: code_quality_score < 0.8
for: 10m
labels:
severity: critical
annotations:
summary: "代码质量评分过低"
description: "代码质量评分低于0.8,当前值:{{ $value }}"
告警通知
- 通知渠道:邮件、短信、钉钉、企业微信、Slack等
- 通知级别:根据严重程度分级通知
- 通知聚合:相同告警聚合,避免告警风暴
- 告警确认:告警确认机制,避免重复通知