Remove gauge metric
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 25/100
- Issue 類型
- 缺陷
- 描述清晰度
- 需要釐清
- 活躍度
- 停滯
- 技術堆疊
- aws, kubernetes, prometheus, python
研究方向
payload 在 traceback 中指出了 Gauge 宣告和 MetricWrapperBase.remove 呼叫,但沒有指出任何 repository 檔案或測試。首先檢查 Gauge 和 MetricWrapperBase 用於移除 label 的 API,並檢視所示的 exporter 迴圈。完成的標準是確定移除已刪除節點的 metric 的支援方式,或確認需要修改函式庫。
由索引模型根據 Issue 內容生成。
描述
Hi all,
I have written a custom exporter for calculating the cost of using a node in AWS.
Here is how it works:
Lets assume I have 3 nodes, each costs 5$/ 1h, when I plot using grafana the sum(cost_metric{}) i get 15$ (3x5$). Lets say after 2 hours one of the nodes get deleted (autoscaling). In that case the total cost should drop to 10$.
The problem is that in my case the metric is preserved and even though the node has been deleted the cost is kept and thus it displays 15$ instead of dropping to 10$
How would I go about saving that problem?
cost_metric = Gauge(
"cost_metric ",
"Cost of running an instance for 1 hour",
["node_name", "instance_type"],
)
...
node_names = get_nodes()
for node_name in node_names:
node_info = get_node_info(node_name)
if node_info is None:
continue
logging.info(f"Updating metrics for node: {node_name}")
# labels section
labels = node_info["metadata"]["labels"]
instance_type = labels.get("beta.kubernetes.io/instance-type", "unknown")
cost = get_cost_of_instance(instance_type)
if cost is not None:
cost_metric.labels(node_name=node_name, instance_type=instance_type).set(cost)
I tried
I collected previous and current nodes in form of dict and then wanted to removed the ones that arent existing, the issue is that :
cost_metric.remove(node_name=node_name, instance_type=instance_type)
Traceback (most recent call last):
File "/home/XXXX/projects/main.py", line 154, in <module>
previous_nodes = update_metrics(previous_nodes)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/eksohio/projects/main.py", line 131, in update_metrics
cost.remove(node_name=node_name, instance_type=instance_type)
TypeError: MetricWrapperBase.remove() got an unexpected keyword argument 'node_name'
- 主要語言
- Python
- 星號
- 4.4k
- 分支
- 882
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
prometheus/client_python 的其他 Issue
-
OpenMetrics content negotiation: `escaping=underscores` causes name mismatch between `HELP/TYPE` metadata and sample lines for metrics with colons可能已有人在做 @johnsaurabh 於 131 天前認領。 未關閉bug
難度 2/5 1-3 小時 新手友好度 70/100
prometheus/client_python#1177 · 1 則留言 ·
-
Optimize labels() existing-child lookups to avoid parent lock contention可能已有人在做 @skulitom 於 5 天前認領。 未關閉
難度 3/5 1-2 天 新手友好度 68/100
prometheus/client_python#1215 · 1 個 reaction ·
-
難度 4/5 3-5 天 新手友好度 45/100
prometheus/client_python#1210 ·
-
MultiProcessCollector fails permanently on an empty metrics file left by a killed worker可能已有人在做 @dom111 於 62 天前認領。 未關閉
難度 2/5 1-3 小時 新手友好度 58/100
prometheus/client_python#1199 · 1 個 reaction ·
-
難度 5/5 一週以上 新手友好度 35/100
prometheus/client_python#1176 ·
查看 prometheus/client_python 的全部 Issue
相似的 Issue
-
難度 1/5 1 小時以內 新手友好度 78/100
uniswap-python/uniswap-python#487 ·
-
[Bug]: agent_final_response still returns the abandoned branch's answer after navigate moves HEAD back可能已有人在做 @enyst 今天認領。 未關閉bug priority:low ready-for-dev
難度 2/5 1-3 小時 新手友好度 72/100
OpenHands/software-agent-sdk#5822 ·
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 72/100
-
area: server enhancement good first issue
難度 2/5 1-3 小時 新手友好度 82/100
scs0209/laya-guard#52 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 82/100
維護者通常 2 天內回覆