Menggunakan templat perpesanan - Amazon Managed Grafana

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
  1. Dari konsol Grafana Anda, di menu Grafana, pilih ikon Peringatan (bel) untuk membuka halaman Peringatan.

  2. Pilih Titik kontak.

  3. Dari tarik-turun Alertmanager, pilih contoh Alertmanager yang ingin Anda buat template pesan. Defaultnya adalah Grafana Alertmanager.

  4. Pilih Tambahkan templat.

  5. Tambahkan nama deskriptif.

  6. Tambahkan Konten untuk template, misalnya:

    {{ define "mymessage" }} {{ range .Alerts }} [{{ .Status }}] {{ range .Labels }} {{ .Name }}={{.Value }}{{end}} {{ end }} {{ end }}

    defineTag 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.

  7. 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
  1. Di halaman Peringatan, pilih Titik kontak untuk membuka daftar titik kontak.

  2. Di tabel Template, temukan template yang ingin Anda edit, lalu pilih ikon Edit (pena).

  3. Buat perubahan Anda, lalu pilih Simpan template.

Untuk menghapus template pesan
  1. Di halaman Peringatan, pilih Titik kontak untuk membuka daftar titik kontak.

  2. Di tabel Template, temukan template yang ingin Anda hapus, lalu pilih ikon Hapus (tempat sampah).

  3. 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

default.title

Menampilkan informasi status tingkat tinggi.

default.message

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

Receiver

string

Nama titik kontak tempat notifikasi dikirim.

Status

string

menembak jika setidaknya satu peringatan ditembakkan, jika tidak diselesaikan.

Alerts

Pemberitahuan

Daftar objek peringatan yang disertakan dalam pemberitahuan ini (lihat di bawah).

GroupLabels

KeyValue

Label peringatan ini dikelompokkan berdasarkan.

CommonLabels

KeyValue

Label umum untuk semua peringatan yang disertakan dalam notifikasi ini.

CommonAnnotations

KeyValue

Anotasi umum untuk semua peringatan yang disertakan dalam pemberitahuan ini.

ExternalURL

string

Tautan kembali ke Grafana yang mengirim notifikasi. Jika menggunakan Alertmanager eksternal, tautan kembali ke Alertmanager ini.

AlertsJenis 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

firing atau resolved.

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

KeyValueTipenya 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

humanize

nomor atau string

string

Mengonversi angka ke format yang lebih mudah dibaca, menggunakan awalan metrik.

humanize1024

nomor atau string

string

Seperti memanusiakan, tetapi menggunakan 1024 sebagai basis daripada 1000.

humanizeDuration

nomor atau string

string

Mengonversi durasi dalam hitungan detik ke format yang lebih mudah dibaca.

humanizePercentage

nomor atau string

string

Mengkonversi nilai rasio menjadi pecahan dari 100.

humanizeTimestamp

nomor atau string

string

Mengonversi stempel waktu Unix dalam hitungan detik ke format yang lebih mudah dibaca.

title

string

string

Strings.title, mengkapitalisasi karakter pertama dari setiap kata.

toUpper

string

string

string. ToUpper, mengonversi semua karakter ke huruf besar.

toLower

string

string

string. ToLower, mengonversi semua karakter ke huruf kecil.

match

pola, teks

boolean

regexp. MatchString Tes untuk pertandingan regexp yang tidak ditambatkan.

reReplaceAll

pola, penggantian, teks

string

Regexp. ReplaceAllString Regexp substitusi, tidak berlabuh.

graphLink

string - Objek JSON dengan expr dan bidang datasource

string

Mengembalikan jalur ke tampilan grafis di Jelajahi untuk ekspresi dan sumber data yang diberikan.

tableLink

string - Objek JSON dengan expr dan bidang datasource

string

Mengembalikan jalur ke tampilan tabel di Jelajahi untuk ekspresi dan sumber data yang diberikan.

args

[] antarmuka {}

peta [string] antarmuka {}

Mengkonversi daftar objek ke peta dengan kunci, misalnya, arg0, arg1. Gunakan fungsi ini untuk meneruskan beberapa argumen ke template.

externalURL

tidak ada

string

Mengembalikan string yang mewakili URL eksternal.

pathPrefix

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