Service Mesh (ASM) terintegrasi dengan Managed Service for OpenTelemetry. Managed Service for OpenTelemetry menyediakan berbagai alat untuk membantu Anda mengidentifikasi hambatan kinerja aplikasi terdistribusi secara efisien. Sebagai contoh, Anda dapat menggunakan alat-alat ini untuk melihat Data jejak, menampilkan topologi jejak, menganalisis dependensi aplikasi, dan menghitung jumlah permintaan. Hal ini membantu meningkatkan efisiensi pengembangan dan pemecahan masalah aplikasi terdistribusi. Topik ini menjelaskan cara mengaktifkan pelacakan terdistribusi di ASM.
Informasi latar belakang
Pelacakan terdistribusi digunakan untuk memprofilkan dan memantau aplikasi, terutama yang dibangun menggunakan model layanan mikro. Proxy sidecar dalam instance ASM dapat secara otomatis menghasilkan dan mengirim rentang. Namun, aplikasi harus menyebarkan header HTTP yang sesuai agar rentang yang dikirim oleh proxy sidecar dapat dikorelasikan dengan benar ke dalam satu jejak. Saat proxy sidecar mengirim rentang, aplikasi harus mengumpulkan header tertentu dari setiap permintaan masuk dan meneruskan header tersebut ke semua permintaan keluar yang dipicu oleh permintaan masuk tersebut. OpenTelemetry mendukung propagator yang berbeda. Propagator yang berbeda menggunakan header yang berbeda. Bagian berikut mencantumkan propagator yang didukung oleh OpenTelemetry dan header yang sesuai.
Propagator B3
x-request-idx-b3-traceidx-b3-spanidx-b3-parentspanidx-b3-sampledx-b3-flagsx-ot-span-context
Propagator Konteks Jejak W3C
traceparenttracestate
Instance ASM versi V1.18.0.124 atau lebih lama menggunakan propagator B3 secara default. Instance ASM versi setelah V1.18.0.124 menggunakan propagator Konteks Jejak W3C secara default.
Prasyarat
Managed Service for OpenTelemetry telah diaktifkan untuk akun Alibaba Cloud Anda. Untuk informasi lebih lanjut tentang penagihan layanan ini, lihat Aturan Penagihan.
Sebuah instance ASM telah dibuat dan Managed Service for OpenTelemetry telah diaktifkan untuk instance tersebut. Untuk informasi lebih lanjut, lihat Kumpulkan Data Jejak ASM ke Managed Service for OpenTelemetry.
Sebuah aplikasi telah diterapkan di kluster ACK yang ditambahkan ke instance ASM. Untuk informasi lebih lanjut, lihat Terapkan Aplikasi di Kluster ACK yang Ditambahkan ke Instance ASM.
Deskripsi aplikasi sampel
Dalam aplikasi ulasan buku Bookinfo, layanan productpage yang diimplementasikan dalam Python menggunakan pustaka OpenTracing dan mengekstrak header yang diperlukan dari permintaan HTTP dalam format propagasi B3.
def getForwardHeaders(request):
headers = {}
# x-b3-*** headers can be populated using the opentracing span
span = get_current_span()
carrier = {}
tracer.inject(
span_context=span.context,
format=Format.HTTP_HEADERS,
carrier=carrier)
headers.update(carrier)
# ...
incoming_headers = ['x-request-id']
# ...
for ihdr in incoming_headers:
val = request.headers.get(ihdr)
if val is not None:
headers[ihdr] = val
return headers
Layanan reviews yang diimplementasikan dalam Java juga menggunakan header HTTP dalam format propagasi B3.
@GET
@Path("/reviews/{productId}")
public Response bookReviewsById(@PathParam("productId") int productId,
@HeaderParam("end-user") String user,
@HeaderParam("x-request-id") String xreq,
@HeaderParam("x-b3-traceid") String xtraceid,
@HeaderParam("x-b3-spanid") String xspanid,
@HeaderParam("x-b3-parentspanid") String xparentspanid,
@HeaderParam("x-b3-sampled") String xsampled,
@HeaderParam("x-b3-flags") String xflags,
@HeaderParam("x-ot-span-context") String xotspan) {
if (ratings_enabled) {
JsonObject ratingsResponse = getRatings(Integer.toString(productId), user, xreq, xtraceid, xspanid, xparentspanid, xsampled, xflags, xotspan);Contoh akses
Masukkan URL dalam format http://{alamat IP gateway ingress}/productpage di bilah alamat browser Anda, lalu tekan tombol Enter. Anda akan diarahkan ke halaman aplikasi Bookinfo.
Lihat aplikasi
Di halaman Aplikasi konsol Managed Service for OpenTelemetry, Anda dapat melihat metrik utama dari semua aplikasi yang dipantau, termasuk jumlah permintaan dan kesalahan pada hari saat ini serta status kesehatan. Anda juga dapat mengonfigurasi label untuk aplikasi sehingga Anda dapat memfilter aplikasi berdasarkan label.
Di panel navigasi sisi kiri, klik Applications. Di bagian atas halaman Aplikasi, pilih wilayah sesuai kebutuhan.

Lihat detail aplikasi
Di halaman Detail Aplikasi suatu aplikasi di konsol Managed Service for OpenTelemetry, Anda dapat melihat metrik utama, topologi panggilan, dan jejak aplikasi di setiap server tempat aplikasi tersebut diterapkan.
Di panel navigasi sisi kiri, klik Applications. Di bagian atas halaman Aplikasi, pilih wilayah sesuai kebutuhan. Lalu, klik nama aplikasi yang ingin Anda periksa.
Di panel navigasi sisi kiri, klik Application Details. Lalu, klik All atau pilih server, yang diwakili oleh alamat IP, dari daftar server di sebelah kiri.
Di tab Overview, Anda dapat melihat topologi panggilan dan metrik utama. Anda juga dapat mengklik tab Traces untuk melihat jejak aplikasi di server yang dipilih. Maksimal 100 jejak terdaftar dalam urutan menurun berdasarkan jumlah waktu yang dikonsumsi.

Lihat bagan air terjun dari jejak
Bagan air terjun dari jejak menunjukkan informasi jejak, termasuk waktu pembuatan log, status, alamat IP atau nama server, nama layanan, dan garis waktu.
Di halaman Application Details aplikasi yang ingin Anda periksa, klik tab Traces. Dalam daftar jejak, klik ID jejak yang ingin Anda periksa.
Di halaman yang muncul, lihat bagan air terjun dari jejak.
CatatanKolom IP Address dapat menampilkan alamat IP atau nama server. Informasi yang ditampilkan bergantung pada pengaturan tampilan yang dikonfigurasi di halaman Application Settings. Untuk informasi lebih lanjut, lihat Kelola Aplikasi dan Tag.
Anda dapat mengarahkan pointer ke nama layanan untuk melihat informasi layanan, termasuk Durasi, waktu mulai, tag, dan peristiwa log. Untuk informasi lebih lanjut, lihat Detail Aplikasi.

FAQ
Mengapa saya tidak dapat melihat informasi jejak setelah mengumpulkan data jejak ke Managed Service for OpenTelemetry di konsol ASM?
Lihat log push jejak.
Peroleh file kubeconfig cluster dan gunakan kubectl untuk terhubung ke cluster. Untuk informasi lebih lanjut, lihat Peroleh File kubeconfig Cluster dan Gunakan kubectl untuk Terhubung ke Cluster.
Jalankan perintah berikut untuk melihat log push jejak dari pod yang terkait dengan penyebaran tracing-on-external-zipkin di namespace istio-system:
kubectl logs "$(kubectl get pods -n istio-system -l app=tracing -o jsonpath='{.items[0].metadata.name}')" -n istio-system -c nginxKode status 406 tercatat dalam log push jejak.

Lihat kuota jumlah permintaan layanan per hari dan jumlah sebenarnya permintaan layanan pada hari sebelumnya.
Di panel navigasi sisi kiri, klik Cluster Configurations untuk melihat kuota jumlah permintaan layanan per hari dan jumlah sebenarnya permintaan layanan pada hari sebelumnya.

Anda dapat menemukan bahwa jumlah sebenarnya permintaan layanan pada hari sebelumnya lebih besar daripada kuota jumlah permintaan layanan per hari yang Anda atur di konsol Managed Service for OpenTelemetry.
Ubah kuota jumlah permintaan layanan per hari.
Jika jumlah sebenarnya permintaan layanan dalam sehari lebih besar daripada kuota jumlah permintaan layanan per hari, data yang dilaporkan akan dibuang dan tidak ada informasi jejak yang ditampilkan. Untuk menyelesaikan masalah ini, Anda harus meningkatkan kuota jumlah permintaan layanan per hari agar lebih besar daripada jumlah sebenarnya permintaan layanan dalam sehari.
Di panel navigasi sisi kiri konsol Managed Service for OpenTelemetry, klik Cluster Configurations.
Di tab Cluster Configurations, ubah nilai parameter Configuration quota di bagian Quota configuration. Tingkatkan nilainya agar lebih besar daripada jumlah sebenarnya permintaan layanan dalam sehari. Lalu, klik Save.
Di pesan Cue yang muncul, klik OK.
Mengapa traceid berubah setelah permintaan diproses oleh gateway ingress atau sidecar?
Penyebab yang mungkin adalah header propagasi dari permintaan yang dimulai oleh aplikasi Anda tidak lengkap, sehingga proxy sidecar menganggap informasi jejak tidak lengkap dan meregenerasi header propagasi. Jika Anda ingin menggunakan traceid kustom, sertakan setidaknya dua header x-b3-trace-id dan x-b3-spanid dalam permintaan Anda dalam format propagasi B3 dan sertakan setidaknya header traceparent dalam permintaan Anda dalam format propagasi Konteks Jejak W3C.