prometheus / prometheus/client_python
Remove child metric
未关闭
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 4.4k
- 派生
- 876
- 平均合并
- 8 天 4 小时
- 30 天内合并 PR
- 1
描述
Hello.
Tried to remove some childs, but got KeyError.
My custom metric (gauge) have some lables and worked fine. But when i needed to delete some childs, i'm stuck:
global statusOK
statusOK = "OK"
global statusNOK
statusNOK = "Fail"
service_login_status_prom = prom.Gauge('service_login_status', 'Check access token availability', ['status', 'dc_name'])
result = str('0')
service_login_status_prom.labels(statusOK, dc_name).set(result)
service_login_status_prom.remove(statusNOK, dc_name)
Error is -
File "/usr/local/lib/python3.8/site-packages/prometheus_client/metrics.py", line 187, in remove
del self._metrics[labelvalues]
KeyError: ('Fail', '11u25')
When label is only one, error quite different -
File "/usr/local/lib/python3.8/site-packages/prometheus_client/metrics.py", line 187, in remove
del self._metrics[labelvalues]
KeyError: ('Fail', )
Comma at the end of labelvalues confused me
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 prometheus_client/metrics.py 中第 187 行附近的 remove 实现开始,复现 issue 中的两个标签数量示例。检查现有的 metric 测试,确认其中涵盖了 child 删除和缺失标签元组的情况。当删除 child 时的预期行为已由测试覆盖,并反映在 issue 的结果中时,即可视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- observability
- Issue 类型
- 缺陷
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100