2015-08-12 7 views
7

In un modello Bosun, è possibile formattare l'output di una variabile valutata dall'avviso a meno cifre decimali di precisione?Come si formattano i numeri all'interno dei modelli Bosun?

semplice esempio:

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 
} 

Risultati in

190,71165892385326 secondi

nel corpo del modello, che è inutilmente preciso. Idealmente mi piacerebbe vedere:

190,71 secondi

risposta

3

In modelli go che è possibile utilizzare per formattare printf uscita in base a qualsiasi stringa di formato che si desidera. Questo frammento funziona per me:

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

È anche possibile eseguire il pipe a printf, quindi '{{.Eval .Alert.Vars.Foo | printf "% .2f"}} '. Abbiamo anche 2 funzioni di formattazione dei numeri per le istanze comuni, 'pct' e' bytes' –

+0

Grazie, funziona alla grande! – Jon

Problemi correlati