func HealthCheckerDetailed(config ApplicationConfig) ApplicationHealthDetailed {
	var (
		start     = time.Now()
		wg        sync.WaitGroup
		checklist = make(chan Integration, len(config.Integrations))
		result    = ApplicationHealthDetailed{
			Name:         config.Name,
			Version:      config.Version,
			Status:       true,
			Date:         start.String(),
			Duration:     0,
			Integrations: []Integration{},
		}
	)
	wg.Add(len(config.Integrations))
	for _, v := range config.Integrations {
		switch v.Type {
		case Redis:
			go checkRedisClient(v, &result, &wg, checklist)
		case Memcached:
			go checkMemcachedClient(v, &result, &wg, checklist)
		case Web:
			go checkWebServiceClient(v, &result, &wg, checklist)
		default:
			go defaultAction(v, &result, &wg, checklist)
		}
	}
	go func() {
		wg.Wait()
		close(checklist)
		result.Duration = time.Now().Sub(start).Seconds()
	}()
	for chk := range checklist {
		result.Integrations = append(result.Integrations, chk)
	}
	return result
}
HealthCheckerDetailed perform a check for every integration informed
package healthcheck
import (
	"net/http"
	"sync"
	"time"
	"github.com/bradfitz/gomemcache/memcache"
	"github.com/go-redis/redis"
	"golang.org/x/crypto/openpgp/errors"
)
func HealthCheckerSimple() ApplicationHealthSimple {
	return ApplicationHealthSimple{
		Status: "fully functional",
	}
}