Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aktifkan aplikasi Anda di klaster Amazon EKS
CloudWatch Sinyal Aplikasi didukung untuk aplikasi Java, Python, Node.js, dan .NET. Untuk mengaktifkan Sinyal Aplikasi untuk aplikasi Anda di klaster Amazon EKS yang ada, Anda dapat menggunakan konfigurasi Konsol Manajemen AWS lanjutan monitor otomatis add-on AWS CDK, atau CloudWatch Observability.
Topik
Aktifkan Sinyal Aplikasi di kluster Amazon EKS menggunakan konsol
Untuk mengaktifkan Sinyal CloudWatch Aplikasi pada aplikasi Anda di klaster Amazon EKS yang ada, gunakan petunjuk di bagian ini.
penting
Jika Anda sudah menggunakan aplikasi OpenTelemetry yang ingin Anda aktifkan untuk Sinyal Aplikasi, lihat Sistem yang didukung sebelum Anda mengaktifkan Sinyal Aplikasi.
Untuk mengaktifkan Sinyal Aplikasi untuk aplikasi Anda di klaster Amazon EKS yang ada
catatan
Jika Anda belum mengaktifkan Sinyal Aplikasi, ikuti petunjuknya Aktifkan Sinyal Aplikasi di akun Anda dan ikuti prosedur di bawah ini.
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. Pilih Sinyal Aplikasi.
Untuk Tentukan platform, pilih EKS.
Untuk Pilih klaster EKS, pilih klaster tempat Anda ingin mengaktifkan Sinyal Aplikasi.
Jika klaster ini belum mengaktifkan add-on Amazon CloudWatch Observability EKS, Anda akan diminta untuk mengaktifkannya. Jika ini terjadi, lakukan hal berikut:
Pilih Add CloudWatch Observability EKS add-on. Konsol Amazon EKS akan dimunculkan.
Pilih kotak centang untuk Amazon CloudWatch Observability dan pilih Berikutnya.
Add-on CloudWatch Observability EKS memungkinkan Sinyal Aplikasi dan CloudWatch Wawasan Kontainer dengan peningkatan observabilitas untuk Amazon EKS. Untuk informasi selengkapnya tentang Wawasan Kontainer ini, silakan lihat Wawasan Kontainer.
Pilih versi terbaru add-on untuk diinstal.
Pilih peran IAM yang akan digunakan untuk add-on. Jika Anda memilih Diwariskan dari node, lampirkan izin yang benar untuk peran IAM yang digunakan oleh simpul pekerja Anda. Ganti
my-worker-node-roledengan peran IAM yang digunakan oleh node pekerja Kubernetes Anda.aws iam attach-role-policy \ --role-namemy-worker-node-role\ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --policy-arn arn:aws:iam::aws:policy/AWSXRayWriteOnlyAccessJika Anda ingin membuat peran layanan untuk menggunakan add-on, silakan lihat Instal CloudWatch agen dengan add-on Amazon CloudWatch Observability EKS atau bagan Helm.
Pilih Berikutnya, konfirmasikan informasi di layar, dan pilih Buat.
Di layar berikutnya, pilih Aktifkan Sinyal CloudWatch Aplikasi untuk kembali ke CloudWatch konsol dan menyelesaikan prosesnya.
-
Ada dua opsi untuk mengaktifkan aplikasi Anda untuk Sinyal Aplikasi. Untuk konsistensi, kami sarankan Anda memilih satu opsi per cluster.
Opsi Konsol lebih sederhana. Menggunakan metode ini menyebabkan pod Anda segera restart.
Metode Annotate Manifest File memberi Anda lebih banyak kontrol saat pod Anda dimulai ulang, dan juga dapat membantu Anda mengelola pemantauan dengan cara yang lebih terdesentralisasi jika Anda tidak ingin memusatkannya.
catatan
Jika Anda mengaktifkan Application Signals untuk aplikasi Node.js dengan ESM, lewati saja. Menyiapkan aplikasi Node.js dengan format modul ESM
Pilih Tampilkan Layanan setelah selesai. Hal ini akan membawa Anda ke tampilan Layanan Sinyal Aplikasi, di mana Anda dapat melihat data yang dikumpulkan oleh Sinyal Aplikasi. Mungkin diperlukan waktu beberapa menit hingga akhirnya data muncul.
Untuk mengaktifkan Sinyal Aplikasi di klaster Amazon EKS lainnya, pilih Aktifkan Sinyal Aplikasi dari layar Layanan.
Untuk informasi selengkapnya tentang tampilan Layanan, silakan lihat Memantau kondisi kesehatan operasional aplikasi Anda dengan Sinyal Aplikasi.
catatan
Jika Anda menggunakan server WSGI untuk aplikasi Python Anda, lihat informasi Tidak ada data Sinyal Aplikasi untuk aplikasi Python yang menggunakan server WSGI untuk membuat Sinyal Aplikasi berfungsi.
Kami juga telah mengidentifikasi pertimbangan lain yang harus Anda ingat saat mengaktifkan aplikasi Python untuk Sinyal Aplikasi. Untuk informasi selengkapnya, lihat Aplikasi Python tidak dimulai setelah Sinyal Aplikasi diaktifkan.
Menyiapkan aplikasi Node.js dengan format modul ESM
Kami menyediakan dukungan terbatas untuk aplikasi Node.js dengan format modul ESM. Lihat perinciannya di Keterbatasan yang diketahui tentang Node.js dengan ESM.
Untuk format modul ESM, mengaktifkan Sinyal Aplikasi melalui konsol atau dengan membuat anotasi file manifes tidak berfungsi. Lewati langkah 8 dari prosedur sebelumnya, dan lakukan hal berikut sebagai gantinya.
Untuk mengaktifkan Sinyal Aplikasi untuk aplikasi Node.js dengan ESM
Instal dependensi yang relevan ke aplikasi Node.js Anda untuk autoinstrumentasi:
npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation npm install @opentelemetry/instrumentation@0.54.0Tambahkan variabel lingkungan berikut ke Dockerfile untuk aplikasi Anda dan buat gambar.
... ENV OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true ENV OTEL_TRACES_SAMPLER_ARG='endpoint=http://cloudwatch-agent.amazon-cloudwatch:2000' ENV OTEL_TRACES_SAMPLER='xray' ENV OTEL_EXPORTER_OTLP_PROTOCOL='http/protobuf' ENV OTEL_EXPORTER_OTLP_TRACES_ENDPOINT='http://cloudwatch-agent.amazon-cloudwatch:4316/v1/traces' ENV OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT='http://cloudwatch-agent.amazon-cloudwatch:4316/v1/metrics' ENV OTEL_METRICS_EXPORTER='none' ENV OTEL_LOGS_EXPORTER='none' ENV NODE_OPTIONS='--import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs' ENV OTEL_SERVICE_NAME='YOUR_SERVICE_NAME' #replace with a proper service name ENV OTEL_PROPAGATORS='tracecontext,baggage,b3,xray' ... # command to start the application # for example # CMD ["node", "index.mjs"]Tambahkan variabel lingkungan
OTEL_RESOURCE_ATTRIBUTES_POD_NAME,OTEL_RESOURCE_ATTRIBUTES_NODE_NAME,OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_NAME,POD_NAMESPACEdanOTEL_RESOURCE_ATTRIBUTESke file yaml penerapan untuk aplikasi. Contoh:apiVersion: apps/v1 kind: Deployment metadata: name: nodejs-app labels: app: nodejs-app spec: replicas: 2 selector: matchLabels: app: nodejs-app template: metadata: labels: app: nodejs-app # annotations: # make sure this annotation doesn't exit # instrumentation.opentelemetry.io/inject-nodejs: 'true' spec: containers: - name: nodejs-app image:your-nodejs-application-image#replace with a proper image uri imagePullPolicy: Always ports: - containerPort: 8000 env: - name: OTEL_RESOURCE_ATTRIBUTES_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: OTEL_RESOURCE_ATTRIBUTES_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_NAME valueFrom: fieldRef: fieldPath: metadata.labels['app'] # Assuming 'app' label is set to the deployment name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: OTEL_RESOURCE_ATTRIBUTES value: "k8s.deployment.name=$(OTEL_RESOURCE_ATTRIBUTES_DEPLOYMENT_NAME),k8s.namespace.name=$(POD_NAMESPACE),k8s.node.name=$(OTEL_RESOURCE_ATTRIBUTES_NODE_NAME),k8s.pod.name=$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME)"Menyebarkan aplikasi Node.js ke cluster.
Setelah Anda mengaktifkan aplikasi Anda di Amazon EKS Clusters, Anda dapat memantau kesehatan aplikasi Anda. Untuk informasi selengkapnya, lihat Memantau kondisi kesehatan operasional aplikasi Anda dengan Sinyal Aplikasi.
Aktifkan Sinyal Aplikasi di klaster Amazon EKS menggunakan konfigurasi lanjutan add-on CloudWatch Observability
Secara default, OpenTelemetry Application Performance Monitoring (APM) berbasis (OTEL) diaktifkan melalui Sinyal Aplikasi saat menginstal add-on CloudWatch Observability EKS (V5.0.0 atau lebih besar) atau bagan Helm. Anda dapat menyesuaikan pengaturan spesifik lebih lanjut menggunakan konfigurasi lanjutan untuk add-on Amazon EKS atau dengan mengganti nilai dengan bagan Helm.
catatan
Jika Anda menggunakan solusi APM berbasis OpenTelemetry (OTEL) apa pun, mengaktifkan Sinyal Aplikasi memengaruhi pengaturan observabilitas yang ada. Tinjau implementasi Anda saat ini sebelum melanjutkan. Untuk mempertahankan pengaturan APM yang ada setelah memutakhirkan ke V5.0.0 atau yang lebih baru, lihat. Menyisih dari Sinyal Aplikasi
CloudWatch Pengaya Observabilitas juga menyediakan kontrol berbutir halus tambahan untuk menyertakan atau mengecualikan layanan tertentu sesuai kebutuhan dalam konfigurasi lanjutan yang baru. Untuk informasi selengkapnya, lihat Mengaktifkan APM melalui Sinyal Aplikasi untuk klaster Amazon EKS Anda.
Aktifkan Sinyal Aplikasi di Amazon EKS menggunakan AWS CDK
Jika Anda belum mengaktifkan Sinyal Aplikasi di akun ini, Anda harus memberikan izin yang diperlukan Sinyal Aplikasi untuk menemukan layanan Anda. Lihat Aktifkan Sinyal Aplikasi di akun Anda.
Aktifkan Sinyal Aplikasi untuk aplikasi Anda.
import { aws_applicationsignals as applicationsignals } from 'aws-cdk-lib'; const cfnDiscovery = new applicationsignals.CfnDiscovery(this, 'ApplicationSignalsServiceRole', { } );CloudFormation Sumber daya Discovery memberikan izin berikut kepada Sinyal Aplikasi:
-
xray:GetServiceGraph -
logs:StartQuery -
logs:GetQueryResults -
cloudwatch:GetMetricData -
cloudwatch:ListMetrics -
tag:GetResources
Untuk informasi selengkapnya tentang peran ini, silakan lihat Izin peran terkait layanan untuk Sinyal Aplikasi CloudWatch .
-
Instal
amazon-cloudwatch-observabilityadd-on.Buat peran IAM dengan
CloudWatchAgentServerPolicydan OIDC yang terkait dengan cluster.const cloudwatchRole = new Role(this, 'CloudWatchAgentAddOnRole', { assumedBy: new OpenIdConnectPrincipal(cluster.openIdConnectProvider), managedPolicies: [ManagedPolicy.fromAwsManagedPolicyName('CloudWatchAgentServerPolicy')], });
Instal add-on dengan peran IAM yang dibuat di atas.
new CfnAddon(this, 'CloudWatchAddon', { addonName: 'amazon-cloudwatch-observability', clusterName: cluster.clusterName, serviceAccountRoleArn: cloudwatchRole.roleArn });Tambahkan salah satu dari berikut ini ke
PodTemplatebagian file manifes beban kerja Anda.Bahasa File Java
instrumentation.opentelemetry.io/inject-java: “benar”
Python
instrumentation.opentelemetry.io/inject-python: “benar”
.Net
instrumentation.opentelemetry.io/inject-dotnet: “benar”
Node.js
instrumentation.opentelemetry.io/inject-nodejs: “benar”
const deployment = { apiVersion: "apps/v1", kind: "Deployment", metadata: { name: "sample-app" }, spec: { replicas: 3, selector: { matchLabels: { "app": "sample-app" } }, template: { metadata: { labels: { "app": "sample-app" }, annotations: { "instrumentation.opentelemetry.io/inject-$LANG": "true" } }, spec: {...}, }, }, }; cluster.addManifest('sample-app', deployment)
Aktifkan Sinyal Aplikasi di Amazon EKS menggunakan Model Context Protocol (MCP)
Anda dapat menggunakan server CloudWatch Application Signals Model Context Protocol (MCP) untuk mengaktifkan Sinyal Aplikasi di kluster Amazon EKS Anda melalui interaksi AI percakapan. Ini menyediakan antarmuka bahasa alami untuk mengatur pemantauan Sinyal Aplikasi.
Server MCP mengotomatiskan proses pemberdayaan dengan memahami kebutuhan Anda dan menghasilkan konfigurasi yang sesuai. Alih-alih mengikuti langkah-langkah konsol secara manual atau menulis kode CDK, Anda cukup menjelaskan apa yang ingin Anda aktifkan.
Prasyarat
Sebelum menggunakan server MCP untuk mengaktifkan Sinyal Aplikasi, pastikan Anda memiliki:
Lingkungan Pengembangan yang mendukung MCP (seperti Kiro, Claude Desktop, dengan ekstensi MCP, atau alat lain yang kompatibel VSCode dengan MCP)
Server MCP Sinyal CloudWatch Aplikasi dikonfigurasi dalam IDE Anda. Untuk petunjuk penyiapan terperinci, lihat Dokumentasi Server MCP Sinyal CloudWatch Aplikasi
.
Menggunakan server MCP
Setelah Anda mengonfigurasi server MCP Sinyal CloudWatch Aplikasi di IDE Anda, Anda dapat meminta panduan pemberdayaan menggunakan petunjuk bahasa alami. Meskipun asisten pengkodean dapat menyimpulkan konteks dari struktur proyek Anda, memberikan detail spesifik dalam petunjuk Anda membantu memastikan panduan yang lebih akurat dan relevan. Sertakan informasi seperti bahasa aplikasi Anda, nama klaster Amazon EKS, dan jalur absolut ke infrastruktur dan kode aplikasi Anda.
Petunjuk praktik terbaik (spesifik dan lengkap):
"Enable Application Signals for my Python service running on EKS. My app code is in /home/user/flask-api and IaC is in /home/user/flask-api/terraform" "I want to add observability to my Node.js application on EKS cluster 'production-cluster'. The application code is at /Users/dev/checkout-service and the Kubernetes manifests are at /Users/dev/checkout-service/k8s" "Help me instrument my Java Spring Boot application on EKS with Application Signals. Application directory: /opt/apps/payment-api CDK infrastructure: /opt/apps/payment-api/cdk"
Petunjuk yang kurang efektif:
"Enable monitoring for my app" → Missing: platform, language, paths "Enable Application Signals. My code is in ./src and IaC is in ./infrastructure" → Problem: Relative paths instead of absolute paths "Enable Application Signals for my EKS service at /home/user/myapp" → Missing: programming language
Template cepat:
"Enable Application Signals for my [LANGUAGE] service on EKS. App code: [ABSOLUTE_PATH_TO_APP] IaC code: [ABSOLUTE_PATH_TO_IAC]"
Manfaat menggunakan server MCP
Menggunakan CloudWatch Application Signals MCP server menawarkan beberapa keuntungan:
Antarmuka bahasa alami: Jelaskan apa yang ingin Anda aktifkan tanpa menghafal perintah atau sintaks konfigurasi
Panduan sadar konteks: Server MCP memahami lingkungan spesifik Anda dan memberikan rekomendasi yang disesuaikan
Mengurangi kesalahan: Pembuatan konfigurasi otomatis meminimalkan kesalahan pengetikan manual
Pengaturan yang lebih cepat: Dapatkan dari niat ke implementasi lebih cepat
Alat pembelajaran: Lihat konfigurasi yang dihasilkan dan pahami cara kerja Sinyal Aplikasi
Untuk informasi selengkapnya tentang mengonfigurasi dan menggunakan server MCP Sinyal CloudWatch Aplikasi, lihat dokumentasi server MCP