wormhole-explorer/common/health/influx.go

46 lines
890 B
Go

package health
import (
"context"
"errors"
"fmt"
influxdb2 "github.com/influxdata/influxdb-client-go/v2"
)
const (
InfluxStatusOK = "pass"
)
// InfluxOSS do a healtheckIN influx OSS version.
func InfluxOSS(client influxdb2.Client) Check {
return func(ctx context.Context) error {
healthcheck, err := client.Health(ctx)
if err != nil {
return err
}
if healthcheck == nil {
return errors.New("influx healthcheck can not be nil")
}
if healthcheck.Status != InfluxStatusOK {
return fmt.Errorf("influx healthcheck status: %s", healthcheck.Status)
}
return nil
}
}
// Influx do a healtheck in influx Cloud version.
func Influx(client influxdb2.Client) Check {
return func(ctx context.Context) error {
check, err := client.Ping(ctx)
if err != nil {
return err
}
if !check {
return errors.New("influx cloud not available")
}
return nil
}
}