Mengirim log menggunakan titik akhir HLC (Log HLC) - CloudWatch Log Amazon

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

Mengirim log menggunakan titik akhir HLC (Log HLC)

Titik akhir HLC Logs (/services/collector/event) didasarkan pada format HTTP Log Collector (HLC).

Jika Anda menggunakan otentikasi token pembawa, selesaikan langkah-langkah penyiapan Menyiapkan otentikasi token pembawa sebelum melanjutkan.

Mode masukan

Setiap peristiwa adalah objek JSON dengan "event" bidang wajib. Bidang metadata opsional:"time",,"host","source","sourcetype". "index"

Acara tunggal:

{"event":"Hello world!","time":1486683865.0}

JSON array acara:

[ {"event":"msg1","time":1486683865.0}, {"event":"msg2","time":1486683866.0} ]

Acara bergabung/batch (tidak ada pembungkus array):

{"event":"msg1","time":1486683865.0}{"event":"msg2","time":1486683866.0}

Bidang acara (wajib)

"event"Bidang itu wajib. Nilainya dapat berupa jenis JSON:

{"event":"a string message"} {"event":{"message":"structured data","severity":"INFO"}} {"event":42} {"event":true}

Objek tanpa "event" bidang dilewati secara diam-diam:

{"message":"this is skipped — no event field"}

Bidang waktu (opsional)

"time"Bidang ini dalam detik epoch (bukan milidetik), dengan desimal opsional untuk presisi sub-detik.

format Contoh Ditafsirkan sebagai
Desimal "time":1486683865.500 1486683865500 ms
Bilangan Bulat "time":1486683865 1486683865000 ms
String (mengapung) "time":"1486683865.500" 1486683865500 ms
String (bilangan bulat) "time":"1486683865" 1486683865000 ms
Hilang (tidak ada bidang waktu) Waktu server saat ini
Tidak valid "time":"invalid" Waktu server saat ini

Content-Type

Hanya application/json diterima.

Jenis nilai JSON yang diterima

Tipe tingkat atas Perilaku
Objek dengan "event" Diterima
Objek tanpa "event" Dilewati
Array objek Setiap elemen diproses secara individual
Objek yang digabungkan Setiap objek diproses secara individual
Primitif (string, angka, boolean, null) Dilewati

Format titik akhir

URL titik akhir HLC mengikuti format ini:

https://logs.<region>.amazonaws.com/services/collector/event?logGroup=<name>&logStream=<name>[&entityName=<name>&entityEnvironment=<environment>]

Parameter yang diperlukan:

  • <region>— AWS Wilayah (misalnya,us-east-1,eu-west-1)

  • logGroup— Nama grup log yang dikodekan URL

  • logStream— Nama aliran log yang dikodekan URL

Parameter opsional:

Anda dapat secara opsional mengaitkan peristiwa log Anda dengan Service entitas dengan menyertakan parameter kueri berikut. Karena log yang dikirim melalui titik akhir HLC adalah telemetri khusus, mereka tidak secara otomatis terkait dengan entitas. Dengan menyediakan parameter ini, CloudWatch Log membuat entitas dengan KeyAttributes.Type set ke Service dan mengaitkannya dengan peristiwa log Anda. Ini memungkinkan fitur terkait Jelajahi CloudWatch untuk menghubungkan log ini dengan telemetri lain (metrik, jejak, dan log) dari layanan yang sama, sehingga memudahkan pemecahan masalah dan memantau aplikasi Anda di berbagai jenis sinyal. Untuk informasi selengkapnya tentang entitas dan telemetri terkait, lihat Menambahkan informasi terkait ke telemetri kustom.

  • entityName— Nama entitas layanan untuk dikaitkan dengan peristiwa log. Nilai ini disimpan sebagai entitas KeyAttributes.Name (misalnya, my-application atauapi.myservice.com).

  • entityEnvironment— Lingkungan tempat layanan di-host atau milik apa. Nilai ini disimpan sebagai entitas KeyAttributes.Environment (misalnya,, productionec2:default, ataueks:my-cluster/default).

Format permintaan

Kirim log menggunakan HTTP POST dengan header dan badan berikut:

Header:

  • Authorization: Bearer <your-bearer-token>

  • Content-Type: application/json

Format tubuh:

Badan permintaan harus dalam format JSON dengan array peristiwa:

{ "event": [ { "time": 1730141374.001, "event": "Application started successfully", "host": "web-server-1", "source": "application.log", "severity": "info" }, { "time": 1730141374.457, "event": "User login successful", "host": "web-server-1", "source": "auth.log", "user": "john.doe" } ] }

Deskripsi bidang:

  • time- Stempel waktu epoch Unix dalam hitungan detik, dengan desimal opsional untuk presisi sub-detik (opsional)

  • event— Pesan log atau data peristiwa (wajib)

  • host— Nama host sumber atau pengenal (opsional)

  • source— Pengidentifikasi sumber log (opsional)

Bidang kustom tambahan dapat dimasukkan sesuai kebutuhan.

Contoh permintaan

curl -X POST "https://logs.<region>.amazonaws.com/services/collector/event?logGroup=MyLogGroup&logStream=MyStream" \ -H "Authorization: Bearer ACWL<token>" \ -H "Content-Type: application/json" \ -d '{"event":{"message":"User logged in","user_id":"u-123"},"time":1486683865.0,"host":"web-01","source":"auth-service"}'

Praktik terbaik

Acara batching

Untuk kinerja dan efisiensi yang lebih baik:

  • Batch beberapa peristiwa dalam satu permintaan bila memungkinkan

  • Ukuran batch yang disarankan: 10—100 acara per permintaan

  • Ukuran permintaan maksimal: 1 MB

Penanganan kesalahan

Menerapkan penanganan kesalahan yang tepat dalam aplikasi Anda. Kode status HTTP umum:

  • 200 OK— Log berhasil dicerna

  • 400 Bad Request— Format atau parameter permintaan tidak valid

  • 401 Unauthorized— Token pembawa tidak valid atau kedaluwarsa

  • 403 Forbidden— Izin tidak mencukupi

  • 404 Not Found— Grup log atau aliran tidak ada

  • 429 Too Many Requests— Batas tarif terlampaui

  • 500 Internal Server Error— Kesalahan layanan (coba lagi dengan backoff eksponensial)

Batasan

  • Ukuran acara maksimal: 256 KB per acara

  • Ukuran permintaan maksimal: 1 MB

  • Maksimum acara per permintaan: 10.000

  • Nama grup log harus mengikuti konvensi penamaan CloudWatch Log

  • Otentikasi token pembawa harus diaktifkan pada grup log jika otentikasi token pembawa digunakan.