ServiceControl เป็นสมองในการเฝ้าติดตามในแพลตฟอร์มบริการเฉพาะ ซึ่งรวมถึง NServiceBus และเครื่องมือสำหรับสร้าง ตรวจสอบ และดีบักระบบแบบกระจาย ServiceControl รวบรวมข้อมูลของทุกข้อความที่ไหลผ่านระบบ (คิวการตรวจสอบ) ข้อผิดพลาด (คิวข้อผิดพลาด) รวมถึงข้อมูลเพิ่มเติมเกี่ยวกับ Sagas การเต้นของหัวใจจุดสิ้นสุด และการตรวจสอบแบบกำหนดเอง (คิวควบคุม) จากนั้นข้อมูลจะถูกเปิดเผยต่อ ServicePulse และ ServiceInsight ผ่านการแจ้งเตือน HTTP API และ SignalR
ดูเอกสารประกอบ ServiceControl สำหรับข้อมูลเพิ่มเติม
ServiceControl, ServiceControl.Audit และ ServiceControl.Monitoring สามารถรัน/ดีบั๊กในเครื่องได้โดยทำตามขั้นตอนเหล่านี้:
app.config
ของประเภทอินสแตนซ์ที่ต้องเรียกใช้/ดีบั๊กเพื่อเลือกการขนส่งและการคงอยู่ที่จะใช้วิดีโอสาธิตที่แสดงวิธีการตั้งค่ามีอยู่ในช่อง YouTube โดยเฉพาะ:
คอนเทนเนอร์ทั้งหมดถูกสร้างขึ้นในแต่ละบิลด์และพุชไปยังรีจีสทรีคอนเทนเนอร์ GitHub ซึ่งสามารถเข้าถึงอินสแตนซ์ประเภทต่างๆ ด้วยชื่อและรันภายในเครื่อง
หากมีการดำเนินการอินสแตนซ์เป็นครั้งแรก จะต้องตั้งค่าโครงสร้างพื้นฐานที่จำเป็น ในการทำเช่นนั้น เมื่ออินสแตนซ์ได้รับการกำหนดค่าให้ใช้การขนส่งและตัวคงอยู่ที่เลือก ให้เรียกใช้ในโหมดการตั้งค่า ซึ่งสามารถทำได้โดยใช้โปรไฟล์การเปิดใช้งาน Setup {instance name}
ที่กำหนดไว้ในไฟล์ launchSettings.json
ของแต่ละอินสแตนซ์ เมื่อเริ่มต้นในโหมดการตั้งค่า อินสแตนซ์จะเริ่มทำงานตามปกติ ดำเนินการตามขั้นตอนการตั้งค่า และออก ณ จุดนี้ อินสแตนซ์สามารถทำงานได้ตามปกติโดยใช้โปรไฟล์การเปิดใช้งานที่ไม่ได้ตั้งค่า
เพื่อช่วยในการทดสอบในพื้นที่ การขนส่งการเรียนรู้ได้ถูกเพิ่มเข้าไปในรายการการขนส่งที่มีอยู่เมื่อตั้งค่าอินสแตนซ์ใหม่ใน SCMU เพื่อให้พร้อมใช้งาน จำเป็นต้องสร้างตัวแปรสภาพแวดล้อม ServiceControl_IncludeLearningTransport
ด้วยค่า true
การทดสอบโดยใช้เวิร์กโฟลว์ CI ขึ้นอยู่กับความลับต่อไปนี้ ซึ่งจะต้องกำหนดไว้สำหรับทั้งความลับของ Actions และ 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
หมายเหตุ: หากไม่มีการกำหนดตัวแปร การทดสอบทั้งหมดจะดำเนินการ
ขั้นตอน:
สร้างโซลูชัน
เปิด PowerShell 7
นำเข้าโมดูลโดยการระบุเส้นทางไปยังโฟลเดอร์ repo ServiceControl git deployPowerShellModulesParticular.ServiceControl.Management
Import-Module - Name S:ServiceControldeployPowerShellModulesParticular.ServiceControl.Management - Verbose
Set-ExecutionPolicy Unrestricted
เมื่อนำเข้าโมดูลสำเร็จแล้ว ให้ป้อนสคริปต์ ServiceControl PowerShell ใดๆ เพื่อทดสอบ เช่น: สิ่งต่อไปนี้จะสร้าง ServiceControl Instance ใหม่
$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