Jika saluran pemberitahuan peringatan yang didukung oleh webhook CloudMonitor, seperti DingTalk, WeCom, Lark, dan Slack, atau saluran pengiriman peringatan seperti Auto Scaling, Simple Log Service, dan Simple Message Queue (sebelumnya MNS), tidak memenuhi kebutuhan Anda, Anda dapat menggunakan Function Compute untuk menyesuaikan pemrosesan peringatan.
Prasyarat
Pastikan bahwa Anda telah mengaktifkan Function Compute. Untuk informasi lebih lanjut, lihat Aktifkan Function Compute.
Jika Anda ingin mengirim pemberitahuan peringatan ke alat yang tidak didukung secara asli oleh CloudMonitor, Anda harus mendapatkan URL webhook mereka.
Skenario
Gunakan Function Compute untuk memformat ulang konten pemberitahuan peringatan untuk alat yang tidak didukung secara asli oleh CloudMonitor.
Gunakan Function Compute untuk menyesuaikan konten pemberitahuan peringatan CloudMonitor.
Langkah 1: Terapkan fungsi kode di Function Compute
Buat layanan.
Masukkan nama layanan dan gunakan nilai default untuk parameter lainnya. Untuk informasi lebih lanjut, lihat Buat Layanan.
Buat fungsi.
Di bagian Basic Settings, masukkan Function Name, pilih Handle Event Requests untuk Handler Type, dan biarkan parameter lainnya pada nilai defaultnya. Untuk informasi lebih lanjut, lihat Buat Fungsi.
Contoh dalam topik ini menggunakan Java 8 sebagai Runtime.
CatatanHandler (Function Entry Point) di bagian Advanced Configuration harus sesuai dengan kode fungsi. Sebagai contoh, Handler default adalah example.App::handleRequest, di mana example adalah nama paket, App adalah nama kelas, dan handleRequest adalah metode kelas. Untuk persyaratan bahasa lainnya, lihat bagian Event Handler di Runtimes Function Compute.
Terapkan kode fungsi.
Di tab Function Code, klik Upload Code di pojok kanan atas dan pilih Upload JAR Package.
CatatanJava adalah bahasa terkompilasi. Anda tidak dapat melihat atau mengedit kode Java secara online. Anda harus mengembangkan kode secara lokal lalu mengunggahnya sebagai objek OSS atau paket JAR. Untuk mengedit dan menerapkan paket kode dalam lingkungan Java, lihat Kompilasi dan Penerapan Paket Kode.
Kode berikut memberikan contoh paket JAR untuk sebuah fungsi. Data pemberitahuan peringatan dari CloudMonitor diteruskan ke fungsi melalui
inputStream. Anda kemudian dapat memodifikasi format data dan mengirim data ke URL webhook yang berbeda untuk memproses logika bisnis Anda. Contoh kode ini mengimplementasikan antarmukaStreamRequestHandlerdan hanya mencetak data pemberitahuan peringatan.package example; import com.aliyun.fc.runtime.Context; import com.aliyun.fc.runtime.FunctionInitializer; import com.aliyun.fc.runtime.StreamRequestHandler; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; /** * Hello world! */ public class App implements StreamRequestHandler, FunctionInitializer { public void initialize(Context context) throws IOException { //TODO } @Override public void handleRequest( InputStream inputStream, OutputStream outputStream, Context context) throws IOException { int n; StringBuilder sb = new StringBuilder(); while ((n = inputStream.read()) != -1) { sb.append((char) n); } System.out.println("parameter peringatan"); System.out.println(sb.toString()); } }CatatanUntuk informasi lebih lanjut tentang pengembangan kode, lihat dokumen berikut:
Untuk informasi lebih lanjut tentang pengembangan kode dalam beberapa bahasa, lihat Ikhtisar Pengembangan Kode.
Untuk informasi lebih lanjut tentang fungsi event dalam contoh kode, lihat Fungsi Event. Kami sarankan Anda mengunduh proyek dari pustaka contoh kode Function Compute untuk mempercepat pengembangan.
Untuk informasi lebih lanjut tentang pengembangan Java, lihat Event Handler.
Di kotak dialog Upload Code by Using ZIP, JAR, or WAR Package, unggah paket kode dan klik Save and Deploy.
Uji kode fungsi.
Di tab Function Code, klik tab Test Function.
Di tab Test Function, klik Configure Test Event. Tempel data pemberitahuan peringatan CloudMonitor berikut ke bagian Create New Test Event dan klik Test Function.
Setelah fungsi dieksekusi, Anda dapat melihat hasil eksekusi dan keluaran log.
{ "product":"KVstore", "metricName":"ShardingCpuUsage", "instance":{ "instanceId":"r-bp1wt5u2ov6e5w****", "resource":"r-bp1wt5u2ov6e5w****", "instanceName":"online", "vpc":{ "vswitchInstanceId":"vsw-bp1rpjm10in1wgxd4****", "vpcInstanceId":"vpc-bp1n5sng5dntm3daf****" }, "aliUid":173651113438****, "category":"KVSTORE", "region":{ "regionId":"cn-hangzhou", "availabilityZone":"" }, "networkType":"VPC", "dimension":{ }, "desc":"", "tags":[ { "value":"1", "key":"__level__" } ] }, "Average":0.483, "userId":"173651113438****", "curLevel":"INFO", "Maximum":0.483, "__ts__":168612****, "instanceId":"r-bp1wt5u2ov6e5w****", "escalation":{ "comparisonOperator":"GreaterThanOrEqualToThreshold", "expression":"$Average >= 0.1", "level":4, "statistics":"Average", "tag":"INFO", "threshold":"0.1", "times":1 }, "ruleName":"test-tair", "nodeId":"r-bp1wt5u2ov6e5w****-db-1", "timestamp":1686123300000 }
Langkah 2: Konfigurasikan peringatan di CloudMonitor
Masuk ke Konsol Cloud Monitor.
Di bilah navigasi di sebelah kiri, pilih .
Di halaman Alert Rules, klik Create Alert Rule.
Di halaman Create Alert Rule, atur informasi dasar untuk aturan peringatan, klik Advanced Settings, aktifkan saklar Function Compute, lalu konfigurasikan Region, Service, dan Function.
Untuk informasi lebih lanjut tentang cara mengatur parameter untuk aturan peringatan, lihat Buat Aturan Peringatan.
CatatanInformasi fungsi yang Anda pilih di langkah ini harus sesuai dengan layanan, fungsi, dan wilayah yang Anda buat di Langkah 1.
Klik OK.
Langkah 3: Lihat hasil pemicuan peringatan
Ketika peringatan dipicu oleh aturan peringatan yang dikonfigurasi untuk menggunakan Function Compute, fungsi yang ditentukan dipanggil. Anda dapat melihat log panggilan fungsi di konsol Function Compute untuk memverifikasi bahwa log tersebut benar.
Masuk ke Konsol Function Compute.
Di bilah navigasi di sebelah kiri, klik Functions, lalu pilih wilayah dari bilah menu di atas.
Di halaman Functions, klik nama fungsi tujuan.
Di halaman manajemen untuk fungsi tujuan, klik tab Logs, lalu klik tab Invocation Requests untuk memilih rentang waktu.
CatatanPertama kali Anda melihat log panggilan untuk suatu fungsi, Anda harus mengklik Enable Now untuk mengaktifkan fitur pencatatan.
Di kolom Actions untuk log panggilan target, klik Request Log.
Anda dapat melihat detail log.