Skip to content

Commit 55210a9

Browse files
authored
update prometheus metrics with N+ license expiry (#8229)
1 parent 973d937 commit 55210a9

File tree

10 files changed

+26
-17
lines changed

10 files changed

+26
-17
lines changed

cmd/nginx-ingress/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import (
3434
cr_validation "github.com/nginx/kubernetes-ingress/pkg/apis/configuration/validation"
3535
k8s_nginx "github.com/nginx/kubernetes-ingress/pkg/client/clientset/versioned"
3636
conf_scheme "github.com/nginx/kubernetes-ingress/pkg/client/clientset/versioned/scheme"
37-
"github.com/nginx/nginx-plus-go-client/v2/client"
37+
"github.com/nginx/nginx-plus-go-client/v3/client"
3838
nginxCollector "github.com/nginx/nginx-prometheus-exporter/collector"
3939
"github.com/prometheus/client_golang/prometheus"
4040
api_v1 "k8s.io/api/core/v1"

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ require (
1212
github.com/google/go-cmp v0.7.0
1313
github.com/gruntwork-io/terratest v0.50.0
1414
github.com/jinzhu/copier v0.4.0
15-
github.com/nginx/nginx-plus-go-client/v2 v2.4.0
16-
github.com/nginx/nginx-prometheus-exporter v1.4.2
15+
github.com/nginx/nginx-plus-go-client/v3 v3.0.0
16+
github.com/nginx/nginx-prometheus-exporter v1.5.0
1717
github.com/nginx/telemetry-exporter v0.1.4
1818
github.com/nginxinc/nginx-service-mesh v1.7.0
1919
github.com/prometheus/client_golang v1.23.0

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -307,10 +307,10 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
307307
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
308308
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus=
309309
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
310-
github.com/nginx/nginx-plus-go-client/v2 v2.4.0 h1:4c7V57CLCZUOxQCUcS9G8a5MClzdmxByBm+f4zKMzAY=
311-
github.com/nginx/nginx-plus-go-client/v2 v2.4.0/go.mod h1:P+dIP2oKYzFoyf/zlLWQa8Sf+fHb+CclOKzxAjxpvug=
312-
github.com/nginx/nginx-prometheus-exporter v1.4.2 h1:qNUGi64kWCiMblXap7uaiA0kuQbztIt6rVr1X8MR/78=
313-
github.com/nginx/nginx-prometheus-exporter v1.4.2/go.mod h1:10Xdh7PF/ecPGhQa+Ok4p6QgegxO6k7gblX3rDDMBIY=
310+
github.com/nginx/nginx-plus-go-client/v3 v3.0.0 h1:toZ6X4+4zhUkifYvUdiAaAe4tlq+Y7c03Ns4zb/2ytY=
311+
github.com/nginx/nginx-plus-go-client/v3 v3.0.0/go.mod h1:sCHx+oXai55zsoco5IKSIsVoDH6dEAMtlw9qjkJ9gFM=
312+
github.com/nginx/nginx-prometheus-exporter v1.5.0 h1:6BqClq0CoNUBSMwP2T3uWzJLhGHbTAe3B8o8wYmLvpQ=
313+
github.com/nginx/nginx-prometheus-exporter v1.5.0/go.mod h1:K5A81hb680XeT2sLQruDbst940cPXhDIL0MdzG9Vbyg=
314314
github.com/nginx/telemetry-exporter v0.1.4 h1:3ikgKlyz/O57oaBLkxCInMjr74AhGTKr9rHdRAkkl/w=
315315
github.com/nginx/telemetry-exporter v0.1.4/go.mod h1:bl6qmsxgk4a9D0X8R5E3sUNXN2iECPEK1JNbRLhN5C4=
316316
github.com/nginxinc/nginx-service-mesh v1.7.0 h1:oxKr+Jdbxkos10VTy5xF2UHCcmfIhqWNlsOK/zPnZDM=

internal/healthcheck/healthcheck.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
v1 "k8s.io/api/core/v1"
1919

2020
"github.com/nginx/kubernetes-ingress/internal/configs"
21-
"github.com/nginx/nginx-plus-go-client/v2/client"
21+
"github.com/nginx/nginx-plus-go-client/v3/client"
2222
"k8s.io/utils/strings/slices"
2323
)
2424

internal/healthcheck/healthcheck_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515

1616
"github.com/google/go-cmp/cmp"
1717
"github.com/nginx/kubernetes-ingress/internal/healthcheck"
18-
"github.com/nginx/nginx-plus-go-client/v2/client"
18+
"github.com/nginx/nginx-plus-go-client/v3/client"
1919
)
2020

2121
// testHandler creates http handler for testing HealthServer.

internal/license_reporting/license_reporting.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"time"
1111

1212
nl "github.com/nginx/kubernetes-ingress/internal/logger"
13-
"github.com/nginx/nginx-plus-go-client/v2/client"
13+
"github.com/nginx/nginx-plus-go-client/v3/client"
1414

1515
clusterInfo "github.com/nginx/kubernetes-ingress/internal/common_cluster_info"
1616
api_v1 "k8s.io/api/core/v1"
@@ -140,6 +140,9 @@ func licenseExpiring(licenseData *client.NginxLicense) (bool, int64) {
140140
}
141141

142142
func usageGraceEnding(licenseData *client.NginxLicense) (bool, int64) {
143+
if licenseData.Reporting == nil {
144+
return false, 0
145+
}
143146
grace := time.Second * time.Duration(licenseData.Reporting.Grace) //nolint:gosec
144147
daysUntilUsageGraceEnds := int64(grace.Hours() / 24)
145148
expiryDays := int64(expiryThreshold.Hours() / 24)

internal/license_reporting/license_reporting_test.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
nic_glog "github.com/nginx/kubernetes-ingress/internal/logger/glog"
1313
"github.com/nginx/kubernetes-ingress/internal/logger/levels"
14-
"github.com/nginx/nginx-plus-go-client/v2/client"
14+
"github.com/nginx/nginx-plus-go-client/v3/client"
1515

1616
v1 "k8s.io/api/core/v1"
1717
"k8s.io/client-go/kubernetes/fake"
@@ -131,7 +131,7 @@ func TestUsageGraceEnding(t *testing.T) {
131131
}{
132132
{
133133
licenseData: client.NginxLicense{
134-
Reporting: client.LicenseReporting{
134+
Reporting: &client.LicenseReporting{
135135
Grace: 3600, // seconds
136136
},
137137
},
@@ -141,7 +141,7 @@ func TestUsageGraceEnding(t *testing.T) {
141141
},
142142
{
143143
licenseData: client.NginxLicense{
144-
Reporting: client.LicenseReporting{
144+
Reporting: &client.LicenseReporting{
145145
Grace: 60 * 60 * 24 * 31, // 31 days
146146
},
147147
},
@@ -151,14 +151,20 @@ func TestUsageGraceEnding(t *testing.T) {
151151
},
152152
{
153153
licenseData: client.NginxLicense{
154-
Reporting: client.LicenseReporting{
154+
Reporting: &client.LicenseReporting{
155155
Grace: 0,
156156
},
157157
},
158158
belowExpiringThreshold: true,
159159
days: 0,
160160
name: "Grace period ended",
161161
},
162+
{
163+
licenseData: client.NginxLicense{},
164+
belowExpiringThreshold: false,
165+
days: 0,
166+
name: "No grace period",
167+
},
162168
}
163169

164170
for _, tc := range testCases {

internal/nginx/fake_manager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
nl "github.com/nginx/kubernetes-ingress/internal/logger"
1010
nic_glog "github.com/nginx/kubernetes-ingress/internal/logger/glog"
1111
"github.com/nginx/kubernetes-ingress/internal/logger/levels"
12-
"github.com/nginx/nginx-plus-go-client/v2/client"
12+
"github.com/nginx/nginx-plus-go-client/v3/client"
1313
)
1414

1515
// FakeManager provides a fake implementation of the Manager interface.

internal/nginx/manager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import (
2020
nl "github.com/nginx/kubernetes-ingress/internal/logger"
2121
"github.com/nginx/kubernetes-ingress/internal/metrics/collectors"
2222

23-
"github.com/nginx/nginx-plus-go-client/v2/client"
23+
"github.com/nginx/nginx-plus-go-client/v3/client"
2424
)
2525

2626
const (

internal/nginx/manager_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package nginx
33
import (
44
"testing"
55

6-
"github.com/nginx/nginx-plus-go-client/v2/client"
6+
"github.com/nginx/nginx-plus-go-client/v3/client"
77
)
88

99
// Helper functions to create pointers

0 commit comments

Comments
 (0)