Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan templat perpesanan
Topik dokumentasi ini dirancang untuk ruang kerja Grafana yang mendukung Grafana versi 8.x.
Untuk ruang kerja Grafana yang mendukung Grafana versi 10.x, lihat. Bekerja di Grafana versi 10
Untuk ruang kerja Grafana yang mendukung Grafana versi 9.x, lihat. Bekerja di Grafana versi 9
Pemberitahuan yang dikirim melalui Bekerja dengan titik kontak dibuat menggunakan templat perpesanan. Template default Grafana didasarkan pada sistem template Go di mana beberapa bidang dievaluasi sebagai teks, sementara yang lain dievaluasi sebagai HTML (yang dapat memengaruhi pelolosan
Karena sebagian besar bidang titik kontak dapat di-template, Anda dapat membuat templat khusus yang dapat digunakan kembali dan menggunakannya di beberapa titik kontak. Data templatTopik mencantumkan variabel yang tersedia untuk templating.
Menggunakan template
Template digunakan untuk membuat pesan. Misalnya, dengan pesan peringatan Slack, Anda dapat mengatur judul dan isi di titik kontak. Contoh berikut menunjukkan cara menggunakan templat default untuk membuat judul yang berisi jumlah peringatan yang ditembakkan dan diselesaikan, dan badan yang mencantumkan peringatan dan statusnya.
-
Judul:
{{ len .Alerts.Firing }} firing, {{ len .Alerts.Resolved }} resolved
-
Tubuh Teks:
{{ range .Alerts }}{{ .Status }}: {{ .Labels.alertname }} {{end }}
Anda dapat membuat template kustom Anda sendiri, seperti pada contoh berikut.
-
Judul:
{{ template "slack.default.title" .}}
-
Tubuh Teks:
{{ template "mymessage" .}}
Berikut ini adalah contoh template.
{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}
Prosedur berikut menunjukkan cara membuat, mengedit, dan menghapus templat pesan khusus.
Untuk membuat template pesan
-
Dari konsol Grafana Anda, di menu Grafana, pilih ikon Peringatan (bel) untuk membuka halaman Peringatan.
-
Pilih Titik kontak.
-
Dari tarik-turun Alertmanager, pilih contoh Alertmanager yang ingin Anda buat template pesan. Defaultnya adalah Grafana Alertmanager.
-
Pilih Tambahkan templat.
-
Tambahkan nama deskriptif.
-
Tambahkan Konten untuk template, misalnya:
{{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}
define
Tag di bagian Konten memberikan nama template. Tag ini opsional, dan ketika dihilangkan, nama template berasal dari bidang Nama. Ketika keduanya ditentukan, itu adalah praktik terbaik untuk menjaga mereka tetap sama. -
Pilih Simpan template.
catatan
HTML dalam peringatan template pesan dirender sebagai teks, dengan karakter kontrol lolos. Rendering HTML dalam notifikasi yang dihasilkan tidak didukung oleh Grafana.
Untuk mengedit template pesan
-
Di halaman Peringatan, pilih Titik kontak untuk membuka daftar titik kontak.
-
Di tabel Template, temukan template yang ingin Anda edit, lalu pilih ikon Edit (pena).
-
Buat perubahan Anda, lalu pilih Simpan template.
Untuk menghapus template pesan
-
Di halaman Peringatan, pilih Titik kontak untuk membuka daftar titik kontak.
-
Di tabel Template, temukan template yang ingin Anda hapus, lalu pilih ikon Hapus (tempat sampah).
-
Pilih Ya, hapus untuk menghapus template.
Template bersarang
Anda dapat menyematkan template dalam template lain.
Misalnya, Anda dapat menentukan fragmen template menggunakan define
kata kunci:
{{ define "mytemplate" }} {{ len .Alerts.Firing }} firing. {{ len .Alerts.Resolved }} resolved. {{ end }}
Anda kemudian dapat menyematkan template kustom dalam fragmen ini menggunakan kata kunci. template
Sebagai contoh:
Alert summary: {{ template "mytemplate" . }}
Anda dapat menggunakan opsi templat bawaan berikut untuk menyematkan templat khusus.
Nama | Catatan |
---|---|
|
Menampilkan informasi status tingkat tinggi. |
|
Menyediakan ringkasan pemformatan dan peringatan yang diselesaikan. |
Contoh template kustom
Berikut adalah contoh cara menggunakan templat khusus.
Template untuk membuat peringatan tunggal:
{{ define "myalert" }} [{{.Status}}] {{ .Labels.alertname }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ if gt (len .Annotations) 0 }} Annotations: {{ range .Annotations.SortedPairs }} {{ .Name }}: {{ .Value }} {{ end }} {{ end }} {{ if gt (len .SilenceURL ) 0 }} Silence alert: {{ .SilenceURL }} {{ end }} {{ if gt (len .DashboardURL ) 0 }} Go to dashboard: {{ .DashboardURL }} {{ end }} {{ end }}
Template untuk merender seluruh pesan notifikasi:
{{ define "mymessage" }} {{ if gt (len .Alerts.Firing) 0 }} {{ len .Alerts.Firing }} firing: {{ range .Alerts.Firing }} {{ template "myalert" .}} {{ end }} {{ end }} {{ if gt (len .Alerts.Resolved) 0 }} {{ len .Alerts.Resolved }} resolved: {{ range .Alerts.Resolved }} {{ template "myalert" .}} {{ end }} {{ end }} {{ end }}
Data templat
Data berikut diteruskan ke template pesan.
Nama | Jenis | Catatan |
---|---|---|
|
string |
Nama titik kontak tempat notifikasi dikirim. |
|
string |
menembak jika setidaknya satu peringatan ditembakkan, jika tidak diselesaikan. |
|
Pemberitahuan |
Daftar objek peringatan yang disertakan dalam pemberitahuan ini (lihat di bawah). |
|
KeyValue |
Label peringatan ini dikelompokkan berdasarkan. |
|
KeyValue |
Label umum untuk semua peringatan yang disertakan dalam notifikasi ini. |
|
KeyValue |
Anotasi umum untuk semua peringatan yang disertakan dalam pemberitahuan ini. |
|
string |
Tautan kembali ke Grafana yang mengirim notifikasi. Jika menggunakan Alertmanager eksternal, tautan kembali ke Alertmanager ini. |
Alerts
Jenis ini mengekspos dua fungsi untuk memfilter peringatan yang dikembalikan.
-
Alerts.Firing
— Mengembalikan daftar peringatan penembakan. -
Alerts.Resolved
— Mengembalikan daftar peringatan diselesaikan.
Peringatan (tipe)
Jenis peringatan berisi data berikut.
Nama | Jenis | Catatan |
---|---|---|
Status |
string |
|
Label |
KeyValue |
Satu set label yang dilampirkan pada peringatan. |
Anotasi |
KeyValue |
Satu set anotasi yang dilampirkan pada peringatan. |
StartsAt |
waktu.waktu |
Waktu peringatan mulai menembak. |
EndsAt |
waktu.waktu |
Hanya atur jika waktu akhir peringatan diketahui. Jika tidak, atur ke periode batas waktu yang dapat dikonfigurasi sejak peringatan terakhir diterima. |
GeneratorURL |
string |
Tautan balik ke Grafana atau Alertmanager eksternal. |
SilenceUrl |
string |
Tautkan ke grafana silence untuk dengan label untuk peringatan ini yang telah diisi sebelumnya. Hanya untuk peringatan terkelola Grafana. |
DashboardURL |
string |
Tautkan ke dasbor grafana, jika aturan peringatan milik salah satunya. Hanya untuk peringatan terkelola Grafana. |
PanelURL |
string |
Tautkan ke panel dasbor grafana, jika aturan peringatan milik salah satunya. Hanya untuk peringatan terkelola Grafana. |
Sidik jari |
string |
Sidik jari yang dapat digunakan untuk mengidentifikasi peringatan. |
ValueString |
string |
String yang berisi label dan nilai setiap ekspresi yang dikurangi dalam peringatan. |
KeyValue jenis
KeyValue
Tipenya adalah satu set pasangan string kunci/nilai yang mewakili label dan anotasi.
Selain akses langsung dari data yang disimpan sebagai aKeyValue
, ada juga metode untuk menyortir, menghapus dan mengubah data.
Nama | Pendapat | Pengembalian | Catatan |
---|---|---|---|
SortedPairs |
Daftar yang diurutkan dari pasangan string kunci dan nilai |
||
Menghapus |
[] string |
KeyValue |
Mengembalikan salinan peta Kunci/Nilai tanpa kunci yang diberikan. |
Nama |
[] string |
Daftar nama label |
|
Nilai |
[] string |
Daftar nilai label |
Fungsi template
Dengan menggunakan fungsi template, Anda dapat memproses label dan anotasi untuk menghasilkan notifikasi dinamis. Fungsi-fungsi berikut tersedia.
Nama | Jenis Argumen | Jenis pengembalian | Deskripsi |
---|---|---|---|
|
nomor atau string |
string |
Mengonversi angka ke format yang lebih mudah dibaca, menggunakan awalan metrik. |
|
nomor atau string |
string |
Seperti memanusiakan, tetapi menggunakan 1024 sebagai basis daripada 1000. |
|
nomor atau string |
string |
Mengonversi durasi dalam hitungan detik ke format yang lebih mudah dibaca. |
|
nomor atau string |
string |
Mengkonversi nilai rasio menjadi pecahan dari 100. |
|
nomor atau string |
string |
Mengonversi stempel waktu Unix dalam hitungan detik ke format yang lebih mudah dibaca. |
|
string |
string |
Strings.title, mengkapitalisasi karakter pertama dari setiap kata. |
|
string |
string |
string. ToUpper, mengonversi semua karakter ke huruf besar. |
|
string |
string |
string. ToLower, mengonversi semua karakter ke huruf kecil. |
|
pola, teks |
boolean |
regexp. MatchString Tes untuk pertandingan regexp yang tidak ditambatkan. |
|
pola, penggantian, teks |
string |
Regexp. ReplaceAllString Regexp substitusi, tidak berlabuh. |
|
string - Objek JSON dengan |
string |
Mengembalikan jalur ke tampilan grafis di Jelajahi untuk ekspresi dan sumber data yang diberikan. |
|
string - Objek JSON dengan |
string |
Mengembalikan jalur ke tampilan tabel di Jelajahi untuk ekspresi dan sumber data yang diberikan. |
|
[] antarmuka {} |
peta [string] antarmuka {} |
Mengkonversi daftar objek ke peta dengan kunci, misalnya, arg0, arg1. Gunakan fungsi ini untuk meneruskan beberapa argumen ke template. |
|
tidak ada |
string |
Mengembalikan string yang mewakili URL eksternal. |
|
tidak ada |
string |
Mengembalikan jalur URL eksternal. |
Tabel berikut menunjukkan contoh penggunaan setiap fungsi.
Fungsi | TemplateString | Input | Expected |
---|---|---|---|
memanusiakan |
{memanusiakan $value} |
1234567.0 |
1.235 M |
manusia1024 |
{humanize1024 $nilai} |
1048576.0 |
1Mi |
HumanizeUrasi |
{HumanizeDuration $value} |
899,99 |
14m 59s |
HumanizePersentase |
{HumanizePersentase $ nilai} |
0.1234567 |
12,35% |
HumanizeTimestamp |
{HumanizeTimeStamp $nilai} |
1435065584.128 |
2015-06-23 13:19:44.128 +0000 UTC |
title |
{$value | judul} |
aa bB CC |
Aa Bb Cc |
toUpper |
{$nilai | TouPper} |
aa bB CC |
AA BB CC |
toLower |
{$value | toLower} |
aa bB CC |
aa bb cc |
match |
{cocokkan “a+” $labels.instance} |
aa |
true |
reReplaceAll |
{{ reReplaceAll “localhost :( .*)” “my.domain: $1" $labels.instance}} |
localhost:3000 |
domain.my:3000 |
GraphLink |
{{GraphLink “{\" expr\”:\ "up\”,\ "sumber data\”:\ "gdev-prometheus\"}”}} |
/jelajahi? left= ["now-1h”, "now”, "gdev-prometheus”, {"datasource” :"gdev-prometheus”, "expr” :"up”, "instant” :false, "range” :true}] |
|
TableLink |
{{TableLink “{\" expr\”:\ "up\”,\ "sumber data\”:\ "gdev-prometheus\"}”}} |
/jelajahi? left= ["now-1h”, "now”, "gdev-prometheus”, {"datasource” :"gdev-prometheus”, "expr” :"up”, "instant” :true, "range” :false}] |
|
argumen |
{{define “x"}} {{.arg0}} {{.arg1}} {{end}} {{template “x” (argumen 1 “2")}} |
1 2 |
|
URL eksternal |
{ExternalUrl} |
http://localhost/path/prefix |
|
PathPrefix |
{PathPrefix} |
/jalur/awalan |