add healthz check (#286)

* add healthz check

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>

* add testing

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu 2017-09-26 11:10:51 +08:00 committed by GitHub
parent f0ca319da5
commit ffd55152e5
4 changed files with 27 additions and 4 deletions

View File

@ -32,6 +32,10 @@ func rootHandler(c *gin.Context) {
})
}
func heartbeatHandler(c *gin.Context) {
c.AbortWithStatus(200)
}
func pushHandler(c *gin.Context) {
var form RequestPush
var msg string
@ -107,6 +111,7 @@ func routerEngine() *gin.Engine {
r.GET(PushConf.API.SysStatURI, sysStatsHandler)
r.POST(PushConf.API.PushURI, pushHandler)
r.GET(PushConf.API.MetricURI, metricsHandler)
r.GET("/healthz", heartbeatHandler)
r.GET("/", rootHandler)
return r

View File

@ -258,6 +258,16 @@ func TestMetricsHandler(t *testing.T) {
})
}
func TestHeartbeatHandler(t *testing.T) {
initTest()
r := gofight.New()
r.GET("/healthz").
Run(routerEngine(), func(r gofight.HTTPResponse, rq gofight.HTTPRequest) {
assert.Equal(t, http.StatusOK, r.Code)
})
}
func TestDisabledHTTPServer(t *testing.T) {
initTest()
PushConf.Core.Enabled = false

View File

@ -19,3 +19,9 @@ spec:
args: ["-c", "config.yml", "-e", "redis", "--redis-addr", "redis:6379"]
ports:
- containerPort: 8088
livenessProbe:
httpGet:
path: /healthz
port: 8088
initialDelaySeconds: 3
periodSeconds: 3

View File

@ -7,12 +7,14 @@ metadata:
app: gorush
tier: frontend
spec:
selector:
app: gorush
tier: frontend
# if your cluster supports it, uncomment the following to automatically create
# an external load-balanced IP for the frontend service.
type: LoadBalancer
# type: NodePort
ports:
- port: 8088
selector:
app: gorush
tier: frontend
- protocol: TCP
port: 80
targetPort: 8088