View a markdown version of this page

Referensi skema peristiwa API Telemetri Lambda - AWS Lambda

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

Referensi skema peristiwa API Telemetri Lambda

Gunakan titik akhir API Telemetri Lambda untuk berlangganan ekstensi ke aliran telemetri. Anda dapat mengambil titik akhir API Telemetri dari variabel AWS_LAMBDA_RUNTIME_API lingkungan. Untuk mengirim permintaan API, tambahkan versi API (2022-07-01/) dantelemetry/. Contoh:

http://${AWS_LAMBDA_RUNTIME_API}/2022-07-01/telemetry/

Untuk definisi OpenAPI Specification (OAS) dari versi respons langganan2025-01-29, lihat berikut ini:

Tabel berikut adalah ringkasan dari semua jenis Event objek yang didukung Telemetri API.

Kategori Tipe peristiwa Deskripsi Skema catatan acara

Acara platform

platform.initStart

Inisialisasi fungsi dimulai.

Platform.initStartskema

Acara platform

platform.initRuntimeDone

Inisialisasi fungsi selesai.

platform.init RuntimeDoneskema

Acara platform

platform.initReport

Laporan inisialisasi fungsi.

Platform.InitReportskema

Acara platform

platform.start

Pemanggilan fungsi dimulai.

platform.startskema

Acara platform

platform.runtimeDone

Runtime selesai memproses acara dengan sukses atau gagal.

platform.runtimeDoneskema

Acara platform

platform.report

Laporan pemanggilan fungsi.

platform.reportskema

Acara platform

platform.restoreStart

Pemulihan runtime dimulai.

Platform.RestoreRestartskema

Acara platform

platform.restoreRuntimeDone

Pemulihan runtime selesai.

platform. Restore RuntimeDoneskema

Acara platform

platform.restoreReport

Laporan pemulihan runtime.

Platform.RestoreReportskema

Acara platform

platform.telemetrySubscription

Ekstensi berlangganan Telemetri API.

Platform.TelemetriLanggananskema

Acara platform

platform.logsDropped

Lambda menjatuhkan entri log.

Platform.LogsDitutupskema

Log fungsi

function

Baris log dari kode fungsi.

Fungsiskema

Log ekstensi:

extension

Baris log dari kode ekstensi.

luasskema

Telemetri API Jenis objek peristiwa

Bagian ini merinci jenis Event objek yang didukung Lambda Telemetry API. Dalam deskripsi acara, tanda tanya (?) menunjukkan bahwa atribut mungkin tidak ada dalam objek.

Platform.initStart

Per platform.initStart istiwa menunjukkan bahwa fase inisialisasi fungsi telah dimulai. Sebuah platform.initStart Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.initStart - record: PlatformInitStart

Ob PlatformInitStart jek memiliki atribut berikut:

  • Nama fungsi — String

  • Versi fungsi - String

  • initializationType — objek InitType

  • InstanceID? -- String

  • contohMaxMemory? -- Integer

  • fase InitPhase objek

  • Versi Runtime? -- String

  • waktu pelaksan VersionArn aan? -- String

Berikut ini adalah contoh Event tipeplatform.initStart:

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.initStart", "record": { "initializationType": "on-demand", "phase": "init", "runtimeVersion": "nodejs-14.v3", "runtimeVersionArn": "arn", "functionName": "myFunction", "functionVersion": "$LATEST", "instanceId": "82561ce0-53dd-47d1-90e0-c8f5e063e62e", "instanceMaxMemory": 256 } }

platform.init RuntimeDone

Per platform.initRuntimeDone istiwa menunjukkan bahwa fase inisialisasi fungsi telah selesai. Sebuah platform.initRuntimeDone Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.initRuntimeDone - record: PlatformInitRuntimeDone

Ob PlatformInitRuntimeDone jek memiliki atribut berikut:

Berikut ini adalah contoh Event tipeplatform.initRuntimeDone:

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.initRuntimeDone", "record": { "initializationType": "on-demand" "status": "success", "spans": [ { "name": "someTimeSpan", "start": "2022-06-02T12:02:33.913Z", "durationMs": 70.5 } ] } }

Platform.InitReport

