func (h *Healthcheck) Start() {
	h.fillBoard()
	go h.processRequests()
	h.runChecks()
}
Start method starts the monitoring routines.
package healthcheck
import (
	"regexp"
	"strings"
	"time"
	"github.com/mtojek/greenwall/middleware/application"
	"github.com/mtojek/greenwall/middleware/healthcheck/checks"
	"github.com/mtojek/greenwall/middleware/monitoring"
)
const (
	updateCheckChanLength  = 256
	anchorReplaceCharacter = "_"
)
var anchorRegexp = regexp.MustCompile("[^A-Za-z0-9]+")
type checkResultInBoard struct {
	groupOffset int
	nodeOffset  int
	result      checks.CheckResult
}
type Healthcheck struct {
	applicationConfiguration *application.Configuration
	monitoringConfiguration  *monitoring.Configuration
	board HealthStatus
	requestStatusChan      chan bool
	requestUpdateCheckChan chan checkResultInBoard
	responseStatusChan     chan HealthStatus
}
func NewHealthcheck(applicationConfiguration *application.Configuration,
	monitoringConfiguration *monitoring.Configuration) *Healthcheck {
	return &Healthcheck{
		applicationConfiguration: applicationConfiguration,
		monitoringConfiguration:  monitoringConfiguration,
		requestStatusChan:      make(chan bool),
		requestUpdateCheckChan: make(chan checkResultInBoard, updateCheckChanLength),
		responseStatusChan:     make(chan HealthStatus),
	}
}