Getting Started
Architecture
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Startup diagnostics

Component: NServiceBus
NuGet Package: NServiceBus (9.x)

To make troubleshooting easier, diagnostic information is collected during endpoint startup and written to a .diagnostics sub-folder in the host output directory.

To change the output path:

endpointConfiguration.SetDiagnosticsPath("myCustomPath");

At every endpoint startup the current diagnostics will be written to {endpointName}-configuration.txt. If possible, attach this file to support requests.

Sample content

Sample partial content of the startup diagnostics (formatted for readability):

{
  "Container": {
    "Type": "internal"
  },
  "Endpoint": {
    "Name": "StartUpDiagnosticsWriter",
    "SendOnly": false,
    "NServiceBusVersion": "8.0.0"
  },
  "Features": [
    {
      "Name": "NServiceBus.ReceiveStatisticsFeature",
      "EnabledByDefault": true,
      "Active": true,
      "PrerequisiteStatus": {
        "IsSatisfied": true,
        "Reasons": []
      },
      "Dependencies": [],
      "Version": "8.0.0",
...

Writing to other targets

To take full control of how diagnostics are written:

endpointConfiguration.CustomDiagnosticsWriter(
    (diagnostics, ct) =>
    {
        //custom logic to write data
        return Task.CompletedTask;
    });

Adding startup diagnostics sections

To extend the startup diagnostics with custom sections:

settings.AddStartupDiagnosticsSection(
    sectionName: "MySection",
    section: new
    {
        SomeSetting = "some data",
        SomeOtherSetting = 10
    });

Settings can be accessed from a feature or via the endpoint configuration.