Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Samples

Writing Custom Checks

NuGet Package: NServiceBus.CustomChecks (5.x)
Target Version: NServiceBus 9.x

To create a custom check, create a new custom check class:

public class MyCustomCheck :
    CustomCheck
{
    public MyCustomCheck()
        : base("SomeId-StartUp", "SomeCategory")
    {

    }

    public override Task<CheckResult> PerformCheck(CancellationToken cancellationToken = default)
    {
        if (SomeService.GetStatus())
        {
            return CheckResult.Pass;
        }

        return CheckResult.Failed("Some service is not available.");
    }
}

When the custom check executes, it should return a pass or fail status and, in the case of failure, a descriptive message. This status and descriptive message will be sent to ServiceControl and will appear in the ServicePulse UI and in ServiceControl integration events.

All custom checks are executed when the endpoint starts up. If the optional interval is specified, the custom check will be executed periodically.

public class MyPeriodicCheck :
    CustomCheck
{
    public MyPeriodicCheck()
        : base("SomeId-Periodic", "SomeCategory", TimeSpan.FromSeconds(5))
    {
    }

    public override Task<CheckResult> PerformCheck(CancellationToken cancellationToken = default)
    {
        if (SomeService.GetStatus())
        {
            return CheckResult.Pass;
        }

        return CheckResult.Failed("Some service is not available.");
    }
}