Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Melakukan pemecahan masalah instalasi yang terjadi pada Sinyal Aplikasi Anda
Bagian ini berisi tips pemecahan masalah untuk CloudWatch Sinyal Aplikasi.
Topik
Mengat OpenTelemetry asi konflik konfigurasi di Amazon EKS dengan Sinyal Aplikasi
Aplikasi Python tidak dimulai setelah Sinyal Aplikasi diaktifkan
Node.js Aplikasi saya tidak diinstrumentasi atau tidak menghasilkan telemetri Sinyal Aplikasi
Aplikasi.NET saya tidak diinstrumentasi atau rusak untuk AWS Panggilan SDK
Metrik layanan atau metrik ketergantungan memiliki nilai Unknown
Menangani ConfigurationConflict saat mengelola add-on Amazon CloudWatch Observability EKS
Bagaimana saya bisa menyelesaikan konflik versi perakitan di aplikasi.NET?
Bisakah saya memfilter log kontainer sebelum mengekspor ke CloudWatch Log?
Perbarui ke versi agen atau add-on Amazon EKS yang diperlukan
Format Metrik Tertanam (EMF) dinonaktifkan untuk Sinyal Aplikasi
Mengat OpenTelemetry asi konflik konfigurasi di Amazon EKS dengan Sinyal Aplikasi
Jika Anda menggunakan OpenTelemetry (oTel) untuk pemantauan kinerja aplikasi (APM) dengan Amazon EKS dan mengonfigurasi titik akhir eksportir OTLP khusus selain CloudWatch titik akhir, Anda mungkin mengalami perilaku berikut setelah menginstal atau meningkatkan ke add-on CloudWatch Observability versi 5.0.0 atau yang lebih baru:
Gangguan pada telemetri OTel yang ada — CloudWatch Pengaya pengamatan dapat menggantikan titik akhir eksportir OTLP yang Anda kodekan dalam aplikasi Anda. Penggantian ini tidak memengaruhi titik akhir yang dikonfigurasi melalui variabel lingkungan kontainer atau.
envFromConfigMap Saat diganti, metrik dan jejak Anda mungkin tidak mencapai tujuan yang dituju. Untuk mempertahankan pengaturan APM yang ada setelah memutakhirkan ke V5.0.0 atau yang lebih baru, lihat Memilih keluar dari Sinyal AplikasiSinyal Aplikasi mungkin tidak berfungsi jika sebelumnya Anda mengaktifkan Sinyal Aplikasi menggunakan add-on CloudWatch Observability dan memiliki titik akhir OTLP khusus yang dikonfigurasi. Untuk mengatasinya, hapus titik akhir OTLP khusus atau atur variabel lingkungan
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=truesaat menginstal atau memutakhirkan ke versi 5.0.0 atau yang lebih baru
Sinyal Aplikasi Kinerja start dingin lapisan Java
Menambahkan Application Signals Layer ke fungsi Java Lambda meningkatkan latensi startup (cold start time). Kiat-kiat berikut dapat membantu mengurangi latensi untuk fungsi yang sensitif terhadap waktu.
Startup cepat untuk agen Java — Sinyal Aplikasi Java Lambda Layer menyertakan fitur Startup Cepat yang dimatikan secara default tetapi dapat diaktifkan dengan menyetel variabel OTEL_JAVA_AGENT_FAST_STARTUP_ENABLED ke true. Saat diaktifkan, fitur ini mengonfigurasi JVM untuk menggunakan kompiler tingkat 1 C1 kompilasi berjenjang untuk menghasilkan kode asli yang dioptimalkan dengan cepat untuk cold start yang lebih cepat. Kompiler C1 memprioritaskan kecepatan dengan biaya pengoptimalan jangka panjang sedangkan kompiler C2 memberikan kinerja keseluruhan yang unggul dengan membuat profil data dari waktu ke waktu.
Untuk informasi selengkapnya, lihat Startup cepat untuk agen Java
Kurangi waktu mulai dingin dengan Provisioned Concurrency — konkurensi AWS Lambda yang disediakan melakukan pra-alokasi sejumlah instance fungsi tertentu, membuatnya tetap diinisialisasi dan siap menangani permintaan segera. Ini mengurangi waktu mulai dingin dengan menghilangkan kebutuhan untuk menginisialisasi lingkungan fungsi selama eksekusi, memastikan kinerja yang lebih cepat dan lebih konsisten, terutama untuk beban kerja yang sensitif terhadap latensi. Untuk informasi selengkapnya, lihat Mengon figurasi konkurensi yang disediakan untuk suatu fungsi.
Optimalkan kinerja startup menggunakan Lambda SnapStart - AWS Lambda SnapStart adalah fitur yang mengoptimalkan kinerja startup fungsi Lambda dengan membuat snapshot pra-inisialisasi dari lingkungan eksekusi setelah fase inisialisasi fungsi. Snapshot ini kemudian digunakan kembali untuk memulai instance baru, secara signifikan mengurangi waktu mulai dingin dengan melewatkan proses inisialisasi selama pemanggilan fungsi. Untuk informasi, lihat Meningkatkan kinerja startup dengan Lambda SnapStart
Aplikasi tidak memulai setelah Sinyal Aplikasi diaktifkan
Jika aplikasi Anda di klaster Amazon EKS tidak memulai setelah Anda mengaktifkan Sinyal Aplikasi di klaster, Anda perlu memeriksa hal-hal berikut:
Periksa apakah aplikasi telah diinstrumentasi oleh solusi pemantauan yang lain. Sinyal Aplikasi mungkin tidak mendukung hidup berdampingan dengan solusi instrumentasi lainnya.
Konfirmasikan bahwa aplikasi Anda sudah memenuhi persyaratan kompatibilitas untuk menggunakan Sinyal Aplikasi. Untuk informasi selengkapnya, lihat Sistem yang didukung.
Jika aplikasi Anda gagal menarik artefak Sinyal Aplikasi seperti AWS Distro untuk OpenTelemetery Java atau agen Python dan gambar CloudWatch agen, itu bisa menjadi masalah jaringan.
Untuk mengurangi masalah, hapus anotasi instrumentation.opentelemetry.io/inject-java: "true" atau instrumentation.opentelemetry.io/inject-python: "true" dari manifes penerapan aplikasi Anda, dan terapkan kembali aplikasi Anda. Kemudian periksa apakah aplikasi sudah berfungsi.
Masalah yang diketahui
Koleksi metrik runtime dalam rilis Java SDK v1.32.5 diketahui tidak berfungsi dengan aplikasi yang menggunakan JBoss Wildfly. Masalah ini meluas ke add-on Amazon CloudWatch Observability EKS, yang memengaruhi versi 2.3.0-eksbuild.1 melalui2.5.0-eksbuild.1.
Jika Anda terpengaruh, turunkan versi atau nonaktifkan koleksi metrik runtime Anda dengan menambahkan variabel lingkungan OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false ke aplikasi Anda.
Aplikasi Python tidak dimulai setelah Sinyal Aplikasi diaktifkan
Ini adalah masalah yang diketahui dalam OpenTelemetry instrumentasi otomatis bahwa variabel PYTHONPATH lingkungan yang hilang terkadang dapat menyebabkan aplikasi gagal memulai. Untuk mengatasi masalah ini, pastikan Anda menyetel variabel PYTHONPATH lingkungan ke lokasi direktori kerja aplikasi Anda. Untuk informasi selengkapnya tentang masalah ini, lihat Pengaturan autoinstrumentasi Python PYTHONPATH tidak sesuai dengan perilaku resolusi modul Python, merusak aplikasi Django.
Untuk aplikasi Django, ada konfigurasi tambahan yang diperlukan, yang diuraikan dalam dokument asi
Gunakan ben
--noreloaddera untuk mencegah pemuatan ulang otomatis.Atur variabel
DJANGO_SETTINGS_MODULElingkungan ke lokasisettings.pyfile aplikasi Django Anda. Ini memastikan bahwa OpenTelemetry dapat mengakses dan mengintegrasikan dengan benar dengan pengaturan Django Anda.
Tidak ada data Sinyal Aplikasi untuk aplikasi Python yang menggunakan server pre-fork (WSGI atau ASGI)
Pre-fork server, seperti Gunicorn, uWSGI, atau Uvicorn dengan banyak pekerja, proses fork worker dari proses utama. OpenTelemetry SDK bergantung pada thread latar belakang yang tidak bertahan dari fork, jadi ketika proses utama diinstrumentasi, pekerja tidak dapat mengekspor jejak, metrik, dan log.
Untuk latar belakang lebih lanjut tentang OpenTelemetry perilaku ini, lihat masalah Pre-fork server
Untuk mengatasi ini, Anda harus terlebih dahulu menginisialisasi instrumentasi otomatis di setiap proses pekerja bercabang daripada dalam proses utama, dan kemudian mengkonfigurasi ADOT Python untuk melewati proses utama.
catatan
Pastikan Anda menggunakan ADOT Python versi terbaru dan add-on Amazon CloudWatch Observability EKS sebelum melanjutkan.
Langkah-langkah tambahan untuk mengaktifkan Sinyal Aplikasi dengan server pre-fork
Inisialisasi instrumentasi otomatis dalam proses pekerja bercabang.
Untuk Gunicorn, gunakan kait:
post_fork# gunicorn.conf.py def post_fork(server, worker): from opentelemetry.instrumentation.auto_instrumentation import sitecustomizeUntuk uWSGi, gunakan direktif.
import# uwsgi.ini [uwsgi] ; required for the instrumentation of worker processes enable-threads = true lazy-apps = true import = opentelemetry.instrumentation.auto_instrumentation.sitecustomizeUntuk Uvicorn, FastAPI, atau aplikasi ASGI lainnya yang Anda jalankan dengan beberapa pekerja, inisialisasi instrumentasi di dalam pekerja dengan memanggil
initialize()sebelum Anda mengimpor aplikasi Anda. Tempatkan yang berikut ini di bagian atas modul titik masuk aplikasi Anda:from opentelemetry.instrumentation.auto_instrumentation import initialize initialize() # Import your application AFTER initialize() so that it is instrumented. from fastapi import FastAPI app = FastAPI()Kemudian mulai server seperti biasa, misalnya:
uvicorn main:app --workers 2Atau, jika Anda menjalankan aplikasi ASGI di bawah Gunicorn, Anda dapat menggunakan Gunicorn
UvicornWorker, yang mempertahankan utas latar belakang di fork, bersama dengan kait yang ditunjukkan sebelumnya:post_forkopentelemetry-instrument gunicorn \ --workers 4 \ --worker-class uvicorn.workers.UvicornWorker \ --bind 0.0.0.0:8000 \ myapp.main:appAktifkan konfigurasi untuk instrumentasi otomatis ADOT Python untuk melewati proses utama dan tunduk kepada pekerja dengan menyetel variabel lingkungan ke
OTEL_AWS_PYTHON_DEFER_TO_WORKERS_ENABLED.trueDengan kedua langkah diterapkan, setiap proses pekerja menginisialisasi saluran pelacak, metrik, dan log sendiri setelah fork, sehingga jejak, metrik, dan log diekspor dengan benar.
Node.js Aplikasi saya tidak diinstrumentasi atau tidak menghasilkan telemetri Sinyal Aplikasi
Untuk mengaktifkan Sinyal Aplikasi untuk Node.js, Anda harus memastikan bahwa Node.js aplikasi Anda menggunakan format modul CommonJS (CJS). AWS Distro for OpenTelemetry Node.js tidak mendukung format modul ESM, karena OpenTelemetry JavaScript dukungan ESM bersifat eksperimental dan sedang dalam proses.
Untuk menentukan apakah aplikasi Anda menggunakan CJS dan bukan ESM, pastikan aplikasi Anda tidak memenuhi persyaratan untuk mengaktifkan ESM.
Aplikasi.NET saya tidak diinstrumentasi atau rusak untuk AWS Panggilan SDK
AWS Distro for Open Telemetry (ADOT) SDK untuk.NET tidak mendukung AWS SDK untuk.NET V4. Gunakan AWS SDK.NET V3 untuk dukungan Sinyal Aplikasi lengkap.
Tidak ada data aplikasi di dasbor Sinyal Aplikasi
Jika ada metrik atau jejak yang hilang di dasbor Sinyal Aplikasi, hal-hal berikut ini mungkin menjadi penyebabnya. Selidiki penyebab-penyebab tersebut hanya jika Anda telah menunggu 15 menit untuk Sinyal Aplikasi mengumpulkan dan menampilkan data sejak pembaruan terakhir Anda.
Pastikan pustaka dan kerangka kerja yang Anda gunakan didukung oleh agen ADOT Java. Untuk informasi selengkapnya, silakan lihat Pustaka / Kerangka Kerja
. Pastikan CloudWatch agen sedang berjalan. Pertama periksa status pod CloudWatch agen dan pastikan semuanya dalam
Runningstatus.kubectl -n amazon-cloudwatch get pods.Tambahkan yang berikut ini ke file konfigurasi CloudWatch agen untuk mengaktifkan log debugging, lalu mulai ulang agen.
"agent": { "region": "${REGION}", "debug": true },Kemudian periksa kesalahan di pod CloudWatch agen.
Periksa masalah konfigurasi dengan CloudWatch agen. Konfirmasikan bahwa berikut ini masih dalam file konfigurasi CloudWatch agen dan agen telah dimulai ulang sejak ditambahkan.
"agent": { "region": "${REGION}", "debug": true },Kemudian periksa log OpenTelemetry debugging untuk pesan kesalahan seperti
ERROR io.opentelemetry.exporter.internal.grpc.OkHttpGrpcExporter - Failed to export .... Pesan-pesan ini mungkin menunjukkan masalah.Jika itu tidak menyelesaikan masalah, buang dan periksa variabel lingkungan dengan nama yang dimulai
OTEL_dengan menjelaskan pod dengan perintahkubectl describe pod.Untuk mengaktifkan logging debug OpenTelemetry Python, atur variabel lingkungan
OTEL_PYTHON_LOG_LEVELkedebugdan gunakan ulang aplikasi.Periksa izin yang salah atau tidak mencukupi untuk mengekspor data dari CloudWatch agen. Jika Anda melihat
Access Deniedpesan di log CloudWatch agen, ini mungkin masalahnya. Ada kemungkinan bahwa izin yang diterapkan saat Anda menginstal CloudWatch agen kemudian diubah atau dicabut.Periksa masalah AWS Distro for OpenTelemetry (ADOT) saat menghasilkan data telemetri.
Pastikan bahwa keterangan instrumentasi
instrumentation.opentelemetry.io/inject-javadansidecar.opentelemetry.io/inject-javaditerapkan pada penerapan aplikasi deployment dan nilainya adalahtrue. Tanpa ini, pod aplikasi tidak akan diinstrumentasi bahkan jika add-on ADOT sudah diinstal dengan benar.Berikutnya, periksa apakah kontainer
initditerapkan pada aplikasi dan statusReadyadalahTrue. Jika kontainerinitbelum siap, silakan lihat statusnya untuk alasannya.Jika masalah berlanjut, aktifkan pencatatan debug di OpenTelemetry Java SDK dengan menyetel variabel lingkungan
OTEL_JAVAAGENT_DEBUGke true dan menerapkan ulang aplikasi. Kemudian cari pesan yang dimulai denganERROR io.telemetry.Ek metric/span sportir mungkin kehilangan data. Untuk mengetahuinya, periksa log aplikasi untuk pesan yang menyertakan
Failed to export...CloudWatch Agen mungkin terhambat saat mengirim metrik atau rentang ke Sinyal Aplikasi. Periksa pesan yang menunjukkan pelambatan di log CloudWatch agen.
Pastikan Anda telah mengaktifkan pengaturan penemuan layanan. Anda hanya perlu melakukan ini sekali di wilayah Anda.
Untuk mengonfirmasi hal ini, di CloudWatch konsol pilih Sinyal Aplikasi, Layanan. Jika Langkah 1 tidak ditandai Sel esai, pilih Mulai temukan layanan Anda. Data akan mulai mengalir dalam waktu lima menit.
Metrik layanan atau metrik ketergantungan memiliki nilai Unknown
Jika Anda melihat UnknownService,, UnknownOperation UnknownRemoteService, atau UnknownRemoteOperation untuk nama ketergantungan atau operasi di dasbor Sinyal Aplikasi, periksa apakah terjadinya titik data untuk layanan jarak jauh yang tidak dikenal dan operasi jarak jauh yang tidak diketahui bertepatan dengan penerapannya.
UnknownServiceberarti bahwa nama aplikasi berinstrumen tidak diketahui. Jika variabel
OTEL_SERVICE_NAMElingkungan tidak ditentukan dan tidakservice.nameditentukan diOTEL_RESOURCE_ATTRIBUTES, nama layanan disetel keUnknownService. Untuk memperbaikinya, tentukan nama layanan diOTEL_SERVICE_NAMEatauOTEL_RESOURCE_ATTRIBUTES.UnknownOperationberarti bahwa nama operasi yang dipanggil tidak diketahui. Hal ini terjadi ketika Sinyal Aplikasi tidak dapat menemukan nama operasi yang memanggil panggilan jarak jauh, atau ketika nama operasi yang diekstraksi berisi nilai kardinalitas tinggi.
UnknownRemoteServiceberarti bahwa nama layanan tujuan tidak diketahui. Ini terjadi ketika sistem tidak dapat mengekstrak nama layanan tujuan yang diakses oleh panggilan jarak jauh.
Salah satu solusinya adalah membuat rentang khusus di sekitar fungsi yang mengirimkan permintaan, dan menambahkan atribut
aws.remote.servicedengan nilai yang ditunjuk. Pilihan lain adalah mengkonfigurasi CloudWatch agen untuk menyesuaikan nilai metrikRemoteService. Untuk informasi selengkapnya tentang penyesuaian di CloudWatch agen, lihatAktif CloudWatch kan Sinyal Aplikasi.UnknownRemoteOperationberarti bahwa nama operasi tujuan tidak diketahui. Hal ini terjadi ketika sistem tidak dapat mengekstrak nama operasi tujuan yang diakses oleh panggilan jarak jauh.
Salah satu solusinya adalah membuat rentang khusus di sekitar fungsi yang mengirimkan permintaan, dan menambahkan atribut
aws.remote.operationdengan nilai yang ditunjuk. Pilihan lain adalah mengkonfigurasi CloudWatch agen untuk menyesuaikan nilai metrikRemoteOperation. Untuk informasi selengkapnya tentang penyesuaian di CloudWatch agen, lihatAktif CloudWatch kan Sinyal Aplikasi.
Menangani ConfigurationConflict saat mengelola add-on Amazon CloudWatch Observability EKS
Saat Anda menginstal atau memperbarui add-on Amazon CloudWatch Observability EKS, jika Anda melihat kegagalan yang disebabkan oleh tipe ConfigurationConflict dengan deskripsi yang dimulai denganConflicts found when trying to apply. Will not continue due to resolve conflicts mode, kemungkinan karena Anda sudah memiliki CloudWatch agen dan komponen terkait seperti ServiceAccount, ClusterRole dan yang ClusterRoleBinding diinstal pada cluster. Health Issue Ketika add-on mencoba menginstal CloudWatch agen dan komponen terkaitnya, jika mendeteksi perubahan dalam konten, secara default gagal instalasi atau pembaruan untuk menghindari penulisan status sumber daya pada cluster.
Jika Anda mencoba masuk ke add-on Amazon CloudWatch Observability EKS dan Anda melihat kegagalan ini, sebaiknya hapus pengaturan CloudWatch agen yang sudah ada yang sebelumnya telah Anda instal di cluster dan kemudian menginstal add-on EKS. Pastikan untuk membuat cadangan penyesuaian apa pun yang mungkin telah Anda buat ke pengaturan CloudWatch agen asli seperti konfigurasi agen khusus, dan berikan ini ke add-on Amazon CloudWatch Observability EKS saat Anda menginstal atau memperbaruinya berikutnya. Jika sebelumnya Anda telah menginstal CloudWatch agen untuk orientasi ke Container Insights, lihat Panduan penyiapan (AWS CLI) untuk informasi selengkapnya.
Atau, add-on mendukung opsi konfigurasi resolusi konflik yang memiliki kemampuan untuk menentukan OVERWRITE. Anda dapat menggunakan opsi ini untuk melanjutkan dengan melakukan instalasi atau memperbarui add-on dengan menimpa konflik di klaster. Jika Anda menggunakan konsol Amazon EKS, Anda akan menemukan Metode penyelesaian konflik saat Anda memilih Pengaturan konfigurasi opsional ketika Anda membuat atau memperbarui add-on. Jika Anda menggunakan AWS CLI, Anda dapat memberikan perintah Anda --resolve-conflicts OVERWRITE untuk membuat atau memperbarui add-on.
Saya ingin menyaring metrik dan jejak yang tidak perlu
Jika Sinyal Aplikasi mengumpulkan jejak dan metrik yang tidak Anda inginkan, lihat Kelola operasi kardinalitas tinggi informasi tentang mengonfigurasi CloudWatch agen dengan aturan khusus untuk mengurangi kardinalitas.
Untuk informasi tentang menyesuaikan aturan pengambilan sampel jejak, lihat Meng onfigurasi aturan pengambilan sampel dalam X-Ray dokumentasi.
Apa yang dimak InternalOperation sud?
An InternalOperation adalah operasi yang dipicu oleh aplikasi secara internal daripada oleh pemanggilan eksternal. Melihat InternalOperation diharapkan, perilaku sehat.
Beberapa contoh khas di mana Anda akan melihat InternalOperation termasuk yang berikut:
Memuat awal — Aplikasi Anda melakukan operasi bernama
loadDatafromDByang membaca metadata dari database selama fase pemanasan. Alih-alih mengamatiloadDatafromDBsebagai operasi layanan, Anda akan melihatnya dikategorikan sebagaiInternalOperation.Eksekusi asinkron di latar belakang — Aplikasi Anda berlangganan antrian acara, dan memproses data streaming sesuai setiap kali ada pembaruan. Setiap operasi yang dipicu akan
InternalOperationberada di bawah operasi layanan.Mengambil informasi host dari registri layanan — Aplikasi Anda berbicara ke registri layanan untuk penemuan layanan. Semua interaksi dengan sistem penemuan diklasifikasikan sebagai
InternalOperation.
Bagaimana cara mengaktifkan logging untuk aplikasi.NET?
Untuk mengaktifkan logging untuk aplikasi.NET, konfigurasikan variabel lingkungan berikut. Untuk informasi selengkapnya tentang cara mengonfigurasi variabel lingkungan ini, lihat Mem ecahkan masalah instrumentasi otomatis.NET
OTEL_LOG_LEVELOTEL_DOTNET_AUTO_LOG_DIRECTORYCOREHOST_TRACECOREHOST_TRACEFILE
Bagaimana saya bisa menyelesaikan konflik versi perakitan di aplikasi.NET?
Jika Anda mendapatkan kesalahan berikut, lihat Konflik versi perakitan
Unhandled exception. System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified. File name: 'Microsoft.Extensions.DependencyInjection.Abstractions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' at Microsoft.AspNetCore.Builder.WebApplicationBuilder..ctor(WebApplicationOptions options, Action`1 configureDefaults) at Microsoft.AspNetCore.Builder.WebApplication.CreateBuilder(String[] args) at Program.<Main>$(String[] args) in /Blog.Core/Blog.Core.Api/Program.cs:line 26
Bisakah saya menonaktifkan FluentBit?
Anda dapat menonaktifkan FluentBit dengan mengonfigurasi add-on Amazon CloudWatch Observability EKS. Untuk informasi selengkapnya, lihat (Opsional) Konfigurasi tambahan.
Bisakah saya memfilter log kontainer sebelum mengekspor ke CloudWatch Log?
Tidak, penyaringan log kontainer belum didukung.
Menyelesaikan TypeError saat Menggunakan AWS Distro untuk OpenTelemetry (ADOT) JavaScript Lapisan Lambda
Fungsi Lambda Anda mungkin gagal dengan kesalahan ini: TypeError - "Cannot redefine property: handler" ketika Anda:
Gunakan ADOT JavaScript Lambda Layer
Gunakan
esbuilduntuk mengkompilasi TypeScriptEkspor handler Anda dengan
exportkata kunci
ADOT JavaScript Lambda Layer perlu memodifikasi handler Anda saat runtime. Ketika Anda menggunakan export kata kunci dengan esbuild (langsung atau melalui AWS CDK), esbuild membuat handler Anda tidak dapat diubah, mencegah modifikasi ini.
Ekspor fungsi handler Anda menggunakan al module.exports ih-alih export kata kunci:
// Before export const handler = (event) => { // Handler Code }
// After const handler = async (event) => { // Handler Code } module.exports = { handler }
TypeError saat menggunakan penanganan Lambda Streaming Response dengan AWS Distro untuk OpenTelemetry (ADOT) JavaScript Lapisan Lambda
Fungsi Lambda Anda mungkin gagal dengan kesalahan ini: TypeError - "responseStream.write is not a function" ketika Anda:
Gunakan ADOT JavaScript Lambda Layer dengan Instrumentasi AWS Lambda diaktifkan (diaktifkan secara default)
Menggunakan fitur streaming respons dalam runtime ter Node.js kelola. Misalnya, ketika pengendali fungsi Anda seperti:
* export const handler = awslambda.streamifyResponse(...)
Instrumentasi AWS Lambda di ADOT JavaScript Lambda Layer saat ini tidak mendukung Streaming Respon dalam runtime terkel Node.js ola, jadi harus dinonaktifkan untuk menghindari hal ini. TypeError
Perbarui ke versi agen atau add-on Amazon EKS yang diperlukan
Setelah 9 Agustus 2024, Sin CloudWatch yal Aplikasi tidak akan lagi mendukung versi lama dari add-on Amazon CloudWatch Observability EKS, CloudWatch agen, dan AWS Distro untuk agen instrumentasi OpenTelemetry otomatis.
Untuk add-on Amazon CloudWatch Observability EKS, versi yang lebih tua dari
v1.7.0-eksbuild.1tidak akan didukung.Untuk CloudWatch agen, versi yang lebih lama
1.300040.0dari tidak akan didukung.Untuk AWS Distro untuk agen OpenTelemetry instrumentasi otomatis:
Untuk Java, versi yang lebih tua
1.32.2dari tidak didukung.Untuk Python, versi yang lebih tua
0.2.0dari tidak didukung.-
Untuk .NET, versi yang lebih tua
1.3.2dari tidak didukung. -
Untuk Node.js, versi yang lebih lama
0.3.0dari tidak didukung.
penting
Versi terbaru dari agen menyertakan pembaruan pada skema metrik Sinyal Aplikasi. Pembaruan ini tidak kompatibel ke belakang, dan ini dapat mengakibatkan masalah data jika versi yang tidak kompatibel digunakan. Untuk membantu memastikan transisi mulus ke fungsionalitas baru, lakukan hal berikut:
Jika aplikasi Anda berjalan di Amazon EKS, pastikan untuk memulai ulang semua aplikasi berinstrumen setelah Anda memperbarui add-on Amazon CloudWatch Observability.
Untuk aplikasi yang berjalan di platform lain, pastikan untuk memut akh irkan CloudWatch agen dan agen AWS OpenTelemetry instrumentasi otomatis ke versi terbaru.
Petunjuk di bagian berikut dapat membantu Anda memperbarui ke versi yang didukung.
Daftar Isi
Perbarui add-on Amazon CloudWatch Observability EKS
Untuk add-on Amazon CloudWatch Observability EKS, Anda dapat menggunakan Konsol Manajemen AWS atau. AWS CLI
Gunakan konsol
Untuk meng-upgrade add-on menggunakan konsol
Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home #/cluster
. Pilih nama cluster Amazon EKS untuk diperbarui.
Pilih Add-ons tab, lalu pilih Amazon CloudWatch Observability.
Pilih Edit, pilih versi yang ingin Anda perbarui, lalu pilih S impan perubahan.
Pastikan untuk memilih
v1.7.0-eksbuild.1atau nanti.Masukkan salah satu AWS CLI perintah berikut untuk memulai ulang layanan Anda.
# Restart a deployment kubectl rollout restart deployment/name# Restart a daemonset kubectl rollout restart daemonset/name# Restart a statefulset kubectl rollout restart statefulset/name
Gunakan AWS CLI
Untuk meng-upgrade add-on menggunakan AWS CLI
Masukkan perintah berikut untuk menemukan versi terbaru.
aws eks describe-addon-versions \ --addon-name amazon-cloudwatch-observabilityMasukkan perintah berikut untuk memperbarui add-on. Ganti
$VERSIONdengan versi yangv1.7.0-eksbuild.1lebih baru. Ganti$AWS_REGIONdan$CLUSTERdengan nama Wilayah dan cluster Anda.aws eks update-addon \ --region$AWS_REGION\ --cluster-name$CLUSTER\ --addon-name amazon-cloudwatch-observability \ --addon-version$VERSION\ # required only if the advanced configuration is used. --configuration-values$JSON_CONFIGcatatan
Jika Anda menggunakan konfigurasi khusus untuk add-on, Anda dapat menemukan contoh konfigurasi yang akan digunakan
$JSON_CONFIGdiAktif CloudWatch kan Sinyal Aplikasi.Masukkan salah satu AWS CLI perintah berikut untuk memulai ulang layanan Anda.
# Restart a deployment kubectl rollout restart deployment/name# Restart a daemonset kubectl rollout restart daemonset/name# Restart a statefulset kubectl rollout restart statefulset/name
Memperbarui CloudWatch agen dan agen ADOT
Jika layanan Anda berjalan pada arsitektur selain Amazon EKS, Anda perlu memutakhirkan CloudWatch agen dan agen instrumentasi otomatis ADOT untuk menggunakan fitur Sinyal Aplikasi terbaru.
Pembaruan tentang Amazon ECS
Untuk meningkatkan agen Anda untuk layanan yang berjalan di Amazon ECS
Buat revisi definisi tugas baru. Untuk informasi selengkapnya, lihat Memperbarui definisi tugas menggunakan konsol.
Ganti
$IMAGEecs-cwagentwadah dengan tag gambar terbaru dari cloudwatch-agentdi Amazon ECR. Jika Anda memutakhirkan ke versi tetap, pastikan untuk menggunakan versi yang sama dengan atau lebih baru dari
1.300040.0.G
$IMAGEantiinitwadah dengan tag gambar terbaru dari lokasi berikut:Untuk Java, gunakan aws- observability/adot -autoinstrumentation-
java. Jika Anda memutakhirkan ke versi tetap, pastikan untuk menggunakan versi yang sama dengan atau lebih baru dari
1.32.2.Untuk Python, gunakan aws- observability/adot -autoinstrumentation-
python. Jika Anda memutakhirkan ke versi tetap, pastikan untuk menggunakan versi yang sama dengan atau lebih baru dari
0.2.0.-
Untuk .NET, gunakan aws- observability/adot -auto
instrumentation-dotnet. Jika Anda memutakhirkan ke versi tetap, pastikan untuk menggunakan versi yang sama dengan atau lebih baru dari
1.3.2. -
Untuk Node.js, gunakan aws- observability/adot -autoinstrumentation-node
. Jika Anda memutakhirkan ke versi tetap, pastikan untuk menggunakan versi yang sama dengan atau lebih baru dari
0.3.0.
Perbarui variabel lingkungan Sinyal Aplikasi di wadah aplikasi Anda dengan mengikuti petunjuk diLangkah 4: Instrumentasikan aplikasi Anda dengan CloudWatch agen.
Terapkan layanan Anda dengan definisi tugas baru.
Perbarui pada Amazon EC2 atau arsitektur lainnya
Untuk meningkatkan agen Anda untuk layanan yang berjalan di Amazon EC2 atau arsitektur lainnya
Pastikan untuk memilih versi
1.300040.0atau versi CloudWatch agen yang lebih baru.Unduh versi terbaru AWS Distro untuk agen OpenTelemetry instrumentasi otomatis dari salah satu lokasi berikut:
Untuk Java, gunakan aws-
otel-java-instrumentasi. Jika Anda memutakhirkan ke versi tetap, pastikan untuk memilih
1.32.2atau yang lebih baru.Untuk Python, gunakan aws-
otel-python-instrumentasi. Jika Anda memutakhirkan ke versi tetap, pastikan untuk memilih
0.2.0atau yang lebih baru.-
Untuk .NET, gunakan aws-
otel-dotnet-instrumentasi. Jika Anda memutakhirkan ke versi tetap, pastikan untuk memilih
1.3.2atau yang lebih baru. -
Untuk Node.js, gunakan aws-
otel-js-instrumentasi. Jika Anda memutakhirkan ke versi tetap, pastikan untuk memilih
0.3.0atau yang lebih baru.
Terapkan variabel lingkungan Sinyal Aplikasi yang diperbarui ke aplikasi Anda, lalu mulai aplikasi Anda. Untuk informasi selengkapnya, lihat Langkah 3: Menginstrumentasikan aplikasi Anda dan memulainya.
Format Metrik Tertanam (EMF) dinonaktifkan untuk Sinyal Aplikasi
Menonaktifkan EMF untuk grup /aws/application-signals/data log dapat memiliki dampak berikut pada fungsionalitas Sinyal Aplikasi.
Metrik dan grafik Sinyal Aplikasi tidak akan ditampilkan
Fungsi Sinyal Aplikasi akan terdegradasi
Bagaimana cara mengembalikan Sinyal Aplikasi?
Saat Sinyal Aplikasi menampilkan grafik atau metrik kosong, Anda harus mengaktifkan EMF untuk grup /aws/application-signals/data log untuk memulihkan fungsionalitas penuh. Lihat informasi yang lebih lengkap di PutAccountPolicy.