How do you handle HTTP server health checks in Go?
In Go, you can handle HTTP server health checks by implementing a handler function that returns an HTTP status code indicating the health of the server. One common approach is to use the "/health" endpoint to indicate the health of the server. This endpoint can be accessed by the monitoring system to check the status of the server.
Server Health Check
Here's an example of implementing a health check endpoint in Go.
Example
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/health", healthCheckHandler)
http.ListenAndServe(":8080", nil)
}
func healthCheckHandler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "Server is healthy")
}
In this example, we define a handler function named healthCheckHandler that simply returns an HTTP status code of 200 (OK) along with a message indicating that the server is healthy. We then register this handler function to the "/health" endpoint using the http.HandleFunc method, and start the server using the http.ListenAndServe method.
When the monitoring system sends a GET request to the "/health" endpoint, it will receive a response with an HTTP status code of 200 and the message "Server is healthy". This indicates that the server is running and is healthy. If the server is not healthy, we can return a different HTTP status code, such as 500 (Internal Server Error), to indicate that there is a problem with the server.
Most Helpful This Week
How do you send an HTTP PATCH request in Go?
How do you read headers in an HTTP response in Go?
What is an HTTP client in Go?
How do you handle HTTP server HTTP/2 in Go?
How do you handle HTTP client server alerting in Go?
How do you handle HTTP redirects in Go?
How do you handle HTTP client server security in Go?
How do you handle HTTP requests in Go?
How do you send an HTTP POST request with an HTTP client in Go?
How do you set cookies in an HTTP request with an HTTP client in Go?
Most Helpful This Week
Closures Functions in GolangDifferent ways for Integer to String ConversionsExample: How to use ReadFull from IO Package in Golang?Example of Fscan, Fscanf, and Fscanln from FMT PackageHow to remove symbols from a string in Golang?How to check lowercase characters in a string in Golang?How to iterate over a Map using for loop in Go?Example to create custom errorHow do you write multi-line strings in Go?How to declare empty Map in Go?