Skip to content

Commit d7b2349

Browse files
author
ikethecoder
committed
fix error when kong services not retrievable
1 parent 7a6c589 commit d7b2349

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

metrics-proxy/cmd/metricsproxy/httpproxy.go

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,27 +129,30 @@ func (p *proxy) ServeHTTP(wr http.ResponseWriter, req *http.Request) {
129129
delHopHeaders(resp.Header)
130130

131131
copyHeader(wr.Header(), resp.Header)
132-
wr.WriteHeader(resp.StatusCode)
133132

134133
mfChan := make(chan *dto.MetricFamily, 1024)
135134
go func() {
136135
if err := prom.ParseReader(resp.Body, mfChan); err != nil {
137136
log.Error("ERROR reading metrics:", err)
137+
http.Error(wr, "Unable to parse metrics", http.StatusInternalServerError)
138138
return
139139
}
140140
}()
141141

142142
if labelMap, found := p.lcache.Get("kong-services"); found {
143143
log.Debug("Found Kong config in cache.. using it!")
144+
wr.WriteHeader(resp.StatusCode)
144145
prom.Write(mfChan, wr, *labelMap.(*pkg.LabelNamespaceMap))
145146
} else {
146147
log.Debug("Refreshing kong services...")
147148
labelMap, err := pkg.ParseConfig(&p.kongUrl)
148149
if err != nil {
149150
log.Error(err.Error())
150-
http.Error(wr, "Server Error", http.StatusInternalServerError)
151+
http.Error(wr, "Temporarily unable to get Service list", http.StatusInternalServerError)
152+
} else {
153+
p.lcache.Set("kong-services", labelMap, cache.DefaultExpiration)
154+
wr.WriteHeader(resp.StatusCode)
155+
prom.Write(mfChan, wr, *labelMap)
151156
}
152-
p.lcache.Set("kong-services", labelMap, cache.DefaultExpiration)
153-
prom.Write(mfChan, wr, *labelMap)
154157
}
155158
}

0 commit comments

Comments
 (0)