View a markdown version of this page

Menerbitkan metrik kustom dengan format metrik yang disematkan - AWS Lambda

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menerbitkan metrik kustom dengan format metrik yang disematkan

Dengan format metrik CloudWatch tertanam Amazon (EMF), Anda dapat mempublikasikan metrik Anda sendiri dari Fungsi AWS Lambda Web, seperti pesanan yang ditempatkan, tingkat klik cache, atau latensi pembayaran. Aplikasi Anda menulis objek JSON terstruktur ke lognya, dan CloudWatch mengekstrak metrik darinya. Gunakan metrik khusus untuk melacak apa yang dilakukan aplikasi Anda. Metrik yang diterbitkan Lambda hanya menjelaskan hasil permintaan dan penggunaan sumber daya.

Anda juga dapat mempublikasikan metrik kustom dengan memanggil CloudWatch PutMetricData API secara langsung, tetapi kami merekomendasikan EMF untuk Fungsi Web:

  • Tidak ada latensi permintaan tambahan - Aplikasi Anda tidak memanggil CloudWatch API di jalur yang melayani respons HTTP Anda.

  • Tidak ada izin tambahan — Anda tidak memerlukan cloudwatch:PutMetricData izin. EMF menggunakan izin Amazon CloudWatch Logs yang sama dengan peran eksekusi yang sudah dibutuhkan untuk log.

  • Sentralisasi dengan log Anda — Karena metrik EMF berjalan dengan log Anda, Wilayah asal memiliki nilai dari setiap Wilayah yang dilayani titik akhir. Metrik yang Anda publikasikan hanya PutMetricData muncul di Wilayah tempat Anda memanggilnya.

Bagaimana EMF bekerja dengan Fungsi Web

Metrik EMF berjalan dari aplikasi Anda ke CloudWatch melalui langkah-langkah berikut:

  1. Aplikasi Anda menulis objek EMF-formatted JSON, diikuti oleh baris baru, langsung ke output standar.

  2. Lambda menangkapnya sebagai peristiwa log di Wilayah tempat permintaan dijalankan dan memusatkannya ke beranda Wilayah AWS, sama seperti keluaran log lainnya. Lihat perinciannya di Log Fungsi Web di CloudWatch Log Amazon.

  3. CloudWatch mengekstrak metrik dari objek di Wilayah tempat permintaan dijalankan, dan Lambda mereplikasi metrik ke Wilayah asal. Metrik muncul di namespace yang Anda tentukan di objek. Di Wilayah asal, metrik mencakup nilai dari setiap Wilayah yang dilayani titik akhir.

Metrik kustom Anda muncul di namespace Anda sendiri, bukan di. AWS/Lambda/Web Namespace itu dicadangkan untuk metrik yang diterbitkan Lambda.

Menerbitkan metrik khusus

Node.jsContoh berikut menerbitkan CheckoutLatency metrik dan OrdersPlaced metrik di bawah MyWebApp namespace, dengan dimensi. PaymentProvider Ini menulis objek EMF denganprocess.stdout.write. Jangan meneruskan objek EMF ke console metode. Lambda membungkus console output dalam peristiwa log JSON-nya sendiri, dan CloudWatch tidak mengekstrak metrik dari objek yang dibungkus.

function publishCheckoutMetrics(provider, latencyMs, orders) { process.stdout.write(JSON.stringify({ _aws: { Timestamp: Date.now(), CloudWatchMetrics: [ { Namespace: 'MyWebApp', Dimensions: [['PaymentProvider']], Metrics: [ { Name: 'CheckoutLatency', Unit: 'Milliseconds' }, { Name: 'OrdersPlaced', Unit: 'Count' } ] } ] }, PaymentProvider: provider, CheckoutLatency: latencyMs, OrdersPlaced: orders, // Fields outside the metric definitions are kept as searchable log context. requestPath: '/checkout' }) + '\n'); }

Alih-alih membuat objek EMF sendiri, Anda dapat menggunakan pustaka klien EMF, seperti aws-embedded-metrics untuk di situs web. Node.js GitHub Untuk daftar pustaka, lihat Membuat log dalam format metrik tertanam menggunakan pustaka klien di CloudWatch Panduan Pengguna Amazon. Sebelum Anda mengandalkan pustaka, konfirmasikan bahwa ia menulis objek EMF langsung ke output standar dalam Fungsi Web, bukan melalui console atau ke CloudWatch agen.

Perhatikan tiga peran yang dimainkan bidang dalam objek EMF:

  • Bidang yang dinamai Metrics menjadi CloudWatch metrik.

  • Bidang yang dinamai Dimensions menjadi dimensi metrik. Jaga agar jumlah nilai dimensi yang berbeda tetap rendah. Setiap kombinasi menciptakan metrik terpisah.

  • Bidang lain disimpan dalam peristiwa log sebagai konteks yang dapat Anda kueri dengan Amazon CloudWatch Logs Insights, tetapi tidak membuat metrik.

Gunakan properti terakhir dengan sengaja: lampirkan nilai kardinalitas tinggi seperti ID permintaan atau ID pelanggan sebagai bidang biasa dan bukan sebagai dimensi, sehingga Anda dapat menemukan permintaan spesifik di Wawasan Log tanpa mengalikan jumlah metrik Anda.

Penagihan untuk metrik kustom

EMF menghasilkan konsumsi log dan biaya metrik khusus. Peristiwa log ditagih dengan harga Amazon CloudWatch Logs, dan metrik yang diekstraksi ditagih sebagai metrik khusus. CloudWatch Sentralisasi pertama dari peristiwa log gratis. CloudWatch mengekstrak metrik EMF di Wilayah tempat permintaan dijalankan, dan Lambda mereplikasinya ke Wilayah asal, sehingga permintaan yang disajikan di luar Wilayah asal menghasilkan metrik khusus di kedua Wilayah.

Volume log, jumlah metrik, dan jumlah kombinasi dimensi yang berbeda memengaruhi biaya. Publikasikan metrik pada perincian yang akan Anda alarm atau grafik, dan hindari dimensi kardinalitas tinggi.

Untuk harga saat ini, lihat CloudWatchharga Amazon.