ServiceControl هو عقل المراقبة في منصة الخدمة الخاصة، والذي يتضمن NServiceBus وأدوات لبناء الأنظمة الموزعة ومراقبتها وتصحيح أخطائها. تقوم ServiceControl بجمع البيانات عن كل رسالة تتدفق عبر النظام (قائمة انتظار التدقيق)، والأخطاء (قائمة انتظار الأخطاء)، بالإضافة إلى معلومات إضافية تتعلق بالملاحم، ونبضات نقاط النهاية، والفحوصات المخصصة (قائمة انتظار التحكم). يتم بعد ذلك عرض المعلومات إلى ServicePulse وServiceInsight عبر واجهة برمجة تطبيقات HTTP وإشعارات SignalR.
راجع وثائق ServiceControl لمزيد من المعلومات.
يمكن تشغيل/تصحيح أخطاء ServiceControl وServiceControl.Audit وServiceControl.Monitoring محليًا باتباع الخطوات التالية:
app.config
الخاص بنوع المثيل الذي يحتاج إلى التشغيل/تصحيح الأخطاء لتحديد نوع النقل والثبات المطلوب استخدامه.يتوفر فيديو توضيحي يوضح كيفية إعداده على قناة YouTube الخاصة:
يتم إنشاء جميع الحاويات في كل بنية ودفعها إلى سجل حاوية GitHub حيث يمكن الوصول إلى أنواع المثيلات المختلفة بأسمائها وتشغيلها محليًا.
إذا تم تنفيذ المثيل للمرة الأولى، فيجب إعداد البنية التحتية المطلوبة. للقيام بذلك، بمجرد تكوين المثيل لاستخدام وسيلة النقل والمثبت المحدد، قم بتشغيله في وضع الإعداد. يمكن القيام بذلك عن طريق استخدام ملف تعريف تشغيل Setup {instance name}
المحدد في ملف launchSettings.json
الخاص بكل مثيل. عند البدء في وضع الإعداد، سيبدأ المثيل كالمعتاد، وينفذ عملية الإعداد، ثم يخرج. عند هذه النقطة، يمكن تشغيل المثيل بشكل طبيعي باستخدام ملف تعريف التشغيل غير الخاص بالإعداد.
للمساعدة في الاختبار المحلي، تمت إضافة وسيلة النقل التعليمية إلى قائمة وسائل النقل المتوفرة عند إعداد مثيل جديد في SCMU. لكي يصبح متاحًا، يجب إنشاء متغير البيئة ServiceControl_IncludeLearningTransport
بقيمة true
.
يعتمد الاختبار باستخدام سير عمل CI على الأسرار التالية، والتي يجب تحديدها لكل من الإجراءات وأسرار Dependabot. يتم تخزين القيم الخاصة بهذه الأسرار في الملاحظة الآمنة المسماة ServiceControl Repo Secrets .
LICENSETEXT
: نص ترخيص برنامج معينAWS_ACCESS_KEY_ID
: لاختبار SQSAWS_SECRET_ACCESS_KEY
: لاختبار SQSAWS_REGION
: لاختبار SQS يتطلب إجراء جميع الاختبارات في جميع الأوقات الكثير من الموارد. تتم تصفية الاختبارات بناءً على متغير البيئة ServiceControl_TESTS_FILTER
. لتشغيل مجموعة فرعية فقط، على سبيل المثال، اختبارات نقل SQS، قم بتعريف المتغير كـ ServiceControl_TESTS_FILTER=SQS
. تحتوي القائمة التالية على جميع قيم ServiceControl_TESTS_FILTER
الممكنة:
Default
- يتم تشغيل الاختبارات غير الخاصة بالنقل فقطAzureServiceBus
AzureStorageQueues
MSMQ
RabbitMQ
SqlServer
SQS
ملاحظة: إذا لم يتم تعريف أي متغير، فسيتم تنفيذ جميع الاختبارات.
خطوات:
بناء الحل
افتح بوويرشيل 7
قم باستيراد الوحدة عن طريق تحديد المسار إلى مجلد ServiceControl git deployPowerShellModulesParticular.ServiceControl.Management
Import-Module - Name S:ServiceControldeployPowerShellModulesParticular.ServiceControl.Management - Verbose
Set-ExecutionPolicy Unrestricted
الآن بعد أن تم استيراد الوحدة بنجاح، أدخل أيًا من البرامج النصية ServiceControl PowerShell لاختبارها. على سبيل المثال: يقوم ما يلي بإنشاء مثيل ServiceControl جديد
$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