Sebuah platform.initReport peristiwa berisi laporan keseluruhan dari fase inisialisasi fungsi. Sebuah platform.initReport Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.initReport - record: PlatformInitReport

Ob PlatformInitReport jek memiliki atribut berikut:

Berikut ini adalah contoh Event tipeplatform.initReport:

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.initReport", "record": { "initializationType": "on-demand", "status": "success", "phase": "init", "metrics": { "durationMs": 125.33 }, "spans": [ { "name": "someTimeSpan", "start": "2022-06-02T12:02:33.913Z", "durationMs": 90.1 } ] } }

platform.start

Per platform.start istiwa menunjukkan bahwa fase pemanggilan fungsi telah dimulai. Sebuah platform.start Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.start - record: PlatformStart

Ob PlatformStart jek memiliki atribut berikut:

  • Waktu Permintaan — String

  • versi? -- String

  • menelusuri? -- TraceContext

Berikut ini adalah contoh Event tipeplatform.start:

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.start", "record": { "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa", "version": "$LATEST", "tracing": { "spanId": "54565fb41ac79632", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" } } }

platform.runtimeDone

Per platform.runtimeDone istiwa menunjukkan bahwa fase pemanggilan fungsi telah selesai. Sebuah platform.runtimeDone Event objek memiliki bentuk sebagai berikut:

Instans Terkelola Lambda

A platform.runtimeDone cara ini tidak didukung untuk Instans Terkelola Lambda. Ekstensi yang berjalan pada Instans Terkelola tidak menerima acara ini karena ekstensi tidak dapat berlangganan INVOKE acara di Instans Terkelola. Karena model eksekusi bersamaan di mana beberapa pemanggilan dapat diproses secara bersamaan, ekstensi tidak dapat melakukan pemrosesan pasca-panggilan untuk pemanggilan individu seperti yang mereka lakukan secara tradisional pada fungsi Lambda (default).

Untuk Inst responseDuration ans Terkelola, rentang responseLatency dan yang biasanya disertakan di platform.runtimeDone dalamnya tersedia di platform.report acara tersebut. Lihat platform.report untuk detail.

Event: Object - time: String - type: String = platform.runtimeDone - record: PlatformRuntimeDone

Ob PlatformRuntimeDone jek memiliki atribut berikut:

Berikut ini adalah contoh Event tipeplatform.runtimeDone:

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.runtimeDone", "record": { "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa", "status": "success", "tracing": { "spanId": "54565fb41ac79632", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" }, "spans": [ { "name": "someTimeSpan", "start": "2022-08-02T12:01:23:521Z", "durationMs": 80.0 } ], "metrics": { "durationMs": 140.0, "producedBytes": 16 } } }

platform.report

Sebuah platform.report peristiwa berisi laporan keseluruhan dari fase pemanggilan fungsi. Sebuah platform.report Event objek memiliki bentuk sebagai berikut:

Instans Terkelola Lambda

Per platform.report istiwa untuk Instans Terkelola Lambda memiliki metrik dan rentang yang berbeda dibandingkan dengan fungsi Lambda (default). Untuk Instans Terkelola:

  • Rentang: Berisi responseLatency dan bu responseDuration kannya. extensionOverhead Rent extensionOverhead ang tidak tersedia karena ekstensi tidak dapat berlangganan INVOKE acara pada Instans Terkelola karena model eksekusi bersamaan.

  • Metrik: Hanya termasukdurationMs. Metrik berikut tidak termasuk:billedDurationMs,initDurationMs,maxMemoryUsedMB, danmemorySizeMB. Metrik per pemanggilan ini tidak berlaku di lingkungan eksekusi bersamaan. Untuk metrik pemanfaatan sumber daya, gunakan Memantau Instans Terkelola Lambda atau Lambda Insights.

Event: Object - time: String - type: String = platform.report - record: PlatformReport

Ob PlatformReport jek memiliki atribut berikut:

Berikut ini adalah contoh Event tipeplatform.report:

{ "time": "2022-10-12T00:01:15.000Z", "type": "platform.report", "record": { "metrics": { "billedDurationMs": 694, "durationMs": 693.92, "initDurationMs": 397.68, "maxMemoryUsedMB": 84, "memorySizeMB": 128 }, "requestId": "6d68ca91-49c9-448d-89b8-7ca3e6dc66aa", } }

