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 JSON spesifikasi 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. Bagian ini menjelaskan konvensi spesifikasi format metrik tertanam dan struktur dokumen format metrik yang disematkan.

Kesepakatan spesifikasi format metrik tersemat

Kata kunci “MUST”, “MUSTNOT”, “REQUIRED”, “SHALL”, “SHALLNOT”, “SHOULD”, “SHOULDNOT”, “RECOMMENDED”, “MAY”, dan “OPTIONAL” dalam spesifikasi format ini harus ditafsirkan seperti yang dijelaskan dalam Kata RFC2119 Kunci.

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

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 Notasi JavaScript RFC8259 Objek.

Kecuali dinyatakan lain, objek yang ditentukan oleh spesifikasi ini MUST NOT berisi anggota tambahan. Anggota yang tidak dikenali oleh spesifikasi ini MUST akan 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 yang disematkan, Anda dapat melacak pemrosesan EMF log berdasarkan metrik yang dipublikasikan di AWS/Logs namespace akun Anda. Ini dapat digunakan untuk melacak pembuatan metrik yang gagalEMF, serta apakah kegagalan terjadi karena penguraian atau validasi. Untuk detail selengkapnya lihat Pemantauan dengan CloudWatch metrik.

Simpul akar

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

Dokumen format metrik yang disematkan MUST berisi anggota tingkat atas berikut pada simpul akar. Ini adalah sebuah objek Objek metadata.

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

Node root MUST berisi semua Anggota target anggota yang ditentukan oleh referensi di fileMetricDirective objek.

Node root MAY berisi anggota lain yang tidak termasuk dalam persyaratan di atas. Nilai-nilai anggota MUST ini adalah JSON tipe yang valid.

Objek metadata

_awsAnggota dapat digunakan untuk mewakili metadata tentang payload yang menginformasikan layanan hilir bagaimana mereka harus memproses. LogEvent Nilai MUST menjadi objek dan MUST berisi 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 MUST dinyatakan sebagai jumlah milidetik setelah 1 Jan 1970 00:00:00UTC.

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

MetricDirective objek

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

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

  • Dimensi— Sebuah DimensionSet array.

  • Metrik— Susunan objek MetricDefinition. Array ini MUST NOT 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 array ini MUST juga menjadi anggota pada simpul akar — disebut sebagai Anggota target

A DimensionSet MUST NOT berisi lebih dari 30 tombol dimensi. A DimensionSet MAY menjadi kosong.

Anggota target MUST memiliki nilai string. Nilai ini MUST NOT mengandung 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 MUST berisi anggota berikut:

Sebuah MetricDefinition objek MAY berisi anggota berikut:

  • Satuan — Nilai OPTIONAL string yang mewakili satuan ukuran untuk metrik yang sesuai. Nilai SHOULD menjadi satuan CloudWatch metrik yang valid. Untuk informasi tentang unit yang valid, lihat MetricDatum. Jika nilai tidak disediakan, maka nilai default NONE diasumsikan.

  • StorageResolution— Nilai OPTIONAL integer 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 SHOULD menjadi resolusi yang CloudWatch didukung valid, 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 ini NOT harus dikacaukan dengan JSON Pointer yang dijelaskan dalam RFC6901. Nilai target tidak dapat disarangkan.

Anggota target

Target yang valid MUST menjadi anggota pada simpul akar dan tidak dapat menjadi objek bersarang. Misalnya, nilai _reference_ "A.a" MUST cocok dengan anggota berikut:

{ "A.a" }

Ini MUST NOT cocok dengan anggota bersarang:

{ "A": { "a" } }

Nilai yang benar dari anggota-anggota target bergantung pada hal yang mereferensikan mereka. Target metrik MUST menjadi nilai numerik atau array nilai numerik. Target metrik array numerik MUST NOT memiliki lebih dari 100 anggota. Target dimensi MUST memiliki nilai string.

Contoh dan JSON skema format metrik tertanam

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 ] } } } } } } } } } } }