Spesifikasi: Format metrik tersemat - Amazon CloudWatch

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

Spesifikasi: Format metrik tersemat

Format metrik yang CloudWatch disematkan adalah spesifikasi JSON yang digunakan untuk menginstruksikan CloudWatch Log agar secara otomatis mengekstrak nilai metrik yang disematkan dalam peristiwa log terstruktur. Anda dapat menggunakan CloudWatch grafik dan membuat alarm pada nilai metrik yang diekstraksi.

Kesepakatan spesifikasi format metrik tersemat

Kata kunci "HARUS", "TIDAK HARUS", "WAJIB", "AKAN", "TIDAK AKAN", "SEHARUSNYA", "SEHARUSNYA TIDAK", "DISARANKAN", "MUNGKIN", dan "OPSIONAL" dalam spesifikasi format ini harus ditafsirkan sebagaimana yang dijelaskan dalam Kata Kunci RFC2119.

Istilah “JSON”, “teks JSON”, “nilai JSON”, “anggota”, “elemen”, “objek”, “array”, “nomor”, “string”, “boolean”, “true”, “false”, dan “null” dalam spesifikasi format ini harus ditafsirkan sebagaimana didefinisikan dalam Notasi Objek RFC8259. JavaScript

catatan

Jika Anda berencana untuk membuat alarm-alarm pada metrik yang telah dibuat dengan menggunakan format metrik tersemat, silakan lihat Menyetel alarm pada metrik-metrik yang dibuat dengan format metrik tersemat untuk rekomendasinya.

Struktur dokumen format metrik tersemat

Bagian ini akan menjelaskan struktur dokumen format metrik tersemat. Dokumen format metrik tertanam didefinisikan dalam JavaScript Object Notation RFC8259.

Kecuali jika dinyatakan lain, objek-objek yang ditentukan oleh spesifikasi ini TIDAK BOLEH memuat anggota-anggota tambahan. Anggota yang tidak dikenali oleh spesifikasi ini HARUS diabaikan. Anggota yang ditentukan dalam spesifikasi ini bersifat peka terhadap huruf besar dan kecil.

Format metrik yang disematkan tunduk pada batas yang sama dengan peristiwa CloudWatch Log standar dan dibatasi hingga ukuran maksimum 256 KB.

Dengan format metrik tersemat, Anda dapat melacak pemrosesan log EMF berdasarkan metrik yang diterbitkan di ruang nama AWS/Logs akun Anda. Hal ini dapat digunakan untuk melacak pembuatan metrik yang gagal dari EMF, serta apakah kegagalan terjadi diakibatkan oleh penguraian atau validasi. Untuk detail selengkapnya lihat Pemantauan dengan CloudWatch metrik.

Simpul akar

LogEvent Pesan HARUS berupa objek JSON yang valid tanpa data tambahan di awal atau akhir string LogEvent pesan. Untuk informasi lebih lanjut tentang LogEvent struktur, lihat InputLogEvent.

Dokumen format metrik tersemat HARUS memuat anggota tingkat atas berikut pada simpul akar. Ini adalah sebuah objek Objek metadata.

{ "_aws": { "CloudWatchMetrics": [ ... ] } }

Simpul akar HARUS memuat semua anggota Anggota target yang ditentukan oleh referensi yang ada di MetricDirective objek.

Simpul akar tersebut MUNGKIN memuat anggota-anggota lain yang tidak termasuk dalam persyaratan di atas. Nilai-nilai dari anggota-anggota ini HARUS merupakan jenis JSON yang benar.

Objek metadata

_awsAnggota dapat digunakan untuk mewakili metadata tentang payload yang menginformasikan layanan hilir bagaimana mereka harus memproses. LogEvent Nilai tersebut HARUS menjadi objek dan HARUS berisi anggota-anggota berikut:

  • CloudWatchMetrics— Array yang MetricDirective objek digunakan untuk menginstruksikan CloudWatch untuk mengekstrak metrik dari simpul akar. LogEvent

    { "_aws": { "CloudWatchMetrics": [ ... ] } }
  • Timestamp— Angka yang mewakili stempel waktu yang digunakan untuk metrik yang diekstrak dari peristiwa. Nilai HARUS dinyatakan sebagai angka milidetik setelah 1 Jan 1970 00:00:00 UTC.

    { "_aws": { "Timestamp": 1559748430481 } }