Platform.RestoreRestart

Per platform.restoreStart istiwa menunjukkan bahwa peristiwa restorasi lingkungan fungsi dimulai. Dalam peristiwa pemulihan lingkungan, Lambda membuat lingkungan dari snapshot yang di-cache daripada menginisialisasi dari awal. Untuk informasi selengkapnya, lihat SnapStart. Sebuah platform.restoreStart Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.restoreStart - record: PlatformRestoreStart

Ob PlatformRestoreStart jek memiliki atribut berikut:

  • Nama fungsi — String

  • Versi fungsi - String

  • InstanceID? -- String

  • contohMaxMemory? -- String

  • Versi Runtime? -- String

  • waktu pelaksan VersionArn aan? -- String

Berikut ini adalah contoh Event tipeplatform.restoreStart:

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.restoreStart", "record": { "runtimeVersion": "nodejs-14.v3", "runtimeVersionArn": "arn", "functionName": "myFunction", "functionVersion": "$LATEST", "instanceId": "82561ce0-53dd-47d1-90e0-c8f5e063e62e", "instanceMaxMemory": 256 } }

platform. Restore RuntimeDone

Per platform.restoreRuntimeDone istiwa menunjukkan bahwa peristiwa restorasi lingkungan fungsi selesai. Dalam peristiwa pemulihan lingkungan, Lambda membuat lingkungan dari snapshot yang di-cache daripada menginisialisasi dari awal. Untuk informasi selengkapnya, lihat SnapStart. Sebuah platform.restoreRuntimeDone Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.restoreRuntimeDone - record: PlatformRestoreRuntimeDone

Ob PlatformRestoreRuntimeDone jek memiliki atribut berikut:

  • Jenis kesalahan? -- String

  • bentang? — Daftar Rentang objek

  • status Status objek

Berikut ini adalah contoh Event tipeplatform.restoreRuntimeDone:

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.restoreRuntimeDone", "record": { "status": "success", "spans": [ { "name": "someTimeSpan", "start": "2022-08-02T12:01:23:521Z", "durationMs": 80.0 } ] } }

Platform.RestoreReport

Per platform.restoreReport istiwa berisi laporan keseluruhan dari peristiwa restorasi fungsi. Sebuah platform.restoreReport Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.restoreReport - record: PlatformRestoreReport

Ob PlatformRestoreReport jek memiliki atribut berikut:

Berikut ini adalah contoh Event tipeplatform.restoreReport:

{ "time": "2022-10-12T00:00:15.064Z", "type": "platform.restoreReport", "record": { "status": "success", "metrics": { "durationMs": 15.19 }, "spans": [ { "name": "someTimeSpan", "start": "2022-08-02T12:01:23:521Z", "durationMs": 30.0 } ] } }

ekstensi platform

Per extension istiwa berisi log dari kode ekstensi. Sebuah extension Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = extension - record: {}

Ob PlatformExtension jek memiliki atribut berikut:

  • acara — Daftar String

  • nama String

  • negara String

Berikut ini adalah contoh Event tipeplatform.extension:

{ "time": "2022-10-12T00:02:15.000Z", "type": "platform.extension", "record": { "events": [ "INVOKE", "SHUTDOWN" ], "name": "my-telemetry-extension", "state": "Ready" } }

Platform.TelemetriLangganan

A platform.telemetrySubscription cara berisi informasi tentang langganan ekstensi. Sebuah platform.telemetrySubscription Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.telemetrySubscription - record: PlatformTelemetrySubscription

Ob PlatformTelemetrySubscription jek memiliki atribut berikut:

  • nama String

  • negara String

  • jenis — Daftar String

Berikut ini adalah contoh Event tipeplatform.telemetrySubscription:

{ "time": "2022-10-12T00:02:35.000Z", "type": "platform.telemetrySubscription", "record": { "name": "my-telemetry-extension", "state": "Subscribed", "types": [ "platform", "function" ] } }

Platform.LogsDitutup

