ServiceControl adalah otak pemantauan dalam Platform Layanan Khusus, yang mencakup NServiceBus dan alat untuk membangun, memantau, dan men-debug sistem terdistribusi. ServiceControl mengumpulkan data pada setiap pesan yang mengalir melalui sistem (Audit Queue), kesalahan (Error Queue), serta informasi tambahan mengenai saga, detak jantung titik akhir, dan pemeriksaan khusus (Control Queue). Informasi tersebut kemudian diekspos ke ServicePulse dan ServiceInsight melalui API HTTP dan notifikasi SignalR.
Lihat dokumentasi ServiceControl untuk informasi lebih lanjut.
ServiceControl, ServiceControl.Audit, dan ServiceControl.Monitoring dapat dijalankan/di-debug secara lokal dengan mengikuti langkah-langkah berikut:
app.config
dari jenis instance yang perlu dijalankan/debug untuk memilih transport dan persistensi mana yang akan digunakan.Demo video yang menunjukkan cara mengaturnya tersedia di saluran YouTube Tertentu:
Semua kontainer dibuat pada setiap build dan dimasukkan ke registri kontainer GitHub tempat berbagai jenis instans dapat diakses berdasarkan namanya dan dijalankan secara lokal.
Jika instance dijalankan untuk pertama kalinya, instance tersebut harus menyiapkan infrastruktur yang diperlukan. Untuk melakukannya, setelah instance dikonfigurasi untuk menggunakan transport dan persister yang dipilih, jalankan instance tersebut dalam mode pengaturan. Hal ini dapat dilakukan dengan menggunakan profil peluncuran Setup {instance name}
yang ditentukan dalam file launchSettings.json
di setiap instance. Saat dimulai dalam mode penyiapan, instance akan mulai seperti biasa, menjalankan proses penyiapan, dan keluar. Pada titik ini instance dapat dijalankan secara normal dengan menggunakan profil peluncuran non-penyiapan.
Untuk membantu pengujian lokal, transportasi Pembelajaran telah ditambahkan ke daftar transportasi yang tersedia saat menyiapkan instance baru di SCMU. Agar tersedia, variabel lingkungan ServiceControl_IncludeLearningTransport
perlu dibuat dengan nilai true
.
Pengujian menggunakan alur kerja CI bergantung pada rahasia berikut, yang harus ditentukan untuk rahasia Actions dan Dependabot. Nilai khusus untuk rahasia ini disimpan dalam catatan aman bernama ServiceControl Repo Secrets .
LICENSETEXT
: Teks lisensi Perangkat Lunak tertentuAWS_ACCESS_KEY_ID
: Untuk menguji SQSAWS_SECRET_ACCESS_KEY
: Untuk menguji SQSAWS_REGION
: Untuk menguji SQS Menjalankan semua pengujian setiap saat membutuhkan banyak sumber daya. Pengujian difilter berdasarkan variabel lingkungan ServiceControl_TESTS_FILTER
. Untuk menjalankan hanya sebagian saja, misalnya pengujian transport SQS, tentukan variabel sebagai ServiceControl_TESTS_FILTER=SQS
. Daftar berikut berisi semua kemungkinan nilai ServiceControl_TESTS_FILTER
:
Default
- hanya menjalankan pengujian yang tidak spesifik untuk transportasiAzureServiceBus
AzureStorageQueues
MSMQ
RabbitMQ
SqlServer
SQS
CATATAN: Jika tidak ada variabel yang ditentukan, semua pengujian akan dijalankan.
Tangga:
Bangun solusinya
Buka PowerShell 7
Impor modul dengan menentukan jalur ke folder repo ServiceControl git deployPowerShellModulesParticular.ServiceControl.Management
Import-Module - Name S:ServiceControldeployPowerShellModulesParticular.ServiceControl.Management - Verbose
Set-ExecutionPolicy Unrestricted
Sekarang modul telah berhasil diimpor, masukkan skrip ServiceControl PowerShell mana pun untuk mengujinya. Misalnya: berikut ini membuat Instans ServiceControl baru
$serviceControlInstance = New-ServiceControlInstance `
- Name ' Test.DEV.ServiceControl ' `
- InstallPath C:ServiceControlBin `
- DBPath C:ServiceControlDB `
- LogPath C:ServiceControlLogs `
- Port 44334 `
- DatabaseMaintenancePort 44335 `
- Transport ' RabbitMQ - Direct routing topology (quorum queues) ' `
- ConnectionString ' host=localhost;username=guest;password=guest ' `
- ErrorQueue errormq `
- ErrorRetentionPeriod 10 : 00 : 00 : 00 `
- Acknowledgements RabbitMQBrokerVersion310