

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

# Pemantauan, debugging, dan pemecahan masalah fungsi Lambda
<a name="lambda-monitoring"></a>

AWS Lambda terintegrasi dengan yang lain Layanan AWS untuk membantu Anda memantau dan memecahkan masalah fungsi Lambda Anda. Lambda secara otomatis memantau fungsi Lambda atas nama Anda dan melaporkan metrik melalui Amazon. CloudWatch Untuk membantu Anda memantau kode ketika dijalankan, Lambda secara otomatis melacak jumlah permintaan, durasi invokasi per permintaan, dan jumlah permintaan yang menghasilkan kesalahan. 

Anda dapat menggunakan yang lain Layanan AWS untuk memecahkan masalah fungsi Lambda Anda. Bagian ini menjelaskan cara menggunakannya Layanan AWS untuk memantau, melacak, men-debug, dan memecahkan masalah fungsi dan aplikasi Lambda Anda. Untuk detail tentang pencatatan fungsi dan kesalahan di setiap runtime, lihat bagian runtime individual. 

**Topics**
+ [Harga](#monitoring-console-metrics-pricing)
+ [Menggunakan CloudWatch metrik dengan Lambda](monitoring-metrics.md)
+ [Bekerja dengan log fungsi Lambda](monitoring-logs.md)
+ [Logging panggilan AWS Lambda API menggunakan AWS CloudTrail](logging-using-cloudtrail.md)
+ [Visualisasikan pemanggilan fungsi Lambda menggunakan AWS X-Ray](services-xray.md)
+ [Pantau kinerja fungsi dengan Amazon CloudWatch Lambda Insights](monitoring-insights.md)
+ [Memantau aplikasi Lambda](applications-console-monitoring.md)
+ [Pantau kinerja aplikasi dengan Sinyal CloudWatch Aplikasi Amazon](monitoring-application-signals.md)
+ [Debug fungsi Lambda dari jarak jauh dengan Visual Studio Code](debugging.md)

## Harga
<a name="monitoring-console-metrics-pricing"></a>

CloudWatch memiliki tingkat bebas abadi. Di luar ambang batas tingkat gratis, CloudWatch biaya untuk metrik, dasbor, alarm, log, dan wawasan. Untuk informasi selengkapnya, lihat [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/#Vended_Logs).

# Menggunakan CloudWatch metrik dengan Lambda
<a name="monitoring-metrics"></a>

Saat AWS Lambda fungsi Anda selesai memproses peristiwa, Lambda secara otomatis mengirimkan metrik tentang pemanggilan ke Amazon. CloudWatch Anda tidak perlu memberikan izin tambahan apa pun ke peran eksekusi Anda untuk menerima metrik fungsi, dan tidak ada biaya tambahan untuk metrik ini.

Ada banyak jenis metrik yang terkait dengan fungsi Lambda. Ini termasuk metrik pemanggilan, metrik kinerja, metrik konkurensi, metrik pemanggilan asinkron, dan metrik pemetaan sumber peristiwa. Untuk informasi selengkapnya, lihat [Jenis metrik untuk fungsi Lambda](monitoring-metrics-types.md).

Di CloudWatch konsol, Anda dapat [melihat metrik ini](monitoring-metrics-view.md) dan membuat grafik dan dasbor dengannya. Anda juga dapat mengatur alarm untuk merespons perubahan dalam pemanfaatan, kinerja, atau tingkat kesalahan. Lambda mengirimkan data metrik ke CloudWatch dalam interval 1 menit. Untuk wawasan lebih cepat tentang fungsi Lambda Anda, Anda dapat membuat metrik kustom [resolusi tinggi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html). Biaya berlaku untuk metrik dan CloudWatch alarm khusus. Untuk informasi selengkapnya, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

# Melihat metrik untuk fungsi Lambda
<a name="monitoring-metrics-view"></a>

Gunakan CloudWatch konsol untuk melihat metrik fungsi Lambda Anda. Di konsol, Anda dapat memfilter dan mengurutkan metrik fungsi berdasarkan nama fungsi, alias, versi, atau pemetaan sumber peristiwa UUID.

**Untuk melihat metrik di konsol CloudWatch**

1. Buka [halaman Metrik](https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#metricsV2:graph=~();namespace=~'AWS*2fLambda) (`AWS/Lambda`namespace) konsol. CloudWatch 

1. Pada tab **Browse**, di bawah **Metrik**, pilih salah satu dimensi berikut:
   + **Menurut Nama Fungsi** (`FunctionName`) – Lihat metrik gabungan untuk semua versi dan alias fungsi.
   + **Menurut Sumber Daya** (`Resource`) – Lihat metrik untuk versi atau alias fungsi.
   + **Menurut Versi yang Dieksekusi** (`ExecutedVersion`) – Lihat metrik untuk kombinasi alias dan versi. Gunakan dimensi `ExecutedVersion` untuk membandingkan tingkat kesalahan untuk dua versi fungsi yang keduanya adalah target [alias tertimbang](configuration-aliases.md).
   + **Berdasarkan Pemetaan Sumber Peristiwa UUID** (`EventSourceMappingUUID`) — Lihat metrik untuk pemetaan sumber peristiwa.
   + **Di Seluruh Fungsi** (tidak ada) - Lihat metrik agregat untuk semua fungsi saat ini. Wilayah AWS

1. Pilih metrik. Metrik akan secara otomatis muncul di grafik visual, serta di bawah tab **Metrik grafik**.

Secara default, grafik menggunakan statistik `Sum` untuk semua metrik. Untuk memilih statistik yang berbeda dan menyesuaikan grafik, gunakan opsi pada tab **Metrik bergrafik**.

**catatan**  
Waktu yang tertera pada metrik mencerminkan saat fungsi diaktifkan. Tergantung pada durasi pemanggilan, ini bisa beberapa menit sebelum metrik dipancarkan. Misalnya, jika fungsi Anda memiliki batas waktu 10 menit, lihat lebih dari 10 menit sebelumnya untuk metrik yang akurat.

Untuk informasi selengkapnya CloudWatch, lihat [Panduan CloudWatch Pengguna Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html).

# Jenis metrik untuk fungsi Lambda
<a name="monitoring-metrics-types"></a>

Bagian ini menjelaskan jenis metrik Lambda yang tersedia di konsol. CloudWatch 

**Topics**
+ [Metrik invokasi](#invocation-metrics)
+ [Metrik penyebaran](#deployment-metrics)
+ [Metrik kinerja](#performance-metrics)
+ [Metrik konkurensi](#concurrency-metrics)
+ [Metrik pemanggilan asinkron](#async-invocation-metrics)
+ [Metrik pemetaan sumber acara](#event-source-mapping-metrics)

## Metrik invokasi
<a name="invocation-metrics"></a>

Metrik pemanggilan adalah indikator biner dari hasil pemanggilan fungsi Lambda. Lihat metrik ini dengan `Sum` statistik. Misalnya, jika fungsi mengembalikan kesalahan, maka Lambda mengirimkan `Errors` metrik dengan nilai 1. Untuk mendapatkan hitungan jumlah kesalahan fungsi yang terjadi setiap menit, lihat `Errors` metrik dengan jangka waktu 1 menit. `Sum`
+ `Invocations`— Berapa kali kode fungsi Anda dipanggil, termasuk pemanggilan dan pemanggilan yang berhasil yang menghasilkan kesalahan fungsi. Pemanggilan tidak direkam jika permintaan pemanggilan dibatasi atau menghasilkan kesalahan pemanggilan. Nilai `Invocations` sama dengan jumlah permintaan yang ditagih.
+ `Errors` – Jumlah invokasi yang mengakibatkan kesalahan fungsi. Kesalahan fungsi mencakup pengecualian yang dilemparkan kode Anda dan pengecualian yang dilemparkan oleh runtime Lambda. Runtime mengembalikan kesalahan untuk masalah seperti waktu habis dan kesalahan konfigurasi. Untuk menghitung tingkat kesalahan, bagi nilai `Errors` dengan nilai `Invocations`. Perhatikan bahwa stempel waktu pada metrik kesalahan mencerminkan ketika fungsi dipanggil, bukan ketika kesalahan terjadi.
+ `DeadLetterErrors`— Untuk [pemanggilan asinkron](invocation-async.md), berapa kali Lambda mencoba mengirim acara ke antrian huruf mati (DLQ) tetapi gagal. Kesalahan huruf mati dapat terjadi karena salah mengatur sumber daya atau batas ukuran.
+ `DestinationDeliveryFailures`[— Untuk pemanggilan asinkron dan [pemetaan sumber peristiwa](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html) yang didukung, berapa kali Lambda mencoba mengirim acara ke tujuan tetapi gagal.](invocation-async-retain-records.md#invocation-async-destinations) Untuk pemetaan sumber peristiwa, Lambda mendukung tujuan untuk sumber aliran (DynamoDB dan Kinesis). Kesalahan pengiriman dapat terjadi karena kesalahan izin, sumber daya yang tidak dikonfigurasi dengan benar, atau batas ukuran. Kesalahan juga dapat terjadi jika tujuan yang telah Anda konfigurasikan adalah tipe yang tidak didukung seperti antrian FIFO Amazon SQS atau topik FIFO Amazon SNS.
+ `Throttles` – Jumlah permintaan invokasi yang ditrotel. Ketika semua instance fungsi memproses permintaan dan tidak ada konkurensi yang tersedia untuk ditingkatkan, Lambda menolak permintaan tambahan dengan kesalahan. `TooManyRequestsException` Permintaan yang dibatasi dan kesalahan pemanggilan lainnya tidak dihitung sebagai salah satu atau. `Invocations` `Errors`
**catatan**  
Dengan [Instans Terkelola Lambda,](lambda-managed-instances.md) Lambda menyediakan metrik throttle granular yang mengidentifikasi batasan spesifik yang menyebabkan throttle. Ketika throttle terjadi pada lingkungan eksekusi, tepat salah satu sub-metrik berikut dipancarkan dengan nilai 1, sedangkan tiga sisanya dipancarkan dengan nilai 0. `Throttles`Metrik selalu dipancarkan bersama sub-metrik ini.  
`CPUThrottles`— Pemanggilan dibatasi karena kelelahan CPU pada lingkungan eksekusi.
`MemoryThrottles`— Pemanggilan terhambat karena kelelahan memori pada lingkungan eksekusi.
`DiskThrottles`— Pemanggilan terhambat karena kelelahan disk pada lingkungan eksekusi.
`ConcurrencyThrottles`— Pemanggilan dibatasi ketika batas konkurensi lingkungan eksekusi tercapai.
+ `OversizedRecordCount`— Untuk sumber acara Amazon DocumentDB, jumlah peristiwa yang diterima fungsi Anda dari aliran perubahan Anda yang berukuran lebih dari 6 MB. Lambda menjatuhkan pesan dan memancarkan metrik ini.
+ `ProvisionedConcurrencyInvocations`— Berapa kali kode fungsi Anda dipanggil menggunakan konkurensi yang [disediakan](provisioned-concurrency.md).
+ `ProvisionedConcurrencySpilloverInvocations`— Berapa kali kode fungsi Anda dipanggil menggunakan konkurensi standar ketika semua konkurensi yang disediakan sedang digunakan.
+ `RecursiveInvocationsDropped`— Berapa kali Lambda menghentikan pemanggilan fungsi Anda karena telah mendeteksi bahwa fungsi Anda adalah bagian dari loop rekursif tak terbatas. Deteksi loop rekursif memantau berapa kali fungsi dipanggil sebagai bagian dari rantai permintaan dengan melacak metadata yang ditambahkan oleh didukung. AWS SDKs Secara default, jika fungsi Anda dipanggil sebagai bagian dari rantai permintaan sekitar 16 kali, Lambda akan menghentikan pemanggilan berikutnya. Jika Anda menonaktifkan deteksi loop rekursif, metrik ini tidak dipancarkan. Untuk informasi selengkapnya tentang fitur ini, lihat [Gunakan deteksi loop rekursif Lambda untuk mencegah loop tak terbatas](invocation-recursion.md).

## Metrik penyebaran
<a name="deployment-metrics"></a>

Metrik penerapan memberikan informasi tentang peristiwa penerapan fungsi Lambda dan proses validasi terkait.
+ `SignatureValidationErrors`— Berapa kali penyebaran paket kode terjadi dengan kegagalan validasi tanda tangan saat kebijakan konfigurasi penandatanganan kode disetel ke. `Warn` Metrik ini dipancarkan saat pemeriksaan kedaluwarsa, ketidakcocokan, atau pencabutan gagal tetapi penerapan masih diizinkan karena pengaturan kebijakan. `Warn` Untuk informasi selengkapnya tentang penandatanganan kode, lihat [Menggunakan penandatanganan kode untuk memverifikasi integritas kode dengan Lambda](configuration-codesigning.md).

## Metrik kinerja
<a name="performance-metrics"></a>

Metrik kinerja memberikan detail kinerja tentang pemanggilan fungsi tunggal. Misalnya, metrik `Duration` menunjukkan jumlah waktu dalam milidetik yang digunakan oleh fungsi Anda untuk memproses suatu acara. Untuk mengetahui seberapa cepat fungsi Anda memproses peristiwa, lihat metrik ini dengan statistik `Average` atau `Max`.
+ `Duration` – Jumlah waktu yang digunakan kode fungsi Anda untuk memproses suatu peristiwa. Durasi tagihan untuk pemanggilan adalah nilai `Duration` dibulatkan ke milidetik terdekat. `Duration`tidak termasuk waktu mulai dingin.
+ `PostRuntimeExtensionsDuration` – Jumlah kumulatif waktu yang runtime habiskan untuk menjalankan kode untuk ekstensi setelah kode fungsi selesai.
+ `IteratorAge`— Untuk sumber acara DynamoDB, Kinesis, dan Amazon DocumentDB, usia rekaman terakhir dalam acara dalam milidetik. Metrik ini mengukur waktu antara saat aliran menerima rekaman dan saat pemetaan sumber peristiwa mengirimkan peristiwa ke fungsi.
+ `OffsetLag`— Untuk sumber acara Apache Kafka dan Amazon Managed Streaming for Apache Kafka (Amazon MSK) yang dikelola sendiri, perbedaan offset antara catatan terakhir yang ditulis ke topik dan catatan terakhir yang diproses oleh grup konsumen fungsi Anda. Meskipun topik Kafka dapat memiliki beberapa partisi, metrik ini mengukur lag offset pada tingkat topik.

`Duration`juga mendukung statistik persentil (`p`). Gunakan persentil untuk mengecualikan nilai outlier yang miring dan statistik. `Average` `Maximum` Misalnya, `p95` statistik menunjukkan durasi maksimum 95 persen pemanggilan, tidak termasuk 5 persen paling lambat. Untuk informasi selengkapnya, lihat [Persentil](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Percentiles) di * CloudWatch Panduan Pengguna Amazon*.

## Metrik konkurensi
<a name="concurrency-metrics"></a>

Lambda melaporkan metrik konkurensi sebagai jumlah agregat dari jumlah instance yang memproses peristiwa di seluruh fungsi, versi, alias, atau. Wilayah AWS Untuk melihat seberapa dekat Anda dengan mencapai [batas konkurensi](lambda-concurrency.md#concurrency-quotas), lihat metrik ini dengan statistik. `Max`
+ `ConcurrentExecutions` – Jumlah instans fungsi yang memproses peristiwa. Jika nomor ini mencapai [kuota eksekusi bersamaan](gettingstarted-limits.md#compute-and-storage) untuk Wilayah, atau batas [konkurensi cadangan](configuration-concurrency.md) pada fungsi, maka Lambda membatasi permintaan pemanggilan tambahan.
+ `ProvisionedConcurrentExecutions`— Jumlah instance fungsi yang memproses peristiwa menggunakan konkurensi yang [disediakan](provisioned-concurrency.md). Untuk setiap invokasi alias atau versi dengan konkurensi tersedia, Lambda mengeluarkan jumlah saat ini. Jika fungsi Anda tidak aktif atau tidak menerima permintaan, Lambda tidak memancarkan metrik ini.
+ `ProvisionedConcurrencyUtilization`— Untuk versi atau alias, nilai `ProvisionedConcurrentExecutions` dibagi dengan jumlah total konkurensi yang disediakan dikonfigurasi. Misalnya, jika Anda mengonfigurasi konkurensi 10 yang disediakan untuk fungsi Anda, dan Anda `ProvisionedConcurrentExecutions` adalah 7, maka Anda `ProvisionedConcurrencyUtilization` adalah 0,7.

  Jika fungsi Anda tidak aktif atau tidak menerima permintaan, Lambda tidak memancarkan metrik ini karena didasarkan pada. `ProvisionedConcurrentExecutions` Ingatlah hal ini jika Anda menggunakan `ProvisionedConcurrencyUtilization` sebagai dasar untuk CloudWatch alarm.
+ `UnreservedConcurrentExecutions`— Untuk Wilayah, jumlah peristiwa yang berfungsi tanpa konkurensi cadangan sedang diproses.
+ `ClaimedAccountConcurrency`— Untuk Wilayah, jumlah konkurensi yang tidak tersedia untuk pemanggilan sesuai permintaan. `ClaimedAccountConcurrency`sama dengan `UnreservedConcurrentExecutions` ditambah jumlah konkurensi yang dialokasikan (yaitu total konkurensi cadangan ditambah total konkurensi yang disediakan). Untuk informasi selengkapnya, lihat [Bekerja dengan `ClaimedAccountConcurrency` metrik](monitoring-concurrency.md#claimed-account-concurrency).

## Metrik pemanggilan asinkron
<a name="async-invocation-metrics"></a>

Metrik pemanggilan asinkron memberikan detail tentang pemanggilan asinkron dari sumber acara dan pemanggilan langsung. Anda dapat mengatur ambang batas dan alarm untuk memberi tahu Anda tentang perubahan tertentu. Misalnya, ketika ada peningkatan yang tidak diinginkan dalam jumlah acara yang diantri untuk pemrosesan (). `AsyncEventsReceived` Atau, ketika suatu acara telah menunggu lama untuk diproses (`AsyncEventAge`).
+ `AsyncEventsReceived`— Jumlah acara yang berhasil diantri Lambda untuk diproses. Metrik ini memberikan wawasan tentang jumlah peristiwa yang diterima fungsi Lambda. Pantau metrik ini dan setel alarm untuk ambang batas untuk memeriksa masalah. Misalnya, untuk mendeteksi sejumlah peristiwa yang tidak diinginkan yang dikirim ke Lambda, dan untuk dengan cepat mendiagnosis masalah yang dihasilkan dari pemicu atau konfigurasi fungsi yang salah. Ketidakcocokan antara `AsyncEventsReceived` dan `Invocations` dapat menunjukkan perbedaan dalam pemrosesan, peristiwa yang dijatuhkan, atau potensi backlog antrian.
+ `AsyncEventAge`— Waktu antara ketika Lambda berhasil mengantri acara dan ketika fungsi dipanggil. Nilai metrik ini meningkat ketika peristiwa sedang dicoba ulang karena kegagalan pemanggilan atau pelambatan. Pantau metrik ini dan atur alarm untuk ambang batas pada statistik yang berbeda saat terjadi penumpukan antrian. Untuk memecahkan masalah peningkatan metrik ini, lihat metrik untuk mengidentifikasi kesalahan fungsi dan `Errors` metrik untuk mengidentifikasi masalah konkurensi. `Throttles`
+ `AsyncEventsDropped`— Jumlah peristiwa yang dijatuhkan tanpa berhasil menjalankan fungsi. Jika Anda mengonfigurasi antrian surat mati (DLQ) atau `OnFailure` tujuan, maka acara dikirim ke sana sebelum dijatuhkan. Acara dijatuhkan karena berbagai alasan. Misalnya, peristiwa dapat melebihi usia peristiwa maksimum atau menghabiskan upaya percobaan ulang maksimum, atau konkurensi cadangan dapat disetel ke 0. Untuk memecahkan masalah mengapa peristiwa dijatuhkan, lihat `Errors` metrik untuk mengidentifikasi kesalahan fungsi dan `Throttles` metrik untuk mengidentifikasi masalah konkurensi.

## Metrik pemetaan sumber acara
<a name="event-source-mapping-metrics"></a>

Metrik pemetaan sumber peristiwa memberikan wawasan tentang perilaku pemrosesan pemetaan sumber peristiwa Anda.

Saat ini, metrik pemetaan sumber peristiwa tersedia untuk Amazon SQS, Kinesis, DynamoDB, Amazon MSK, dan sumber acara Apache Kafka yang dikelola sendiri.

**Untuk pemetaan sumber peristiwa dengan konfigurasi metrik, Anda juga dapat memeriksa semua metrik terkait ESM di tab **Monitor** dari halaman Konsol **Lambda** > Sumber daya **tambahan>** pemetaan sumber peristiwa sekarang.**

**Untuk mengaktifkan metrik atau pemetaan sumber peristiwa (konsol)**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi yang ingin Anda aktifkan metrik.

1. Pilih **Konfigurasi**, lalu pilih **Pemicu.**

1. **Pilih pemetaan sumber peristiwa yang ingin Anda aktifkan metrik, lalu pilih Edit.**

1. Di bawah **Konfigurasi pemetaan sumber peristiwa**, pilih **Aktifkan metrik** atau pilih dari daftar dropdown **Metrik**.

1. Pilih **Simpan**.

Atau, Anda dapat mengaktifkan metrik untuk pemetaan sumber peristiwa Anda secara terprogram menggunakan objek di [ EventSourceMappingMetricsConfig](https://docs.aws.amazon.com/lambda/latest/api/API_EventSourceMappingMetricsConfig.html)Anda. [EventSourceMappingConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_EventSourceMappingConfiguration.html) Misalnya, perintah [UpdateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateEventSourceMapping.html)CLI berikut memungkinkan metrik untuk pemetaan sumber peristiwa:

```
aws lambda update-event-source-mapping \
    --uuid a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \
    --metrics-config Metrics=EventCount
```

Ada 3 metrik goups:`EventCount`, `ErrorCount` dan`KafkaMetrics`, dan setiap grup memiliki multi metrik. Tidak setiap metrik tersedia untuk setiap sumber acara. Tabel berikut merangkum metrik yang didukung untuk setiap jenis sumber peristiwa.

Anda harus ikut serta dalam grup metrik untuk menerima metrik terkait metrik. misalnya diatur EventCount dalam konfigurasi metrik untuk memiliki: (`PolledEventCount`,,,,, `FilteredOutEventCount``InvokedEventCount`, `FailedInvokeEventCount` dan). `DroppedEventCount` `OnFailureDestinationDeliveredEventCount` `DeletedEventCount` 


| Metrik pemetaan sumber peristiwa | Grup metrik | Amazon SQS | Aliran Kinesis dan DynamoDB | Amazon MSK dan Apache Kafka yang dikelola sendiri | 
| --- | --- | --- | --- | --- | 
|  `PolledEventCount`  |  `EventCount`  |  Ya  |  Ya  |  Ya  | 
|  `FilteredOutEventCount`  |  `EventCount`  |  Ya  |  Ya  |  Ya  | 
|  `InvokedEventCount`  |  `EventCount`  |  Ya  |  Ya  |  Ya  | 
|  `FailedInvokeEventCount`  |  `EventCount`  |  Ya  |  Ya  |  Ya  | 
|  `DroppedEventCount`  |  `EventCount`  |  Tidak  |  Ya  |  Ya  | 
|  `OnFailureDestinationDeliveredEventCount`  |  `EventCount`  |  Tidak  |  Ya  |  Ya  | 
|  `DeletedEventCount`  |  `EventCount`  |  Ya  |  Tidak  |  Tidak  | 
|  `CommittedEventCount`  |  `EventCount`  |  Tidak  |  Tidak  |  Ya  | 
|  `PollingErrorCount`  |  `ErrorCount`  |  Tidak  |  Tidak  |  Ya  | 
|  `InvokeErrorCount`  |  `ErrorCount`  |  Tidak  |  Tidak  |  Ya  | 
|  `OnFailureDestinationDeliveryErrorCount`  |  `ErrorCount`  |  Tidak  |  Tidak  |  Ya  | 
|  `SchemaRegistryErrorCount`  |  `ErrorCount`  |  Tidak  |  Tidak  |  Ya  | 
|  `CommitErrorCount`  |  `ErrorCount`  |  Tidak  |  Tidak  |  Ya  | 
|  `MaxOffsetLag`  |  `KafkaMetrics`  |  Tidak  |  Tidak  |  Ya  | 
|  `SumOffsetLag`  |  `KafkaMetrics`  |  Tidak  |  Tidak  |  Ya  | 

Selain itu, jika pemetaan sumber peristiwa Anda dalam mode yang [disediakan,](invocation-eventsourcemapping.md#invocation-eventsourcemapping-provisioned-mode) Lambda menyediakan metrik berikut:
+ `ProvisionedPollers`— Untuk pemetaan sumber acara dalam mode yang disediakan, jumlah poller acara yang aktif berjalan. Lihat metrik ini menggunakan `MAX` matematika.
+ (Amazon MSK dan sumber acara Apache Kafka yang dikelola sendiri saja) `EventPollerUnit` - Untuk pemetaan sumber acara dalam mode yang disediakan, jumlah unit poller acara yang aktif berjalan. Lihat metrik ini menggunakan `SUM` matematika.
+ (Amazon MSK dan sumber acara Apache Kafka yang dikelola sendiri) `EventPollerThroughputInBytes` - Untuk pemetaan sumber acara dalam mode yang disediakan, total ukuran catatan poller acara yang disurvei dari sumber acara. Ini dapat memberi tahu Anda throughput polling saat ini. Lihat metrik ini menggunakan `SUM` matematika.

Berikut ini detail lebih lanjut tentang masing-masing metrik:
+ `PolledEventCount`— Jumlah acara yang berhasil dibaca Lambda dari sumber acara. Jika Lambda melakukan polling untuk acara tetapi menerima polling kosong (tidak ada catatan baru), Lambda mengeluarkan nilai 0 untuk metrik ini. Gunakan metrik ini untuk mendeteksi apakah pemetaan sumber peristiwa Anda melakukan polling dengan benar untuk peristiwa baru.
+ `FilteredOutEventCount`— Untuk pemetaan sumber peristiwa dengan [kriteria filter](invocation-eventfiltering.md), jumlah peristiwa yang disaring oleh kriteria filter tersebut. Gunakan metrik ini untuk mendeteksi apakah pemetaan sumber peristiwa Anda memfilter peristiwa dengan benar. Untuk peristiwa yang cocok dengan kriteria filter, Lambda memancarkan metrik 0.
+ `InvokedEventCount`— Jumlah acara yang memanggil fungsi Lambda Anda. Gunakan metrik ini untuk memverifikasi bahwa peristiwa menjalankan fungsi Anda dengan benar. Jika suatu peristiwa menghasilkan kesalahan fungsi atau pelambatan, `InvokedEventCount` dapat dihitung beberapa kali untuk acara polling yang sama karena percobaan ulang otomatis.
**Awas**  
Pemetaan sumber peristiwa Lambda memproses setiap peristiwa setidaknya sekali, dan pemrosesan duplikat catatan dapat terjadi. Karena itu, peristiwa dapat dihitung beberapa kali dalam metrik yang melibatkan jumlah peristiwa.
+ `FailedInvokeEventCount`— Jumlah peristiwa yang Lambda coba panggil fungsi Anda, tetapi gagal. Pemanggilan dapat gagal karena alasan seperti masalah konfigurasi jaringan, izin yang salah, atau fungsi, versi, atau alias Lambda yang dihapus. Jika pemetaan sumber peristiwa Anda mengaktifkan [respons batch sebagian](services-sqs-errorhandling.md#services-sqs-batchfailurereporting), `FailedInvokeEventCount` sertakan peristiwa apa pun dengan respons yang tidak kosong`BatchItemFailures`.
**catatan**  
Stempel waktu untuk `FailedInvokeEventCount` metrik mewakili akhir dari pemanggilan fungsi. Perilaku ini berbeda dari metrik kesalahan pemanggilan Lambda lainnya, yang diberi cap waktu pada awal pemanggilan fungsi.
+ `DroppedEventCount`— Jumlah peristiwa yang Lambda turun karena kedaluwarsa atau coba lagi kelelahan. Secara khusus, ini adalah jumlah catatan yang melebihi nilai yang dikonfigurasi untuk `MaximumRecordAgeInSeconds` atau`MaximumRetryAttempts`. Yang penting, ini tidak termasuk jumlah catatan yang kedaluwarsa karena melebihi pengaturan retensi sumber acara Anda. Peristiwa yang dijatuhkan juga mengecualikan peristiwa yang Anda kirim ke tujuan yang [gagal](invocation-async-retain-records.md). Gunakan metrik ini untuk mendeteksi tumpukan peristiwa yang meningkat.
+ `OnFailureDestinationDeliveredEventCount`— Untuk pemetaan sumber peristiwa dengan [tujuan yang gagal](invocation-async-retain-records.md) dikonfigurasi, jumlah peristiwa yang dikirim ke tujuan tersebut. Gunakan metrik ini untuk memantau kesalahan fungsi yang terkait dengan pemanggilan dari sumber acara ini. Jika pengiriman ke tujuan gagal, Lambda menangani metrik sebagai berikut:
  + Lambda tidak memancarkan metrik. `OnFailureDestinationDeliveredEventCount`
  + Untuk `DestinationDeliveryFailures` metrik, Lambda memancarkan 1.
  + Untuk `DroppedEventCount` metrik, Lambda memancarkan angka yang sama dengan jumlah peristiwa yang gagal pengiriman.
+ `DeletedEventCount`— Jumlah peristiwa yang berhasil dihapus Lambda setelah diproses. Jika Lambda mencoba menghapus peristiwa tetapi gagal, Lambda memancarkan metrik 0. Gunakan metrik ini untuk memastikan bahwa peristiwa yang berhasil diproses dihapus dari sumber acara Anda.
+ `CommittedEventCount`— Jumlah acara yang berhasil dilakukan Lambda setelah diproses. Ini adalah jumlah delta offset komit terakhir dan saat ini dari setiap partisi dalam pemetaan sumber acara Kafka.
+ `PollingErrorCount`— Jumlah kesalahan yang Lambda gagal melakukan polling permintaan dari sumber acara. Lambda hanya memancarkan data metrik ini ketika kesalahan terjadi.
+ `InvokeErrorCount`— Jumlah kesalahan yang Lambda gagal menjalankan fungsi Anda. Perhatikan pemanggilan adalah catatan dalam batch. Jumlahnya ada di tingkat batch, bukan pada tingkat hitungan rekor. Lambda hanya memancarkan data metrik ini ketika kesalahan terjadi.
+ `SchemaRegistryErrorCount`— Jumlah kesalahan yang Lambda gagal mengambil skema atau deserialisasi dengan skema. Lambda hanya memancarkan data metrik ini ketika kesalahan terjadi.
+ `CommitErrorCount`— Jumlah kesalahan yang gagal dilakukan Lambda ke cluster Kafka. Lambda hanya memancarkan data metrik ini ketika kesalahan terjadi.
+ `MaxOffsetLag`— Maksimum kelambatan offset (perbedaan antara offset terbaru dan yang berkomitmen) di semua partisi dalam pemetaan sumber acara.
+ `SumOffsetLag`— Jumlah offset tertinggal di semua partisi dalam pemetaan sumber peristiwa.

Jika pemetaan sumber acara dinonaktifkan, Anda tidak akan menerima metrik pemetaan sumber peristiwa. Anda juga dapat melihat metrik yang hilang jika CloudWatch atau Lambda mengalami penurunan ketersediaan.

# Bekerja dengan log fungsi Lambda
<a name="monitoring-logs"></a>

Untuk membantu Anda memecahkan masalah kegagalan, AWS Lambda secara otomatis memantau fungsi Lambda atas nama Anda. Anda dapat melihat log untuk fungsi Lambda menggunakan konsol Lambda, konsol, AWS Command Line Interface (AWS CLI), API. CloudWatch CloudWatch Anda juga dapat mengonfigurasi Lambda untuk mengirim log ke Amazon S3 dan Firehose.

Selama [peran eksekusi](lambda-intro-execution-role.md) fungsi Anda memiliki izin yang diperlukan, Lambda menangkap log untuk semua permintaan yang ditangani oleh fungsi Anda dan mengirimkannya ke CloudWatch Amazon Logs, yang merupakan tujuan default. Anda juga dapat menggunakan konsol Lambda untuk mengonfigurasi Amazon S3 atau Firehose sebagai tujuan pencatatan.
+ **CloudWatch Log** adalah tujuan pencatatan default untuk fungsi Lambda. CloudWatch Log menyediakan kemampuan melihat dan menganalisis log secara real-time, dengan dukungan untuk membuat metrik dan alarm berdasarkan data log Anda.
+ **Amazon S3** ekonomis untuk penyimpanan jangka panjang, dan layanan seperti Athena dapat digunakan untuk menganalisis log. Latensi biasanya lebih tinggi.
+ **Firehose** menawarkan streaming log terkelola ke berbagai tujuan. Jika Anda perlu mengirim log ke AWS layanan lain (misalnya, OpenSearch Service atau Redshift Data API) atau platform pihak ketiga (seperti Datadog, New Relic, atau Splunk), Firehose menyederhanakan proses tersebut dengan menyediakan integrasi pra-bangun. Anda juga dapat melakukan streaming ke titik akhir HTTP khusus tanpa menyiapkan infrastruktur tambahan.

## Memilih tujuan layanan untuk mengirim log ke
<a name="choosing-log-destination"></a>

Pertimbangkan faktor-faktor kunci berikut ketika memilih layanan tujuan untuk log fungsi:
+ **Manajemen biaya bervariasi menurut layanan.** Amazon S3 biasanya menyediakan opsi paling ekonomis untuk penyimpanan jangka panjang, sementara CloudWatch Log memungkinkan Anda untuk melihat log, memproses log, dan mengatur peringatan secara real time. Biaya Firehose mencakup layanan streaming dan biaya yang terkait dengan apa yang Anda konfigurasikan untuk streaming.
+ **Kemampuan analisis berbeda di seluruh layanan.** CloudWatch Log unggul dalam pemantauan real-time dan terintegrasi secara native dengan CloudWatch fitur lain, seperti Logs Insights dan Live Tail. Amazon S3 bekerja dengan baik dengan alat analisis seperti Athena dan dapat berintegrasi dengan berbagai layanan, meskipun mungkin memerlukan pengaturan tambahan. Firehose menyederhanakan streaming langsung ke AWS layanan tertentu (seperti Service OpenSearch dan Redshift Data API) dan mendukung platform pihak ketiga (seperti Datadog dan Splunk) dengan menyediakan integrasi pra-bangun, berpotensi mengurangi pekerjaan konfigurasi.
+ **Pengaturan dan kemudahan penggunaan bervariasi menurut layanan.** CloudWatch Log adalah tujuan log default - ia bekerja segera tanpa konfigurasi tambahan dan menyediakan tampilan dan analisis log langsung melalui konsol. CloudWatch Jika Anda memerlukan log yang dikirim ke Amazon S3, Anda harus melakukan beberapa pengaturan awal di konsol Lambda dan mengonfigurasi izin bucket. Jika Anda memerlukan log yang dikirim langsung ke layanan seperti OpenSearch Layanan atau platform analitik pihak ketiga, Firehose dapat menyederhanakan proses tersebut.

## Mengkonfigurasi tujuan log
<a name="configuring-log-destinations"></a>

AWS Lambda mendukung beberapa tujuan untuk log fungsi Anda. Panduan ini menjelaskan tujuan pencatatan yang tersedia dan membantu Anda memilih opsi yang tepat untuk kebutuhan Anda. Terlepas dari tujuan yang Anda pilih, Lambda menyediakan opsi untuk mengontrol format log, pemfilteran, dan pengiriman.

Lambda mendukung format JSON dan teks biasa untuk log fungsi Anda. Log terstruktur JSON memberikan kemampuan pencarian yang ditingkatkan dan memungkinkan analisis otomatis, sementara log teks biasa menawarkan kesederhanaan dan berpotensi mengurangi biaya penyimpanan. Anda dapat mengontrol log mana yang dikirim Lambda ke tujuan yang Anda pilih dengan mengonfigurasi level log untuk log sistem dan aplikasi. Pemfilteran membantu Anda mengelola biaya penyimpanan dan membuatnya lebih mudah untuk menemukan entri log yang relevan selama debugging.

Untuk petunjuk penyiapan terperinci untuk setiap tujuan, lihat bagian berikut:
+ [Mengirim log fungsi Lambda ke Log CloudWatch](monitoring-cloudwatchlogs.md)
+ [Mengirim log fungsi Lambda ke Firehose](logging-with-firehose.md)
+ [Mengirim log fungsi Lambda ke Amazon S3](logging-with-s3.md)

## Mengkonfigurasi kontrol logging lanjutan untuk fungsi Lambda
<a name="monitoring-cloudwatchlogs-advanced"></a>

Untuk memberi Anda kontrol lebih besar atas bagaimana log fungsi Anda ditangkap, diproses, dan dikonsumsi, Lambda menawarkan opsi konfigurasi logging berikut:
+ **Format log** - pilih antara teks biasa dan format JSON terstruktur untuk log fungsi Anda.
+ **Tingkat log** - untuk log terstruktur JSON, pilih tingkat detail log yang dikirim Lambda CloudWatch ke, `FATAL` seperti,,`ERROR`,, `WARN` `INFO``DEBUG`, dan. `TRACE`
+ **Grup log** - pilih grup CloudWatch log yang dikirimkan oleh fungsi log Anda.

Untuk mempelajari lebih lanjut tentang mengonfigurasi kontrol logging lanjutan, lihat bagian berikut:
+ [Mengkonfigurasi JSON dan format log teks biasa](monitoring-cloudwatchlogs-logformat.md)
+ [Pemfilteran tingkat log](monitoring-cloudwatchlogs-log-level.md)
+ [Mengkonfigurasi grup CloudWatch log](monitoring-cloudwatchlogs-loggroups.md)

# Mengkonfigurasi JSON dan format log teks biasa
<a name="monitoring-cloudwatchlogs-logformat"></a>

Menangkap output log Anda sebagai pasangan nilai kunci JSON membuatnya lebih mudah untuk mencari dan memfilter saat men-debug fungsi Anda. Dengan log berformat JSON, Anda juga dapat menambahkan tag dan informasi kontekstual ke log Anda. Ini dapat membantu Anda melakukan analisis otomatis volume besar data log. Kecuali alur kerja pengembangan Anda bergantung pada alat yang ada yang menggunakan log Lambda dalam teks biasa, kami sarankan Anda memilih JSON untuk format log Anda.

**Instans Terkelola Lambda**  
Instans Terkelola Lambda hanya mendukung format log JSON. Saat Anda membuat fungsi Instans Terkelola, Lambda secara otomatis mengonfigurasi format log ke JSON dan Anda tidak dapat mengubahnya menjadi teks biasa. Untuk informasi selengkapnya tentang Instans Terkelola, lihat[Instans Terkelola Lambda](lambda-managed-instances.md).

Untuk semua runtime terkelola Lambda, Anda dapat memilih apakah log sistem fungsi Anda dikirim ke CloudWatch Log dalam teks biasa yang tidak terstruktur atau format JSON. Log sistem adalah log yang dihasilkan Lambda dan kadang-kadang dikenal sebagai log peristiwa platform.

Untuk [runtime yang didukung](#monitoring-cloudwatchlogs-logformat-supported), saat Anda menggunakan salah satu metode logging bawaan yang didukung, Lambda juga dapat menampilkan log aplikasi fungsi Anda (log yang dihasilkan kode fungsi Anda) dalam format JSON terstruktur. Saat Anda mengonfigurasi format log fungsi Anda untuk runtime ini, konfigurasi yang Anda pilih berlaku untuk log sistem dan aplikasi.

Untuk runtime yang didukung, jika fungsi Anda menggunakan pustaka atau metode logging yang didukung, Anda tidak perlu membuat perubahan apa pun pada kode yang ada untuk Lambda untuk menangkap log di JSON terstruktur.

**catatan**  
Menggunakan pemformatan log JSON menambahkan metadata tambahan dan mengkodekan pesan log sebagai objek JSON yang berisi serangkaian pasangan nilai kunci. Karena itu, ukuran pesan log fungsi Anda dapat meningkat.

## Runtime dan metode logging yang didukung
<a name="monitoring-cloudwatchlogs-logformat-supported"></a>

 Lambda saat ini mendukung opsi untuk menampilkan log aplikasi terstruktur JSON untuk runtime berikut. 


| Bahasa | Versi yang didukung | 
| --- | --- | 
| Java | Semua runtime Java kecuali Java 8 di Amazon Linux 1 | 
| .NET | .NET 8 dan yang lebih baru | 
| Node.js | Node.js 16 dan yang lebih baru | 
| Python | Python 3.8 dan yang lebih baru | 
| Karat | T/A | 

Agar Lambda dapat mengirim log aplikasi fungsi Anda ke CloudWatch dalam format JSON terstruktur, fungsi Anda harus menggunakan alat logging bawaan berikut untuk mengeluarkan log:
+ **Java**: `LambdaLogger` Logger atau Log4j2. Untuk informasi selengkapnya, lihat [Log dan pantau fungsi Java Lambda](java-logging.md).
+ **.NET**: `ILambdaLogger` Contoh pada objek konteks. Untuk informasi selengkapnya, lihat [Log dan pantau fungsi C\$1 Lambda](csharp-logging.md).
+ **Node.js** - Metode konsol`console.trace`,`console.debug`,`console.log`,`console.info`,`console.error`, dan`console.warn`. Untuk informasi selengkapnya, lihat [Log dan pantau fungsi Node.js Lambda](nodejs-logging.md).
+ **Python: Pustaka** Python standar. `logging` Untuk informasi selengkapnya, lihat [Log dan pantau fungsi Python Lambda](python-logging.md).
+ **Karat**: `tracing` Peti. Untuk informasi selengkapnya, lihat [Log dan pantau fungsi Rust Lambda](rust-logging.md).

Untuk runtime Lambda terkelola lainnya, Lambda saat ini hanya mendukung pengambilan log sistem dalam format JSON terstruktur. Namun, Anda masih dapat menangkap log aplikasi dalam format JSON terstruktur dalam runtime apa pun dengan menggunakan alat logging seperti Powertools untuk keluaran keluaran log AWS Lambda yang diformat JSON.

## Format log default
<a name="monitoring-cloudwatchlogs-format-default"></a>

Saat ini, format log default untuk semua runtime Lambda adalah teks biasa. Untuk Instans Terkelola Lambda, format log selalu JSON dan tidak dapat diubah.

Jika Anda sudah menggunakan pustaka logging seperti Powertools AWS Lambda untuk menghasilkan log fungsi Anda dalam format terstruktur JSON, Anda tidak perlu mengubah kode Anda jika Anda memilih pemformatan log JSON. Lambda tidak menyandikan dua kali log apa pun yang sudah dikodekan JSON, sehingga log aplikasi fungsi Anda akan terus ditangkap seperti sebelumnya.

## Format JSON untuk log sistem
<a name="monitoring-cloudwatchlogs-JSON-system"></a>

Saat Anda mengonfigurasi format log fungsi Anda sebagai JSON, setiap item log sistem (peristiwa platform) ditangkap sebagai objek JSON yang berisi pasangan nilai kunci dengan kunci berikut:
+ `"time"`- waktu pesan log dihasilkan
+ `"type"`- jenis acara yang dicatat
+ `"record"`- isi dari output log

Format `"record"` nilai bervariasi sesuai dengan jenis peristiwa yang dicatat. Untuk mengetahui informasi selengkapnya, lihat [Jenis objek API `Event` telemetri](telemetry-schema-reference.md#telemetry-api-events). Untuk informasi selengkapnya tentang tingkat log yang ditetapkan ke peristiwa log sistem, lihat[Pemetaan peristiwa tingkat log sistem](monitoring-cloudwatchlogs-log-level.md#monitoring-cloudwatchlogs-log-level-mapping).

Sebagai perbandingan, dua contoh berikut menunjukkan output log yang sama dalam format teks biasa dan JSON terstruktur. Perhatikan bahwa dalam kebanyakan kasus, peristiwa log sistem berisi lebih banyak informasi saat output dalam format JSON daripada saat output dalam teks biasa.

**Example teks biasa:**  

```
2024-03-13 18:56:24.046000 fbe8c1   INIT_START  Runtime Version: python:3.12.v18  Runtime Version ARN: arn:aws:lambda:eu-west-1::runtime:edb5a058bfa782cb9cedc6d534ac8b8c193bc28e9a9879d9f5ebaaf619cd0fc0
```

**Example JSON terstruktur:**  

```
{
  "time": "2024-03-13T18:56:24.046Z",
  "type": "platform.initStart",
  "record": {
    "initializationType": "on-demand",
    "phase": "init",
    "runtimeVersion": "python:3.12.v18",
    "runtimeVersionArn": "arn:aws:lambda:eu-west-1::runtime:edb5a058bfa782cb9cedc6d534ac8b8c193bc28e9a9879d9f5ebaaf619cd0fc0"
  }
}
```

**catatan**  
[Mengakses data telemetri real-time untuk ekstensi menggunakan API Telemetri](telemetry-api.md)Selalu memancarkan acara platform seperti `START` dan `REPORT` dalam format JSON. Mengonfigurasi format log sistem yang dikirim Lambda tidak memengaruhi perilaku API CloudWatch Telemetri Lambda.

## Format JSON untuk log aplikasi
<a name="monitoring-cloudwatchlogs-JSON-application"></a>

Saat Anda mengonfigurasi format log fungsi Anda sebagai JSON, keluaran log aplikasi yang ditulis menggunakan pustaka dan metode logging yang didukung ditangkap sebagai objek JSON yang berisi pasangan nilai kunci dengan kunci berikut.
+ `"timestamp"`- waktu pesan log dihasilkan
+ `"level"`- tingkat log yang ditetapkan untuk pesan
+ `"message"`- isi pesan log
+ `"requestId"`(Python, .NET, dan Node.js) atau `"AWSrequestId"` (Java) - ID permintaan unik untuk pemanggilan fungsi

Bergantung pada runtime dan metode logging yang digunakan fungsi Anda, objek JSON ini mungkin juga berisi pasangan kunci tambahan. Misalnya, di Node.js, jika fungsi Anda menggunakan `console` metode untuk mencatat objek kesalahan menggunakan beberapa argumen, objek JSON akan berisi pasangan nilai kunci tambahan dengan kunci`errorMessage`,`errorType`, dan`stackTrace`. Untuk mempelajari lebih lanjut tentang log berformat JSON di runtime Lambda yang berbeda, lihat, dan. [Log dan pantau fungsi Python Lambda](python-logging.md) [Log dan pantau fungsi Node.js Lambda](nodejs-logging.md) [Log dan pantau fungsi Java Lambda](java-logging.md)

**catatan**  
Kunci yang digunakan Lambda untuk nilai stempel waktu berbeda untuk log sistem dan log aplikasi. Untuk log sistem, Lambda menggunakan kunci `"time"` untuk menjaga konsistensi dengan API Telemetri. Untuk log aplikasi, Lambda mengikuti konvensi runtime dan penggunaan yang didukung. `"timestamp"`

Sebagai perbandingan, dua contoh berikut menunjukkan output log yang sama dalam format teks biasa dan JSON terstruktur.

**Example teks biasa:**  

```
2024-10-27T19:17:45.586Z 79b4f56e-95b1-4643-9700-2807f4e68189 INFO some log message
```

**Example JSON terstruktur:**  

```
{
    "timestamp":"2024-10-27T19:17:45.586Z",
    "level":"INFO",
    "message":"some log message",
    "requestId":"79b4f56e-95b1-4643-9700-2807f4e68189"
}
```

## Mengatur format log fungsi Anda
<a name="monitoring-cloudwatchlogs-set-format"></a>

Untuk mengonfigurasi format log untuk fungsi Anda, Anda dapat menggunakan konsol Lambda atau AWS Command Line Interface ()AWS CLI. Anda juga dapat mengonfigurasi format log fungsi menggunakan perintah API [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)dan [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)Lambda, sumber daya AWS Serverless Application Model (AWS SAM), dan [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)sumber daya. CloudFormation [AWS::Lambda::Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)

Mengubah format log fungsi Anda tidak memengaruhi log yang ada yang disimpan di CloudWatch Log. Hanya log baru yang akan menggunakan format yang diperbarui.

Jika Anda mengubah format log fungsi Anda ke JSON dan tidak menyetel level log, maka Lambda secara otomatis menyetel level log aplikasi dan level log sistem fungsi Anda ke INFO. Ini berarti bahwa Lambda hanya mengirimkan output log dari INFO tingkat dan lebih rendah ke Log. CloudWatch Untuk mempelajari selengkapnya tentang pemfilteran tingkat log aplikasi dan sistem, lihat [Pemfilteran tingkat log](monitoring-cloudwatchlogs-log-level.md) 

**catatan**  
Untuk runtime Python, ketika format log fungsi Anda disetel ke teks biasa, pengaturan tingkat log default adalah WARN. Ini berarti bahwa Lambda hanya mengirimkan output log dari level WARN dan lebih rendah ke Log. CloudWatch Mengubah format log fungsi Anda ke JSON mengubah perilaku default ini. Untuk mempelajari lebih lanjut tentang login dengan Python, lihat. [Log dan pantau fungsi Python Lambda](python-logging.md)

Untuk fungsi Node.js yang memancarkan log format metrik tertanam (EMF), mengubah format log fungsi Anda CloudWatch menjadi JSON dapat mengakibatkan tidak dapat mengenali metrik Anda.

**penting**  
Jika fungsi Anda menggunakan Powertools for AWS Lambda (TypeScript) atau pustaka klien EMF sumber terbuka untuk memancarkan log EMF, perbarui pustaka [Powertools](https://github.com/aws-powertools/powertools-lambda-typescript) dan [EMF](https://www.npmjs.com/package/aws-embedded-metrics) Anda ke versi terbaru untuk memastikan bahwa dapat terus mengurai log Anda dengan benar. CloudWatch Jika Anda beralih ke format log JSON, kami juga menyarankan Anda melakukan pengujian untuk memastikan kompatibilitas dengan metrik tertanam fungsi Anda. Untuk saran lebih lanjut tentang fungsi node.js yang memancarkan log EMF, lihat. [Menggunakan pustaka klien format metrik tertanam (EMF) dengan log JSON terstruktur](nodejs-logging.md#nodejs-logging-advanced-emf)

**Untuk mengkonfigurasi format log fungsi (konsol)**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi

1. Pada halaman konfigurasi fungsi, pilih **Alat pemantauan dan operasi**.

1. Di panel **konfigurasi Logging**, pilih **Edit**.

1. Di bawah **Konten log**, untuk **format Log** pilih **Teks** atau **JSON**.

1. Pilih **Simpan**.

**Untuk mengubah format log dari fungsi yang ada (AWS CLI)**
+ Untuk mengubah format log dari fungsi yang ada, gunakan [update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html)perintah. Atur `LogFormat` opsi `LoggingConfig` ke salah satu `JSON` atau`Text`.

  ```
  aws lambda update-function-configuration \
    --function-name myFunction \
    --logging-config LogFormat=JSON
  ```

**Untuk mengatur format log saat Anda membuat fungsi (AWS CLI)**
+ Untuk mengonfigurasi format log saat Anda membuat fungsi baru, gunakan `--logging-config` opsi dalam perintah [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html). Setel `LogFormat` ke salah satu `JSON` atau`Text`. Contoh perintah berikut menciptakan fungsi Node.js yang output log di JSON terstruktur.

  Jika Anda tidak menentukan format log saat membuat fungsi, Lambda akan menggunakan format log default untuk versi runtime yang Anda pilih. Untuk informasi tentang format logging default, lihat[Format log default](#monitoring-cloudwatchlogs-format-default).

  ```
  aws lambda create-function \ 
    --function-name myFunction \ 
    --runtime nodejs24.x \
    --handler index.handler \
    --zip-file fileb://function.zip \
    --role arn:aws:iam::123456789012:role/LambdaRole \
    --logging-config LogFormat=JSON
  ```

# Pemfilteran tingkat log
<a name="monitoring-cloudwatchlogs-log-level"></a>

Lambda dapat memfilter log fungsi Anda sehingga hanya log dengan tingkat detail tertentu atau lebih rendah yang dikirim ke CloudWatch Log. Anda dapat mengonfigurasi pemfilteran tingkat log secara terpisah untuk log sistem fungsi Anda (log yang dihasilkan Lambda) dan log aplikasi (log yang dihasilkan oleh kode fungsi Anda).

Untuk[Runtime dan metode logging yang didukung](monitoring-cloudwatchlogs-logformat.md#monitoring-cloudwatchlogs-logformat-supported), Anda tidak perlu membuat perubahan apa pun pada kode fungsi Anda agar Lambda memfilter log aplikasi fungsi Anda.

Untuk semua runtime dan metode logging lainnya, kode fungsi Anda harus menampilkan peristiwa log ke `stdout` atau `stderr` sebagai objek berformat JSON yang berisi pasangan nilai kunci dengan kunci. `"level"` Misalnya, Lambda menafsirkan output berikut `stdout` sebagai log tingkat DEBUG.

```
print('{"level": "debug", "msg": "my debug log", "timestamp": "2024-11-02T16:51:31.587199Z"}')
```

Jika bidang `"level"` nilai tidak valid atau hilang, Lambda akan menetapkan keluaran log INFO tingkat. Agar Lambda dapat menggunakan bidang stempel waktu, Anda harus menentukan waktu dalam format stempel waktu [RFC](https://www.ietf.org/rfc/rfc3339.txt) 3339 yang valid. Jika Anda tidak menyediakan stempel waktu yang valid, Lambda akan menetapkan log INFO level dan menambahkan stempel waktu untuk Anda.

Saat memberi nama kunci stempel waktu, ikuti konvensi runtime yang Anda gunakan. Lambda mendukung konvensi penamaan yang paling umum digunakan oleh runtime terkelola.

**catatan**  
Untuk menggunakan penyaringan tingkat log, fungsi Anda harus dikonfigurasi untuk menggunakan format log JSON. Format log default untuk semua runtime terkelola Lambda saat ini adalah teks biasa. Untuk mempelajari cara mengonfigurasi format log fungsi Anda ke JSON, lihat[Mengatur format log fungsi Anda](monitoring-cloudwatchlogs-logformat.md#monitoring-cloudwatchlogs-set-format).

Untuk log aplikasi (log yang dihasilkan oleh kode fungsi Anda), Anda dapat memilih antara tingkat log berikut.


| Tingkat log | Penggunaan standar | 
| --- | --- | 
| TRACE (paling detail) | Informasi paling halus yang digunakan untuk melacak jalur eksekusi kode Anda | 
| DEBUG | Informasi terperinci untuk debugging sistem | 
| INFO | Pesan yang merekam operasi normal fungsi Anda | 
| WARN | Pesan tentang potensi kesalahan yang dapat menyebabkan perilaku tak terduga jika tidak ditangani | 
| ERROR | Pesan tentang masalah yang mencegah kode berfungsi seperti yang diharapkan | 
| FATAL (paling detail) | Pesan tentang kesalahan serius yang menyebabkan aplikasi berhenti berfungsi | 

Ketika Anda memilih tingkat log, Lambda mengirimkan log pada tingkat itu dan lebih rendah ke CloudWatch Log. Misalnya, jika Anda menyetel level log aplikasi fungsi ke WARN, Lambda tidak mengirim output log di level INFO dan DEBUG. Level log aplikasi default untuk penyaringan log adalah INFO.

Ketika Lambda memfilter log aplikasi fungsi Anda, pesan log tanpa level akan diberikan INFO tingkat log.

Untuk log sistem (log yang dihasilkan oleh layanan Lambda), Anda dapat memilih antara tingkat log berikut.


| Tingkat log | Penggunaan | 
| --- | --- | 
| DEBUG (paling detail) | Informasi terperinci untuk debugging sistem | 
| INFO | Pesan yang merekam operasi normal fungsi Anda | 
| PERINGATAN (paling detail) | Pesan tentang potensi kesalahan yang dapat menyebabkan perilaku tak terduga jika tidak ditangani | 

Ketika Anda memilih tingkat log, Lambda mengirimkan log pada tingkat itu dan lebih rendah. Misalnya, jika Anda menyetel level log sistem fungsi ke INFO, Lambda tidak mengirim output log pada tingkat DEBUG.

Secara default, Lambda menetapkan tingkat log sistem ke INFO. Dengan pengaturan ini, Lambda secara otomatis mengirim `"start"` dan `"report"` mencatat pesan ke. CloudWatch Untuk menerima log sistem yang kurang lebih terperinci, ubah level log menjadi DEBUG atau WARN. Untuk melihat daftar level log tempat Lambda memetakan peristiwa log sistem yang berbeda, lihat. [Pemetaan peristiwa tingkat log sistem](#monitoring-cloudwatchlogs-log-level-mapping)

## Mengkonfigurasi penyaringan tingkat log
<a name="monitoring-cloudwatchlogs-log-level-setting"></a>

Untuk mengonfigurasi pemfilteran tingkat log aplikasi dan sistem untuk fungsi Anda, Anda dapat menggunakan konsol Lambda atau (). AWS Command Line Interface AWS CLI Anda juga dapat mengonfigurasi tingkat log fungsi menggunakan perintah API [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)dan [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)Lambda, sumber daya AWS Serverless Application Model (AWS SAM), dan [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)sumber daya. CloudFormation [AWS::Lambda::Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)

Perhatikan bahwa jika Anda menetapkan tingkat log fungsi Anda dalam kode Anda, pengaturan ini lebih diutamakan daripada setelan tingkat log lainnya yang Anda konfigurasikan. Misalnya, jika Anda menggunakan `logging` `setLevel()` metode Python untuk menyetel level logging fungsi Anda ke INFO, pengaturan ini lebih diutamakan daripada pengaturan WARN yang Anda konfigurasikan menggunakan konsol Lambda.

**Untuk mengkonfigurasi aplikasi atau tingkat log sistem fungsi yang ada (konsol)**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi.

1. Pada halaman konfigurasi fungsi, pilih **Alat pemantauan dan operasi**.

1. Di panel **konfigurasi Logging**, pilih **Edit**.

1. Di bawah **Konten log**, untuk **format Log** pastikan **JSON** dipilih.

1. Dengan menggunakan tombol radio, pilih **level log Aplikasi** yang Anda inginkan dan **tingkat log sistem** untuk fungsi Anda.

1. Pilih **Simpan**.

**Untuk mengkonfigurasi aplikasi fungsi yang ada atau tingkat log sistem (AWS CLI)**
+ Untuk mengubah tingkat log aplikasi atau sistem dari fungsi yang ada, gunakan [update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html)perintah. Gunakan `--logging-config` untuk mengatur `SystemLogLevel` ke salah satu`DEBUG`,`INFO`, atau`WARN`. Setel `ApplicationLogLevel` ke salah satu`DEBUG`,`INFO`,`WARN`,`ERROR`, atau`FATAL`. 

  ```
  aws lambda update-function-configuration \
    --function-name myFunction \
    --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN
  ```

**Untuk mengonfigurasi pemfilteran tingkat log saat Anda membuat fungsi**
+ [Untuk mengonfigurasi penyaringan tingkat log saat Anda membuat fungsi baru, gunakan `--logging-config` untuk mengatur `ApplicationLogLevel` tombol `SystemLogLevel` dan dalam perintah create-function.](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) Setel `SystemLogLevel` ke salah satu`DEBUG`,`INFO`, atau`WARN`. Setel `ApplicationLogLevel` ke salah satu`DEBUG`,`INFO`,`WARN`,`ERROR`, atau`FATAL`.

  ```
  aws lambda create-function \
    --function-name myFunction \
    --runtime nodejs24.x \
    --handler index.handler \
    --zip-file fileb://function.zip \
    --role arn:aws:iam::123456789012:role/LambdaRole \ 
    --logging-config LogFormat=JSON,ApplicationLogLevel=ERROR,SystemLogLevel=WARN
  ```

## Pemetaan peristiwa tingkat log sistem
<a name="monitoring-cloudwatchlogs-log-level-mapping"></a>

Untuk peristiwa log tingkat sistem yang dihasilkan oleh Lambda, tabel berikut mendefinisikan tingkat log yang ditetapkan untuk setiap peristiwa. Untuk mempelajari lebih lanjut tentang peristiwa yang tercantum dalam tabel, lihat [Referensi skema API Telemetri Lambda `Event`](telemetry-schema-reference.md)


| Nama peristiwa | Kondisi | Tingkat log yang ditetapkan | 
| --- | --- | --- | 
| InitStart | RuntimeVersion diatur | INFO | 
| InitStart | RuntimeVersion tidak disetel | DEBUG | 
| initRuntimeDone | status=sukses | DEBUG | 
| initRuntimeDone | status\$1 = sukses | WARN | 
| InitReport | InitializationType\$1 = sesuai permintaan | INFO | 
| InitReport | initializationType=Sesuai permintaan | DEBUG | 
| InitReport | status\$1 = sukses | WARN | 
| RestoRestore | RuntimeVersion diatur | INFO | 
| RestoRestore | RuntimeVersion tidak disetel | DEBUG | 
| restoreRuntimeDone | status=sukses | DEBUG | 
| restoreRuntimeDone | status\$1 = sukses | WARN | 
| RestoreReport | status=sukses | INFO | 
| RestoreReport | status\$1 = sukses | WARN | 
| start | - | INFO | 
| RuntimeDone | status=sukses | DEBUG | 
| RuntimeDone | status\$1 = sukses | WARN | 
| laporan | status=sukses | INFO | 
| laporan | status\$1 = sukses | WARN | 
| luas | state=sukses | INFO | 
| luas | negara\$1 = sukses | WARN | 
| LogSubscription | - | INFO | 
| TeleMetryLangganan | - | INFO | 
| LogsDropped | - | WARN | 

**catatan**  
[Mengakses data telemetri real-time untuk ekstensi menggunakan API Telemetri](telemetry-api.md)Selalu memancarkan set lengkap acara platform. Mengonfigurasi level log sistem yang dikirim Lambda tidak memengaruhi perilaku API CloudWatch Telemetri Lambda.

## Pemfilteran tingkat log aplikasi dengan runtime khusus
<a name="monitoring-cloudwatchlogs-log-level-custom"></a>

Saat Anda mengonfigurasi pemfilteran tingkat log aplikasi untuk fungsi Anda, di belakang layar Lambda menyetel level log aplikasi di runtime menggunakan variabel lingkungan. `AWS_LAMBDA_LOG_LEVEL` Lambda juga menetapkan format log fungsi Anda menggunakan variabel `AWS_LAMBDA_LOG_FORMAT` lingkungan. Anda dapat menggunakan variabel ini untuk mengintegrasikan kontrol logging lanjutan Lambda ke dalam runtime [kustom](runtimes-custom.md).

Untuk kemampuan mengonfigurasi pengaturan logging untuk fungsi menggunakan runtime kustom dengan konsol Lambda AWS CLI, dan APIs Lambda, konfigurasikan runtime kustom Anda untuk memeriksa nilai variabel lingkungan ini. Anda kemudian dapat mengonfigurasi logger runtime Anda sesuai dengan format log dan level log yang Anda pilih.

# Mengirim log fungsi Lambda ke Log CloudWatch
<a name="monitoring-cloudwatchlogs"></a>

Secara default, Lambda secara otomatis menangkap log untuk semua pemanggilan fungsi dan mengirimkannya ke CloudWatch Log, asalkan peran eksekusi fungsi Anda memiliki izin yang diperlukan. Log ini, secara default, disimpan dalam grup lognamed /aws/lambda/*<function-name>*. Untuk meningkatkan debugging, Anda dapat menyisipkan pernyataan logging kustom ke dalam kode Anda, yang Lambda akan terintegrasi dengan mulus dengan Log. CloudWatch Jika diperlukan, Anda dapat mengonfigurasi fungsi Anda untuk mengirim log ke grup lain menggunakan konsol Lambda, AWS CLI, atau Lambda API. Lihat [Mengkonfigurasi grup CloudWatch log](monitoring-cloudwatchlogs-loggroups.md) untuk mempelajari selengkapnya.

Anda dapat melihat log untuk fungsi Lambda menggunakan konsol Lambda, konsol, AWS Command Line Interface (AWS CLI), atau API. CloudWatch CloudWatch Untuk informasi lebih lanjut, lihat ke[Melihat CloudWatch log untuk fungsi Lambda](monitoring-cloudwatchlogs-view.md).

**catatan**  
Mungkin diperlukan waktu 5 hingga 10 menit agar log muncul setelah pemanggilan fungsi.

## Izin IAM yang diperlukan
<a name="monitoring-cloudwatchlogs-prereqs"></a>

[Peran eksekusi](lambda-intro-execution-role.md) Anda memerlukan izin berikut untuk mengunggah log ke CloudWatch Log:
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:PutLogEvents`

*Untuk mempelajari selengkapnya, lihat [Menggunakan kebijakan berbasis identitas (kebijakan IAM) untuk Log CloudWatch di Panduan Pengguna](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-identity-based-access-control-cwl.html) Amazon. CloudWatch *

Anda dapat menambahkan izin CloudWatch Log ini menggunakan kebijakan `AWSLambdaBasicExecutionRole` AWS terkelola yang disediakan oleh Lambda. Untuk menambahkan kebijakan ini ke peran Anda, jalankan perintah berikut:

```
aws iam attach-role-policy --role-name your-role --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
```

Untuk informasi selengkapnya, lihat [Bekerja dengan kebijakan AWS terkelola dalam peran eksekusi](permissions-managed-policies.md).

## Harga
<a name="monitoring-cloudwatchlogs-pricing"></a>

Tidak ada biaya tambahan untuk menggunakan log Lambda; namun, biaya CloudWatch Log standar berlaku. Untuk informasi lebih lanjut, lihat [ Harga CloudWatch ](https://aws.amazon.com/cloudwatch/pricing/).

# Mengkonfigurasi grup CloudWatch log
<a name="monitoring-cloudwatchlogs-loggroups"></a>

Secara default, CloudWatch secara otomatis membuat grup log bernama `/aws/lambda/<function name>` untuk fungsi Anda saat pertama kali dipanggil. Untuk mengonfigurasi fungsi Anda untuk mengirim log ke grup log yang ada, atau untuk membuat grup log baru untuk fungsi Anda, Anda dapat menggunakan konsol Lambda atau. AWS CLI Anda juga dapat mengonfigurasi grup log kustom menggunakan perintah API [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)dan [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)Lambda dan sumber daya AWS Serverless Application Model (AWS SAM) [AWS: :Serverless: :Function]().

Anda dapat mengonfigurasi beberapa fungsi Lambda untuk mengirim log ke grup log yang sama CloudWatch . Misalnya, Anda dapat menggunakan grup log tunggal untuk menyimpan log untuk semua fungsi Lambda yang membentuk aplikasi tertentu. Saat Anda menggunakan grup log kustom untuk fungsi Lambda, aliran log yang dibuat Lambda menyertakan nama fungsi dan versi fungsi. Ini memastikan bahwa pemetaan antara pesan log dan fungsi dipertahankan, bahkan jika Anda menggunakan grup log yang sama untuk beberapa fungsi.

Format penamaan aliran log untuk grup log kustom mengikuti konvensi ini:

```
YYYY/MM/DD/<function_name>[<function_version>][<execution_environment_GUID>]
```

Perhatikan bahwa saat mengonfigurasi grup log kustom, nama yang Anda pilih untuk grup log Anda harus mengikuti [aturan penamaan CloudWatch Log](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html). Selain itu, nama grup log kustom tidak boleh dimulai dengan string`aws/`. Jika Anda membuat grup log kustom dimulai dengan`aws/`, Lambda tidak akan dapat membuat grup log. Akibatnya, log fungsi Anda tidak akan dikirim ke CloudWatch.

**Untuk mengubah grup log fungsi (konsol)**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi.

1. Pada halaman konfigurasi fungsi, pilih **Alat pemantauan dan operasi**.

1. Di panel **konfigurasi Logging**, pilih **Edit**.

1. Di panel **grup Logging**, untuk **grup CloudWatch log**, pilih **Kustom**.

1. Di bawah **Grup log kustom**, masukkan nama grup CloudWatch log yang Anda inginkan untuk mengirim log ke fungsi Anda. Jika Anda memasukkan nama grup log yang ada, maka fungsi Anda akan menggunakan grup itu. Jika tidak ada grup log dengan nama yang Anda masukkan, maka Lambda akan membuat grup log baru untuk fungsi Anda dengan nama itu.

**Untuk mengubah grup log fungsi (AWS CLI)**
+ Untuk mengubah grup log dari fungsi yang ada, gunakan [update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html)perintah.

  ```
  aws lambda update-function-configuration \
    --function-name myFunction \
    --logging-config LogGroup=myLogGroup
  ```

**Untuk menentukan grup log kustom saat Anda membuat fungsi (AWS CLI)**
+ Untuk menentukan grup log kustom saat Anda membuat fungsi Lambda baru menggunakan AWS CLI, gunakan opsi. `--logging-config` Contoh perintah berikut menciptakan fungsi Lambda Node.js yang mengirimkan log ke grup log bernama. `myLogGroup`

  ```
  aws lambda create-function \
    --function-name myFunction \
    --runtime nodejs24.x \
    --handler index.handler \
    --zip-file fileb://function.zip \
    --role arn:aws:iam::123456789012:role/LambdaRole \
    --logging-config LogGroup=myLogGroup
  ```

## Izin peran eksekusi
<a name="monitoring-cloudwatchlogs-configure-permissions"></a>

Agar fungsi Anda mengirim CloudWatch log ke Log, itu harus memiliki PutLogEvents izin [log:](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html). Saat Anda mengonfigurasi grup log fungsi menggunakan konsol Lambda, Lambda akan menambahkan izin ini ke peran dalam kondisi berikut:
+ Tujuan layanan diatur ke CloudWatch Log
+ Peran eksekusi fungsi Anda tidak memiliki izin untuk mengunggah log ke CloudWatch Log (tujuan default)

**catatan**  
Lambda tidak menambahkan izin Put apa pun untuk tujuan log Amazon S3 atau Firehose.

Ketika Lambda menambahkan izin ini, ia memberikan izin fungsi untuk mengirim log ke grup log Log apa pun CloudWatch .

**Untuk mencegah Lambda memperbarui peran eksekusi fungsi secara otomatis dan mengeditnya secara manual, **perluas Izin dan hapus centang Tambahkan izin** yang diperlukan.**

Saat Anda mengonfigurasi grup log fungsi Anda menggunakan AWS CLI, Lambda tidak akan secara otomatis menambahkan izin. `logs:PutLogEvents` Tambahkan izin ke peran eksekusi fungsi Anda jika belum memilikinya. Izin ini termasuk dalam kebijakan [AWSLambdaBasicExecutionRole](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole$jsonEditor)terkelola.

## CloudWatch logging untuk Instans Terkelola Lambda
<a name="monitoring-cloudwatchlogs-lmi"></a>

Saat menggunakan [Instans Terkelola Lambda](lambda-managed-instances.md), ada pertimbangan tambahan untuk mengirim log ke Log: CloudWatch 

### Persyaratan jaringan VPC
<a name="monitoring-cloudwatchlogs-lmi-networking"></a>

Instans Terkelola Lambda berjalan pada instans milik pelanggan EC2 dalam VPC Anda. Untuk mengirim CloudWatch log ke Log dan jejak ke X-Ray, Anda harus memastikan bahwa ini dapat AWS APIs dirutekan dari VPC Anda. Anda memiliki beberapa pilihan:
+ **AWS PrivateLink (disarankan)**: Gunakan [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html)untuk membuat titik akhir VPC untuk layanan Log CloudWatch dan X-Ray. Ini memungkinkan instans Anda untuk mengakses layanan ini secara pribadi tanpa memerlukan gateway internet atau gateway NAT. Untuk informasi selengkapnya, lihat [Menggunakan CloudWatch Log dengan titik akhir VPC antarmuka](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html).
+ **NAT Gateway**: Konfigurasikan gateway NAT untuk memungkinkan akses internet keluar dari subnet pribadi Anda.
+ **Internet Gateway**: Untuk subnet publik, pastikan VPC Anda memiliki gateway internet yang dikonfigurasi.

Jika CloudWatch Log atau APIs X-Ray tidak dapat dirutekan dari VPC Anda, log dan jejak fungsi Anda tidak akan dikirimkan.

### Pemanggilan bersamaan dan atribusi log
<a name="monitoring-cloudwatchlogs-lmi-concurrent"></a>

Lingkungan eksekusi Instans Terkelola Lambda dapat memproses beberapa pemanggilan secara bersamaan. Ketika beberapa pemanggilan berjalan secara bersamaan, entri lognya disisipkan dalam aliran log yang sama. Untuk memfilter dan menganalisis log secara efektif dari pemanggilan bersamaan, Anda harus memastikan setiap entri log menyertakan ID permintaan. AWS 

Kami merekomendasikan salah satu pendekatan berikut:
+ **Gunakan pencatat runtime Lambda default (disarankan)**: Pustaka logging default yang disediakan oleh runtime terkelola Lambda secara otomatis menyertakan ID permintaan di setiap entri log.
+ **Menerapkan logging JSON terstruktur**: Jika Anda membuat [runtime khusus](runtimes-custom.md) atau memerlukan pencatatan khusus, terapkan log berformat JSON yang menyertakan ID permintaan di setiap entri. Instans Terkelola Lambda hanya mendukung format log JSON. Sertakan `requestId` bidang di log JSON Anda untuk mengaktifkan pemfilteran berdasarkan pemanggilan:

  ```
  {
    "timestamp": "2025-01-15T10:30:00.000Z",
    "level": "INFO",
    "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "message": "Processing request"
  }
  ```

Dengan atribusi ID permintaan, Anda dapat memfilter entri CloudWatch log Log untuk pemanggilan tertentu menggunakan CloudWatch kueri Wawasan Log. Contoh:

```
fields @timestamp, @message
| filter requestId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
| sort @timestamp asc
```

Untuk informasi selengkapnya tentang persyaratan pencatatan Instans Terkelola Lambda, lihat. [Memahami lingkungan eksekusi Instans Terkelola Lambda](lambda-managed-instances-execution-environment.md)

# Melihat CloudWatch log untuk fungsi Lambda
<a name="monitoring-cloudwatchlogs-view"></a>

Anda dapat melihat CloudWatch log Amazon untuk fungsi Lambda menggunakan konsol Lambda, CloudWatch konsol, atau (). AWS Command Line Interface AWS CLI Ikuti petunjuk di bagian berikut untuk mengakses log fungsi Anda.

## Streaming log fungsi dengan CloudWatch Log Live Tail
<a name="monitoring-live-tail"></a>

Amazon CloudWatch Logs Live Tail membantu Anda memecahkan masalah fungsi dengan cepat dengan menampilkan daftar streaming peristiwa log baru langsung di konsol Lambda. Anda dapat melihat dan memfilter log yang dicerna dari fungsi Lambda Anda secara real time, membantu Anda mendeteksi dan menyelesaikan masalah dengan cepat.

**catatan**  
Sesi Live Tail dikenakan biaya berdasarkan waktu penggunaan sesi, per menit. Untuk informasi selengkapnya tentang harga, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

### Membandingkan Live Tail dan --log-type Tail
<a name="live-tail-logtype"></a>

Ada beberapa perbedaan antara CloudWatch Logs Live Tail dan opsi [LogType: Tail](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html#lambda-Invoke-request-LogType) di Lambda API (`--log-type Tail`di AWS CLI):
+ `--log-type Tail`mengembalikan hanya 4 KB pertama dari log pemanggilan. Live Tail tidak membagikan batas ini, dan dapat menerima hingga 500 peristiwa log per detik.
+ `--log-type Tail`menangkap dan mengirim log dengan respons, yang dapat memengaruhi latensi respons fungsi. Live Tail tidak memengaruhi latensi respons fungsi.
+ `--log-type Tail`hanya mendukung pemanggilan sinkron. Live Tail berfungsi untuk pemanggilan sinkron dan asinkron.

**catatan**  
[Instans Terkelola Lambda](lambda-managed-instances.md) tidak mendukung opsi. `--log-type Tail` Gunakan CloudWatch Log Live Tail atau kueri CloudWatch Log secara langsung untuk melihat log untuk fungsi Instans Terkelola.

### Izin
<a name="live-tail-permissions"></a>

Izin berikut diperlukan untuk memulai dan menghentikan sesi CloudWatch Log Live Tail:
+ `logs:DescribeLogGroups`
+ `logs:StartLiveTail`
+ `logs:StopLiveTail`

### Mulai sesi Live Tail di konsol Lambda
<a name="live-tail-console"></a>

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih nama fungsi.

1. Pilih tab **Uji**.

1. Di panel **acara Uji**, pilih **CloudWatch Log Live Tail**.

1. Untuk **Pilih grup log**, grup log fungsi dipilih secara default. Anda dapat memilih hingga lima grup log sekaligus.

1. (Opsional) Untuk menampilkan hanya peristiwa log yang berisi kata-kata tertentu atau string lainnya, masukkan kata atau string di **Tambahkan pola filter** kotak. Bidang filter peka huruf besar/kecil. Anda dapat menyertakan beberapa istilah dan operator pola di bidang ini, termasuk ekspresi reguler (regex). Untuk informasi selengkapnya tentang sintaks pola, lihat [Filter sintaks pola](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html). di *Panduan Pengguna Amazon CloudWatch Logs*.

1. Pilih **Mulai**. Peristiwa log yang cocok mulai muncul di jendela.

1. Untuk menghentikan sesi Live Tail, pilih **Stop**.
**catatan**  
Sesi Live Tail otomatis berhenti setelah 15 menit tidak aktif atau saat sesi konsol Lambda habis waktu.

## Akses log fungsi menggunakan konsol
<a name="monitoring-cloudwatchlogs-console"></a>

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi.

1. Pilih tab **Pantau**.

1. Pilih **Lihat CloudWatch log** untuk membuka CloudWatch konsol.

1. Gulir ke bawah dan pilih **aliran Log** untuk pemanggilan fungsi yang ingin Anda lihat.  
![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/log-stream.png)

Setiap instance dari fungsi Lambda memiliki aliran log khusus. Jika suatu fungsi meningkat, setiap instance bersamaan memiliki aliran lognya sendiri. Setiap kali lingkungan eksekusi baru dibuat sebagai respons terhadap pemanggilan, ini menghasilkan aliran log baru. Konvensi penamaan untuk aliran log adalah:

```
YYYY/MM/DD[Function version][Execution environment GUID]
```

Lingkungan eksekusi tunggal menulis ke aliran log yang sama selama masa pakainya. Aliran log berisi pesan dari lingkungan eksekusi itu dan juga output apa pun dari kode fungsi Lambda Anda. Setiap pesan diberi cap waktu, termasuk log kustom Anda. Bahkan jika fungsi Anda tidak mencatat output apa pun dari kode Anda, ada tiga pernyataan log minimal yang dihasilkan per pemanggilan (START, END dan REPORT):

![\[pemantauan observabilitas gambar 3\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/monitoring-observability-figure-3.png)


Log ini menunjukkan:
+  **RequestId**— ini adalah ID unik yang dihasilkan per permintaan. Jika fungsi Lambda mencoba ulang permintaan, ID ini tidak berubah dan muncul di log untuk setiap percobaan ulang berikutnya.
+  **Start/End** — bookmark ini satu pemanggilan, jadi setiap baris log di antara ini termasuk dalam doa yang sama.
+  **Durasi** — total waktu pemanggilan untuk fungsi handler, tidak termasuk kode. `INIT`
+  **Durasi Tagihan** - menerapkan logika pembulatan untuk tujuan penagihan.
+  **Ukuran Memori** — jumlah memori yang dialokasikan untuk fungsi.
+  **Max Memory Used** — jumlah maksimum memori yang digunakan selama pemanggilan.
+  **Init Duration** — waktu yang dibutuhkan untuk menjalankan `INIT` bagian kode, di luar handler utama.

## Akses log dengan AWS CLI
<a name="monitoring-cloudwatchlogs-cli"></a>

 AWS CLI Ini adalah alat sumber terbuka yang memungkinkan Anda berinteraksi dengan AWS layanan menggunakan perintah di shell baris perintah Anda. Untuk menyelesaikan langkah-langkah di bagian ini, Anda harus memiliki [AWS CLI versi 2](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Anda dapat menggunakan [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) untuk mengambil log untuk invokasi menggunakan opsi perintah `--log-type`. Respons berisi bidang `LogResult` yang memuat hingga 4 KB log berkode base64 dari invokasi.

**Example mengambil ID log**  
Contoh berikut menunjukkan cara mengambil *ID log* dari `LogResult` untuk fungsi bernama `my-function`.  

```
aws lambda invoke --function-name my-function out --log-type Tail
```
Anda akan melihat output berikut:  

```
{
    "StatusCode": 200,
    "LogResult": "U1RBUlQgUmVxdWVzdElkOiA4N2QwNDRiOC1mMTU0LTExZTgtOGNkYS0yOTc0YzVlNGZiMjEgVmVyc2lvb...",
    "ExecutedVersion": "$LATEST"
}
```

**Example mendekode log**  
Pada prompt perintah yang sama, gunakan utilitas `base64` untuk mendekodekan log. Contoh berikut menunjukkan cara mengambil log berkode base64 untuk `my-function`.  

```
aws lambda invoke --function-name my-function out --log-type Tail \
--query 'LogResult' --output text --cli-binary-format raw-in-base64-out | base64 --decode
```
**cli-binary-format**Opsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankan`aws configure set cli-binary-format raw-in-base64-out`. Untuk informasi selengkapnya, lihat [opsi baris perintah global yang AWS CLI didukung](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) di *Panduan AWS Command Line Interface Pengguna untuk Versi 2*.  
Anda akan melihat output berikut:  

```
START RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8 Version: $LATEST
"AWS_SESSION_TOKEN": "AgoJb3JpZ2luX2VjELj...", "_X_AMZN_TRACE_ID": "Root=1-5d02e5ca-f5792818b6fe8368e5b51d50;Parent=191db58857df8395;Sampled=0"",ask/lib:/opt/lib",
END RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8
REPORT RequestId: 57f231fb-1730-4395-85cb-4f71bd2b87b8  Duration: 79.67 ms      Billed Duration: 80 ms         Memory Size: 128 MB     Max Memory Used: 73 MB
```
Utilitas `base64` tersedia di Linux, macOS, dan [Ubuntu pada Windows](https://docs.microsoft.com/en-us/windows/wsl/install-win10). Pengguna macOS mungkin harus menggunakan `base64 -D`.



**Example Skrip get-logs.sh**  
Pada prompt perintah yang sama, gunakan script berikut untuk mengunduh lima peristiwa log terakhir. Skrip menggunakan `sed` untuk menghapus kutipan dari file output, dan akan tidur selama 15 detik untuk memberikan waktu agar log tersedia. Output mencakup respons dari Lambda dan output dari perintah `get-log-events`.   
Salin konten dari contoh kode berikut dan simpan dalam direktori proyek Lambda Anda sebagai `get-logs.sh`.  
**cli-binary-format**Opsi ini diperlukan jika Anda menggunakan AWS CLI versi 2. Untuk menjadikan ini pengaturan default, jalankan`aws configure set cli-binary-format raw-in-base64-out`. Untuk informasi selengkapnya, lihat [opsi baris perintah global yang AWS CLI didukung](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-options.html#cli-configure-options-list) di *Panduan AWS Command Line Interface Pengguna untuk Versi 2*.  

```
#!/bin/bash
aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{"key": "value"}' out
sed -i'' -e 's/"//g' out
sleep 15
aws logs get-log-events --log-group-name /aws/lambda/my-function --log-stream-name stream1 --limit 5
```

**Example macOS dan Linux (khusus)**  
Pada prompt perintah yang sama, pengguna macOS dan Linux mungkin perlu menjalankan perintah berikut untuk memastikan skrip dapat dijalankan.  

```
chmod -R 755 get-logs.sh
```

**Example mengambil lima log acara terakhir**  
Pada prompt perintah yang sama, gunakan skrip berikut untuk mendapatkan lima log acara terakhir.  

```
./get-logs.sh
```
Anda akan melihat output berikut:  

```
{
    "StatusCode": 200,
    "ExecutedVersion": "$LATEST"
}
{
    "events": [
        {
            "timestamp": 1559763003171,
            "message": "START RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf Version: $LATEST\n",
            "ingestionTime": 1559763003309
        },
        {
            "timestamp": 1559763003173,
            "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tENVIRONMENT VARIABLES\r{\r  \"AWS_LAMBDA_FUNCTION_VERSION\": \"$LATEST\",\r ...",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003173,
            "message": "2019-06-05T19:30:03.173Z\t4ce9340a-b765-490f-ad8a-02ab3415e2bf\tINFO\tEVENT\r{\r  \"key\": \"value\"\r}\n",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003218,
            "message": "END RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\n",
            "ingestionTime": 1559763018353
        },
        {
            "timestamp": 1559763003218,
            "message": "REPORT RequestId: 4ce9340a-b765-490f-ad8a-02ab3415e2bf\tDuration: 26.73 ms\tBilled Duration: 27 ms \tMemory Size: 128 MB\tMax Memory Used: 75 MB\t\n",
            "ingestionTime": 1559763018353
        }
    ],
    "nextForwardToken": "f/34783877304859518393868359594929986069206639495374241795",
    "nextBackwardToken": "b/34783877303811383369537420289090800615709599058929582080"
}
```

## Mengurai log dan logging terstruktur
<a name="querying-logs"></a>

Dengan Wawasan CloudWatch Log, Anda dapat mencari dan menganalisis data log menggunakan [sintaks kueri](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html) khusus. Ini melakukan kueri pada beberapa grup log dan menyediakan pemfilteran yang kuat menggunakan pencocokan pola [ekspresi [glob](https://en.wikipedia.org/wiki/Glob_(programming)) dan reguler](https://en.wikipedia.org/wiki/Regular_expression).

Anda dapat memanfaatkan kemampuan ini dengan menerapkan logging terstruktur di fungsi Lambda Anda. Pencatatan terstruktur mengatur log Anda ke dalam format yang telah ditentukan sebelumnya, sehingga lebih mudah untuk melakukan kueri. Menggunakan level log merupakan langkah pertama yang penting dalam menghasilkan log ramah filter yang memisahkan pesan informasi dari peringatan atau kesalahan. Misalnya, perhatikan kode Node.js berikut:

```
exports.handler = async (event) => {
    console.log("console.log - Application is fine")
    console.info("console.info - This is the same as console.log")
    console.warn("console.warn - Application provides a warning")
    console.error("console.error - An error occurred")
}
```

File CloudWatch log yang dihasilkan berisi bidang terpisah yang menentukan tingkat log:

![\[pemantauan observabilitas angka 10\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/monitoring-observability-figure-10.png)


Kueri Wawasan CloudWatch Log kemudian dapat memfilter pada tingkat log. Misalnya, untuk menanyakan kesalahan saja, Anda dapat menggunakan kueri berikut:

```
fields @timestamp, @message
| filter @message like /ERROR/
| sort @timestamp desc
```

### Pencatatan terstruktur JSON
<a name="querying-logs-json"></a>

JSON umumnya digunakan untuk menyediakan struktur untuk log aplikasi. Dalam contoh berikut, log telah dikonversi ke JSON untuk menghasilkan tiga nilai yang berbeda:

![\[pemantauan observabilitas angka 11\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/monitoring-observability-figure-11.png)


Fitur Wawasan CloudWatch Log secara otomatis menemukan nilai dalam keluaran JSON dan mem-parsing pesan sebagai bidang, tanpa perlu glob kustom atau ekspresi reguler. Dengan menggunakan log terstruktur JSON, kueri berikut menemukan pemanggilan di mana file yang diunggah lebih besar dari 1 MB, waktu unggah lebih dari 1 detik, dan pemanggilan bukanlah awal yang dingin:

```
fields @message
| filter @message like /INFO/
| filter uploadedBytes > 1000000
| filter uploadTimeMS > 1000
| filter invocation != 1
```

Kueri ini mungkin menghasilkan hasil sebagai berikut:

![\[pemantauan observabilitas angka 12\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/monitoring-observability-figure-12.png)


Bidang yang ditemukan di JSON secara otomatis diisi di menu *bidang Ditemukan* di sisi kanan. Bidang standar yang dipancarkan oleh layanan Lambda diawali dengan '@', dan Anda dapat melakukan kueri pada bidang ini dengan cara yang sama. Log Lambda selalu menyertakan bidang @timestamp, @logStream, @message, @requestId, @duration, @billedDuration,, @, @maxMemoryUsed,. @type @memorySize Jika X-Ray diaktifkan untuk suatu fungsi, log juga menyertakan @ xrayTraceId dan @xraySegmentId.

Saat sumber AWS peristiwa seperti Amazon S3, Amazon SQS, atau EventBridge Amazon memanggil fungsi Anda, seluruh acara disediakan ke fungsi sebagai input objek JSON. Dengan mencatat peristiwa ini di baris pertama fungsi, Anda kemudian dapat melakukan kueri pada salah satu bidang bersarang menggunakan Wawasan CloudWatch Log.

### Pertanyaan Wawasan Berguna
<a name="useful-logs-queries"></a>

Tabel berikut menunjukkan contoh kueri Wawasan yang dapat berguna untuk memantau fungsi Lambda.


| Deskripsi | Contoh sintaks kueri | 
| --- | --- | 
|  100 kesalahan terakhir  |  

```
 fields Timestamp, LogLevel, Message
 \| filter LogLevel == "ERR"
 \| sort @timestamp desc
 \| limit 100
```  | 
|  100 pemanggilan dengan tagihan tertinggi  |  

```
filter @type = "REPORT"
\| fields @requestId, @billedDuration
\| sort by @billedDuration desc
\| limit 100
```  | 
|  Persentase dingin dimulai dalam total pemanggilan  |  

```
filter @type = "REPORT"
\| stats sum(strcontains(@message, "Init Duration"))/count(*) * 100 as
  coldStartPct, avg(@duration)
  by bin(5m)
```  | 
|  Laporan persentil durasi Lambda  |  

```
filter @type = "REPORT"
\| stats
    avg(@billedDuration) as Average,
    percentile(@billedDuration, 99) as NinetyNinth,
    percentile(@billedDuration, 95) as NinetyFifth,
    percentile(@billedDuration, 90) as Ninetieth
    by bin(30m)
```  | 
|  Laporan persentil penggunaan memori Lambda  |  

```
filter @type="REPORT"
\| stats avg(@maxMemoryUsed/1024/1024) as mean_MemoryUsed,
    min(@maxMemoryUsed/1024/1024) as min_MemoryUsed,
    max(@maxMemoryUsed/1024/1024) as max_MemoryUsed,
    percentile(@maxMemoryUsed/1024/1024, 95) as Percentile95
```  | 
|  Pemanggilan menggunakan 100% memori yang ditetapkan  |  

```
filter @type = "REPORT" and @maxMemoryUsed=@memorySize
\| stats
    count_distinct(@requestId)
    by bin(30m)
```  | 
|  Memori rata-rata yang digunakan di seluruh pemanggilan  |  

```
avgMemoryUsedPERC,
    avg(@billedDuration) as avgDurationMS
    by bin(5m)
```  | 
|  Visualisasi statistik memori  |  

```
filter @type = "REPORT"
\| stats
    max(@maxMemoryUsed / 1024 / 1024) as maxMemMB,
    avg(@maxMemoryUsed / 1024 / 1024) as avgMemMB,
    min(@maxMemoryUsed / 1024 / 1024) as minMemMB,
    (avg(@maxMemoryUsed / 1024 / 1024) / max(@memorySize / 1024 / 1024)) * 100 as avgMemUsedPct,
    avg(@billedDuration) as avgDurationMS
    by bin(30m)
```  | 
|  Doa tempat Lambda keluar  |  

```
filter @message like /Process exited/
\| stats count() by bin(30m)
```  | 
|  Doa yang habis waktunya  |  

```
filter @message like /Task timed out/
\| stats count() by bin(30m)
```  | 
|  Laporan latensi  |  

```
filter @type = "REPORT"
\| stats avg(@duration), max(@duration), min(@duration)
  by bin(5m)
```  | 
|  Memori yang disediakan secara berlebihan  |  

```
filter @type = "REPORT"
\| stats max(@memorySize / 1024 / 1024) as provisonedMemMB,
        min(@maxMemoryUsed / 1024 / 1024) as smallestMemReqMB,
        avg(@maxMemoryUsed / 1024 / 1024) as avgMemUsedMB,
        max(@maxMemoryUsed / 1024 / 1024) as maxMemUsedMB,
        provisonedMemMB - maxMemUsedMB as overProvisionedMB
```  | 

## Visualisasi log dan dasbor
<a name="monitoring-logs-visualization"></a>

Untuk kueri Wawasan CloudWatch Log apa pun, Anda dapat mengekspor hasilnya ke format penurunan harga atau CSV. Dalam beberapa kasus, mungkin lebih berguna untuk membuat [visualisasi dari kueri](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_Insights-Visualizing-Log-Data.html), asalkan setidaknya ada satu fungsi agregasi. `stats`Fungsi ini memungkinkan Anda untuk menentukan agregasi dan pengelompokan.

Contoh *LogInsightsJSON* sebelumnya difilter pada ukuran upload dan waktu upload dan mengecualikan pemanggilan pertama. Ini menghasilkan tabel data. Untuk memantau sistem produksi, mungkin lebih berguna untuk memvisualisasikan ukuran file minimum, maksimum, dan rata-rata untuk menemukan outlier. Untuk melakukan ini, terapkan fungsi statistik dengan agregat yang diperlukan, dan kelompokkan pada nilai waktu seperti setiap menit:

Misalnya, pertimbangkan kueri berikut. Ini adalah contoh kueri yang sama dari [Pencatatan terstruktur JSON](#querying-logs-json) bagian, tetapi dengan fungsi agregasi tambahan:

```
fields @message
| filter @message like /INFO/
| filter uploadedBytes > 1000000
| filter uploadTimeMS > 1000
| filter invocation != 1
| stats min(uploadedBytes), avg(uploadedBytes), max(uploadedBytes) by bin (1m)
```

Kami menyertakan agregat ini karena mungkin lebih berguna untuk memvisualisasikan ukuran file minimum, maksimum, dan rata-rata untuk menemukan outlier. Anda dapat melihat hasilnya di tab **Visualisasi**:

![\[pemantauan observabilitas gambar 14\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/monitoring-observability-figure-14.png)


Setelah Anda selesai membangun visualisasi, Anda dapat menambahkan grafik ke dasbor secara opsional. CloudWatch Untuk melakukan ini, pilih **Tambahkan ke dasbor** di atas visualisasi. Ini menambahkan kueri sebagai widget dan memungkinkan Anda memilih interval penyegaran otomatis, sehingga lebih mudah untuk terus memantau hasilnya:

![\[pemantauan observabilitas angka 15\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/monitoring-observability-figure-15.png)


# Mengirim log fungsi Lambda ke Firehose
<a name="logging-with-firehose"></a>

Konsol Lambda sekarang menawarkan opsi untuk mengirim log fungsi ke Firehose. Ini memungkinkan streaming real-time log Anda ke berbagai tujuan yang didukung oleh Firehose, termasuk alat analitik pihak ketiga dan titik akhir kustom.

**catatan**  
Anda dapat mengonfigurasi log fungsi Lambda untuk dikirim ke Firehose menggunakan konsol Lambda,,, dan semuanya. AWS CLI AWS CloudFormation AWS SDKs

## Harga
<a name="logging-firehose-pricing"></a>

Untuk detail tentang harga, lihat [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/#Vended_Logs).

## Izin yang diperlukan untuk tujuan log Firehose
<a name="logging-firehose-permissions"></a>

Saat menggunakan konsol Lambda untuk mengonfigurasi Firehose sebagai tujuan log fungsi Anda, Anda memerlukan:

1. [Izin IAM yang diperlukan](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html#monitoring-cloudwatchlogs-prereqs) untuk menggunakan CloudWatch Log dengan Lambda.

1. Untuk [mengatur filter berlangganan dengan Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#FirehoseExample). Filter ini menentukan peristiwa log mana yang dikirimkan ke aliran Firehose Anda.

## Mengirim log fungsi Lambda ke Firehose
<a name="logging-firehose-setup"></a>

Di konsol Lambda, Anda dapat mengirim log fungsi langsung ke Firehose setelah membuat fungsi baru. Untuk melakukan ini, selesaikan langkah-langkah ini:

1. Masuk ke Konsol AWS Manajemen dan buka konsol Lambda.

1. Pilih nama fungsi Anda.

1. Pilih tab **Konfigurasi**.

1. Pilih tab **Alat Pemantauan dan Operasi**.

1. Di bagian “Konfigurasi logging”, pilih **Edit**.

1. Di bagian “Konten log”, pilih format log.

1. Di bagian “Log destination”, selesaikan langkah-langkah berikut:

   1. Pilih layanan tujuan.

   1. Pilih untuk **membuat grup log baru** atau menggunakan **grup log yang ada**.
**catatan**  
Jika memilih grup log yang ada untuk tujuan Firehose, pastikan grup log yang Anda pilih adalah jenis grup `Delivery` log.

   1. Pilih aliran Firehose.

   1. Grup CloudWatch `Delivery` log akan muncul.

1. Pilih **Simpan**.

**catatan**  
Jika peran IAM yang disediakan di konsol tidak memiliki izin yang diperlukan, maka pengaturan tujuan akan gagal. Untuk memperbaikinya, lihat Izin yang diperlukan untuk tujuan log Firehose untuk memberikan izin yang diperlukan.

## Pencatatan Lintas Akun
<a name="cross-account-logging-firehose"></a>

Anda dapat mengonfigurasi Lambda untuk mengirim log ke aliran pengiriman Firehose di akun yang berbeda. AWS Ini memerlukan pengaturan tujuan dan mengonfigurasi izin yang sesuai di kedua akun.

Untuk petunjuk mendetail tentang pengaturan pencatatan lintas akun, termasuk peran dan kebijakan IAM yang diperlukan, lihat [Menyiapkan langganan lintas akun baru](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CrossAccountSubscriptions.html) di dokumentasi Log. CloudWatch 

# Mengirim log fungsi Lambda ke Amazon S3
<a name="logging-with-s3"></a>

Anda dapat mengonfigurasi fungsi Lambda Anda untuk mengirim log langsung ke Amazon S3 menggunakan konsol Lambda. Fitur ini memberikan solusi hemat biaya untuk penyimpanan log jangka panjang dan memungkinkan opsi analisis yang kuat menggunakan layanan seperti Athena.

**catatan**  
Anda dapat mengonfigurasi log fungsi Lambda untuk dikirim ke Amazon S3 menggunakan konsol AWS CLI Lambda,,, dan semuanya. AWS CloudFormation AWS SDKs

## Harga
<a name="logging-s3-pricing"></a>

Untuk detail tentang harga, lihat [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/#Vended_Logs).

## Izin yang diperlukan untuk tujuan log Amazon S3
<a name="logging-s3-permissions"></a>

Saat menggunakan konsol Lambda untuk mengonfigurasi Amazon S3 sebagai tujuan log fungsi Anda, Anda memerlukan:

1. [Izin IAM yang diperlukan](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html#monitoring-cloudwatchlogs-prereqs) untuk menggunakan CloudWatch Log dengan Lambda.

1. Untuk[Siapkan filter langganan CloudWatch Log untuk mengirim log fungsi Lambda ke Amazon S3](#using-cwl-subscription-filter-lambda-s3). Filter ini menentukan peristiwa log mana yang dikirimkan ke bucket Amazon S3 Anda.

## Siapkan filter langganan CloudWatch Log untuk mengirim log fungsi Lambda ke Amazon S3
<a name="using-cwl-subscription-filter-lambda-s3"></a>

Untuk mengirim CloudWatch log dari Log ke Amazon S3, Anda perlu membuat filter langganan. Filter ini menentukan peristiwa log mana yang dikirimkan ke bucket Amazon S3 Anda. Bucket Amazon S3 Anda harus berada di Wilayah yang sama dengan grup log Anda.

### Untuk membuat filter berlangganan untuk Amazon S3
<a name="create-subscription-filter-s3"></a>

1. Buat bucket Amazon Simple Storage Service (Amazon S3). Kami menyarankan Anda menggunakan bucket yang dibuat khusus untuk CloudWatch Log. Namun, jika Anda ingin menggunakan bucket yang sudah ada, lewati ke langkah 2.

   Jalankan perintah berikut, dengan mengganti Wilayah placeholder dengan Wilayah yang ingin Anda gunakan:

   ```
   aws s3api create-bucket --bucket amzn-s3-demo-bucket2 --create-bucket-configuration LocationConstraint=region
   ```
**catatan**  
`amzn-s3-demo-bucket2`adalah contoh nama bucket Amazon S3. Itu *dicadangkan*. Agar prosedur ini berfungsi, Anda harus menggantinya dengan nama bucket Amazon S3 unik Anda.

   Berikut ini adalah output contoh:

   ```
   {
       "Location": "/amzn-s3-demo-bucket2"
   }
   ```

1. Buat peran IAM yang memberikan izin CloudWatch Log untuk memasukkan data ke dalam bucket Amazon S3 Anda. Kebijakan ini mencakup aws: SourceArn global condition context key untuk membantu mencegah masalah keamanan deputi yang membingungkan. Untuk informasi lebih lanjut, lihat [Pencegahan wakil yang bingung](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Subscriptions-confused-deputy.html).

   1. Gunakan editor teks untuk membuat kebijakan kepercayaan dalam file `~/TrustPolicyForCWL.json` sebagai berikut:

      ```
      {
          "Statement": {
              "Effect": "Allow",
              "Principal": { "Service": "logs.amazonaws.com" },
              "Condition": { 
                  "StringLike": {
                      "aws:SourceArn": "arn:aws:logs:region:123456789012:*"
                  } 
               },
              "Action": "sts:AssumeRole"
          } 
      }
      ```

   1. Gunakan perintah create-role untuk membuat IAM role, dengan menentukan file kebijakan kepercayaan. Perhatikan nilai Role.Arn yang dihasilkan, karena Anda akan membutuhkannya dalam langkah selanjutnya:

      ```
      aws iam create-role \
       --role-name CWLtoS3Role \
       --assume-role-policy-document file://~/TrustPolicyForCWL.json
      {
          "Role": {
              "AssumeRolePolicyDocument": {
                  "Statement": {
                      "Action": "sts:AssumeRole",
                      "Effect": "Allow",
                      "Principal": {
                          "Service": "logs.amazonaws.com"
                      },
                      "Condition": { 
                          "StringLike": {
                              "aws:SourceArn": "arn:aws:logs:region:123456789012:*"
                          } 
                      }
                  }
              },
              "RoleId": "AAOIIAH450GAB4HC5F431",
              "CreateDate": "2015-05-29T13:46:29.431Z",
              "RoleName": "CWLtoS3Role",
              "Path": "/",
              "Arn": "arn:aws:iam::123456789012:role/CWLtoS3Role"
          }
      }
      ```

1. Buat kebijakan izin untuk menentukan tindakan apa yang dapat dilakukan CloudWatch Log pada akun Anda. Pertama, gunakan editor teks untuk membuat kebijakan izin dalam file `~/PermissionsForCWL.json`:

   ```
   {
     "Statement": [
       {
         "Effect": "Allow",
         "Action": ["s3:PutObject"],
         "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket2/*"]
       }
     ]
   }
   ```

   Kaitkan kebijakan izin dengan peran menggunakan `put-role-policy` perintah berikut:

   ```
   aws iam put-role-policy --role-name CWLtoS3Role --policy-name Permissions-Policy-For-S3 --policy-document file://~/PermissionsForCWL.json
   ```

1. Buat grup `Delivery` log atau gunakan grup `Delivery` log yang ada.

   ```
   aws logs create-log-group --log-group-name my-logs --log-group-class DELIVERY --region REGION_NAME
   ```

1. `PutSubscriptionFilter`untuk mengatur tujuan

   ```
   aws logs put-subscription-filter
   --log-group-name my-logs
   --filter-name my-lambda-delivery
   --filter-pattern ""
   --destination-arn arn:aws:s3:::amzn-s3-demo-bucket2
   --role-arn arn:aws:iam::123456789012:role/CWLtoS3Role
   --region REGION_NAME
   ```

## Mengirim log fungsi Lambda ke Amazon S3
<a name="logging-s3-setup"></a>

Di konsol Lambda, Anda dapat mengirim log fungsi langsung ke Amazon S3 setelah membuat fungsi baru. Untuk melakukan ini, selesaikan langkah-langkah ini:

1. Masuk ke Konsol AWS Manajemen dan buka konsol Lambda.

1. Pilih nama fungsi Anda.

1. Pilih tab **Konfigurasi**.

1. Pilih tab **Alat Pemantauan dan Operasi**.

1. Di bagian “Konfigurasi logging”, pilih **Edit**.

1. Di bagian “Konten log”, pilih format log.

1. Di bagian “Log destination”, selesaikan langkah-langkah berikut:

   1. Pilih layanan tujuan.

   1. Pilih untuk **membuat grup log baru** atau menggunakan **grup log yang ada**.
**catatan**  
Jika memilih grup log yang ada untuk tujuan Amazon S3, pastikan grup log yang Anda pilih adalah jenis grup `Delivery` log.

   1. Pilih bucket Amazon S3 untuk menjadi tujuan log fungsi Anda.

   1. Grup CloudWatch `Delivery` log akan muncul.

1. Pilih **Simpan**.

**catatan**  
Jika peran IAM yang disediakan di konsol tidak memiliki izin yang diperlukan, maka pengaturan tujuan akan gagal. Untuk memperbaikinya, lihat [Izin yang diperlukan untuk tujuan log Amazon S3](#logging-s3-permissions).

## Pencatatan Lintas Akun
<a name="cross-account-logging-s3"></a>

Anda dapat mengonfigurasi Lambda untuk mengirim log ke bucket Amazon S3 di akun lain. AWS Ini memerlukan pengaturan tujuan dan mengonfigurasi izin yang sesuai di kedua akun.

Untuk petunjuk mendetail tentang pengaturan pencatatan lintas akun, termasuk peran dan kebijakan IAM yang diperlukan, lihat [Menyiapkan langganan lintas akun baru](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CrossAccountSubscriptions.html) di dokumentasi Log. CloudWatch 

# Logging panggilan AWS Lambda API menggunakan AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

AWS Lambda terintegrasi dengan [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html), layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau Layanan AWS. CloudTrail menangkap panggilan API untuk Lambda sebagai peristiwa. Panggilan yang diambil termasuk panggilan dari konsol Lambda dan panggilan kode ke operasi API Lambda. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat untuk Lambda, alamat IP dari mana permintaan itu dibuat, kapan dibuat, dan detail tambahan.

Setiap entri peristiwa atau log berisi informasi tentang entitas yang membuat permintaan tersebut. Informasi identitas membantu Anda menentukan berikut hal ini:
+ Baik permintaan tersebut dibuat dengan kredensial pengguna root atau pengguna.
+ Apakah permintaan dibuat atas nama pengguna IAM Identity Center.
+ Apakah permintaan tersebut dibuat dengan kredensial keamanan sementara untuk satu peran atau pengguna gabungan.
+ Apakah permintaan tersebut dibuat oleh Layanan AWS lain.

CloudTrail aktif di Anda Akun AWS ketika Anda membuat akun dan Anda secara otomatis memiliki akses ke **riwayat CloudTrail Acara**. **Riwayat CloudTrail Acara menyediakan catatan** yang dapat dilihat, dapat dicari, dapat diunduh, dan tidak dapat diubah dari 90 hari terakhir dari peristiwa manajemen yang direkam dalam file. Wilayah AWS Untuk informasi selengkapnya, lihat [Bekerja dengan riwayat CloudTrail Acara](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) di *Panduan AWS CloudTrail Pengguna*. Tidak ada CloudTrail biaya untuk melihat **riwayat Acara**.

Untuk catatan acara yang sedang berlangsung dalam 90 hari Akun AWS terakhir Anda, buat jejak atau penyimpanan data acara [CloudTrailDanau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html).

**CloudTrail jalan setapak**  
*Jejak* memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Semua jalur yang dibuat menggunakan Konsol Manajemen AWS Multi-region. Anda dapat membuat jalur Single-region atau Multi-region dengan menggunakan. AWS CLI Membuat jejak Multi-wilayah disarankan karena Anda menangkap aktivitas Wilayah AWS di semua akun Anda. Jika Anda membuat jejak wilayah Tunggal, Anda hanya dapat melihat peristiwa yang dicatat di jejak. Wilayah AWS Untuk informasi selengkapnya tentang jejak, lihat [Membuat jejak untuk Anda Akun AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) dan [Membuat jejak untuk organisasi](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html) di *Panduan AWS CloudTrail Pengguna*.  
Anda dapat mengirimkan satu salinan acara manajemen yang sedang berlangsung ke bucket Amazon S3 Anda tanpa biaya CloudTrail dengan membuat jejak, namun, ada biaya penyimpanan Amazon S3. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/). Untuk informasi tentang harga Amazon S3, lihat [Harga Amazon S3](https://aws.amazon.com/s3/pricing/).

**CloudTrail Penyimpanan data acara danau**  
*CloudTrail Lake* memungkinkan Anda menjalankan kueri berbasis SQL pada acara Anda. CloudTrail [Lake mengubah peristiwa yang ada dalam format JSON berbasis baris ke format Apache ORC.](https://orc.apache.org/) ORC adalah format penyimpanan kolumnar yang dioptimalkan untuk pengambilan data dengan cepat. Peristiwa digabungkan ke dalam *penyimpanan data peristiwa*, yang merupakan kumpulan peristiwa yang tidak dapat diubah berdasarkan kriteria yang Anda pilih dengan menerapkan pemilih acara [tingkat lanjut](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors). Penyeleksi yang Anda terapkan ke penyimpanan data acara mengontrol peristiwa mana yang bertahan dan tersedia untuk Anda kueri. Untuk informasi lebih lanjut tentang CloudTrail Danau, lihat [Bekerja dengan AWS CloudTrail Danau](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) di *Panduan AWS CloudTrail Pengguna*.  
CloudTrail Penyimpanan data acara danau dan kueri menimbulkan biaya. Saat Anda membuat penyimpanan data acara, Anda memilih [opsi harga](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option) yang ingin Anda gunakan untuk penyimpanan data acara. Opsi penetapan harga menentukan biaya untuk menelan dan menyimpan peristiwa, dan periode retensi default dan maksimum untuk penyimpanan data acara. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/).

## Peristiwa data Lambda di CloudTrail
<a name="cloudtrail-data-events"></a>

[Peristiwa data](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events) memberikan informasi tentang operasi sumber daya yang dilakukan pada atau di sumber daya (misalnya, membaca atau menulis ke objek Amazon S3). Ini juga dikenal sebagai operasi bidang data. Peristiwa data sering kali merupakan aktivitas bervolume tinggi. Secara default, CloudTrail tidak mencatat sebagian besar peristiwa data, dan **riwayat CloudTrail Peristiwa** tidak merekamnya.

Satu peristiwa CloudTrail data yang dicatat secara default untuk layanan yang didukung adalah`LambdaESMDisabled`. Untuk mempelajari lebih lanjut tentang menggunakan acara ini untuk membantu memecahkan masalah dengan pemetaan sumber peristiwa Lambda, lihat. [Menggunakan CloudTrail untuk memecahkan masalah sumber acara Lambda yang dinonaktifkan](#cloudtrail-ESM-troubleshooting)

Biaya tambahan berlaku untuk peristiwa data. Untuk informasi selengkapnya tentang CloudTrail harga, lihat [AWS CloudTrail Harga](https://aws.amazon.com/cloudtrail/pricing/).

Anda dapat mencatat peristiwa data untuk jenis `AWS::Lambda::Function` sumber daya menggunakan CloudTrail konsol AWS CLI, atau operasi CloudTrail API. Untuk informasi selengkapnya tentang cara mencatat peristiwa data, lihat [Mencatat peristiwa data dengan Konsol Manajemen AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-console) dan [Logging peristiwa data dengan AWS Command Line Interface](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#creating-data-event-selectors-with-the-AWS-CLI) di *Panduan AWS CloudTrail Pengguna*.

Tabel berikut mencantumkan jenis sumber daya Lambda yang dapat Anda log peristiwa data. Kolom **tipe peristiwa data (konsol)** menunjukkan nilai yang akan dipilih dari daftar **tipe peristiwa Data** di CloudTrail konsol. Kolom nilai **resources.type menunjukkan `resources.type` nilai**, yang akan Anda tentukan saat mengonfigurasi penyeleksi acara lanjutan menggunakan or. AWS CLI CloudTrail APIs CloudTrailKolom **Data yang APIs dicatat ke** menampilkan panggilan API yang dicatat CloudTrail untuk jenis sumber daya. 


| Jenis peristiwa data (konsol) | nilai resources.type | Data APIs masuk ke CloudTrail | 
| --- | --- | --- | 
| Lambda |  AWS::Lambda::Function  |  [Memohon](https://docs.aws.amazon.com/lambda/latest/api/API_Invoke.html)  | 

Anda dapat mengonfigurasi pemilih acara lanjutan untuk memfilter pada `eventName``readOnly`,, dan `resources.ARN` bidang untuk mencatat hanya peristiwa yang penting bagi Anda. Contoh berikut adalah tampilan JSON dari konfigurasi peristiwa data yang mencatat peristiwa untuk fungsi tertentu saja. Untuk informasi selengkapnya tentang bidang ini, lihat [https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedFieldSelector.html)di *Referensi AWS CloudTrail API*.

```
[
  {
    "name": "function-invokes",
    "fieldSelectors": [
      {
        "field": "eventCategory",
        "equals": [
          "Data"
        ]
      },
      {
        "field": "resources.type",
        "equals": [
          "AWS::Lambda::Function"
        ]
      },
      {
        "field": "resources.ARN",
        "equals": [
          "arn:aws:lambda:us-east-1:111122223333:function:hello-world"
        ]
      }
    ]
  }
]
```

## Acara manajemen Lambda di CloudTrail
<a name="cloudtrail-management-events"></a>

[Acara manajemen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events) memberikan informasi tentang operasi manajemen yang dilakukan pada sumber daya di Anda Akun AWS. Ini juga dikenal sebagai operasi bidang kontrol. Secara default, CloudTrail mencatat peristiwa manajemen.

Lambda mendukung pencatatan tindakan berikut sebagai peristiwa manajemen dalam file CloudTrail log.

**catatan**  
Dalam file CloudTrail log, `eventName` mungkin menyertakan informasi tanggal dan versi, tetapi masih mengacu pada tindakan API publik yang sama. Misalnya, `GetFunction` tindakan muncul sebagai`GetFunction20150331v2`. Daftar berikut menentukan kapan nama acara berbeda dari nama tindakan API.
+ [AddLayerVersionPermission](https://docs.aws.amazon.com/lambda/latest/api/API_AddLayerVersionPermission.html)
+ [AddPermission](https://docs.aws.amazon.com/lambda/latest/api/API_AddPermission.html)(nama acara:`AddPermission20150331v2`)
+ [CreateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_CreateAlias.html)(nama acara:`CreateAlias20150331`)
+ [CreateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_CreateEventSourceMapping.html)(nama acara:`CreateEventSourceMapping20150331`)
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)(nama acara:`CreateFunction20150331`)

  (`ZipFile`Parameter `Environment` dan dihilangkan dari CloudTrail log untuk`CreateFunction`.)
+ [CreateFunctionUrlConfig](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunctionUrlConfig.html)
+ [DeleteAlias](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteAlias.html)(nama acara:`DeleteAlias20150331`)
+ [DeleteCodeSigningConfig](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteCodeSigningConfig.html)
+ [DeleteEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteEventSourceMapping.html)(nama acara:`DeleteEventSourceMapping20150331`)
+ [DeleteFunction](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteFunction.html)(nama acara:`DeleteFunction20150331`)
+ [DeleteFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteFunctionConcurrency.html)(nama acara:`DeleteFunctionConcurrency20171031`)
+ [DeleteFunctionUrlConfig](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteFunctionUrlConfig.html)
+ [DeleteProvisionedConcurrencyConfig](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteProvisionedConcurrencyConfig.html)
+ [GetAlias](https://docs.aws.amazon.com/lambda/latest/api/API_GetAlias.html)(nama acara:`GetAlias20150331`)
+ [GetEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_GetEventSourceMapping.html)
+ [GetFunction](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunction.html)
+ [GetFunctionUrlConfig](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionUrlConfig.html)
+ [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html)
+ [GetLayerVersionPolicy](https://docs.aws.amazon.com/lambda/latest/api/API_GetLayerVersionPolicy.html)
+ [GetPolicy](https://docs.aws.amazon.com/lambda/latest/api/API_GetPolicy.html)
+ [ListEventSourceMappings](https://docs.aws.amazon.com/lambda/latest/api/API_ListEventSourceMappings.html)
+ [ListFunctions](https://docs.aws.amazon.com/lambda/latest/api/API_ListFunctions.html)
+ [ListFunctionUrlConfigs](https://docs.aws.amazon.com/lambda/latest/api/API_ListFunctionUrlConfigs.html)
+ [PublishLayerVersion](https://docs.aws.amazon.com/lambda/latest/api/API_PublishLayerVersion.html)(nama acara:`PublishLayerVersion20181031`)

  (`ZipFile`Parameter dihilangkan dari CloudTrail log untuk`PublishLayerVersion`.)
+ [PublishVersion](https://docs.aws.amazon.com/lambda/latest/api/API_PublishVersion.html)(nama acara:`PublishVersion20150331`)
+ [PutFunctionConcurrency](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionConcurrency.html)(nama acara:`PutFunctionConcurrency20171031`)
+ [PutFunctionCodeSigningConfig](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionCodeSigningConfig.html)
+ [PutFunctionEventInvokeConfig](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionEventInvokeConfig.html)
+ [PutProvisionedConcurrencyConfig](https://docs.aws.amazon.com/lambda/latest/api/API_PutProvisionedConcurrencyConfig.html)
+ [PutRuntimeManagementConfig](https://docs.aws.amazon.com/lambda/latest/api/API_PutRuntimeManagementConfig.html)
+ [RemovePermission](https://docs.aws.amazon.com/lambda/latest/api/API_RemovePermission.html)(nama acara:`RemovePermission20150331v2`)
+ [TagResource](https://docs.aws.amazon.com/lambda/latest/api/API_TagResource.html)(nama acara:`TagResource20170331v2`)
+ [UntagResource](https://docs.aws.amazon.com/lambda/latest/api/API_UntagResource.html)(nama acara:`UntagResource20170331v2`)
+ [UpdateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateAlias.html)(nama acara:`UpdateAlias20150331`)
+ [UpdateCodeSigningConfig](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateCodeSigningConfig.html) 
+ [UpdateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateEventSourceMapping.html)(nama acara:`UpdateEventSourceMapping20150331`)
+ [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)(nama acara:`UpdateFunctionCode20150331v2`)

  (`ZipFile`Parameter dihilangkan dari CloudTrail log untuk`UpdateFunctionCode`.)
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)(nama acara:`UpdateFunctionConfiguration20150331v2`)

  (`Environment`Parameter dihilangkan dari CloudTrail log untuk`UpdateFunctionConfiguration`.)
+ [UpdateFunctionEventInvokeConfig](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionEventInvokeConfig.html)
+ [UpdateFunctionUrlConfig](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionUrlConfig.html)

## Menggunakan CloudTrail untuk memecahkan masalah sumber acara Lambda yang dinonaktifkan
<a name="cloudtrail-ESM-troubleshooting"></a>

Saat Anda mengubah status pemetaan sumber peristiwa menggunakan tindakan [UpdateEventSourceMapping](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateEventSourceMapping.html)API, panggilan API dicatat sebagai peristiwa manajemen. CloudTrail Pemetaan sumber peristiwa juga dapat bertransisi langsung ke `Disabled` status karena kesalahan.

Untuk layanan berikut, Lambda memublikasikan peristiwa `LambdaESMDisabled` data CloudTrail saat sumber peristiwa Anda bertransisi ke status Dinonaktifkan:
+ Amazon Simple Queue Service (Amazon SQS)
+ Amazon DynamoDB
+ Amazon Kinesis

Lambda tidak mendukung acara ini untuk jenis pemetaan sumber peristiwa lainnya.

Untuk menerima peringatan saat pemetaan sumber peristiwa untuk layanan yang didukung beralih ke `Disabled` status, siapkan alarm di Amazon CloudWatch menggunakan acara tersebut. `LambdaESMDisabled` CloudTrail Untuk mempelajari lebih lanjut tentang mengatur CloudWatch alarm, lihat [Membuat CloudWatch alarm untuk CloudTrail acara: contoh](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudwatch-alarms-for-cloudtrail.html).

`serviceEventDetails`Entitas dalam pesan `LambdaESMDisabled` acara berisi salah satu kode kesalahan berikut.

**`RESOURCE_NOT_FOUND`**  
Sumber daya yang ditentukan dalam permintaan tidak ada.

**`FUNCTION_NOT_FOUND`**  
Fungsi yang dilampirkan pada sumber kejadian tidak ada.

**`REGION_NAME_NOT_VALID`**  
Nama Wilayah yang diberikan ke sumber kejadian atau fungsi tidak valid.

**`AUTHORIZATION_ERROR`**  
Izin belum diatur, atau tidak dikonfigurasi dengan benar.

**`FUNCTION_IN_FAILED_STATE`**  
Kode fungsi tidak tersusun, mengalami pengecualian yang tidak dapat dipulihkan, atau terjadi deployment yang buruk.

## Contoh acara Lambda
<a name="cloudtrail-event-examples"></a>

Peristiwa mewakili permintaan tunggal dari sumber manapun dan mencakup informasi tentang operasi API yang diminta, tanggal dan waktu operasi, parameter permintaan, dan sebagainya. CloudTrail file log bukanlah jejak tumpukan yang diurutkan dari panggilan API publik, sehingga peristiwa tidak muncul dalam urutan tertentu.

Contoh berikut menunjukkan entri CloudTrail log untuk `GetFunction` dan `DeleteFunction` tindakan.

**catatan**  
`eventName`Mungkin termasuk informasi tanggal dan versi, seperti`"GetFunction20150331"`, tetapi masih mengacu pada API publik yang sama. 

```
{
  "Records": [
    {
      "eventVersion": "1.03",
      "userIdentity": {
        "type": "IAMUser",
        "principalId": "A1B2C3D4E5F6G7EXAMPLE",
        "arn": "arn:aws:iam::111122223333:user/myUserName",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "myUserName"
      },
      "eventTime": "2015-03-18T19:03:36Z",
      "eventSource": "lambda.amazonaws.com",
      "eventName": "GetFunction",
      "awsRegion": "us-east-1",
      "sourceIPAddress": "127.0.0.1",
      "userAgent": "Python-httplib2/0.8 (gzip)",
      "errorCode": "AccessDenied",
      "errorMessage": "User: arn:aws:iam::111122223333:user/myUserName is not authorized to perform: lambda:GetFunction on resource: arn:aws:lambda:us-west-2:111122223333:function:other-acct-function",
      "requestParameters": null,
      "responseElements": null,
      "requestID": "7aebcd0f-cda1-11e4-aaa2-e356da31e4ff",
      "eventID": "e92a3e85-8ecd-4d23-8074-843aabfe89bf",
      "eventType": "AwsApiCall",
      "recipientAccountId": "111122223333"
    },
    {
      "eventVersion": "1.03",
      "userIdentity": {
        "type": "IAMUser",
        "principalId": "A1B2C3D4E5F6G7EXAMPLE",
        "arn": "arn:aws:iam::111122223333:user/myUserName",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "myUserName"
      },
      "eventTime": "2015-03-18T19:04:42Z",
      "eventSource": "lambda.amazonaws.com",
      "eventName": "DeleteFunction20150331",
      "awsRegion": "us-east-1",
      "sourceIPAddress": "127.0.0.1",
      "userAgent": "Python-httplib2/0.8 (gzip)",
      "requestParameters": {
        "functionName": "basic-node-task"
      },
      "responseElements": null,
      "requestID": "a2198ecc-cda1-11e4-aaa2-e356da31e4ff",
      "eventID": "20b84ce5-730f-482e-b2b2-e8fcc87ceb22",
      "eventType": "AwsApiCall",
      "recipientAccountId": "111122223333"
    }
  ]
}
```

Untuk informasi tentang konten CloudTrail rekaman, lihat [konten CloudTrail rekaman](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html) di *Panduan AWS CloudTrail Pengguna*.

# Visualisasikan pemanggilan fungsi Lambda menggunakan AWS X-Ray
<a name="services-xray"></a>

Anda dapat menggunakan AWS X-Ray untuk memvisualisasikan komponen aplikasi Anda, mengidentifikasi kemacetan kinerja, dan memecahkan masalah permintaan yang mengakibatkan kesalahan. Fungsi Lambda Anda mengirimkan data jejak ke X-Ray, dan X-Ray memproses data untuk membuat peta layanan dan rangkuman jejak yang dapat dicari.

Lambda mendukung dua mode penelusuran untuk X-Ray: dan. `Active` `PassThrough` Dengan `Active` penelusuran, Lambda secara otomatis membuat segmen jejak untuk pemanggilan fungsi dan mengirimkannya ke X-Ray. `PassThrough`mode, di sisi lain, hanya menyebarkan konteks penelusuran ke layanan hilir. Jika Anda telah mengaktifkan `Active` penelusuran untuk fungsi Anda, Lambda secara otomatis mengirimkan jejak ke X-Ray untuk permintaan sampel. Biasanya, layanan upstream, seperti Amazon API Gateway atau aplikasi yang dihosting di Amazon EC2 yang diinstrumentasi dengan X-Ray SDK, memutuskan apakah permintaan yang masuk harus dilacak, lalu menambahkan keputusan pengambilan sampel itu sebagai header penelusuran. Lambda menggunakan header itu untuk memutuskan mengirim jejak atau tidak. Jejak dari produsen pesan hulu, seperti Amazon SQS, secara otomatis ditautkan ke jejak dari fungsi Lambda hilir, menciptakan tampilan seluruh end-to-end aplikasi. *Untuk informasi selengkapnya, lihat [Menelusuri aplikasi berbasis peristiwa di Panduan](https://docs.aws.amazon.com//xray/latest/devguide/xray-tracelinking.html) Pengembang.AWS X-Ray *

**catatan**  
Penelusuran X-Ray saat ini tidak didukung untuk fungsi Lambda dengan Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka yang dikelola sendiri, Amazon MQ dengan ActiveMQ dan RabbitMQ, atau pemetaan sumber acara Amazon DocumentDB.

Untuk mengaktifkan penelusuran aktif pada fungsi Lambda Anda dengan konsol, ikuti langkah-langkah berikut:

**Untuk mengaktifkan penelusuran aktif**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi.

1. Pilih **Konfigurasi** dan kemudian pilih **Alat Pemantauan dan operasi**.

1. Di bawah **Alat pemantauan tambahan**, pilih **Edit**.

1. Di bawah **Sinyal CloudWatch Aplikasi dan AWS X-Ray**, pilih **Aktifkan** untuk **jejak layanan Lambda**.

1. Pilih **Simpan**.

Fungsi Anda memerlukan izin untuk mengunggah data jejak ke X-Ray. [Saat Anda mengaktifkan penelusuran di konsol Lambda, Lambda menambahkan izin yang diperlukan ke peran eksekusi fungsi Anda.](lambda-intro-execution-role.md) Atau, tambahkan kebijakan [AWSXRayDaemonWriteAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess) ke peran eksekusi.

X-Ray tidak melacak semua permintaan ke aplikasi Anda. X-Ray menerapkan algoritma pengambilan sampel untuk memastikan bahwa penelusuran efisien, sambil tetap memberikan sampel yang representatif dari semua permintaan. Tingkat pengambilan sampel adalah 1 permintaan per detik dan 5 persen dari permintaan tambahan. Anda tidak dapat mengonfigurasi laju pengambilan sampel X-Ray untuk fungsi Anda.

## Memahami jejak X-Ray
<a name="services-xray-traces"></a>

Di X-Ray, *jejak* merekam informasi tentang permintaan yang diproses oleh satu atau beberapa *layanan*. Lambda mencatat 2 segmen per jejak, yang menciptakan dua node pada grafik layanan. Gambar berikut menyoroti dua node ini:

![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/xray-servicemap-function.png)


Node pertama di sebelah kiri mewakili layanan Lambda, yang menerima permintaan pemanggilan. Node kedua mewakili fungsi Lambda spesifik Anda.

Segmen yang direkam untuk layanan Lambda,`AWS::Lambda`, mencakup semua langkah yang diperlukan untuk mempersiapkan lingkungan eksekusi Lambda. Ini termasuk penjadwalan microVM, membuat atau mencairkan lingkungan eksekusi dengan sumber daya yang telah Anda konfigurasikan, serta mengunduh kode fungsi Anda dan semua lapisan.

`AWS::Lambda::Function`Segmen ini untuk pekerjaan yang dilakukan oleh fungsi.

**catatan**  
AWS saat ini menerapkan perubahan pada layanan Lambda. Karena perubahan ini, Anda mungkin melihat perbedaan kecil antara struktur dan konten pesan log sistem dan segmen jejak yang dipancarkan oleh fungsi Lambda yang berbeda di Anda. Akun AWS  
Perubahan ini mempengaruhi subsegmen segmen fungsi. Paragraf berikut menjelaskan format lama dan baru untuk subsegmen ini.  
Perubahan ini akan diterapkan selama beberapa minggu mendatang, dan semua fungsi di semua Wilayah AWS kecuali China GovCloud dan wilayah akan bertransisi untuk menggunakan pesan log format baru dan segmen pelacakan.

**Struktur segmen Lambda gaya lama AWS X-Ray**  
Struktur X-Ray gaya lama untuk `AWS::Lambda` segmen ini terlihat seperti berikut:

![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/V2_sandbox_images/v1_XRay_structure.png)


Dalam format ini, segmen fungsi memiliki subsegmen untuk`Initialization`,`Invocation`, dan`Overhead`. [Lambda SnapStart](snapstart.md)Hanya saja, ada juga `Restore` subsegmen (tidak ditampilkan pada diagram ini). 

Subsegmen `Initialization` merupakan fase init dari siklus hidup lingkungan eksekusi Lambda. Selama fase ini, Lambda menginisialisasi ekstensi, menginisialisasi runtime, dan menjalankan kode inisialisasi fungsi.

Subsegmen `Invocation` merupakan fase invokasi tempat Lambda memanggil handler fungsi. Ini dimulai dengan pendaftaran runtime dan ekstensi serta berakhir ketika runtime siap untuk mengirim respon.

[( SnapStart Hanya Lambda) `Restore` Subsegmen menunjukkan waktu yang dibutuhkan Lambda untuk memulihkan snapshot, memuat runtime, dan menjalankan kait runtime setelah pemulihan.](snapstart-runtime-hooks.md) Proses memulihkan snapshot dapat mencakup waktu yang dihabiskan untuk aktivitas di luar microVM. Kali ini dilaporkan di `Restore` subsegmen. Anda tidak dikenakan biaya untuk waktu yang dihabiskan di luar microVM untuk memulihkan snapshot.

Subsegmen `Overhead` merupakan fase yang terjadi antara waktu ketika runtime mengirimkan respon dan sinyal untuk invokasi berikutnya. Selama waktu ini, runtime menyelesaikan semua tugas yang terkait dengan invokasi dan mempersiapkan untuk membekukan sandbox.

**penting**  
Anda dapat menggunakan X-Ray SDK untuk memperluas `Invocation` subsegmen dengan subsegmen tambahan untuk panggilan hilir, anotasi, dan metadata. Anda tidak dapat mengakses segmen fungsi secara langsung atau merekam pekerjaan yang dilakukan di luar lingkup invokasi handler.

Untuk informasi selengkapnya tentang fase lingkungan eksekusi Lambda, lihat. [Memahami siklus hidup lingkungan pelaksanaan Lambda](lambda-runtime-environment.md)

Contoh jejak menggunakan struktur X-Ray gaya lama ditunjukkan pada diagram berikut.

![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/V2_sandbox_images/my-function-2-v1.png)


Perhatikan dua segmen dalam contoh. Keduanya bernama **fungsi saya**, tetapi yang satu memiliki asal `AWS::Lambda` dan yang lainnya memiliki asal usul. `AWS::Lambda::Function` Jika `AWS::Lambda` segmen menunjukkan kesalahan, layanan Lambda mengalami masalah. Jika `AWS::Lambda::Function` segmen menunjukkan kesalahan, fungsi Anda mengalami masalah.

**catatan**  
Kadang-kadang, Anda mungkin melihat celah besar antara inisialisasi fungsi dan fase pemanggilan dalam jejak X-Ray Anda. Untuk fungsi yang menggunakan [konkurensi yang disediakan](provisioned-concurrency.md), ini karena Lambda menginisialisasi instance fungsi Anda jauh sebelum pemanggilan. Untuk fungsi [yang menggunakan konkurensi tanpa syarat (sesuai permintaan),](lambda-concurrency.md) Lambda dapat secara proaktif menginisialisasi instance fungsi, meskipun tidak ada pemanggilan. Secara visual, kedua kasus ini muncul sebagai celah waktu antara fase inisialisasi dan pemanggilan.

**Struktur segmen Lambda gaya baru AWS X-Ray**  
Struktur X-Ray gaya baru untuk `AWS::Lambda` segmen ini terlihat seperti berikut:

![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/V2_sandbox_images/v2_XRay_structure.png)


Dalam format baru ini, `Init` Subsegmen mewakili fase init dari siklus hidup lingkungan eksekusi Lambda seperti sebelumnya.

Tidak ada segmen pemanggilan dalam format baru. Sebaliknya, subsegmen pelanggan dilampirkan langsung ke `AWS::Lambda::Function` segmen. Segmen ini berisi metrik berikut sebagai anotasi:
+ `aws.responseLatency`- waktu yang dibutuhkan untuk menjalankan fungsi
+ `aws.responseDuration`- waktu yang dibutuhkan untuk mentransfer respons kepada pelanggan
+ `aws.runtimeOverhead`- jumlah waktu tambahan runtime yang dibutuhkan untuk menyelesaikan
+ `aws.extensionOverhead`- jumlah waktu tambahan ekstensi yang dibutuhkan untuk menyelesaikan

Contoh jejak menggunakan struktur X-Ray gaya baru ditunjukkan pada diagram berikut.

![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/V2_sandbox_images/my-function-2-v2.png)


Perhatikan dua segmen dalam contoh. Keduanya bernama **fungsi saya**, tetapi yang satu memiliki asal `AWS::Lambda` dan yang lainnya memiliki asal usul. `AWS::Lambda::Function` Jika `AWS::Lambda` segmen menunjukkan kesalahan, layanan Lambda mengalami masalah. Jika `AWS::Lambda::Function` segmen menunjukkan kesalahan, fungsi Anda mengalami masalah.

Lihat topik berikut untuk pengantar khusus bahasa tertentu terkait pelacakan di Lambda:
+ [Menginstrumentasi kode Node.js di AWS Lambda](nodejs-tracing.md)
+ [Menginstrumentasi kode Python di AWS Lambda](python-tracing.md)
+ [Menginstrumentasi kode Ruby di AWS Lambda](ruby-tracing.md)
+ [Menginstrumentasi kode Java di AWS Lambda](java-tracing.md)
+ [Menginstrumentasi kode Go di AWS Lambda](golang-tracing.md)
+ [Menginstrumentasi kode C \$1 di AWS Lambda](csharp-tracing.md)

Untuk daftar lengkap layanan yang mendukung instrumentasi aktif, lihat [Didukung Layanan AWS](https://docs.aws.amazon.com/xray/latest/devguide/xray-usage.html#xray-usage-codechanges) dalam Panduan AWS X-Ray Pengembang.

## Perilaku penelusuran default di Lambda
<a name="services-xray-default"></a>

Jika Anda tidak mengaktifkan `Active` penelusuran, Lambda default `PassThrough` ke mode penelusuran.

Dalam `PassThrough` mode, Lambda meneruskan header penelusuran X-Ray ke layanan hilir, tetapi tidak mengirim jejak secara otomatis. Ini benar bahkan jika header tracing berisi keputusan untuk mengambil sampel permintaan. Jika layanan upstream tidak menyediakan header penelusuran X-Ray, Lambda menghasilkan header dan membuat keputusan untuk tidak mengambil sampel. Namun, Anda dapat mengirim jejak Anda sendiri dengan memanggil pustaka penelusuran dari kode fungsi Anda. 

**catatan**  
 Sebelumnya, Lambda akan mengirim jejak secara otomatis ketika layanan upstream, seperti Amazon API Gateway, menambahkan header penelusuran. Dengan tidak mengirim jejak secara otomatis, Lambda memberi Anda kontrol untuk melacak fungsi yang penting bagi Anda. Jika solusi Anda bergantung pada perilaku penelusuran pasif ini, beralihlah ke `Active` penelusuran. 

## Izin peran eksekusi
<a name="services-xray-permissions"></a>

Lambda memerlukan izin berikut untuk mengirim data jejak ke X-Ray. Tambahkan izin ke [peran eksekusi](lambda-intro-execution-role.md) fungsi Anda.
+ [xray: PutTraceSegments](https://docs.aws.amazon.com/xray/latest/api/API_PutTraceSegments.html)
+ [xray: PutTelemetryRecords](https://docs.aws.amazon.com/xray/latest/api/API_PutTelemetryRecords.html)

Izin ini disertakan dalam kebijakan terkelola [AWSXRayDaemonWriteAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess).

## Mengaktifkan `Active` penelusuran dengan Lambda API
<a name="services-xray-api"></a>

Untuk mengelola konfigurasi penelusuran dengan AWS CLI atau AWS SDK, gunakan operasi API berikut:
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
+ [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html)
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)

Contoh AWS CLI perintah berikut memungkinkan penelusuran aktif pada fungsi bernama **my-function**.

```
aws lambda update-function-configuration --function-name my-function \
--tracing-config Mode=Active
```

Mode penelusuran adalah bagian dari konfigurasi khusus versi saat Anda memublikasikan versi fungsi Anda. Anda tidak dapat mengubah mode pelacakan pada versi yang telah diterbitkan.

## Mengaktifkan `Active` penelusuran dengan CloudFormation
<a name="services-xray-cloudformation"></a>

Untuk mengaktifkan penelusuran pada `AWS::Lambda::Function` sumber daya dalam CloudFormation templat, gunakan `TracingConfig` properti.

**Example [function-inline.yml](https://github.com/awsdocs/aws-lambda-developer-guide/blob/master/templates/function-inline.yml) – Konfigurasi pelacakan**  

```
Resources:
  function:
    Type: [AWS::Lambda::Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)
    Properties:
      TracingConfig:
        Mode: Active
      ...
```

Untuk sumber `AWS::Serverless::Function` daya AWS Serverless Application Model (AWS SAM), gunakan `Tracing` properti.

**Example [template.yml](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-nodejs/template.yml) – Konfigurasi pelacakan**  

```
Resources:
  function:
    Type: [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)
    Properties:
      Tracing: Active
      ...
```

# Pantau kinerja fungsi dengan Amazon CloudWatch Lambda Insights
<a name="monitoring-insights"></a>

Amazon CloudWatch Lambda Insights mengumpulkan dan menggabungkan metrik kinerja runtime fungsi Lambda dan log untuk aplikasi tanpa server Anda. Halaman ini menjelaskan cara mengaktifkan dan menggunakan Lambda Insights untuk mendiagnosis masalah dengan fungsi Lambda Anda.

**Topics**
+ [Cara kerja Lambda Insights memantau aplikasi nirserver](#monitoring-insights-how)
+ [Harga](#monitoring-insights-pricing)
+ [Runtime yang didukung](#monitoring-insights-runtimes)
+ [Mengaktifkan Lambda Insights di konsol Lambda](#monitoring-insights-enabling-console)
+ [Mengaktifkan Lambda Insights secara terprogram](#monitoring-insights-enabling-programmatically)
+ [Menggunakan dasbor Lambda Insights](#monitoring-insights-multifunction)
+ [Contoh alur kerja untuk mendeteksi anomali fungsi](#monitoring-insights-anomalies)
+ [Contoh alur kerja menggunakan kueri untuk memecahkan masalah fungsi](#monitoring-insights-queries)
+ [Apa selanjutnya?](#monitoring-console-next-up)

## Cara kerja Lambda Insights memantau aplikasi nirserver
<a name="monitoring-insights-how"></a>

CloudWatch Lambda Insights adalah solusi pemantauan dan pemecahan masalah untuk aplikasi tanpa server yang berjalan. AWS Lambda Solusi ini mengumpulkan, menggabungkan, dan merangkum metrik tingkat sistem termasuk waktu CPU, memori, cakram, dan penggunaan jaringan. Aplikasi ini juga mengumpulkan, menggabungkan, dan merangkum informasi diagnostik seperti proses mulai yang dingin dan penonaktifan pekerja Lambda untuk membantu Anda mengisolasi masalah dengan fungsi Lambda Anda dan segera mengatasinya.

[Lambda Insights menggunakan [ekstensi CloudWatch ](https://docs.aws.amazon.com/lambda/latest/dg/lambda-extensions.html) Lambda Insights baru, yang disediakan sebagai lapisan Lambda.](chapter-layers.md) Saat Anda mengaktifkan ekstensi ini pada fungsi Lambda untuk runtime yang didukung, ekstensi ini mengumpulkan metrik tingkat sistem dan memancarkan peristiwa log kinerja tunggal untuk setiap pemanggilan fungsi Lambda tersebut. CloudWatch menggunakan format metrik tertanam untuk mengekstrak metrik dari peristiwa log. Untuk informasi selengkapnya, lihat [Menggunakan AWS Lambda ekstensi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-extensions.html).

Lapisan Lambda Insights memperluas `CreateLogStream` dan `PutLogEvents` untuk grup `/aws/lambda-insights/` log.

## Harga
<a name="monitoring-insights-pricing"></a>

Saat Anda mengaktifkan Lambda Insights untuk fungsi Lambda Anda, Lambda Insights melaporkan 8 metrik per fungsi dan setiap pemanggilan fungsi mengirimkan sekitar 1KB data log ke. CloudWatch Anda hanya membayar metrik dan log yang dilaporkan untuk fungsi Anda oleh Lambda Insights. Tidak ada biaya minimum atau kebijakan penggunaan layanan wajib. Anda tidak membayar Lambda Insights jika fungsi tidak dipanggil. Untuk contoh penetapan harga, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing/). 

## Runtime yang didukung
<a name="monitoring-insights-runtimes"></a>

Anda dapat menggunakan Lambda Insights dengan runtime mana pun yang mendukung [ekstensi Lambda](runtimes-extensions-api.md).

## Mengaktifkan Lambda Insights di konsol Lambda
<a name="monitoring-insights-enabling-console"></a>

Anda dapat mengaktifkan Lambda Insights dengan pemantauan ditingkatkan pada fungsi Lambda baru dan yang sudah ada. Saat Anda mengaktifkan Lambda Insights pada fungsi di konsol Lambda untuk runtime yang didukung, Lambda menambahkan [ekstensi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-extensions.html) Lambda Insights sebagai lapisan untuk fungsi Anda, dan memverifikasi atau mencoba untuk memasang kebijakan [https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy$jsonEditor](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy$jsonEditor) ke [peran eksekusi](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) fungsi Anda.

**Untuk mengaktifkan Lambda Insights di konsol Lambda**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi Anda.

1. Pilih tab **Konfigurasi**.

1. Di menu sebelah kiri, pilih **Alat pemantauan dan operasi**.

1. Pada panel **Alat pemantauan tambahan**, pilih **Edit**.

1. Di bagian **CloudWatch Lambda Insights**, aktifkan **Pemantauan yang ditingkatkan**.

1. Pilih **Simpan**.

## Mengaktifkan Lambda Insights secara terprogram
<a name="monitoring-insights-enabling-programmatically"></a>

Anda juga dapat mengaktifkan Lambda Insights menggunakan CLI AWS Command Line Interface (AWS CLI), AWS Serverless Application Model (SAM),, atau. CloudFormation AWS Cloud Development Kit (AWS CDK)[Saat Anda mengaktifkan Lambda Insights secara terprogram pada fungsi untuk runtime yang didukung, CloudWatch lampirkan [https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy$jsonEditor](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy$jsonEditor)kebijakan tersebut ke peran eksekusi fungsi Anda.](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)

Untuk informasi selengkapnya, lihat [Memulai Wawasan Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-Getting-Started.html) di Panduan Pengguna *Amazon CloudWatch *.

## Menggunakan dasbor Lambda Insights
<a name="monitoring-insights-multifunction"></a>

Dasbor Lambda Insights memiliki dua tampilan di CloudWatch konsol: ikhtisar multi-fungsi dan tampilan fungsi tunggal. Ikhtisar multi-fungsi menggabungkan metrik runtime untuk fungsi Lambda di akun saat ini dan Wilayah. AWS Tampilan fungsi tunggak menunjukkan metrik runtime yang tersedia untuk satu fungsi Lambda.

Anda dapat menggunakan ikhtisar multi-fungsi dasbor Lambda Insights di CloudWatch konsol untuk mengidentifikasi fungsi Lambda yang terlalu banyak dan kurang dimanfaatkan. Anda dapat menggunakan tampilan fungsi tunggal dasbor Lambda Insights di CloudWatch konsol untuk memecahkan masalah permintaan individual.

**Untuk melihat metrik runtime untuk semua fungsi**

1. Buka halaman [Multi-fungsi](https://console.aws.amazon.com/cloudwatch/home#lambda-insights:performance) di CloudWatch konsol.

1. Pilih dari rentang waktu yang sudah ditentukan, atau pilih rentang waktu kustom.

1. (Opsional) Pilih **Tambahkan ke dasbor** untuk menambahkan widget ke CloudWatch dasbor Anda.  
![\[Gambaran umum multifungsi di dasbor Lambda Insights.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-multifunction-view.png)

**Untuk melihat metrik runtime dari satu fungsi**

1. Buka halaman [Single-function](https://console.aws.amazon.com/cloudwatch/home#lambda-insights:functions) di CloudWatch konsol.

1. Pilih dari rentang waktu yang sudah ditentukan, atau pilih rentang waktu kustom.

1. (Opsional) Pilih **Tambahkan ke dasbor** untuk menambahkan widget ke CloudWatch dasbor Anda.  
![\[Tampilan fungsi tunggal di dasbor Lambda Insights.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambainsights-singlefunction-view.png)

Untuk informasi selengkapnya, lihat [Membuat dan bekerja dengan widget di CloudWatch dasbor](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-and-work-with-widgets.html).

## Contoh alur kerja untuk mendeteksi anomali fungsi
<a name="monitoring-insights-anomalies"></a>

Anda dapat menggunakan ikhtisar multifungsi pada dasbor Lambda Insights untuk mengidentifikasi dan mendeteksi anomali memori komputasi dengan fungsi Anda. Misalnya, jika ikhtisar multifungsi menunjukkan bahwa suatu fungsi menggunakan memori dalam jumlah besar, Anda dapat melihat metrik penggunaan memori yang terperinci dalam panel **Penggunaan Memori**. Kemudian, Anda dapat menuju dasbor Metrik untuk mengaktifkan deteksi anomali atau membuat alarm.

**Untuk mengaktifkan deteksi anomali untuk fungsi**

1. Buka halaman [Multi-fungsi](https://console.aws.amazon.com/cloudwatch/home#lambda-insights:performance) di CloudWatch konsol.

1. Di bawah **Ringkasan fungsi**, pilih nama fungsi Anda.

   Tampilan fungsi tunggal terbuka dengan metrik runtime fungsi.  
![\[Panel ringkasan fungsi pada dasbor Lambda Insights.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-function-summary.png)

1. Di panel **Penggunaan Memori**, pilih tiga titik vertikal, lalu pilih **Lihat dalam metrik** untuk membuka dasbor **Metrik**.  
![\[Menu pada panel Penggunaan Memori.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-memory-usage.png)

1. Di tab **Metrik bergrafik**, di kolom **Tindakan**, pilih ikon pertama untuk mengaktifkan deteksi anomali untuk fungsi .  
![\[Tab Metrik bergrafik dari panel Penggunaan Memori.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-graphed-metrics.png)

Untuk informasi lebih lanjut, lihat [Menggunakan Deteksi CloudWatch Anomali.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html)

## Contoh alur kerja menggunakan kueri untuk memecahkan masalah fungsi
<a name="monitoring-insights-queries"></a>

Anda dapat menggunakan tampilan fungsi tunggal pada dasbor Lambda Insights untuk mengidentifikasi akar masalah dari lonjakan durasi fungsi. Misalnya, jika ikhtisar multifungsi menunjukkan peningkatan yang besar dalam durasi fungsi, Anda dapat menunda atau memilih setiap fungsi dalam panel **Durasi** untuk menentukan fungsi mana yang menyebabkan peningkatan. Kemudian, Anda dapat masuk ke tampilan fungsi tunggal dan meninjau **Log aplikasi** untuk menentukan akar masalah.

**Untuk menjalankan kueri pada fungsi**

1. Buka halaman [Multi-fungsi](https://console.aws.amazon.com/cloudwatch/home#lambda-insights:performance) di CloudWatch konsol.

1. Di panel **Durasi**, pilih fungsi Anda untuk memfilter metrik durasi.  
![\[Fungsi yang dipilih dalam panel Durasi.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-choose-function.png)

1. Membuka halaman [Fungsi tunggal](https://console.aws.amazon.com/cloudwatch/home#lambda-insights:functions).

1. Pilih daftar pilihan menurun **Filter metrik berdasarkan nama fungsi**, lalu pilih fungsi Anda.

1. Untuk melihat **1000 log aplikasi terbaru**, pilih tab **Log aplikasi**.

1. Meninjau **Stempel waktu** dan **Pesan** untuk mengidentifikasi permintaan invokasi yang ingin Anda pecahkan.  
![\[1000 log aplikasi terbaru.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-application-logs.png)

1. Untuk menampilkan **1000 invokasi terbaru**, pilih tab **Invokasi**.

1. Pilih **Stempel waktu** atau **Pesan** untuk permintaan invokasi yang ingin Anda pecahkan.  
![\[Memilih permintaan invokasi terbaru.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-invocations-function-select.png)

1. Pilih daftar pilihan menurun **Lihat log**, lalu pilih **Lihat log kinerja**.

   Kueri yang dibuat secara otomatis untuk fungsi Anda terbuka di dasbor **Logs Insights**.

1. Pilih **Jalankan kueri** untuk menghasilkan pesan **Log** untuk permintaan invokasi.  
![\[Membuat kueri fungsi yang dipilih di dasbor Logs Insights.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/lambdainsights-query.png)

## Apa selanjutnya?
<a name="monitoring-console-next-up"></a>
+ Pelajari cara membuat dasbor CloudWatch Log di [Membuat Dasbor](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create_dashboard.html) di *Panduan CloudWatch Pengguna Amazon*.
+ Pelajari cara menambahkan kueri ke dasbor CloudWatch Log di [Tambahkan Kueri ke Dasbor atau Ekspor Hasil Kueri](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_ExportQueryResults.html) di *Panduan CloudWatch Pengguna Amazon*.

# Memantau aplikasi Lambda
<a name="applications-console-monitoring"></a>

Bagian **Aplikasi** pada konsol Lambda menyertakan tab **Pemantauan** tempat Anda dapat meninjau CloudWatch dasbor Amazon dengan metrik agregat untuk sumber daya dalam aplikasi Anda.

**Untuk memantau aplikasi Lambda**

1. Buka konsol [halaman Aplikasi](https://console.aws.amazon.com/lambda/home#/applications) konsol Lambda.

1. Pilih **Pemantauan**.

1. Untuk melihat detail selengkapnya tentang metrik dalam grafik apa pun, pilih **Lihat dalam metrik** dari menu tarik-turun.  
![\[Widget pemantauan.\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/applications-monitoring-widget.png)

   Grafik tersebut kemudian akan muncul di sebuah tab baru yang menampilkan metrik-metrik yang relevan yang tercantum di bawah grafik tersebut. Anda dapat menyesuaikan tampilan grafik ini, juga mengubah metrik-metrik dan sumber daya yang ditampilkan, statistik, periode, dan faktor lainnya yang ditampilkan untuk mendapatkan pemahaman lebih baik tentang situasi saat ini.

Secara default, konsol Lambda menunjukkan dasbor dasar. Anda dapat menyesuaikan halaman ini dengan menambahkan satu atau beberapa CloudWatch dasbor Amazon ke templat aplikasi Anda dengan jenis [AWS::CloudWatch::Dashboard](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-dashboard.html)sumber daya. Ketika templat Anda mencakup satu dasbor atau lebih, halaman tersebut menampilkan dasbor Anda alih-alih dasbor default. Anda dapat beralih antara dasbor dengan menu tarik turun di kanan atas halaman. Contoh berikut membuat dasbor dengan satu widget yang membuat grafik jumlah invokasi fungsi yang dinamai `my-function`.

**Example templat dasbor fungsi**  

```
Resources:
  MyDashboard:
    Type: AWS::CloudWatch::Dashboard
    Properties:
      DashboardName: my-dashboard
      DashboardBody: |
        {
            "widgets": [
                {
                    "type": "metric",
                    "width": 12,
                    "height": 6,
                    "properties": {
                        "metrics": [
                            [
                                "AWS/Lambda",
                                "Invocations",
                                "FunctionName",
                                "my-function",
                                {
                                    "stat": "Sum",
                                    "label": "MyFunction"
                                }
                            ],
                            [
                                {
                                    "expression": "SUM(METRICS())",
                                    "label": "Total Invocations"
                                }
                            ]
                        ],
                        "region": "us-east-1",
                        "title": "Invocations",
                        "view": "timeSeries",
                        "stacked": false
                    }
                }
            ]
        }
```

*Untuk informasi selengkapnya tentang pembuatan CloudWatch dasbor dan widget, lihat [Struktur dan sintaks isi dasbor di](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/CloudWatch-Dashboard-Body-Structure.html) Referensi Amazon API. CloudWatch *

# Pantau kinerja aplikasi dengan Sinyal CloudWatch Aplikasi Amazon
<a name="monitoring-application-signals"></a>

Amazon CloudWatch Application Signals adalah solusi pemantauan kinerja aplikasi (APM) yang memungkinkan pengembang dan operator memantau kesehatan dan kinerja aplikasi tanpa server mereka yang dibuat menggunakan Lambda. Anda dapat mengaktifkan Sinyal Aplikasi dalam sekali klik dari konsol Lambda, dan Anda tidak perlu menambahkan kode instrumentasi atau dependensi eksternal apa pun ke fungsi Lambda Anda. Setelah mengaktifkan Sinyal Aplikasi, Anda dapat melihat semua metrik dan jejak yang dikumpulkan di CloudWatch konsol. Halaman ini menjelaskan cara mengaktifkan dan melihat data telemetri Sinyal Aplikasi untuk aplikasi Anda.

**Topics**
+ [Bagaimana Sinyal Aplikasi terintegrasi dengan Lambda](#monitoring-application-signals-how)
+ [Harga](#monitoring-application-signals-pricing)
+ [Waktu aktif yang didukung](#monitoring-application-signals-runtimes)
+ [Mengaktifkan Sinyal Aplikasi di konsol Lambda](#monitoring-application-signals-console)
+ [Menggunakan dasbor Sinyal Aplikasi](#monitoring-application-signals-dashboard)

## Bagaimana Sinyal Aplikasi terintegrasi dengan Lambda
<a name="monitoring-application-signals-how"></a>

[Sinyal Aplikasi secara otomatis menginstrumentasikan fungsi Lambda Anda menggunakan pustaka [AWS Distro for OpenTelemetry (ADOT)](https://aws-otel.github.io/) yang disempurnakan, yang disediakan melalui lapisan Lambda.](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html) Sinyal Aplikasi membaca data yang dikumpulkan oleh lapisan dan menghasilkan dasbor dengan metrik kinerja utama untuk aplikasi Anda.

Anda dapat melampirkan layer ini dalam satu klik dengan [mengaktifkan Sinyal Aplikasi di konsol](#monitoring-application-signals-console) Lambda. Saat Anda mengaktifkan Sinyal Aplikasi dari konsol, Lambda melakukan hal berikut atas nama Anda:
+ Memperbarui peran eksekusi fungsi Anda untuk menyertakan`CloudWatchLambdaApplicationSignalsExecutionRolePolicy`. [ Kebijakan ini](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/CloudWatchLambdaApplicationSignalsExecutionRolePolicy.html) menyediakan akses tulis ke AWS X-Ray dan grup CloudWatch log yang digunakan untuk Sinyal Aplikasi.
+ Menambahkan lapisan ke fungsi Anda yang secara otomatis instrumen fungsi untuk menangkap data telemetri seperti permintaan, ketersediaan, latensi, kesalahan, dan kesalahan. Untuk memastikan bahwa Sinyal Aplikasi berfungsi dengan baik, hapus kode instrumentasi SDK X-Ray yang ada dari fungsi Anda. Kode instrumentasi SDK X-Ray khusus dapat mengganggu instrumentasi yang disediakan lapisan.
+ Menambahkan variabel `AWS_LAMBDA_EXEC_WRAPPER` lingkungan ke fungsi Anda, dan menetapkan nilainya`/opt/otel-instrument`. Variabel lingkungan ini memodifikasi perilaku startup fungsi Anda untuk memanfaatkan lapisan Sinyal Aplikasi, dan diperlukan untuk instrumentasi yang tepat. Jika variabel lingkungan ini sudah ada, pastikan bahwa itu disetel ke nilai yang diperlukan.

## Harga
<a name="monitoring-application-signals-pricing"></a>

Menggunakan Sinyal Aplikasi untuk fungsi Lambda Anda menimbulkan biaya. Untuk informasi harga, lihat [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

## Waktu aktif yang didukung
<a name="monitoring-application-signals-runtimes"></a>

Integrasi Sinyal Aplikasi dengan Lambda berfungsi dengan runtime berikut:
+ .NET 8
+ Java 11
+ Jawa 17
+ Jawa 21
+ Python 3.10
+ Python 3.11
+ Python 3.12
+ Python 3.13
+ Node.js 18.x
+ Node.js 20.x
+ Node.js 22.x

## Mengaktifkan Sinyal Aplikasi di konsol Lambda
<a name="monitoring-application-signals-console"></a>

Anda dapat mengaktifkan Sinyal Aplikasi pada fungsi Lambda yang ada menggunakan runtime yang [didukung](#monitoring-application-signals-runtimes). Langkah-langkah berikut menjelaskan cara mengaktifkan Sinyal Aplikasi dalam satu klik di konsol Lambda.

**Untuk mengaktifkan Sinyal Aplikasi di konsol Lambda**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi Anda.

1. Pilih tab **Konfigurasi**.

1. Di menu sebelah kiri, pilih **Alat pemantauan dan operasi**.

1. Pada panel **Alat pemantauan tambahan**, pilih **Edit**.

1. Di bawah **Sinyal CloudWatch Aplikasi dan AWS X-Ray**, dan di bawah **Sinyal Aplikasi**, pilih **Aktifkan**.

1. Pilih **Simpan**.

Jika ini adalah pertama kalinya Anda mengaktifkan Sinyal Aplikasi untuk fungsi Anda, Anda juga harus melakukan pengaturan penemuan layanan satu kali untuk Sinyal Aplikasi di CloudWatch konsol. Setelah Anda menyelesaikan penyiapan penemuan layanan satu kali ini, Sinyal Aplikasi secara otomatis menemukan fungsi Lambda tambahan yang Anda aktifkan untuk Sinyal Aplikasi, di semua Wilayah.

**catatan**  
Setelah Anda menjalankan fungsi yang diperbarui, diperlukan waktu hingga 10 menit agar data layanan mulai muncul di dasbor Sinyal Aplikasi di CloudWatch konsol.

## Menggunakan dasbor Sinyal Aplikasi
<a name="monitoring-application-signals-dashboard"></a>

Setelah mengaktifkan Sinyal Aplikasi untuk fungsi, Anda dapat memvisualisasikan metrik aplikasi di CloudWatch konsol. Anda dapat dengan cepat melihat dasbor Sinyal Aplikasi terkait dari konsol Lambda dengan langkah-langkah berikut:

**Untuk melihat dasbor Sinyal Aplikasi untuk fungsi Anda**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi Anda.

1. Pilih tab **Pantau**.

1. Pilih tombol **Lihat Sinyal Aplikasi**. Ini membawa Anda langsung ke ikhtisar Sinyal Aplikasi untuk layanan Anda di CloudWatch konsol.

Misalnya, tangkapan layar berikut menunjukkan metrik untuk latensi, jumlah permintaan, ketersediaan, tingkat kesalahan, dan tingkat kesalahan untuk suatu fungsi di seluruh jendela waktu 10 menit.

![\[\]](http://docs.aws.amazon.com/id_id/lambda/latest/dg/images/monitoring-application-signals-dashboard.png)


Untuk memaksimalkan integrasi Anda dengan Sinyal Aplikasi, Anda dapat membuat tujuan tingkat layanan (SLOs) untuk aplikasi Anda. Misalnya, Anda dapat membuat latensi SLOs untuk memastikan aplikasi merespons permintaan pengguna dengan cepat, dan ketersediaan SLOs untuk melacak waktu aktif. SLOs dapat membantu Anda mendeteksi penurunan kinerja atau pemadaman sebelum berdampak pada pengguna Anda. Untuk informasi selengkapnya, lihat [Tujuan tingkat layanan (SLOs)](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-ServiceLevelObjectives.html) di Panduan CloudWatch Pengguna Amazon.

# Debug fungsi Lambda dari jarak jauh dengan Visual Studio Code
<a name="debugging"></a>

Dengan fitur debugging jarak jauh di [AWS Toolkit for Visual Studio Code](https://aws.amazon.com/visualstudiocode/), Anda dapat men-debug fungsi Lambda yang berjalan langsung di cloud. AWS Ini berguna saat menyelidiki masalah yang sulit direplikasi secara lokal atau didiagnosis hanya dengan log.

Dengan debugging jarak jauh, Anda dapat:
+ Tetapkan breakpoint dalam kode fungsi Lambda Anda.
+ Melangkah melalui eksekusi kode secara real-time.
+ Periksa variabel dan status selama runtime.
+ Debug fungsi Lambda yang digunakan AWS, termasuk yang ada VPCs di atau dengan izin IAM tertentu.

## Waktu aktif yang didukung
<a name="debugging-runtimes"></a>

Debugging jarak jauh didukung untuk runtime berikut:
+ Python (023) AL2
+ Java
+ JavaScript/Node.js (AL2023)

**catatan**  
Debugging jarak jauh didukung untuk arsitektur x86\$164 dan arm64.

## Keamanan dan debugging jarak jauh
<a name="debugging-security"></a>

Debugging jarak jauh beroperasi dalam batas keamanan Lambda yang ada. Pengguna dapat melampirkan lapisan ke fungsi menggunakan `UpdateFunctionConfiguration` izin, yang sudah memiliki kemampuan untuk mengakses variabel dan konfigurasi lingkungan fungsi. Debugging jarak jauh tidak melampaui izin yang ada ini. Sebaliknya, ia menambahkan kontrol keamanan ekstra melalui tunneling aman dan manajemen sesi otomatis. Selain itu, debugging jarak jauh sepenuhnya merupakan fitur yang dikendalikan pelanggan yang memerlukan izin dan tindakan eksplisit:
+ **Pembuatan Terowongan Aman IoT**: AWS Toolkit harus membuat terowongan aman IoT, yang hanya terjadi dengan izin eksplisit pengguna menggunakan. `iot:OpenTunnel`
+ **Debug Layer Attachment dan Token Management**: Proses debugging menjaga keamanan melalui kontrol ini:
  + Lapisan debugging harus dilampirkan ke fungsi Lambda dan proses ini memerlukan izin `lambda:UpdateFunctionConfiguration` berikut: dan. `lambda:GetLayerVersion`
  + Token keamanan (dihasilkan melalui`iot:OpenTunnel`) harus diperbarui dalam variabel lingkungan fungsi sebelum setiap sesi debug, yang juga membutuhkan`lambda:UpdateFunctionConfiguration`.
  + Untuk keamanan, token ini secara otomatis diputar dan lapisan debug secara otomatis dihapus pada akhir setiap sesi debug dan tidak dapat digunakan kembali.

**catatan**  
Debugging jarak jauh didukung untuk arsitektur x86\$164 dan arm64.

## Prasyarat
<a name="debugging-prerequisites"></a>

Sebelum Anda memulai debugging jarak jauh, pastikan Anda memiliki yang berikut:

1. Fungsi Lambda diterapkan ke akun Anda. AWS 

1. AWS Toolkit for Visual Studio Code. Lihat [Menyiapkan AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html) petunjuk penginstalan.

1. Versi AWS Toolkit yang telah Anda instal adalah **3.69.0** atau yang lebih baru.

1. AWS kredensional dikonfigurasi di. AWS Toolkit for Visual Studio Code Untuk informasi selengkapnya, lihat [Kontrol autentikasi dan akses](foundation-iac-local-development.md#lambda-functions-vscode-authentication-and-access-control).

## Debug fungsi Lambda dari jarak jauh
<a name="debugging-procedure"></a>

Ikuti langkah-langkah ini untuk memulai sesi debugging jarak jauh:

1. Buka AWS Explorer di VS Code dengan memilih AWS ikon di sidebar kiri.

1. Perluas bagian Lambda untuk melihat fungsi Anda.

1. Klik kanan pada fungsi yang ingin Anda debug.

1. Dari menu konteks, pilih **Memanggil dari jarak jauh**.

1. Di jendela pemanggilan yang terbuka, centang kotak untuk **Aktifkan debugging**.

1. Klik **Memanggil untuk** memulai sesi debugging jarak jauh.

**catatan**  
Fungsi Lambda memiliki batas gabungan 250MB untuk kode fungsi dan semua lapisan terlampir. Lapisan debugging jarak jauh menambahkan sekitar 40MB ke ukuran fungsi Anda.

Sesi debugging jarak jauh berakhir saat Anda:
+ Pilih **Hapus Pengaturan Debug** dari layar konfigurasi panggilan jarak jauh.
+ Pilih ikon putuskan sambungan di kontrol debugging VS Code.
+ Pilih file handler di editor VS Code.

**catatan**  
Lapisan debug secara otomatis dihapus setelah 60 detik tidak aktif setelah pemanggilan terakhir Anda.

## Nonaktifkan debugging jarak jauh
<a name="debugging-disable"></a>

Ada tiga cara untuk menonaktifkan fitur ini:
+ **Tolak Pembaruan Fungsi**: Setel `lambda:UpdateFunctionConfiguration` ke`deny`.
+ **Batasi Izin IoT: Tolak izin terkait IoT**
+ **Blokir Lapisan Debug**: Tolak `lambda:GetLayerVersion` untuk hal berikut ARNs:
  + `arn:aws:lambda:*:*:layer:LDKLayerX86:*`
  + `arn:aws:lambda:*:*:layer:LDKLayerArm64:*`
**catatan**  
Menonaktifkan fitur ini mencegah lapisan debugging ditambahkan selama pembaruan konfigurasi fungsi.

## Informasi tambahan
<a name="debugging-related-info"></a>

Untuk informasi lebih lanjut tentang penggunaan Lambda di VS Code, lihat Mengembangkan [fungsi Lambda secara lokal](foundation-iac-local-development.md) dengan VS Code.

Untuk petunjuk mendetail tentang pemecahan masalah, kasus penggunaan lanjutan, dan ketersediaan wilayah, lihat Fungsi [Lambda debugging jarak jauh](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/lambda-remote-debug.html) di Panduan Pengguna. AWS Toolkit for Visual Studio Code 