Health Check

This page describes how to configure health check probes for a Mattermost server.

Before you begin, you should have a running Mattermost server. If you don’t, you can install Mattermost on various distributions or deploy a Kubernetes cluster with Minikube. Note that highly available Mattermost cluster is available in Enterprise Edition E20.

You can perform a health check with two methods:

/ping APIv4 Endpoint

In Mattermost version 3.10 and later, you can use the GET /system/ping APIv4 endpoint to check for system health.

A sample request is included below. The endpoint checks if the server is up and healthy based on the configuration setting GoRoutineHealthThreshold.

  • If GoRoutineHealthThreshold and the number of goroutines on the server exceeds that threshold, the server is considered unhealthy.
  • If GoRoutineHealthThreshold is not set or the number of goroutines is below the threshold the server is considered healthy.

This endpoint can also be provided to schedulers like Kubernetes.

import "github.com/mattermost/mattermost-server/model"

Client := model.NewAPIv4Client("https://your-mattermost-url.com")
Client.Login("email@domain.com", "Password1")

// GetPing
status, err := Client.GetPing()

Mattermost Probe

The Mattermost Probe constantly pings a Mattermost server using a variety of probes.

These probes can be configured to verify core features, including sending and receiving messages, joining channels, pinging a login page, and searching of users and channels.

The project is contributed by the Mattermost open source community. Suggestions and contributions for the project are welcome.