Skip to content

Commit

Permalink
account for nil holderIdentity case
Browse files Browse the repository at this point in the history
  • Loading branch information
lantingchiang committed Oct 13, 2022
1 parent ceaad61 commit 29e043e
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 2 deletions.
9 changes: 7 additions & 2 deletions internal/store/lease.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,18 @@ var (
wrapLeaseFunc(func(l *coordinationv1.Lease) *metric.Family {
labelKeys := []string{"owner_kind", "owner_name", "namespace", "lease_holder"}

var holder string
if l.Spec.HolderIdentity != nil {
holder = *l.Spec.HolderIdentity
}

owners := l.GetOwnerReferences()
if len(owners) == 0 {
return &metric.Family{
Metrics: []*metric.Metric{
{
LabelKeys: labelKeys,
LabelValues: []string{"<none>", "<none>", l.Namespace, *l.Spec.HolderIdentity},
LabelValues: []string{"<none>", "<none>", l.Namespace, holder},
Value: 1,
},
},
Expand All @@ -59,7 +64,7 @@ var (
for i, owner := range owners {
ms[i] = &metric.Metric{
LabelKeys: labelKeys,
LabelValues: []string{owner.Kind, owner.Name, l.Namespace, *l.Spec.HolderIdentity},
LabelValues: []string{owner.Kind, owner.Name, l.Namespace, holder},
Value: 1,
}
}
Expand Down
27 changes: 27 additions & 0 deletions internal/store/lease_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,33 @@ func TestLeaseStore(t *testing.T) {
},
Want: metadata + `
kube_lease_owner{lease="kube-master",owner_kind="Node",owner_name="kube-master",namespace="default",lease_holder="kube-master"} 1
kube_lease_renew_time{lease="kube-master"} 1.5e+09
`,
MetricNames: []string{
"kube_lease_owner",
"kube_lease_renew_time",
},
},
{
Obj: &coordinationv1.Lease{
ObjectMeta: metav1.ObjectMeta{
Generation: 2,
Name: "kube-master",
Namespace: "default",
CreationTimestamp: metav1.Time{Time: time.Unix(1500000000, 0)},
OwnerReferences: []metav1.OwnerReference{
{
Kind: "Node",
Name: leaseOwner,
},
},
},
Spec: coordinationv1.LeaseSpec{
RenewTime: &metav1.MicroTime{Time: time.Unix(1500000000, 0)},
},
},
Want: metadata + `
kube_lease_owner{lease="kube-master",owner_kind="Node",owner_name="kube-master",namespace="default",lease_holder=""} 1
kube_lease_renew_time{lease="kube-master"} 1.5e+09
`,
MetricNames: []string{
Expand Down

0 comments on commit 29e043e

Please sign in to comment.