Skip to content

Commit ec22bcf

Browse files
authored
refactor: replace glog in healthcheck.go & remove glog dependency (#6628)
1 parent 992abd2 commit ec22bcf

File tree

4 files changed

+33
-17
lines changed

4 files changed

+33
-17
lines changed

go.mod

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ require (
1111
github.com/go-chi/chi/v5 v5.1.0
1212
github.com/go-kit/log v0.2.1
1313
github.com/golang-jwt/jwt/v4 v4.5.0
14-
github.com/golang/glog v1.2.2
1514
github.com/google/go-cmp v0.6.0
1615
github.com/jinzhu/copier v0.4.0
1716
github.com/kr/pretty v0.3.1
@@ -151,8 +150,6 @@ require (
151150
sigs.k8s.io/yaml v1.4.0 // indirect
152151
)
153152

154-
replace github.com/golang/glog => github.com/nginxinc/glog v1.1.2
155-
156153
replace google.golang.org/protobuf v1.26.0 => google.golang.org/protobuf v1.33.0
157154

158155
replace google.golang.org/protobuf v1.26.0-rc.1 => google.golang.org/protobuf v1.33.0

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,8 +190,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
190190
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
191191
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
192192
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
193-
github.com/nginxinc/glog v1.1.2 h1:zyoZXhCoYvNMJq4qMsKislUCGyJ4eU2gNl3Nt7cjESg=
194-
github.com/nginxinc/glog v1.1.2/go.mod h1:Q2FpGp/qFhJEVnuC88BVfbLDPmio9aHYUj4al6w0138=
195193
github.com/nginxinc/nginx-plus-go-client v1.3.0 h1:q/aeT4B5k0KLwWlefoBzfLfraBBvIKLuDg+lLFWAo4I=
196194
github.com/nginxinc/nginx-plus-go-client v1.3.0/go.mod h1:n8OFLzrJulJ2fur28Cwa1Qp5DZNS2VicLV+Adt30LQ4=
197195
github.com/nginxinc/nginx-prometheus-exporter v1.3.0 h1:1JtdxsZH0Uwhu1nL/j/QyOXytP5V5j68AEo2X+DFWb0=

internal/healthcheck/healthcheck.go

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,32 @@ import (
77
"encoding/json"
88
"errors"
99
"fmt"
10+
"log/slog"
1011
"net/http"
1112
"strconv"
1213
"strings"
1314
"time"
1415

16+
nl "github.com/nginxinc/kubernetes-ingress/internal/logger"
17+
1518
v1 "k8s.io/api/core/v1"
1619

1720
"github.com/go-chi/chi/v5"
18-
"github.com/golang/glog"
1921
"github.com/nginxinc/kubernetes-ingress/internal/configs"
2022
"github.com/nginxinc/nginx-plus-go-client/client"
2123
"k8s.io/utils/strings/slices"
2224
)
2325

2426
// RunHealthCheck starts the deep healthcheck service.
2527
func RunHealthCheck(port int, plusClient *client.NginxClient, cnf *configs.Configurator, healthProbeTLSSecret *v1.Secret) {
28+
l := nl.LoggerFromContext(cnf.CfgParams.Context)
2629
addr := fmt.Sprintf(":%s", strconv.Itoa(port))
2730
hs, err := NewHealthServer(addr, plusClient, cnf, healthProbeTLSSecret)
2831
if err != nil {
29-
glog.Fatal(err)
32+
nl.Fatal(l, err)
3033
}
31-
glog.Infof("Starting Service Insight listener on: %v%v", addr, "/probe")
32-
glog.Fatal(hs.ListenAndServe())
34+
nl.Infof(l, "Starting Service Insight listener on: %v%v", addr, "/probe")
35+
nl.Fatal(l, hs.ListenAndServe())
3336
}
3437

3538
// HealthServer holds data required for running
@@ -41,6 +44,7 @@ type HealthServer struct {
4144
NginxUpstreams func() (*client.Upstreams, error)
4245
StreamUpstreamsForName func(host string) []string
4346
NginxStreamUpstreams func() (*client.StreamUpstreams, error)
47+
Logger *slog.Logger
4448
}
4549

4650
// NewHealthServer creates Health Server. If secret is provided,
@@ -57,6 +61,7 @@ func NewHealthServer(addr string, nc *client.NginxClient, cnf *configs.Configura
5761
NginxUpstreams: nc.GetUpstreams,
5862
StreamUpstreamsForName: cnf.StreamUpstreamsForName,
5963
NginxStreamUpstreams: nc.GetStreamUpstreams,
64+
Logger: nl.LoggerFromContext(cnf.CfgParams.Context),
6065
}
6166

6267
if secret != nil {
@@ -97,22 +102,22 @@ func (hs *HealthServer) UpstreamStats(w http.ResponseWriter, r *http.Request) {
97102

98103
upstreamNames := hs.UpstreamsForHost(host)
99104
if len(upstreamNames) == 0 {
100-
glog.Errorf("no upstreams for requested hostname %s or hostname does not exist", host)
105+
nl.Errorf(hs.Logger, "no upstreams for requested hostname %s or hostname does not exist", host)
101106
w.WriteHeader(http.StatusNotFound)
102107
return
103108
}
104109

105110
upstreams, err := hs.NginxUpstreams()
106111
if err != nil {
107-
glog.Errorf("error retrieving upstreams for requested hostname: %s", host)
112+
nl.Errorf(hs.Logger, "error retrieving upstreams for requested hostname: %s", host)
108113
w.WriteHeader(http.StatusInternalServerError)
109114
return
110115
}
111116

112117
stats := countStats(upstreams, upstreamNames)
113118
data, err := json.Marshal(stats)
114119
if err != nil {
115-
glog.Error("error marshaling result", err)
120+
nl.Error(hs.Logger, "error marshaling result", err)
116121
w.WriteHeader(http.StatusInternalServerError)
117122
return
118123
}
@@ -124,7 +129,7 @@ func (hs *HealthServer) UpstreamStats(w http.ResponseWriter, r *http.Request) {
124129
w.WriteHeader(http.StatusOK)
125130
}
126131
if _, err = w.Write(data); err != nil {
127-
glog.Error("error writing result", err)
132+
nl.Error(hs.Logger, "error writing result", err)
128133
http.Error(w, "internal error", http.StatusInternalServerError)
129134
}
130135
}
@@ -136,20 +141,20 @@ func (hs *HealthServer) StreamStats(w http.ResponseWriter, r *http.Request) {
136141
n := sanitize(name)
137142
streamUpstreamNames := hs.StreamUpstreamsForName(n)
138143
if len(streamUpstreamNames) == 0 {
139-
glog.Errorf("no stream upstreams for requested name '%s' or name does not exist", n)
144+
nl.Errorf(hs.Logger, "no stream upstreams for requested name '%s' or name does not exist", n)
140145
w.WriteHeader(http.StatusNotFound)
141146
return
142147
}
143148
streams, err := hs.NginxStreamUpstreams()
144149
if err != nil {
145-
glog.Errorf("error retrieving stream upstreams for requested name: %s", n)
150+
nl.Errorf(hs.Logger, "error retrieving stream upstreams for requested name: %s", n)
146151
w.WriteHeader(http.StatusInternalServerError)
147152
return
148153
}
149154
stats := countStreamStats(streams, streamUpstreamNames)
150155
data, err := json.Marshal(stats)
151156
if err != nil {
152-
glog.Error("error marshaling result", err)
157+
nl.Error(hs.Logger, "error marshaling result", err)
153158
w.WriteHeader(http.StatusInternalServerError)
154159
return
155160
}
@@ -161,7 +166,7 @@ func (hs *HealthServer) StreamStats(w http.ResponseWriter, r *http.Request) {
161166
w.WriteHeader(http.StatusOK)
162167
}
163168
if _, err := w.Write(data); err != nil {
164-
glog.Error("error writing result", err)
169+
nl.Error(hs.Logger, "error writing result", err)
165170
http.Error(w, "internal error", http.StatusInternalServerError)
166171
}
167172
}

internal/healthcheck/healthcheck_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,15 @@ package healthcheck_test
33
import (
44
"encoding/json"
55
"errors"
6+
"io"
7+
"log/slog"
68
"net/http"
79
"net/http/httptest"
810
"testing"
911

12+
nic_glog "github.com/nginxinc/kubernetes-ingress/internal/logger/glog"
13+
"github.com/nginxinc/kubernetes-ingress/internal/logger/levels"
14+
1015
"github.com/go-chi/chi/v5"
1116
"github.com/google/go-cmp/cmp"
1217
"github.com/nginxinc/kubernetes-ingress/internal/healthcheck"
@@ -25,6 +30,7 @@ func TestHealthCheckServer_Returns404OnMissingHostname(t *testing.T) {
2530
hs := healthcheck.HealthServer{
2631
UpstreamsForHost: getUpstreamsForHost,
2732
NginxUpstreams: getUpstreamsFromNGINXAllUp,
33+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
2834
}
2935

3036
ts := httptest.NewServer(testHandler(&hs))
@@ -45,6 +51,7 @@ func TestHealthCheckServer_ReturnsCorrectStatsForHostnameOnAllPeersUp(t *testing
4551
hs := healthcheck.HealthServer{
4652
UpstreamsForHost: getUpstreamsForHost,
4753
NginxUpstreams: getUpstreamsFromNGINXAllUp,
54+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
4855
}
4956

5057
ts := httptest.NewServer(testHandler(&hs))
@@ -78,6 +85,7 @@ func TestHealthCheckServer_ReturnsCorrectStatsForHostnameOnAllPeersDown(t *testi
7885
hs := healthcheck.HealthServer{
7986
UpstreamsForHost: getUpstreamsForHost,
8087
NginxUpstreams: getUpstreamsFromNGINXAllUnhealthy,
88+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
8189
}
8290

8391
ts := httptest.NewServer(testHandler(&hs))
@@ -112,6 +120,7 @@ func TestHealthCheckServer_ReturnsCorrectStatsForValidHostnameOnPartOfPeersDown(
112120
hs := healthcheck.HealthServer{
113121
UpstreamsForHost: getUpstreamsForHost,
114122
NginxUpstreams: getUpstreamsFromNGINXPartiallyUp,
123+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
115124
}
116125

117126
ts := httptest.NewServer(testHandler(&hs))
@@ -146,6 +155,7 @@ func TestHealthCheckServer_RespondsWith404OnNotExistingHostname(t *testing.T) {
146155
hs := healthcheck.HealthServer{
147156
UpstreamsForHost: getUpstreamsForHost,
148157
NginxUpstreams: getUpstreamsFromNGINXNotExistingHost,
158+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
149159
}
150160

151161
ts := httptest.NewServer(testHandler(&hs))
@@ -166,6 +176,7 @@ func TestHealthCheckServer_RespondsWith500OnErrorFromNGINXAPI(t *testing.T) {
166176
hs := healthcheck.HealthServer{
167177
UpstreamsForHost: getUpstreamsForHost,
168178
NginxUpstreams: getUpstreamsFromNGINXErrorFromAPI,
179+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
169180
}
170181

171182
ts := httptest.NewServer(testHandler(&hs))
@@ -186,6 +197,7 @@ func TestHealthCheckServer_Returns404OnMissingTransportServerActionName(t *testi
186197
hs := healthcheck.HealthServer{
187198
StreamUpstreamsForName: streamUpstreamsForName,
188199
NginxStreamUpstreams: streamUpstreamsFromNGINXAllUp,
200+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
189201
}
190202

191203
ts := httptest.NewServer(testHandler(&hs))
@@ -206,6 +218,7 @@ func TestHealthCheckServer_Returns404OnBogusTransportServerActionName(t *testing
206218
hs := healthcheck.HealthServer{
207219
StreamUpstreamsForName: streamUpstreamsForName,
208220
NginxStreamUpstreams: streamUpstreamsFromNGINXAllUp,
221+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
209222
}
210223

211224
ts := httptest.NewServer(testHandler(&hs))
@@ -226,6 +239,7 @@ func TestHealthCheckServer_ReturnsCorrectTransportServerStatsForNameOnAllPeersUp
226239
hs := healthcheck.HealthServer{
227240
StreamUpstreamsForName: streamUpstreamsForName,
228241
NginxStreamUpstreams: streamUpstreamsFromNGINXAllUp,
242+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
229243
}
230244

231245
ts := httptest.NewServer(testHandler(&hs))
@@ -259,6 +273,7 @@ func TestHealthCheckServer_ReturnsCorrectTransportServerStatsForNameOnSomePeersU
259273
hs := healthcheck.HealthServer{
260274
StreamUpstreamsForName: streamUpstreamsForName,
261275
NginxStreamUpstreams: streamUpstreamsFromNGINXPartiallyUp,
276+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
262277
}
263278

264279
ts := httptest.NewServer(testHandler(&hs))
@@ -292,6 +307,7 @@ func TestHealthCheckServer_ReturnsCorrectTransportServerStatsForNameOnAllPeersDo
292307
hs := healthcheck.HealthServer{
293308
StreamUpstreamsForName: streamUpstreamsForName,
294309
NginxStreamUpstreams: streamUpstreamsFromNGINXAllPeersDown,
310+
Logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
295311
}
296312

297313
ts := httptest.NewServer(testHandler(&hs))

0 commit comments

Comments
 (0)