MetricDirective objek

MetricDirective Objek menginstruksikan layanan hilir yang LogEvent berisi metrik yang akan diekstraksi dan dipublikasikan. CloudWatch MetricDirectives HARUS berisi anggota berikut:

  • Namespace — Sebuah string yang mewakili CloudWatch namespace untuk metrik.

  • Dimensi— Sebuah DimensionSet array.

  • Metrik— Susunan objek MetricDefinition. Array ini TIDAK HARUS berisi lebih dari 100 MetricDefinition objek.

DimensionSet array

A DimensionSet adalah array string yang berisi kunci dimensi yang akan diterapkan ke semua metrik dalam dokumen. Nilai-nilai dalam susunan ini HARUS juga menjadi anggota di simpul-akar—disebut sebagai Anggota target

A TIDAK DimensionSet HARUS berisi lebih dari 30 tombol dimensi. A DimensionSet mungkin kosong.

Anggota target HARUS memiliki sebuah nilai string. Nilai-nilai ini TIDAK BOLEH memuat lebih dari 1024 karakter. Anggota target menentukan sebuah dimensi yang akan diterbitkan sebagai bagian dari identitas metrik. Setiap DimensionSet yang digunakan menciptakan metrik baru di CloudWatch. Untuk informasi selengkapnya tentang dimensi, silakan lihat Dimensi dan Dimensi-dimensi.

{ "_aws": { "CloudWatchMetrics": [ { "Dimensions": [ [ "functionVersion" ] ], ... } ] }, "functionVersion": "$LATEST" }
catatan

Anda perlu berhati-hati ketika mengonfigurasi ekstraksi metrik Anda karena hal ini akan berdampak pada penggunaan metrik kustom dan penagihannya. Jika Anda secara tidak sengaja membuat metrik-metrik yang didasarkan pada dimensi yang memiliki kardinalitas tinggi (seperti requestId), maka format metrik tersemat akan berdasarkan desain membuat sebuah metrik kustom yang sesuai dengan masing-masing kombinasi dimensi yang unik. Untuk informasi selengkapnya, silakan lihat Dimensi.

MetricDefinition objek

A MetricDefinition adalah objek yang HARUS berisi anggota berikut:

  • Nama— Sebuah string Nilai referensi ke sebuah metrik Anggota target. Target metrik HARUS berupa sebuah nilai numerik atau susunan nilai-nilai numerik.

MetricDefinition Objek MUNGKIN berisi anggota berikut:

  • Unit— Sebuah nilai string OPSIONAL yang mewakili satuan pengukuran untuk metrik yang sesuai. Nilai HARUS satuan CloudWatch metrik yang valid. Untuk informasi tentang unit yang valid, lihat MetricDatum. Jika sebuah nilai tidak disediakan, maka nilai bawaan diasumsikan sebagai TIDAK ADA.

  • StorageResolution— Nilai integer OPSIONAL yang mewakili resolusi penyimpanan untuk metrik yang sesuai. Menyetel ini ke 1 menentukan metrik ini sebagai metrik resolusi tinggi, sehingga CloudWatch menyimpan metrik dengan resolusi sub-menit hingga satu detik. Menyetel ini ke 60 menentukan metrik ini sebagai resolusi standar, yang CloudWatch disimpan pada resolusi 1 menit. Nilai HARUS valid CloudWatch didukung resolusi, 1 atau 60. Jika sebuah nilai tidak disediakan, maka nilai bawaan diasumsikan 60.

    Untuk informasi selengkapnya tentang metrik resolusi tinggi, silakan lihat Metrik resolusi tinggi.

catatan

Jika Anda berencana untuk membuat alarm-alarm pada metrik yang telah dibuat dengan menggunakan format metrik tersemat, silakan lihat Menyetel alarm pada metrik-metrik yang dibuat dengan format metrik tersemat untuk rekomendasinya.

{ "_aws": { "CloudWatchMetrics": [ { "Metrics": [ { "Name": "Time", "Unit": "Milliseconds", "StorageResolution": 60 } ], ... } ] }, "Time": 1 }

Nilai referensi

