1
0
Fork 0
mirror of https://github.com/Luzifer/mondash.git synced 2024-12-22 20:11:18 +00:00

Allow to use passed status instead of MAD

This commit is contained in:
Knut Ahlers 2016-03-27 20:32:53 +02:00
parent bf1b40a7bc
commit 8a3cf7db08
3 changed files with 14 additions and 3 deletions

View file

@ -72,6 +72,7 @@ This API controls the metrics on your dashboard
+ status (required, enum[string]) - One of: OK, Warning, Critical, Unknown
+ expires: 604800 (optional, number) - Time in seconds when to remove the metric if there is no update (Valid: `0 < x < 604800`)
+ freshness: 3600 (optional, number) - Time in seconds when to switch to `Unkown` state of there is no update (Valid: `0 < x < 604800`)
+ ignore_mad: false (optional, boolean) - If set to true the status passed in the update will be used instead of the median absolute deviation
+ Response 200 (text/plain)

View file

@ -61,6 +61,7 @@ type dashboardMetric struct {
Value float64 `json:"value,omitifempty"`
Expires int64 `json:"expires,omitifempty"`
Freshness int64 `json:"freshness,omitifempty"`
IgnoreMAD bool `json:"ignore_mad"`
HistoricalData dashboardMetricHistory `json:"history,omitifempty"`
Meta dashboardMetricMeta `json:"meta,omitifempty"`
}
@ -166,6 +167,14 @@ func (dm *dashboardMetric) StatisticalStatus() string {
return "OK"
}
func (dm *dashboardMetric) PreferredStatus() string {
if dm.IgnoreMAD {
return dm.Status
}
return dm.StatisticalStatus()
}
func (dm *dashboardMetric) LabelHistory() []string {
s := []string{}
@ -201,6 +210,7 @@ func (dm *dashboardMetric) Update(m *dashboardMetric) {
dm.Description = m.Description
dm.Status = m.Status
dm.Value = m.Value
dm.IgnoreMAD = m.IgnoreMAD
if m.Expires != 0 {
dm.Expires = m.Expires
}

View file

@ -81,11 +81,11 @@
</div>
{% else %}
{% for metric in metrics %}
{% if metric.StatisticalStatus == "OK" %}
{% if metric.PreferredStatus == "OK" %}
<div class="row alert alert-success">
{% elif metric.StatisticalStatus == "Warning" %}
{% elif metric.PreferredStatus == "Warning" %}
<div class="row alert alert-warning">
{% elif metric.StatisticalStatus == "Critical" %}
{% elif metric.PreferredStatus == "Critical" %}
<div class="row alert alert-danger">
{% else %}
<div class="row alert alert-info">