Releases: Particular/ServiceControl
1.0.0
Introduction
ServiceControl is an auditing and monitoring service for NServiceBus endpoints and applications.
It gathers the audited messages forwarded by NServiceBus endpoints to the configured Audit queue and it exposes HTTP API that provides data and functionality services for ServiceInsight and ServicePulse
Prerequisites
- .NET Framework 4.5 or later
- (Note that this is a change from previous beta releases of ServiceControl which depended on .NET 4.0)
Important Note for previous Beta users of ServiceControl:
- If you installed a previous beta release of ServiceControl you will need to remove the embedded RavenDB database by running the following commands:
net stop "Particular ServiceControl"
RD C:\programdata\particular\ServiceControl\localhost-33333 /S
net start "Particular ServiceControl"
- (Note the above command assumes you have installed ServiceControl using the default port 33333)
- Once started, the ServiceControl will re-create a new RavenDB embedded database
Installation
- Run the ServiceControl installer and leave the default parameters as-is
- ServiceControlPort: 33333
- This is the default IP port ServiceControl will use to expose its HTTP API
- Transport Type: MSMQ
- Currently, only MSMQ is available for automatic installation and configuration, although ServiceControl does support all NServiceBus supported transports
- For guidance on configuring ServiceControl to use transports other than MSMQ, please contact us
- Instance Name: {free text}
- Instance Description: {free text}
- ServiceControlPort: 33333
- If you change the default ServiceControl port, please make a note of the custom port you define, since this will be required for connecting ServiceInsight and ServicePulse to the installed instance of ServiceControl
- After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
- The installation process performs the following actions:
- Installs the Windows Service "Particular ServiceControl"
- Expose HTTP API for use by ServiceInsight and ServicePulse (default URI: http://localhost:33333/api)
Troubleshooting:
1.0.0-Beta7
Introduction
ServiceControl is an auditing and monitoring service for NServiceBus endpoints and applications.
It gathers the audited messages forwarded by NServiceBus endpoints to the configured Audit queue and it exposes HTTP API that provides data and functionality services for ServiceInsight and ServicePulse
Prerequisites
- .NET Framework 4.5 or later
- (Note that this is a change from previous beta releases of ServiceControl which depended on .NET 4.0)
Important Note for previous Beta users of ServiceControl:
- If you installed a previous beta release of ServiceControl (beta 6 or earlier) you will need to remove the embedded RavenDB database by running the following commands:
net stop "Particular ServiceControl"
RD C:\programdata\particular\ServiceControl\localhost-33333 /S
net start "Particular ServiceControl"
- (Note the above command assumes you have installed ServiceControl using the default port 33333)
- Once started, the ServiceControl will re-create a new RavenDB embedded database
Installation
- Run the ServiceControl installer and leave the default parameters as-is
- ServiceControlPort: 33333
- This is the default IP port ServiceControl will use to expose its HTTP API
- Transport Type: MSMQ
- Currently, only MSMQ is available for automatic installation and configuration, although ServiceControl does support all NServiceBus supported transports
- For guidance on configuring ServiceControl to use transports other than MSMQ, please contact us
- Instance Name: {free text}
- Instance Description: {free text}
- ServiceControlPort: 33333
- If you change the default ServiceControl port, please make a note of the custom port you define, since this will be required for connecting ServiceInsight and ServicePulse to the installed instance of ServiceControl
- After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
- The installation process performs the following actions:
- Installs the Windows Service "Particular ServiceControl"
- Expose HTTP API for use by ServiceInsight and ServicePulse (default URI: http://localhost:33333/api)
Troubleshooting:
http://docs.particular.net/ServiceControl/troubleshooting
Issues fixed in this Beta
This release consist of these issues that were achieved through these commits.
Features
#230 Create a Chocolatey package
- Dependency on Perf Counters package Particular/PlatformInstaller#19
- Dependency on .net 4.5 http://chocolatey.org/packages/DotNet4.5
- Since chocolatey packages are limited in size the large binary component will be stored in github releases
- Host an icon online for the package. Particular/PlatformInstaller#27
- Generate the version number here as part of a build
- Support uninstall
- Make Silent
- Add logging http://www.advancedinstaller.com/user-guide/qa-log.html
Note this is not dependent on MSMQ or DTC since ServiceControl can target other transports
#229 Facilitate the viewing of the actual message data in Service Insight for the Saga View.
For the saga view feature of ServiceIsnight, ServiceControl needs to be able to provide the message data in addition to the saga state changes. Facilitate any API changes that are needed on SC so that this data can be displayed in SI.
Why?
The benefit of being able to see all of the message data is significant. For example:
From a debugging standpoint a developer that is looking at the SagaView could troubleshoot the saga by being able to see the actual message and its property and the saga states to help determine that the problem was with a certain message that left the saga went out with a wrong data in the message.
#180 Add "Hosting Process" data to Heartbeats
As Opie, I need to be able to uniquely identify the specific endpoint hosting process that sent a heartbeat.
This is especially true when more than one instance of the endpoints is located in the same machine (AKA "side by side") It also applies when the endpoint is hosted in IIS or other custom hosting.
Visualization
- In SI, we will be including the "Hosting Process" information in endpoint properties / tooltip info.
- In SP, it will be displayed in the Endpoints List (monitored only, since it relies on heartbeats).
Proposed Implementation
- As discussed with @andreasohlund
Content trimmed. See full issue
#116 Support expiration of audit messages
Use the expiration bundle to have raven auto expire audit messages.
- By default keep messages for 30 days
- Add a setting in the SC config so that users can control the default
- This overrides any expiry that the user might have set in NServiceBus https://github.com/Particular/NServiceBus/blob/develop/src/NServiceBus.Core/Config/UnicastBusConfig.cs#L80
Note: We're only expiring audit messages, not errors, heartbeats etc
Replaces Particular/ServicePulse#64
#106 Enrich audit messages returned with saga state information
To support data overlay for the message flow in ServiceInsight:
- support multiple saga types per message
- enrich initiating message with saga id + type (can be multiple sagas)
- saga state change(s) caused by message (initiated/updated/complete)
Replaces: Particular/NServiceBus#1659
#105 Expose a http api to get saga state changes
Request:
GET /api/sagas/{saga-id}
Response
{
"id":"93bfbbfe-f841-4ea5-a0fe-a2a800d8e08d",
"saga_id":"93bfbbfe-f841-4ea5-a0fe-a2a800d8e08d",
"saga_type":"MySaga",
"changes":[
{
"start_time":"2014-01-03T12:09:37.5015257Z",
"finish_time":"2014-01-03T12:09:37.5577757Z",
"status":"new",
"state_after_change":"[{\"$type\":\"MySagaData, ServiceControl.Sample\",\"Id\":\"93bfbbfe-f841-4ea5-a0fe-a2a800d8e08d\",\"Originator\":\"ServiceControl.Plugin.SagaAudit.Sample@ANDREAS\",\"OriginalMessageId\":\"124984c0-9742-460d-a6bc-a2a800d8ddd4\",\"SomeId\":\"00000000-0000-0000-0000-000000000000\"}]",
"initiating_message":{
"is_saga_timeout_message":false,
"originating_endpoint":"ServiceControl.Plugin.SagaAudit.Sample",
"originating_machine":"ANDREAS",
"time_sent":"2014-01-03T12:09:35.284928Z",
"message_type":"Message1"
},
"outgoing_messages":[
{
"destination":"ServiceC...
1.0.0-Beta6
Introduction
ServiceControl is an auditing and monitoring service for NServiceBus endpoints and applications.
It gathers the audited messages forwarded by NServiceBus endpoints to the configured Audit queue and it exposes HTTP API that provides data and functionality services for ServiceInsight and ServicePulse
Prerequisites
- .NET Framework 4.5 or later
- (Note that this is a change from previous beta releases of ServiceControl which depended on .NET 4.0)
Important Note for previous Beta users of ServiceControl:
- If you installed a previous beta release of ServiceControl (beta 3 or earlier) you will need to remove the embedded RavenDB database by running the following commands:
net stop "Particular ServiceControl"
RD C:\programdata\particular\ServiceControl\localhost-33333 /S
net start "Particular ServiceControl"
- (Note the above command assumes you have installed ServiceControl using the default port 33333)
- Once started, the ServiceControl will re-create a new RavenDB embedded database
Installation
- Run the ServiceControl installer and leave the default parameters as-is
- ServiceControlPort: 33333
- This is the default IP port ServiceControl will use to expose its HTTP API
- Transport Type: MSMQ
- Currently, only MSMQ is available for automatic installation and configuration, although ServiceControl does support all NServiceBus supported transports
- For guidance on configuring ServiceControl to use transports other than MSMQ, please contact us
- Instance Name: {free text}
- Instance Description: {free text}
- ServiceControlPort: 33333
- If you change the default ServiceControl port, please make a note of the custom port you define, since this will be required for connecting ServiceInsight and ServicePulse to the installed instance of ServiceControl
- After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
- The installation process performs the following actions:
- Installs the Windows Service "Particular ServiceControl"
- Expose HTTP API for use by ServiceInsight and ServicePulse (default URI: http://localhost:33333/api)
Troubleshooting:
- Port 33333 is already in use by another service
- This is most probably due to a previous install of ServiceControl beta (previously known as "Management API".
- Uninstall previous ServiceControl beta versions by following this process:
- In the Windows Computer Management > Services check for the existence of a service named "Particular.Management"
- If there is a service called "Particular.Management" uninstall previous versions of ServiceInsight beta (can be located and uninstalled in Control Panel > Programs as "Particular Software ServiceInsight"
- If a version of NServiceBus 4.0 or later is already installed, Open its installer modification settings (in Control Panel > Programs select "Change" for the "Particular Software NServiceBus)
- In the NServiceBus installer click "Modify"
- Uncheck "Management API" in the list of components to be installed with NServiceBus
- Click "Modify" to apply changed and re-run installation
- Unable to connect to ServiceControl from either ServiceInsight or ServicePulse
- In Computer Management > Services, check that the Windows Service "Particular ServiceControl" is running
- In any browser or HTTP client, enter a GET request for the ServiceControl HTTP API (default URI: http://localhost:33333/api.
- You should get a valid response with JSON data containing ServiceControl default settings.
- Verify that firewall settings do not block access to the ServiceControl port (default: 33333) and that the default URI is accessible and responsive from a browser / HTTP client from the machine on which ServicePulse or ServiceInsight is trying to connect to ServiceControl
- Particular.ServiceControl windows service fails to start
- There are various options that may cause this. To narrow down the possible causes, review the ServiceControl log file located in:
C:\Windows\system32\config\systemprofile\AppData\Roaming\Particular\ServiceControl\logs
- Most common cause is prerequisites installation and configuration issues (see above, in "Prerequisites" section)
- Another common cause for the service failing to start is a permissions issue when ServiceControl attempts to access the Audit / Error or ServiceControl.* queues.
- This may occur when one or more these queues was created manually, without setting the permissions in a way that allows ServiceControl to access these queues.
- This issue will be indicated in the ServiceControl log
- Deleting the queues and running the ServiceControl installer will resolve this issue
- There are various options that may cause this. To narrow down the possible causes, review the ServiceControl log file located in:
1.0.0-Beta5
Changes in this release
The only change is to ensure MSMQ is installed correctly on Windows 8.1
Particular/NServiceBus.PowerShell#1
Where to get it
You can download this release from:
- Our website