Skip to content

Commit 26095c6

Browse files
committed
Improve metrics
- replace poolmanager_node_applied with poolmanager_node_pool_status - add poolmanager_node_applied Signed-off-by: Markus Blaschke <[email protected]>
1 parent ad5648e commit 26095c6

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ Metrics
4343

4444
| Metric | Description |
4545
|:-------------------------------|:------------------------------------------------|
46-
| `poolmanager_node_applied` | Status if node config was applied |
46+
| `poolmanager_node_pool_status` | Status which pool to which node was applied |
47+
| `poolmanager_node_applied` | Timestamp when node confg was set |
4748

4849
Kubernetes deployment
4950
---------------------

manager/manager.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ type (
2626
k8sClient *kubernetes.Clientset
2727

2828
prometheus struct {
29+
nodePoolStatus *prometheus.GaugeVec
2930
nodeApplied *prometheus.GaugeVec
3031
}
3132
}
@@ -38,10 +39,19 @@ func (m *KubePoolManager) Init() {
3839
}
3940

4041
func (r *KubePoolManager) initPrometheus() {
42+
r.prometheus.nodePoolStatus = prometheus.NewGaugeVec(
43+
prometheus.GaugeOpts{
44+
Name: "poolmanager_node_pool_status",
45+
Help: "kube-pool-manager node pool config status",
46+
},
47+
[]string{"nodeName", "pool"},
48+
)
49+
prometheus.MustRegister(r.prometheus.nodePoolStatus)
50+
4151
r.prometheus.nodeApplied = prometheus.NewGaugeVec(
4252
prometheus.GaugeOpts{
4353
Name: "poolmanager_node_applied",
44-
Help: "kube-pool-manager node status",
54+
Help: "kube-pool-manager node applied time",
4555
},
4656
[]string{"nodeName"},
4757
)
@@ -97,9 +107,9 @@ func (m *KubePoolManager) startWatch() {
97107
func (m *KubePoolManager) applyNode(node *corev1.Node) {
98108
contextLogger := log.WithField("node", node.Name)
99109

100-
m.prometheus.nodeApplied.WithLabelValues(node.Name).Set(0)
101110

102111
for _, poolConfig := range m.Config.Pools {
112+
m.prometheus.nodePoolStatus.WithLabelValues(node.Name, poolConfig.Name).Set(0)
103113
poolLogger := contextLogger.WithField("pool", poolConfig.Name)
104114
matching, err := poolConfig.IsMatchingNode(node)
105115
if err != nil {
@@ -128,7 +138,8 @@ func (m *KubePoolManager) applyNode(node *corev1.Node) {
128138
poolLogger.Infof("Not applying pool config, dry-run active")
129139
}
130140

131-
m.prometheus.nodeApplied.WithLabelValues(node.Name).Set(1)
141+
m.prometheus.nodePoolStatus.WithLabelValues(node.Name, poolConfig.Name).Set(1)
142+
m.prometheus.nodeApplied.WithLabelValues(node.Name).SetToCurrentTime()
132143

133144
// check if this more pool configurations should be applied
134145
if !poolConfig.Continue {

0 commit comments

Comments
 (0)