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 Sinyal CloudWatch Aplikasi.
Topik
- Aplikasi tidak memulai setelah Sinyal Aplikasi diaktifkan
- Aplikasi Python tidak dimulai setelah Sinyal Aplikasi diaktifkan
- Tidak ada data Sinyal Aplikasi untuk aplikasi Python yang menggunakan server WSGI
- Aplikasi Node.js saya tidak diinstrumentasi atau tidak menghasilkan telemetri Sinyal Aplikasi
- Tidak ada data aplikasi di dasbor Sinyal Aplikasi
- Metrik layanan atau metrik ketergantungan memiliki nilai Tidak Dikenal
- Menangani ConfigurationConflict saat mengelola add-on Amazon CloudWatch Observability EKS
- Saya ingin memfilter metrik dan jejak yang tidak perlu
- Apa InternalOperation artinya?
- Bagaimana cara mengaktifkan logging untuk. NETaplikasi? (Pratinjau)
- Bagaimana saya bisa menyelesaikan konflik versi perakitan di. NETaplikasi?
- Bisakah saya menonaktifkan FluentBit?
- Bisakah saya memfilter log kontainer sebelum mengekspor ke CloudWatch Log?
Aplikasi tidak memulai setelah Sinyal Aplikasi diaktifkan
Jika aplikasi Anda di EKS klaster Amazon tidak dimulai setelah Anda mengaktifkan Sinyal Aplikasi di klaster, periksa 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 oleh Sinyal Aplikasi .
Jika aplikasi Anda gagal menarik artefak Sinyal Aplikasi seperti AWS Distro untuk agen OpenTelemetery Java atau Python CloudWatch dan gambar 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 ulang aplikasi Anda. Kemudian periksa apakah aplikasi sudah berfungsi.
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 hal ini, pastikan Anda mengatur variabel PYTHONPATH
lingkungan ke lokasi direktori kerja aplikasi Anda. Untuk informasi selengkapnya tentang masalah ini, lihat pengaturan autoinstrumentasi Python dari PYTHONPATH tidak sesuai dengan perilaku resolusi modul Python, melanggar aplikasi Django
Gunakan
--noreload
bendera untuk mencegah pemuatan ulang otomatis.Tetapkan variabel
DJANGO_SETTINGS_MODULE
lingkungan ke lokasisettings.py
berkas 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 WSGI
Jika Anda menggunakan WSGI server seperti Gunicorn atau uWSGI, Anda harus membuat perubahan tambahan untuk membuat instrumentasi otomatis ADOT Python berfungsi.
catatan
Pastikan Anda menggunakan versi terbaru ADOT Python dan EKS add-on Amazon CloudWatch Observability sebelum melanjutkan.
Langkah-langkah tambahan untuk mengaktifkan Sinyal Aplikasi dengan WSGI server
Impor 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 sitecustomize
Untuk AndaWSGI, gunakan
import
direktif.# uwsgi.ini [uwsgi] ; required for the instrumentation of worker processes enable-threads = true lazy-apps = true import = opentelemetry.instrumentation.auto_instrumentation.sitecustomize
Aktifkan konfigurasi untuk instrumentasi otomatis ADOT Python untuk melewati proses utama dan tunda ke pekerja dengan menyetel variabel lingkungan ke.
OTEL_AWS_PYTHON_DEFER_TO_WORKERS_ENABLED
true
Aplikasi Node.js saya tidak diinstrumentasi atau tidak menghasilkan telemetri Sinyal Aplikasi
Untuk mengaktifkan Sinyal Aplikasi untuk Node.js, Anda harus memastikan bahwa aplikasi Node.js Anda menggunakan format modul CommonJS (CJS). Saat ini, AWS Distro untuk OpenTelemetry Node.js tidak mendukung format ESM modul, karena OpenTelemetry JavaScript dukungannya ESM bersifat eksperimental dan sedang dalam proses.
Untuk menentukan apakah aplikasi Anda menggunakan CJS dan tidakESM, pastikan bahwa aplikasi Anda tidak memenuhi persyaratan untuk mengaktifkan ESM
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
Running
status.kubectl -n amazon-cloudwatch get pods.
Tambahkan berikut ini ke file konfigurasi CloudWatch agen untuk mengaktifkan log debugging, lalu restart agen.
"agent": { "region": "${REGION}", "debug": true },
Kemudian periksa kesalahan pada 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_LEVEL
kedebug
dan gunakan kembali aplikasi.Periksa izin yang salah atau tidak memadai untuk mengekspor data dari agen. CloudWatch Jika Anda melihat
Access Denied
pesan di log CloudWatch agen, ini mungkin masalahnya. Ada kemungkinan bahwa izin yang diterapkan saat Anda menginstal CloudWatch agen kemudian diubah atau dicabut.Periksa sebuah AWS Masalah Distro for OpenTelemetry (ADOT) saat membuat data telemetri.
Pastikan bahwa keterangan instrumentasi
instrumentation.opentelemetry.io/inject-java
dansidecar.opentelemetry.io/inject-java
diterapkan pada penerapan aplikasi deployment dan nilainya adalahtrue
. Tanpa ini, pod aplikasi tidak akan diinstrumentasi bahkan jika ADOT addon diinstal dengan benar.Berikutnya, periksa apakah kontainer
init
diterapkan pada aplikasi dan statusReady
adalahTrue
. Jika kontainerinit
belum siap, silakan lihat statusnya untuk alasannya.Jika masalah berlanjut, aktifkan debug logging di OpenTelemetry Java SDK dengan menyetel variabel lingkungan
OTEL_JAVAAGENT_DEBUG
ke true dan menerapkan ulang aplikasi. Kemudian cari pesan yang dimulai denganERROR io.telemetry
.Pengekspor metrik/rentang mungkin membuang data. Untuk mengetahuinya, periksa log aplikasi untuk pesan yang menyertakan
Failed to export...
CloudWatch Agen mungkin terhambat saat mengirim metrik atau bentang 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 Selesai, pilih Mulai menemukan layanan Anda. Data akan mulai mengalir dalam waktu lima menit.
Metrik layanan atau metrik ketergantungan memiliki nilai Tidak Dikenal
Jika Anda melihat UnknownService, UnknownOperation, UnknownRemoteService, atau UnknownRemoteOperationuntuk nama ketergantungan atau operasi di dasbor Sinyal Aplikasi, periksa apakah kemunculan titik data untuk layanan jarak jauh yang tidak diketahui dan operasi jarak jauh yang tidak diketahui bertepatan dengan penerapannya.
UnknownServiceberarti bahwa nama aplikasi yang diinstrumentasi tidak diketahui. Jika variabel
OTEL_SERVICE_NAME
lingkungan tidak terdefinisi danservice.name
tidak ditentukan dalamOTEL_RESOURCE_ATTRIBUTES
, nama layanan disetel keUnknownService
. Untuk memperbaikinya, tentukan nama layanan diOTEL_SERVICE_NAME
atauOTEL_RESOURCE_ATTRIBUTES
.UnknownOperationberarti bahwa nama operasi yang dipanggil tidak diketahui. 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 panggilan jarak jauh.
Salah satu solusinya adalah membuat rentang kustom di sekitar fungsi yang mengirimkan permintaan, dan menambahkan atribut
aws.remote.service
dengan nilai yang ditentukan. Pilihan lain adalah mengkonfigurasi CloudWatch agen untuk menyesuaikan nilai metrikRemoteService
. Untuk informasi selengkapnya tentang penyesuaian di CloudWatch agen, lihat. Aktifkan Sinyal CloudWatch AplikasiUnknownRemoteOperationberarti bahwa nama operasi tujuan tidak diketahui. Ini terjadi ketika sistem tidak dapat mengekstrak nama operasi tujuan yang diakses panggilan jarak jauh.
Salah satu solusinya adalah membuat rentang kustom di sekitar fungsi yang mengirimkan permintaan, dan menambahkan atribut
aws.remote.operation
dengan nilai yang ditentukan. Pilihan lain adalah mengkonfigurasi CloudWatch agen untuk menyesuaikan nilai metrikRemoteOperation
. Untuk informasi selengkapnya tentang penyesuaian di CloudWatch agen, lihat. Aktifkan Sinyal CloudWatch Aplikasi
Menangani ConfigurationConflict saat mengelola add-on Amazon CloudWatch Observability EKS
Ketika Anda menginstal atau memperbarui EKS add-on Amazon CloudWatch Observability, jika Anda melihat kegagalan yang Health Issue
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. Ketika add-on mencoba menginstal CloudWatch agen dan komponen terkait, jika mendeteksi perubahan apa pun dalam konten, secara default gagal instalasi atau pembaruan untuk menghindari penimpaan status sumber daya pada cluster.
Jika Anda mencoba untuk onboard ke EKS add-on Amazon CloudWatch Observability dan Anda melihat kegagalan ini, sebaiknya hapus penyiapan CloudWatch agen yang sudah ada yang sebelumnya Anda instal di cluster dan kemudian menginstal add-on. EKS Pastikan untuk mencadangkan penyesuaian apa pun yang mungkin telah Anda buat ke penyiapan CloudWatch agen asli seperti konfigurasi agen khusus, dan berikan ini ke EKS add-on Amazon CloudWatch Observability saat Anda menginstal atau memperbaruinya berikutnya. Jika sebelumnya Anda telah menginstal CloudWatch agen untuk orientasi ke Container Insights, lihat Menghapus CloudWatch agen dan Fluent Bit untuk Wawasan Kontainer 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 EKS konsol Amazon, Anda akan menemukan metode Resolusi konflik saat memilih pengaturan konfigurasi Opsional saat 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 memfilter metrik dan jejak yang tidak perlu
Jika Application Signals 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 Mengonfigurasi aturan pengambilan sampel dalam dokumentasi X-Ray.
Apa InternalOperation
artinya?
An InternalOperation
adalah operasi yang dipicu oleh aplikasi secara internal dan bukan oleh pemanggilan eksternal. Melihat InternalOperation
diharapkan, perilaku sehat.
Beberapa contoh khas di mana Anda akan melihat InternalOperation
termasuk yang berikut:
Preloading saat mulai — Aplikasi Anda melakukan operasi bernama
loadDatafromDB
yang membaca metadata dari database selama fase pemanasan. Alih-alih mengamatiloadDatafromDB
sebagai operasi layanan, Anda akan melihatnya dikategorikan sebagaiInternalOperation
.Eksekusi asinkron di latar belakang — Aplikasi Anda berlangganan antrian acara, dan memproses data streaming sesuai dengan itu setiap kali ada pembaruan. Setiap operasi yang dipicu akan berada di bawah
InternalOperation
sebagai 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. NETaplikasi? (Pratinjau)
Untuk mengaktifkan logging untuk. NETaplikasi, konfigurasikan variabel lingkungan berikut. Untuk informasi selengkapnya tentang cara mengonfigurasi variabel lingkungan ini, lihat Pemecahan masalah. NETmasalah instrumentasi otomatis
OTEL_LOG_LEVEL
OTEL_DOTNET_AUTO_LOG_DIRECTORY
COREHOST_TRACE
COREHOST_TRACEFILE
Bagaimana saya bisa menyelesaikan konflik versi perakitan di. NETaplikasi?
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 ObservabilityEKS. Untuk informasi selengkapnya, lihat (Opsional) Konfigurasi tambahan.
Bisakah saya memfilter log kontainer sebelum mengekspor ke CloudWatch Log?
Tidak, memfilter log kontainer belum didukung.