package check import ( "encoding/json" "github.com/influxdata/influxdb" "github.com/influxdata/influxdb/notification" ) var _ influxdb.Check = &Deadman{} // Deadman is the deadman check. type Deadman struct { Base // seconds before deadman triggers TimeSince uint `json:"timeSince"` // If only zero values reported since time, trigger alert. ReportZero bool `json:"reportZero"` Level notification.CheckLevel `json:"level"` } // Type returns the type of the check. func (c Deadman) Type() string { return "deadman" } // GenerateFlux returns a flux script for the Deadman provided. func (c Deadman) GenerateFlux() (string, error) { // TODO(desa): needs implementation return `package main data = from(bucket: "telegraf") |> range(start: -1m) option task = {name: "name1", every: 1m}`, nil } type deadmanAlias Deadman // MarshalJSON implement json.Marshaler interface. func (c Deadman) MarshalJSON() ([]byte, error) { return json.Marshal( struct { deadmanAlias Type string `json:"type"` }{ deadmanAlias: deadmanAlias(c), Type: c.Type(), }) }