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 AWS Management Console 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 OpenTelemetry kompatibilitas 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-role
dengan peran IAM yang digunakan oleh node pekerja Kubernetes Anda.aws iam attach-role-policy \ --role-name
my-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.0
Tambahkan 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_NAMESPACE
danOTEL_RESOURCE_ATTRIBUTES
ke file yaml penerapan untuk aplikasi. Misalnya: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
Dimulai dengan versi v4.0.0-eksbuild.1 dari add-on CloudWatch Observability Amazon EKS, Anda dapat secara otomatis mengaktifkan Sinyal Aplikasi untuk semua beban kerja layanan di kluster EKS Anda menggunakan flag konfigurasi monitor Otomatis terpusat baru dalam konfigurasi lanjutan add-on.
Untuk memilih fitur Monitor otomatis, Anda harus memodifikasi konfigurasi lanjutan saat membuat atau memperbarui bagan add-on atau Helm. Dengan menyetel monitorAllServices
ke true, add-on CloudWatch Observability akan mendeteksi semua beban kerja layanan Kubernetes dan mencoba menyuntikkan AWS Distro for (ADOT) selama penerapan secara otomatis. OpenTelemetry SDKs Selain itu, dengan mengaktifkanrestartPods
, semua pod beban kerja layanan akan dimulai ulang untuk segera menyuntikkan ADOT SDKs sebagai bagian dari proses redeployment otomatis.
--configuration-values '{ "manager":{ "applicationSignals":{ "autoMonitor":{ "monitorAllServices":true, "restartPods":true } } } }'
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 Mengonfigurasi 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-observability
add-on.Buat peran IAM dengan
CloudWatchAgentServerPolicy
dan 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
PodTemplate
bagian 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)