Halaman ini menjelaskan cara menggunakan server Zipkin untuk menerima rekaman aktivitas dari klien Zipkin dan meneruskan rekaman aktivitas tersebut ke Cloud Trace untuk dianalisis.
Anda mungkin ingin menggunakan server Zipkin jika aplikasi Anda diinstrumentasikan dengan Zipkin dan Anda tidak ingin menjalankan backend rekaman aktivitas sendiri atau Anda ingin mengakses alat analisis lanjutan Cloud Trace.
Halaman ini menjelaskan beberapa cara untuk menyiapkan server Zipkin:
Menggunakan image container untuk menyiapkan server
Image container Kolektor Zipkin Cloud Trace tersedia di GitHub. Repositori ini berisi definisi build Docker dan lapisan dukungan Google Cloud pada image Docker Zipkin dasar, selain langkah-langkah penyiapan mendetail.
Anda dapat menjalankan image ini di host container pilihan Anda, termasuk Google Kubernetes Engine.
Untuk menjalankan image:
$ docker run -d -p 9411:9411 \
-e STORAGE_TYPE=stackdriver \
-e GOOGLE_APPLICATION_CREDENTIALS=/root/.gcp/credentials.json \
-e STACKDRIVER_PROJECT_ID=your_project \
-v $HOME/.gcp:/root/.gcp:ro \
openzipkin/zipkin-gcp
Jika Anda menjalankan penampung ini dalam Google Cloud, seperti pada instance Compute Engine atau cluster Google Kubernetes Engine, kredensial default lingkungan akan otomatis diambil dan rekaman aktivitas akan otomatis dikirim ke Cloud Trace.
Untuk proses penyiapan lengkap, buka repositori GitHub untuk image Docker Zipkin.
Seperti yang dijelaskan di halaman ini, Anda juga harus mengonfigurasi pelacak Zipkin.
Menjalankan server di luar Google Cloud
Jika Anda ingin mem-build dan menjalankan kolektor di luar Google Cloud, seperti di server fisik yang berjalan di lokal, selesaikan langkah-langkah berikut:
Buat atau pilih project
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Akun penagihan tidak diperlukan karena kolektor tidak berjalan di Google Cloud.
Membuat akun layanan
Untuk mengizinkan layanan Anda melakukan autentikasi ke Cloud Trace API:
- Membuat akun layanan
- Pastikan akun layanan baru telah diberi peran editor project sehingga dapat menulis data ke Trace API.
- Pilih Berikan kunci pribadi baru dan pilih JSON.
- Simpan file kredensial JSON ke direktori di mesin yang akan menjalankan layanan pengumpulan.
Mengonfigurasi firewall
Konfigurasikan konfigurasi jaringan Anda untuk mengizinkan traffic TCP di port 9411 diteruskan ke mesin yang menjalankan kolektor Zipkin.
Jika aplikasi Anda dihosting di luar firewall, perhatikan bahwa traffic pelacak ke kolektor Zipkin tidak dienkripsi atau diautentikasi. Koneksi antara kolektor Zipkin Cloud Trace dan Cloud Trace API di-enkripsi dan diautentikasi, seperti koneksi yang bersumber dari library instrumentasi Cloud Trace.
Menyiapkan server dengan image container
Untuk informasi selengkapnya, lihat Menggunakan image container.
Mengonfigurasi pelacak Zipkin
Ikuti petunjuk di bagian Mengonfigurasi pelacak Zipkin umum di halaman ini.
Mengubah server Zipkin yang ada
Project Zipkin menyimpan petunjuk tentang cara menggunakan Cloud Trace sebagai tujuan penyimpanan untuk server Zipkin yang ada. Petunjuk ini tersedia di repositori GitHub untuk image Docker Zipkin.
Cara Mengonfigurasi pelacak Zipkin
Apa pun cara Anda menghosting Kolektor Zipkin Cloud Trace, Anda perlu mengonfigurasi pelacak Zipkin untuk mengirim data ke sana.
Untuk mereferensikan kolektor, gunakan alamat IP internal, alamat IP eksternalnya (jika menerima rekaman aktivitas dari aplikasi yang dihosting di luar Google Cloud), atau nama host. Setiap pelacak Zipkin dikonfigurasi secara berbeda - misalnya, untuk mengarahkan pelacak Brave ke kolektor dengan alamat IP 1.2.3.4, baris berikut harus ditambahkan ke codebase Java Anda:
Reporter reporter = AsyncReporter.builder(OkHttpSender.create("1.2.3.4:9411/api/v1/spans")).build(); Brave brave = Brave.Builder("example").reporter(reporter).build()
Pertanyaan umum (FAQ)
T: Apa saja batasannya?
Rilis ini memiliki dua batasan umum:
Pelacak Zipkin harus mendukung semantik waktu dan durasi Zipkin yang benar. Untuk mengetahui informasi selengkapnya, buka Menginstrumentasikan library dan scroll ke bawah ke bagian Stempel waktu dan durasi.
Pelacak Zipkin dan library instrumentasi Cloud Trace tidak dapat menambahkan span ke trace yang sama karena menggunakan format yang berbeda untuk memperluas konteks trace antarlayanan. Hasilnya, trace yang diambil oleh satu library tidak berisi span untuk layanan yang diinstrumentasikan oleh library lain.
Oleh karena itu, sebaiknya project yang ingin menggunakan Cloud Trace hanya menggunakan pelacak yang kompatibel dengan Zipkin bersama dengan Zipkin Collector, atau menggunakan library instrumentasi yang berfungsi dengan Cloud Trace. Untuk informasi selengkapnya tentang library Cloud Trace, lihat Node.js, Java, dan Go.
Contoh:
Permintaan yang dibuat ke aplikasi web Node.js dilacak dengan library Zipkin dan dikirim ke Cloud Trace. Namun, rekaman aktivitas ini tidak berisi span yang dihasilkan oleh aplikasi ASP.NET API. Jejak yang diambil oleh library Zipkin juga tidak berisi span untuk panggilan RPC yang dilakukan aplikasi APS.NET API ke Database MySQL-nya.
T: Apakah ini akan berfungsi sebagai server Zipkin lengkap?
Tidak, fitur ini hanya menulis data ke Cloud Trace.