Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 24815|Jawab: 1

[ASP.NET] ASP.NET Pelacakan Tautan Inti (3) SkyAPM didasarkan pada konfigurasi dinamis Consul

[Salin tautan]
Dipaparkan pada 2020-11-11 16:13:50 | | | |
Resensi:

ASP.NET Pelacakan Tautan Inti (1) Instal tutorial Skywalking
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Pelacakan tautan inti (2) menggunakan integrasi SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



proyek, Anda dapat menggunakannyaKonsulatauApolloUntuk melakukan pusat konfigurasi, tutorial tentang Consul sebagai pusat konfigurasi ASP.NET Core:

Arsitektur: ASP.NET Core secara dinamis mengonfigurasi pembaruan panas berdasarkan Consul
https://www.itsvse.com/thread-9421-1-1.html
Persyaratan: Kami menyimpan informasi konfigurasi APM di middleware Consul, jadi kami tidak perlu masuk ke server untuk mengubah informasi konfigurasi secara manual dalam file appsettings.json.

Mulai Konsul

Mulai middleware konsul dengan terlebih dahulu menggunakan perintah berikut:




Instal plugin terkait Consul ASP.NET Core

Dalam proyek sky-apm-demo kami, gunakan nuget untuk menginstal middleware Consul sebagai plugin untuk membaca pusat konfigurasi dengan perintah berikut:

Ubah metode CreateHostBuilder di objek Program untuk menambahkan pembacaan informasi konfigurasi Konsul jarak jauh, kodenya adalah sebagai berikut:

Sementara itu, dalam file appsettings.json, Anda perlu mengkonfigurasi alamat consul_url, sebagai berikut:



Tambahkan informasi konfigurasi kami ke konsul untuk membuka platform manajemen web:Login hyperlink terlihat.untuk membuat sky-apm-demo/appsettings. Development.json kunci, nilainya adalah sebagai berikut:



Buat metode pengontrol test3 baru untuk membaca informasi konfigurasi layanan konsul kami untuk pengujian yang mudah, sebagai berikut:

AksesLogin hyperlink terlihat.Anda bisa mendapatkan konfigurasi yang kami tetapkan secara normal, sebagai berikut:



Melihat log skyapm-20201111.log, Anda akan menemukan bahwa alamat tempat SkyApm mengakses Skywalking bukanlah yang kami konfigurasikan, tetapiDefault: localhost:11800, seperti yang ditunjukkan pada gambar di bawah ini:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informasi] SkyApm.Transport.Grpc.ConnectionManager : Shutdown connection [localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Kesalahan] SkyApm.Transport.Grpc.ConnectionManager : Menghubungkan batas waktu server.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   di Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 tenggat waktu)
   di Grpc.Core.Channel.ConnectAsync(Batas waktu Nullable'1)
   di SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Kami memeriksa kode sumber SkyAPM.Agent.AspNetCore di GitHub dan menemukan bahwa jika program kami menetapkan pengaturan default terlebih dahulu, dan kemudian membaca file konfigurasi appsettings.json skywalking.json skyapm.json untuk mengganti nilai default sebelumnya, seperti yang ditunjukkan pada gambar di bawah ini:



Mengenai konfigurasi, proses pemuatannya adalah sebagai berikut:



Jadi kapan SkyAPM menjalin komunikasi dengan Skywalking?



Kode sumber SkyAPM memiliki tugas latar belakang InstrumentationHostedService, saat mendaftarkan IHostedService,.NET Core memanggil metode StartAsync() dan StopAsync() dari jenis IHostedService, masing-masing, selama aplikasi memulai dan berhenti

Anda dapat merujuk kepada:

Layanan berdasarkan .NET Core di Linux
https://www.itsvse.com/thread-9447-1-1.html
Masalahnya sekarang adalah informasi konfigurasi yang ditetapkan oleh konsul kami ditimpa oleh nilai default SkyAPM, dan untuk mengatasi masalah ini, kami perlu memodifikasi kode sumber, kami mengunduh kode sumber SkyAPM di GitHub.

Ubah file ConfigurationFactory sebagai berikut:

Ubah file ConfigurationBuilderExtensions sebagai berikut:

Untuk kode sumber yang dimodifikasi, Anda dapat merujuk ke cabang saya:Login hyperlink terlihat.

Menambahkan penilaian logis, ketika konfigurasi SkyAPM sudah ada, tidak menggunakan nilai default,Beregenerasisky-apm-demo dan SkyApm.Agent.AspNetCore, salin semua file di bawah folder library \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 yang dimodifikasi ke proyek kami \bin\Debug\netcoreapp3.1 dan ganti.Segarkan browser Anda

Dengan melihat log apm, Anda dapat menemukan bahwa informasi konfigurasi di konsul telah berhasil dibaca dan komunikasi dengan Skywalking telah berhasil dibuat, seperti yang ditunjukkan pada gambar di bawah ini:




(Akhir)




Mantan:. Konflik Konektor .NET MySQL DbProviderFactories (Konflik Konektor .NET MySQL DbP...
Depan:.NET Core menampilkan layanan dan implementasi terdaftar serta siklus hidupnya
Dipaparkan pada 2023-6-2 14:24:31 |
Stiker yang bagus
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com