2015-08-12 14 views
7

In einer Bosun-Vorlage ist es möglich, die Ausgabe einer ausgewerteten Variablen aus der Warnung auf weniger Dezimalstellen der Genauigkeit zu formatieren?Wie formatiere ich Zahlen in Bosun-Vorlagen?

einfaches Beispiel:

template test_template{ 
    subject = test 
    body = {{.Eval .Alert.Vars.average_runtime}} seconds 
} 
alert test_alert{ 
    template test_template 
    $average_runtime = avg(q("avg:metric_name", "24h","")) 
    crit = $average_runtime > 150.0 
} 

Ergebnisse in

190,71165892385326 Sekunden lang

in dem Schablonenkörper, der unnötig präzise ist. Idealerweise würde ich gerne sehen:

190,71 Sekunden lang

Antwort

3

In go Vorlagen, die Sie verwenden können printf Ausgabe zu formatieren nach was auch immer Format-String Sie wollen. Dieser Ausschnitt funktioniert für mich:

template test_template{ 
    subject = test 
    body = {{printf "%.3f" (.Eval .Alert.Vars.average_runtime)}} seconds 
} 

alert test_alert{ 
    template = test_template 
    $average_runtime = 1234.5678999 
    crit = 1 
} 
+1

Sie können auch zu printf pipen, also '{{.Eval .Alert.Vars.Foo | printf "% .2f"}} '. Wir haben auch 2 Zahlenformatierungsfunktionen für häufige Instanzen, 'pct' und' bytes' –

+0

Danke, funktioniert super! – Jon