Nilai-nilai referensi adalah nilai string yang mereferensikan anggota-anggota Anggota target pada simpul akar. Referensi-referensi ini TIDAK boleh disalahartikan dengan JSON Pointers yang dijelaskan dalam RFC6901. Nilai target tidak dapat disarangkan.

Anggota target

Target yang benar HARUS merupakan anggota pada simpul akar dan tidak dapat menjadi objek yang disarangkan. Sebagai contoh, suatu _reference_value "A.a" HARUS yang cocok dengan anggota-anggota berikut ini:

{ "A.a" }

TIDAK BOLEH cocok dengan anggota yang disarangkan:

{ "A": { "a" } }

Nilai yang benar dari anggota-anggota target bergantung pada hal yang mereferensikan mereka. Sebuah target metrik HARUS berupa sebuah nilai numerik atau susunan nilai-nilai numerik. Target metrik susunan numerik TIDAK BOLEH memiliki lebih dari 100 anggota. Sebuah target dimensi HARUS memiliki sebuah nilai string.

Contoh format metrik tersemat dan skema JSON

Berikut ini adalah sebuah contoh format metrik tersemat yang benar.

{ "_aws": { "Timestamp": 1574109732004, "CloudWatchMetrics": [ { "Namespace": "lambda-function-metrics", "Dimensions": [["functionVersion"]], "Metrics": [ { "Name": "time", "Unit": "Milliseconds", "StorageResolution": 60 } ] } ] }, "functionVersion": "$LATEST", "time": 100, "requestId": "989ffbf8-9ace-4817-a57c-e4dd734019ee" }

Anda dapat menggunakan skema berikut untuk melakukan validasi terhadap dokumen format metrik tersemat.

{ "type": "object", "title": "Root Node", "required": [ "_aws" ], "properties": { "_aws": { "$id": "#/properties/_aws", "type": "object", "title": "Metadata", "required": [ "Timestamp", "CloudWatchMetrics" ], "properties": { "Timestamp": { "$id": "#/properties/_aws/properties/Timestamp", "type": "integer", "title": "The Timestamp Schema", "examples": [ 1565375354953 ] }, "CloudWatchMetrics": { "$id": "#/properties/_aws/properties/CloudWatchMetrics", "type": "array", "title": "MetricDirectives", "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items", "type": "object", "title": "MetricDirective", "required": [ "Namespace", "Dimensions", "Metrics" ], "properties": { "Namespace": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Namespace", "type": "string", "title": "CloudWatch Metrics Namespace", "examples": [ "MyApp" ], "pattern": "^(.*)$", "minLength": 1, "maxLength": 1024 }, "Dimensions": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Dimensions", "type": "array", "title": "The Dimensions Schema", "minItems": 1, "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Dimensions/items", "type": "array", "title": "DimensionSet", "minItems": 0, "maxItems": 30, "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Dimensions/items/items", "type": "string", "title": "DimensionReference", "examples": [ "Operation" ], "pattern": "^(.*)$", "minLength": 1, "maxLength": 250 } } }, "Metrics": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics", "type": "array", "title": "MetricDefinitions", "items": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items", "type": "object", "title": "MetricDefinition", "required": [ "Name" ], "properties": { "Name": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items/properties/Name", "type": "string", "title": "MetricName", "examples": [ "ProcessingLatency" ], "pattern": "^(.*)$", "minLength": 1, "maxLength": 1024 }, "Unit": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items/properties/Unit", "type": "string", "title": "MetricUnit", "examples": [ "Milliseconds" ], "pattern": "^(Seconds|Microseconds|Milliseconds|Bytes|Kilobytes|Megabytes|Gigabytes|Terabytes|Bits|Kilobits|Megabits|Gigabits|Terabits|Percent|Count|Bytes\\/Second|Kilobytes\\/Second|Megabytes\\/Second|Gigabytes\\/Second|Terabytes\\/Second|Bits\\/Second|Kilobits\\/Second|Megabits\\/Second|Gigabits\\/Second|Terabits\\/Second|Count\\/Second|None)$" }, "StorageResolution": { "$id": "#/properties/_aws/properties/CloudWatchMetrics/items/properties/Metrics/items/properties/StorageResolution", "type": "integer", "title": "StorageResolution", "examples": [ 60 ] } } } } } } } } } } }