1
0
Fork 0
mirror of https://github.com/Luzifer/mondash.git synced 2024-11-09 16:10:01 +00:00

Support different staleness status

Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
Knut Ahlers 2019-05-25 13:26:43 +02:00
parent 54340f1540
commit b2d529faf8
Signed by: luzifer
GPG key ID: DC2729FDD34BE99E

View file

@ -11,10 +11,11 @@ import (
"syscall" "syscall"
"time" "time"
mondash "github.com/Luzifer/mondash/client"
"github.com/Luzifer/rconfig"
"github.com/gosimple/slug" "github.com/gosimple/slug"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
mondash "github.com/Luzifer/mondash/client"
"github.com/Luzifer/rconfig"
) )
var ( var (
@ -24,7 +25,8 @@ var (
MondashToken string `flag:"token,t" env:"TOKEN" default:"" description:"Token associated with the specified board" validate:"nonzero"` MondashToken string `flag:"token,t" env:"TOKEN" default:"" description:"Token associated with the specified board" validate:"nonzero"`
MetricID string `flag:"metric-id,m" env:"METRIC_ID" default:"" description:"ID of the metric, if not specified a generated ID from the title will be used"` MetricID string `flag:"metric-id,m" env:"METRIC_ID" default:"" description:"ID of the metric, if not specified a generated ID from the title will be used"`
MetricTitle string `flag:"metric-title" env:"METRIC_TITLE" default:"" description:"Title of the metric, if not specified the command line will be used"` MetricTitle string `flag:"metric-title" env:"METRIC_TITLE" default:"" description:"Title of the metric, if not specified the command line will be used"`
Freshness time.Duration `flag:"Freshness" env:"FRESHNESS" default:"1h" description:"Freshness of the metric (will turn to unknown if no new result was submitted)"` Freshness time.Duration `flag:"freshness" env:"FRESHNESS" default:"1h" description:"Freshness of the metric (will turn to unknown if no new result was submitted)"`
StaleStatus string `flag:"stale-status" default:"Unknown" description:"Status to set when metric is stale (One of Unknown, OK, Warning, Critical)"`
Timeout time.Duration `flag:"timeout" env:"TIMEOUT" default:"1m" description:"Timeout for the script command to be killed"` Timeout time.Duration `flag:"timeout" env:"TIMEOUT" default:"1m" description:"Timeout for the script command to be killed"`
VersionAndExit bool `flag:"version" default:"false" description:"Prints current version and exits"` VersionAndExit bool `flag:"version" default:"false" description:"Prints current version and exits"`
}{} }{}
@ -102,14 +104,15 @@ func main() {
client := mondash.New(cfg.MondashBoard, cfg.MondashToken).WithHost(cfg.MondashHost) client := mondash.New(cfg.MondashBoard, cfg.MondashToken).WithHost(cfg.MondashHost)
if err := client.PostMetric(&mondash.PostMetricInput{ if err := client.PostMetric(&mondash.PostMetricInput{
MetricID: cfg.MetricID, MetricID: cfg.MetricID,
Title: cfg.MetricTitle, Title: cfg.MetricTitle,
Description: output, Description: output,
Status: statusMapping[exitCode], Status: statusMapping[exitCode],
Value: value, Value: value,
Freshness: int64(cfg.Freshness / time.Second), Freshness: int64(cfg.Freshness / time.Second),
IgnoreMAD: true, IgnoreMAD: true,
HideMAD: true, HideMAD: true,
StalenessStatus: cfg.StaleStatus,
}); err != nil { }); err != nil {
log.WithError(err).Fatal("Could not submit metric") log.WithError(err).Fatal("Could not submit metric")
} }