A platform.logsDropped cara berisi informasi tentang peristiwa yang dibatalkan. Lambda memancarkan platform.logsDropped peristiwa ketika fungsi mengeluarkan log pada tingkat yang terlalu tinggi bagi Lambda untuk memprosesnya. Ketika Lambda tidak dapat mengirim log ke CloudWatch atau ke ekstensi yang berlangganan Telemetri API pada tingkat yang dihasilkan fungsi, ia menjatuhkan log untuk mencegah eksekusi fungsi melambat. Sebuah platform.logsDropped Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = platform.logsDropped - record: PlatformLogsDropped

Ob PlatformLogsDropped jek memiliki atribut berikut:

  • Bytes yang Diturunkan — Integer

  • Catatan yang Diturunkan - Integer

  • alasan String

Berikut ini adalah contoh Event tipeplatform.logsDropped:

{ "time": "2022-10-12T00:02:35.000Z", "type": "platform.logsDropped", "record": { "droppedBytes": 12345, "droppedRecords": 123, "reason": "Some logs were dropped because the downstream consumer is slower than the logs production rate" } }

Fungsi

Sebuah function peristiwa berisi log dari kode fungsi. Sebuah function Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = function - record: {}

Format record bidang tergantung pada apakah log fungsi Anda diformat dalam teks biasa atau format JSON. untuk mempelajari lebih lanjut tentang opsi konfigurasi format log, lihat Mengkonfigurasi JSON dan format log teks biasa

Berikut ini adalah contoh Event tipe function di mana format log adalah teks biasa:

{ "time": "2022-10-12T00:03:50.000Z", "type": "function", "record": "[INFO] Hello world, I am a function!" }

Berikut ini adalah contoh Event tipe function di mana format log adalah JSON:

{ "time": "2022-10-12T00:03:50.000Z", "type": "function", "record": { "timestamp": "2022-10-12T00:03:50.000Z", "level": "INFO", "requestId": "79b4f56e-95b1-4643-9700-2807f4e68189", "message": "Hello world, I am a function!" } }
catatan

Jika versi skema yang Anda gunakan lebih tua dari 2022-12-13 versi, maka versi tersebut selalu "record" dirender sebagai string bahkan ketika format logging fungsi Anda dikonfigurasi sebagai JSON. Untuk Instans Terkelola Lambda, Anda harus menggunakan versi 2025-01-29 skema.

luas

Per extension istiwa berisi log dari kode ekstensi. Sebuah extension Event objek memiliki bentuk sebagai berikut:

Event: Object - time: String - type: String = extension - record: {}

Format record bidang tergantung pada apakah log fungsi Anda diformat dalam teks biasa atau format JSON. untuk mempelajari lebih lanjut tentang opsi konfigurasi format log, lihat Mengkonfigurasi JSON dan format log teks biasa

Berikut ini adalah contoh Event tipe extension di mana format log adalah teks biasa:

{ "time": "2022-10-12T00:03:50.000Z", "type": "extension", "record": "[INFO] Hello world, I am an extension!" }

Berikut ini adalah contoh Event tipe extension di mana format log adalah JSON:

{ "time": "2022-10-12T00:03:50.000Z", "type": "extension", "record": { "timestamp": "2022-10-12T00:03:50.000Z", "level": "INFO", "requestId": "79b4f56e-95b1-4643-9700-2807f4e68189", "message": "Hello world, I am an extension!" } }
catatan

Jika versi skema yang Anda gunakan lebih tua dari 2022-12-13 versi, maka versi tersebut selalu "record" dirender sebagai string bahkan ketika format logging fungsi Anda dikonfigurasi sebagai JSON. Untuk Instans Terkelola Lambda, Anda harus menggunakan versi 2025-01-29 skema.

Jenis objek bersama

Bagian ini merinci jenis objek bersama yang didukung Lambda Telemetry API.

InitPhase

Sebuah enum string yang menggambarkan fase ketika langkah inisialisasi terjadi. Dalam kebanyakan kasus, Lambda menjalankan kode inisialisasi fungsi selama fase. init Namun, dalam beberapa kasus kesalahan, Lambda dapat menjalankan kembali kode inisialisasi fungsi selama fase. invoke (Ini disebut init yang ditekan.)

  • Tipe String

  • Nilai yang valid - init | invoke | snap-start

