The Particular Service Platform is licensed based on the number of NServiceBus endpoints and the message throughput of those endpoints. In order to determine these values, a process needs to be run that queries the transport broker for up to 24 hours and a report generated from this data to be sent to Particular.
The minimal installation required to generate the usage report is:
- ServiceControl. Only a single error instance is required, as this is the primary service that contains the broker querying logic.
- ServicePulse. This is the UI that interfaces with the ServiceControl service to allow users to specify which endpoints are NServiceBus related and generate the usage report to send to Particular.
Installation options
By default, the ServiceControl instance will immediately start reading from the error
queue when it starts. If this is not desired, e.g. if you have another process that monitors the error queue, then set the SERVICECONTROL_INGESTERRORMESSAGES
environment variable to false
in any of the following installation options. This variable needs to be set for the account under which the ServiceControl instance is running or on the container.
The following methods can be used to install these requirements:
- Linux, Windows or cloud environments via Containers
- ServiceControl and ServicePulse through Containers
- Windows Only
- ServiceControl through ServiceControl Management Utility
- ServiceControl through Powershell
- ServicePulse
When installing ServiceControl, a connection string to a transport is required. Since this may differ in format from the native connection string for the underlying queuing technology, please check the associated Configuration
or Connection Settings
page for your selected transport.
Container Installation
When installing ServiceControl directly, through one of the Windows installation options below, it includes an embedded RavenDB instance that stores all the data required for generating usage reports (and any other functions of ServiceControl that you may use). When using containers, a separate RavenDB database is required that can also be containerized. An example of this can be found in the Platform Container Examples repository.
The containers required for generating a usage report are:
- RavenDB
- Alternatively another RavenDB source can be used. The connection string must be supplied when installing ServiceControl
- ServiceControl
- ServicePulse
Cloud environments
When hosting containers in Kubernetes in any of the major Cloud providers, it is possible to host RavenDB in Kubernetes using the recommended storage providers by the Cloud infrastructure, see these example manifests for deployments in AKS or EKS. In other hosting environments where the RavenDB storage requirements cannot be met, it is suggested to use RavenDB Cloud to host the database.
Windows Installation
ServiceControl
ServiceControl is installed as a Windows service, and starts automatically. It includes an embedded RavenDB instance that stores all the data required for generating usage reports (and any other functions of ServiceControl that you may use).
ServiceControl Management Utility (SCMU)
- Download the latest SCMU
- Run the executable. This will require Admin privileges
- Add a new ServiceControl instance
- Uncheck the
ServiceControl Audit
node, since this isn't required for usage reports - Choose your transport and supply the connection string
- Click 'Add'
Powershell
- Ensure you meet the prerequisites
- Install and import the Particular.ServiceControl.Management module
- Run the New-ServiceControlInstance cmdlet
- Most of the parameters can be left as per the example, with the
-Transport
and-ConnectionString
parameters set according to your environment.
- Most of the parameters can be left as per the example, with the
ServicePulse
Follow the installation instructions and ensure ServicePulse is configured to point to the port of the ServiceControl instance installed above.