Add healtcheck endpoint

This commit is contained in:
Torjus Håkestad 2021-11-06 00:56:15 +01:00
parent db8372f6db
commit c952c8d3cf
2 changed files with 12 additions and 1 deletions

View File

@ -25,4 +25,5 @@ COPY --from=builder /app/etc/apiary/apiary.toml /app/apiary.toml
COPY --from=builder /app/bin/apiary /app/apiary
EXPOSE 8080
EXPOSE 2222
CMD ["/app/apiary", "serve"]
HEALTHCHECK --interval=1m --timeout=10s --start-period=5s --retries=3 CMD curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8080/api/health || exit 1
CMD ["/app/apiary", "serve"]

View File

@ -96,6 +96,7 @@ func NewServer(cfg config.FrontendConfig, hs *ssh.HoneypotServer, store store.Lo
r.Get("/stats", s.HandlerStats)
r.Get("/stream", s.HandlerAttemptStream)
r.Get("/query", s.HandlerQuery)
r.Get("/health", s.HandlerHealth)
})
})
s.Handler = r
@ -273,6 +274,15 @@ func (s *Server) HandlerQuery(w http.ResponseWriter, r *http.Request) {
}
}
func (s *Server) HandlerHealth(w http.ResponseWriter, r *http.Request) {
err := s.store.IsHealthy()
if err != nil {
s.WriteAPIError(w, r, http.StatusInternalServerError, fmt.Sprintf("Health error: %s", err))
return
}
w.Write([]byte(`{}`))
}
type APIErrorResponse struct {
Error string `json:"error"`
}