InitReportMetrics

Objek yang berisi metrik tentang fase inisialisasi.

  • Tipe Object

Sebuah InitReportMetrics objek memiliki bentuk sebagai berikut:

InitReportMetrics: Object - durationMs: Double

Berikut ini adalah contoh InitReportMetrics objek:

{ "durationMs": 247.88 }

InitType

Sebuah enum string yang menjelaskan bagaimana Lambda menginisialisasi lingkungan.

  • Tipe String

  • Nilai yang valid - on-demand | provisioned-concurrency

ReportMetrics

Objek yang berisi metrik tentang fase yang telah selesai.

  • Tipe Object

Sebuah ReportMetrics objek memiliki bentuk sebagai berikut:

ReportMetrics: Object - billedDurationMs: Integer - durationMs: Double - initDurationMs?: Double - maxMemoryUsedMB: Integer - memorySizeMB: Integer - restoreDurationMs?: Double

Berikut ini adalah contoh ReportMetrics objek:

{ "billedDurationMs": 694, "durationMs": 693.92, "initDurationMs": 397.68, "maxMemoryUsedMB": 84, "memorySizeMB": 128 }

RestoreReportMetrics

Objek yang berisi metrik tentang fase restorasi yang telah selesai.

  • Tipe Object

Sebuah RestoreReportMetrics objek memiliki bentuk sebagai berikut:

RestoreReportMetrics: Object - durationMs: Double

Berikut ini adalah contoh RestoreReportMetrics objek:

{ "durationMs": 15.19 }

RuntimeDoneMetrics

Objek yang berisi metrik tentang fase pemanggilan.

  • Tipe Object

Sebuah RuntimeDoneMetrics objek memiliki bentuk sebagai berikut:

RuntimeDoneMetrics: Object - durationMs: Double - producedBytes?: Integer

Berikut ini adalah contoh RuntimeDoneMetrics objek:

{ "durationMs": 200.0, "producedBytes": 15 }

Rentang

Objek yang berisi detail tentang rentang. Rentang mewakili unit kerja atau operasi dalam jejak. Untuk informasi selengkapnya tentang rentang, lihat Span di halaman Tracing API di situs OpenTelemetry Docs.

Lambda mendukung rentang berikut untuk acara tersebut: platform.RuntimeDone

  • Rent responseLatency ang menjelaskan berapa lama waktu yang dibutuhkan fungsi Lambda Anda untuk mulai mengirim respons.

  • Rent responseDuration ang menjelaskan berapa lama waktu yang dibutuhkan fungsi Lambda Anda untuk menyelesaikan pengiriman seluruh respons.

  • Rent runtimeOverhead ang menjelaskan berapa lama waktu yang dibutuhkan runtime Lambda untuk memberi sinyal bahwa ia siap memproses pemanggilan fungsi berikutnya. Ini adalah berapa lama waktu yang dibutuhkan runtime untuk memanggil API pemanggilan berikutnya untuk mendapatkan acara berikutnya setelah mengembalikan respons fungsi Anda.

Berikut ini adalah contoh objek responseLatency span:

{ "name": "responseLatency", "start": "2022-08-02T12:01:23.521Z", "durationMs": 23.02 }

Status

Objek yang menggambarkan status fase inisialisasi atau pemanggilan. Jika statusnya salah failure satu atauerror, maka Status objek juga berisi errorType bidang yang menggambarkan kesalahan.

  • Tipe Object

  • Nilai status yang valid - success | failure | error | timeout

TraceContext

Objek yang menggambarkan sifat-sifat jejak.

  • Tipe Object

Sebuah TraceContext objek memiliki bentuk sebagai berikut:

TraceContext: Object - spanId?: String - type: TracingType enum - value: String

Berikut ini adalah contoh TraceContext objek:

{ "spanId": "073a49012f3c312e", "type": "X-Amzn-Trace-Id", "value": "Root=1-62e900b2-710d76f009d6e7785905449a;Parent=0efbd19962d95b05;Sampled=1" }

TracingType

Sebuah enum string yang menggambarkan jenis penelusuran dalam suatu TraceContext objek.

  • Tipe String

  • Nilai yang valid X-Amzn-Trace-Id