Skip to content

Releases: Particular/ServicePulse

1.1.1

25 Aug 23:17

Choose a tag to compare

As part of this release we had 1 issue closed.

Bugs

#150 Installer expects 'Users' group. Language specific.

In a non-English install of Windows 7 x64 I get the error "An error occurred while applying security settings. Users is not a valid user or group.", which is correct as it doesn't exist. All local groups are language specific. Manually creating the group skips the error but causes a nondescript error later. Install can't finish.

1.1.0

14 Aug 23:58

Choose a tag to compare

New Features in the Release

  • Added the ability to view the header and body of failed messages
  • Reworked installer and service to allow low privilege accounts to act as the service account

Improvements in this Release

  • Changed the default service account to be localservice
  • Messages summary statistics now updated correctly after successful retry / archive of a failed message
  • CustomChecks list page now automatically updates in responsecontent in to CustomCheck updates
  • Fixed issues with graphics glyphs not being shown on Internet Explorer
  • Minor Content improvements
  • Minor Installer improvements

As part of this release we had 8 issues closed.

What is Service Pulse?

Particular Software ServicePulse is the new operational monitoring tool for distributed applications developed using NServiceBus.

An Introduction to ServicePulse for NServiceBus provides a short ~7 minute introductory video and demo of ServicePulse capabilities and main features for this release.

Prerequisites

  • .NET Framework 4.5 or later
  • Particular Software ServiceControl 1.0.0 or greater (latest is best)
  • Monitored NServiceBus endpoints must use NServiceBus 4.0.0 or higher
    • (support for earlier releases will be added in a future release)

Installation

  1. Download and install ServiceControl 1.0.0 or greater
  2. Download and install ServicePulse 1.1.0
  3. The following installation parameters are used by the ServicePulse installer:
    • ServicePulse Instance URI:
      • Default is http://localhost:9090
      • This is the localhost address and port that will be used for accessing the ServicePulse web application
    • ServiceControl instance URI:
  4. After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
  5. The installation process performs the following actions:
    • Installs the Windows Service "Particular ServicePulse" which hosts the web application
    • Open the ServicePulse web application using the default browser
  6. After installing ServicePulse, see the following sections to configure your existing endpoints to be monitored via ServicePulse.

HOW TO: Configure endpoints for monitoring by ServicePulse

http://docs.particular.net/Servicepulse/how-to-configure-endpoints-for-monitoring

HOW TO: Develop Custom Checks for ServicePulse

http://docs.particular.net/Servicepulse/how-to-develop-custom-checks

Troubleshooting:

http://docs.particular.net/Servicepulse/Troubleshooting

1.0.1

16 Apr 14:23

Choose a tag to compare

Introduction

Particular Software ServicePulse is the new operational monitoring tool for distributed applications developed using NServiceBus.

An Introduction to ServicePulse for NServiceBus provides a short ~7 minute introductory video and demo of ServicePulse capabilities and main features for this release.

Prerequisites

  • .NET Framework 4.5 or later
  • Particular Software ServiceControl 1.0.0
  • Monitored NServiceBus endpoints must use NServiceBus 4.0.0 or higher
    • (support for earlier releases will be added in a future release)

Installation

  1. Download and install ServiceControl 1.0.0
  2. Download and install ServicePulse 1.0.0
  3. The following installation parameters are used by the ServicePulse installer:
    • ServicePulse Instance URI:
      • Default is http://localhost:9090
      • This is the localhost address and port that will be used for accessing the ServicePulse web application
    • ServiceControl instance URI:
  4. After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
  5. The installation process performs the following actions:
    • Installs the Windows Service "Particular ServicePulse" which hosts the web application
    • Open the ServicePulse web application using the default browser
  6. After installing ServicePulse, see the following sections to configure your existing endpoints to be monitored via ServicePulse.

HOW TO: Configure endpoints for monitoring by ServicePulse

http://docs.particular.net/Servicepulse/how-to-configure-endpoints-for-monitoring

HOW TO: Develop Custom Checks for ServicePulse

http://docs.particular.net/Servicepulse/how-to-develop-custom-checks

Troubleshooting:

http://docs.particular.net/Servicepulse/Troubleshooting

1.0.0

16 Apr 06:40

Choose a tag to compare

Introduction

Particular Software ServicePulse is the new operational monitoring tool for distributed applications developed using NServiceBus.

An Introduction to ServicePulse for NServiceBus provides a short ~7 minute introductory video and demo of ServicePulse capabilities and main features for this release.

Prerequisites

  • .NET Framework 4.5 or later
  • Particular Software ServiceControl 1.0.0
  • Monitored NServiceBus endpoints must use NServiceBus 4.0.0 or higher
    • (support for earlier releases will be added in a future release)

Installation

  1. Download and install ServiceControl 1.0.0
  2. Download and install ServicePulse 1.0.0
  3. The following installation parameters are used by the ServicePulse installer:
    • ServicePulse Instance URI:
      • Default is http://localhost:9090
      • This is the localhost address and port that will be used for accessing the ServicePulse web application
    • ServiceControl instance URI:
  4. After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
  5. The installation process performs the following actions:
    • Installs the Windows Service "Particular ServicePulse" which hosts the web application
    • Open the ServicePulse web application using the default browser
  6. After installing ServicePulse, see the following sections to configure your existing endpoints to be monitored via ServicePulse.

HOW TO: Configure endpoints for monitoring by ServicePulse

http://docs.particular.net/Servicepulse/how-to-configure-endpoints-for-monitoring

HOW TO: Develop Custom Checks for ServicePulse

http://docs.particular.net/Servicepulse/how-to-develop-custom-checks

Troubleshooting:

http://docs.particular.net/Servicepulse/Troubleshooting

1.0.0-Beta4

25 Mar 07:24

Choose a tag to compare

1.0.0-Beta4 Pre-release
Pre-release

Introduction

Particular Software ServicePulse is the new operational monitoring tool for distributed applications developed using NServiceBus.

An Introduction to ServicePulse for NServiceBus provides a short ~7 minute introductory video and demo of ServicePulse capabilities and main features for this Beta release.

Prerequisites

  • .NET Framework 4.5 or later
  • Particular Software ServiceControl Beta 7
  • Monitored NServiceBus endpoints must use NServiceBus 4.0.0 or higher
    • (support for earlier releases will be added in a future release)

Installation

  1. Download and install ServiceControl 1.0.0 Beta 7
  2. Download and install ServicePulse 1.0.0 Beta 3
  3. The following installation parameters are used by the ServicePulse installer:
    • ServicePulse Instance URI:
      • Default is http://localhost:8082
      • This is the localhost address and port that will be used for accessing the ServicePulse web application
    • ServiceControl instance URI:
  4. After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
  5. The installation process performs the following actions:
    • Installs the Windows Service "Particular ServicePulse" which hosts the web application
    • Open the ServicePulse web application using the default browser
  6. After installing ServicePulse, you will need to:
    1. Configure your NServiceBus applications endpoints
    2. Author and deploy Custom Checks that will be monitored by ServicePulse.
  7. See the following sections for detailed guidance on performing these actions

HOWTO: Configure endpoints for monitoring by ServicePulse

http://docs.particular.net/Servicepulse/how-to-configure-endpoints-for-monitoring

HOWTO: Develop Custom Checks for ServicePulse

http://docs.particular.net/Servicepulse/how-to-develop-custom-checks

Troubleshooting:

http://docs.particular.net/Servicepulse/Troubleshooting

Fixed issues

This release consist of these issues that were achieved through these commits.

Features

#97 Create a Chocolatey package

#65 SP License check and user notification

User experience
Notification of licensing limitations
  1. As Opie is using ServicePulse, he will be notified when the installation of SP exceeds its licensing limitations
    • SP licensing limitations are:
      • Number of monitored (physical or virtual) servers (based on server names)
      • Trial period exceeded
  2. The notification will be presented as a message in ServicePulse
    • Message will be displayed on browser opening or on browser page refresh (Browser F5)
    • The message will not be closeable (i.e. it will always be presented, until a license is intsalled and the page is refreshed)
      Content trimmed. See full issue

#15 Implement endpoint configuration Indicator and management

As Opie, I want to be notified of any configuration issues that may affect the accuracy of the ServicePulse display. I want to know when I need to update, reconfigure an existing endpoint, or stop monitoring an obsolete endpoint

Visualization:

  1. In the dashboard, the configuration indicator is displayed indicating the status of the endpoint monitored by ServicePulse:
    • It is green when:
      • all monitored endpoints have a plugin installed
      • plugin version applies to minimal requirements (configured value of minimum plugin version supported by current version of ServicePulse)
    • It is red when;
      • one or more of the monitored endpoints do not have a plugin installed
      • the installed plugin is of an earlier version than the version specified as minimum requirement for the current ServicePulse version
  2. Clicking on the configuration indicator in the dashboard leads Opie to the endpoint configuration page
    • Opie can view the endpoints list
    • Opie can un-check one or more endpoints, making the un-monitored
      • An un-monitored endpoint will remain visible in the list of endpoints
      • An un-monitored endpoint is not expected to send heartbeat messages, and failure to receive heartbeat messages from this endpoint does not result in the heartbeat indicator being red

Notes:

  • An un-monitored endpoint can still be active (i.e. send custom checks events, failed messages and process SLA events; un-monitoring affects only the expectation for a periodic hearbeat message)

Demo / Acceptance tests:

Case 1:

  1. Configure the Video Store sample to have the plugin installed only on the Sales and eCommerce endpoints (2 of 5 endpoints)
  2. All 5 endpoints will be sending auditing and error data to the audit and error queues monitored by ServiceControl
  3. Run the Video Store sample (5 endpoints)
  4. The Configuration indicator in the dashboard page is green displays 2 monitored endpoints (after receiving heartbeat messages from the Sales and eCommerce endpoints)
  5. 2 Configuration events are added (severity: info) indicating that 2 new endpoints were added to the monitored endpoints list (including endpoint names and hosting machine name and IP) and that heartbeat messages were received from these endpoints
  6. Send a purchase order using the Video Store UI and await the successful completion of the purchase process
  7. The Configuration indicator in the dashboard page turns red, and displays that 3 endpoints are not configured
    • (i.e. the 3 of 5 endpoints belonging to the Video Store sample that do not have a configured plugin; these endpoint were added to the endpoints list through the processing of auditing messages, and they expected by default to be monitored)
  8. 3 Configuration events are added (severity: warning) indicating that 3 new endpoints were detected and were added to the monitored endpoints list (including endpoint names and hosting machine name and IP), but that they do not have a plugin installed and no heartbeat messages were received from these endpoints
  9. Click on the Configuration indicator in the dashboard page and reach the endpoint configuration page
  10. There are 5 endpoints in the endpoint list.
    • All are marked as monitored
    • 2 (sales and ecommerce) have a plugin installed and the plugin version is displayed
    • 3 have no plugin installed and there is no plugin version displayed
  11. Uncheck the "CustomerRelations" endpoint
  12. 1 Configuration event is added (severity: info) indicating that the "CustomerRelations" endpoint is no longer monitored
  13. Return to the dashboard and make sure the configuration indicator in the dashboard page is red but that it now displays that 2 endpoints are not configured
  14. Stop the Video Store sample and have the plugin installed on all 5 endpoints
  15. Run the Video Store sample (5 endpoints)
  16. The Configuration indicator in the dashboard page is green displays 4 monitored endpoints
  17. 2 Configuration events are added (severity: info) indicating that 2 monitored endpoints (already listed in the endpoints list) started sending heartbeat messages
  18. Click on the Configuration indicator in the dashboard page and reach the endpoint configuration page
  19. There are 5 endpoints in the endpoint list.
  20. Check the "CustomerRelations" endpoint to make it monitored again
  21. 1 Configuration event is added (severity: info) indicating that the "CustomerRelations" endpoint is being monitored
  22. Return to the dashboard and make sure the Configuration indicator in the dashboard page is green and displays 5 monitored endpoints

Improvements

#98 Add tooltip to describe "Monitor" in SP config page

  1. Related to #15
    • (BTW - nice implementation of #15. Works great!)
  2. Please add a tooltip to the "Monitor" column to explain its purpose.
    • Proposed phrasing: "Monitor the endpoint, and alert if no heartbeats are received"
    • Also - optionally - add a label next to the checkbox stating whether the endpoint "Monitored" or "Not Monitored"

image

CC @indualagarsamy, @andreasohlund - Make sense ?

#89 Remove "Beta Expired" May 1st

Related to ...

Read more

1.0.0-Beta3

30 Jan 19:59

Choose a tag to compare

1.0.0-Beta3 Pre-release
Pre-release

Introduction

Particular Software ServicePulse is the new operational monitoring tool for distributed applications developed using NServiceBus.

An Introduction to ServicePulse for NServiceBus provides a short ~7 minute introductory video and demo of ServicePulse capabilities and main features for this Beta release.

Prerequisites

  • .NET Framework 4.5 or later
  • Particular Software ServiceControl Beta 6
  • Monitored NServiceBus endpoints must use NServiceBus 4.0.0 or higher
    • (support for earlier releases will be added in a future release)

Installation

  1. Download and install ServiceControl 1.0.0 Beta 6
  2. Download and install ServicePulse 1.0.0 Beta 3
  3. The following installation parameters are used by the ServicePulse installer:
    • ServicePulse Instance URI:
      • Default is http://localhost:8082
      • This is the localhost address and port that will be used for accessing the ServicePulse web application
    • ServiceControl instance URI:
  4. After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
  5. The installation process performs the following actions:
    • Installs the Windows Service "Particular ServicePulse" which hosts the web application
    • Open the ServicePulse web application using the default browser
  6. After installing ServicePulse, you will need to:
    1. Configure your NServiceBus applications endpoints
    2. Author and deploy Custom Checks that will be monitored by ServicePulse.
  7. See the following sections for detailed guidance on performing these actions

HOWTO: Configure endpoints for monitoring by ServicePulse

ServicePulse monitors NServiceBus endpoints for:

  1. Endpoint availability (using heartbeat signals sent from the endpoint)
  2. Failed Messages (by monitoring the error queue defined for the endpoints)
  3. Custom Checks (defined and developed per application needs)
  4. And more (see An Introduction to ServicePulse for NServiceBus for additional upcoming monitoring features

image

Prerequisites for ServicePulse monitoring of endpoints:

  1. An Endpoint Plugin dll must be deployed in the binaries directory of each NServiceBus endpoint (required for endpoint availability and Custom Checks monitoring)
  2. Endpoints must use NServiceBus version 4.0.0 or higher (support for earlier releases will be added in a future release)
  3. Auditing must be enabled for all monitored endpoints (see Auditing With NServiceBus)
  4. All endpoints must forward audited data to a single audit and error queue, that is monitored by a ServiceControl instance

Deploying Endpoint Plugins in each Endpoint

  1. The Endpoint Plugin consists of two Nuget Packages:
    • ServiceControl.Plugin.Heartbeat.dll
    • ServiceControl.Plugin.CustomChecks.dll
  2. Get the Endpoint Heartbeat and CustomChecks Plugins using the NuGet console:
    • install-package ServiceControl.Plugin.Heartbeat -pre
    • install-package ServiceControl.Plugin.CustomChecks -pre
  3. For manual deployment, copy the Endpoint Plugin dll files to each endpoint bin directory (and restart the endpoint to load the plugin)
  4. By default, the Endpoint Plugin sends a heartbeat indication to ServiceControl every 30 seconds.
    • If a heartbeat indication is not recevied within 30 seconds, ServicePulse raises an event indicates the issue

HOWTO: Develop Custom Checks for ServicePulse

  1. In Visual Studio, create a new Class Library project
  2. Add the Endpoint Plugin to the project using the NuGet console:
    • install-package ServiceControl.Plugin.CustomChecks -pre
  3. To create a custom check that executes once, on endpoint startup, create a class that inherits from CustomCheck class (see sample code below)
  4. To create a custom check that executes repeatedly, in defined time intervals, create a class that inherits from PeriodicCheck class (see sample code below)
  5. Build and deploy the class library dll in the Bin directory of the endpoint you wish to execute these custom checks
    • You can deploy many custom checks per endpoint, and deploy the same custom checks in as many endpoints as required
Sample Custom Check
using ServiceControl.Plugin.CustomChecks;
using ServiceControl.Plugin.CustomChecks.Messages;
using System;
using System.IO;

namespace CustomCheckSample
{
    class FtpAvailabilityCheck : CustomCheck
    {
        public static bool isAvailable = false;

        public FtpAvailabilityCheck()
            : base("FTP server availability check", "FTP Server") 
        {
            if (!isAvailable) 
                ReportFailed("The FTP Service is down");
        }


    }

    class FtpStorageDirectoryCheck : PeriodicCheck
    {
        public FtpStorageDirectoryCheck() 
            : base("FTP storage directory check", "FTP Server", TimeSpan.FromSeconds(5)){}

        public override CheckResult PerformCheck()
        {
            var dir = @"C:\Checks\FTP";
            if (!Directory.Exists(dir))
            {
                return CheckResult.Failed(string.Format("FTP storage directory '{0}' does not exist", dir));                
            }
            return CheckResult.Pass;
        }
    }
}

Troubleshooting:

  1. ServicePulse is unable to connect to ServiceControl
    • See ServiceControl release notes Troubleshooting section for guidance on detecting ServiceControl HTTP API accessibility
    • Verify that ServicePulse is trying to access the correct ServiceControl URI (based on ServicControl instance URI defined in ServicePulse installation settings)
    • Check that ServicePulse is not blocked from accessing the ServiceControl URI by firewall settings
  2. ServicePulse reports that 0 endpoints are active, although Endpoint plugins were deployed
    • Make sure you follow the guidance in the section "Deploying Endpoint Plugin in each Endpoint" above
    • Restart the endpoint after copying the Endpoint Plugin files into the endpoint's Bin directory
    • Make sure that the endpoint references NServiceBus 4.0.0 or later
    • Make sure auditing is turned on for the endpoint, and the audited messages are forwarded to the correct audit and error queues monitored by ServiceControl

Known issues

  1. Failed Messages counter is not updated as expected
    • Workaround: Click F5 to refresh the page.
    • This occurs mainly on relatively slow of busy machines, that are not in production (e.g. have just been started, and components have not been fully loaded into RAM)
    • The root cause is due to the internal implementation of notification and counter updates depending on RavenDB's eventual consistency approach to index updates
    • Will be fixed by v1 release

1.0.0-Beta2

21 Nov 13:49

Choose a tag to compare

1.0.0-Beta2 Pre-release
Pre-release

Introduction

Particular Software ServicePulse is the new operational monitoring tool for distributed applications developed using NServiceBus.

An Introduction to ServicePulse for NServiceBus provides a short ~7 minute introductory video and demo of ServicePulse capabilities and main features for this Beta release.

Prerequisites

  • .NET Framework 4.0 or later
  • Particular Software ServiceControl Beta 4
  • Monitored NServiceBus endpoints must use NServiceBus 4.0.0 or higher
    • (support for earlier releases will be added in a future release)

Downloads

Installation

  1. Download and install ServiceControl 1.0.0 Beta 4 (see release notes)
  2. Download and install ServicePulse 1.0.0 Beta 2
  3. The following installation parameters are used by the ServicePulse installer:
    • ServicePulse Instance URI:
      • Default is http://localhost:8082
      • This is the localhost address and port that will be used for accessing the ServicePulse web application
    • ServiceControl instance URI:
  4. After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
  5. The installation process performs the following actions:
    • Installs the Windows Service "Particular ServicePulse" which hosts the web application
    • Open the ServicePulse web application using the default browser
  6. After installing ServicePulse, you will need to:
    1. Configure your NServiceBus applications endpoints
    2. Author and deploy Custom Checks that will be monitored by ServicePulse.
  7. See the following sections for detailed guidance on performing these actions

HOWTO: Configure endpoints for monitoring by ServicePulse

ServicePulse monitors NServiceBus endpoints for:

  1. Endpoint availability (using heartbeat signals sent from the endpoint)
  2. Failed Messages (by monitoring the error queue defined for the endpoints)
  3. Custom Checks (defined and developed per application needs)
  4. And more (see An Introduction to ServicePulse for NServiceBus for additional upcoming monitoring features

image

Prerequisites for ServicePulse monitoring of endpoints:

  1. An Endpoint Plugin dll must be deployed in the binaries directory of each NServiceBus endpoint (required for endpoint availability and Custom Checks monitoring)
  2. Endpoints must use NServiceBus version 4.0.0 or higher (support for earlier releases will be added in a future release)
  3. Auditing must be enabled for all monitored endpoints (see Auditing With NServiceBus)
  4. All endpoints must forward audited data to a single audit and error queue, that is monitored by a ServiceControl instance

Deploying Endpoint Plugin in each Endpoint

  1. The Endpoint Plugin consists of two DLL files:
    • ServiceControl.EndpointPlugin.dll
    • ServiceControl.EndpointPlugin.Messages.dll
  2. Get the Endpoint Plugin:
  3. Copy the Endpoint Plugin files to each endpoint bin directory (and restart the endpoint to load the plugin)
  4. By default, the Endpoint Plugin sends a heartbeat indication to ServiceControl every 30 seconds.
    • If a heartbeat indication is not recevied within 30 seconds, ServicePulse raises an event indicates the issue

HOWTO: Develop Custom Checks for ServicePulse

  1. In Visual Studio, create a new Class Library project
  2. Add the Endpoint Plugin to the project
    • Download a zip file containing the Endpoint Plugin DLL's and place them in the endpoint's Bin directory
    • using NuGet: install-package ServiceControl.EndpointPlugin -pre
    • Or by copying the Endpoint Plugin DLL's to the endpoint's bin directory
  3. Add a reference to the Endpoint Plugin DLL's
  4. To create a custom check that executes once, on endpoint startup, create a class that inherits from CustomCheck class (see sample code below)
  5. To create a custom check that executes repeatedly, in defined time intervals, create a class that inherits from PeriodicCheck class (see sample code below)
  6. Build and deploy the class library DLL in the Bin directory of the endpoint you wish to execute these custom checks
    • You can deploy many custom checks per endpoint, and deploy the same custom checks in as many endpoints as required
Sample Custom Check
using System;
using System.IO;

// reference ServiceControl.EndpointPlugin.dll
using ServiceControl.EndpointPlugin.CustomChecks;           
// reference ServiceControl.EndpointPlugin.Messages.dll
using ServiceControl.EndpointPlugin.Messages.CustomChecks;  

namespace CustomCheckSample
{
    // Run the custom check once, on endpoint startup
    class FtpAvailabilityCheck : CustomCheck
    {
        public static bool isAvailable = false;

        public FtpAvailabilityCheck()
            : base("FTP server availability check", "FTP Server") 
        {
            if (!isAvailable) 
                ReportFailed("The FTP Service is down");
        }
    }

    // Run the custom check periodically, in the defined interval timespan
    class FtpStorageDirectoryCheck : PeriodicCheck
    {
        public FtpStorageDirectoryCheck()
            : base("FTP storage directory check", "FTP Server", TimeSpan.FromSeconds(5)){}

        public override CheckResult PerformCheck()
        {
            var dir = @"C:\Client\1035";
            if (!Directory.Exists(dir))
            {
                return CheckResult.Failed(string.Format("FTP storage directory '{0}' does not exist", dir));                
            }
            return CheckResult.Pass;
        }
    }
}

Troubleshooting:

  1. ServicePulse is unable to connect to ServiceControl
    • See ServiceControl release notes Troubleshooting section for guidance on detecting ServiceControl HTTP API accessibility
    • Verify that ServicePulse is trying to access the correct ServiceControl URI (based on ServicControl instance URI defined in ServicePulse installation settings)
    • Check that ServicePulse is not blocked from accessing the ServiceControl URI by firewall settings
  2. ServicePulse reports that 0 endpoints are active, although Endpoint plugins were deployed
    • Make sure you follow the guidance in the section "Deploying Endpoint Plugin in each Endpoint" above
    • Restart the endpoint after copying the Endpoint Plugin files into the endpoint's Bin directory
    • Make sure that the endpoint references NServiceBus 4.0.0 or later
    • Make sure auditing is turned on for the endpoint, and the audited messages are forwarded to the correct audit and error queues monitored by ServiceControl

Changes in this release

This release consist of these issues that were achieved through these commits.

Features

#12 Implement Heartbeat Events viewing

Improvements

#55 Add Start Menu shortcut to launch website

Bugs

#60 When exception text is too long, UI looks a bit messy

#58 Misleading custom check failed events (appears once for all endpoints)

#49 CustomChecks from multiple endpoints count as a single check

#48 Failed Messages list requires manual refresh to display correct result

#47 Failed Message summary statistics is empty

#45 Phrasing consistency: events category in plural or singular

#42 Install-Package for EndpointPlugin causes build failure due to invalid dependency

[#20 Number of endpoints zero'd on SC restart](https://github.com/...

Read more

1.0.0-Beta1

07 Nov 16:53

Choose a tag to compare

1.0.0-Beta1 Pre-release
Pre-release

Introduction

Particular Software ServicePulse is the new operational monitoring tool for distributed applications developed using NServiceBus.

An Introduction to ServicePulse for NServiceBus provides a short ~7 minute introductory video and demo of ServicePulse capabilities and main features for this Beta release.

Prerequisites

  • .NET Framework 4.0 or later
  • Particular Software ServiceControl Beta 3
  • Monitored NServiceBus endpoints must use NServiceBus 4.0.0 or higher
    • (support for earlier releases will be added in a future release)

Downloads

Installation

  1. Download and install ServiceControl 1.0.0 Beta 3 (see release notes)
  2. Download and install ServicePulse 1.0.0 Beta 1
  3. The following installation parameters are used by the ServicePulse installer:
    • ServicePulse Instance URI:
      • Default is http://localhost:8082
      • This is the localhost address and port that will be used for accessing the ServicePulse web application
    • ServiceControl instance URI:
  4. After accepting the license terms and conditions, click "Install" (installer will require elevated privileges)
  5. The installation process performs the following actions:
    • Installs the Windows Service "Particular ServicePulse" which hosts the web application
    • Open the ServicePulse web application using the default browser
  6. After installing ServicePulse, you will need to:
    1. Configure your NServiceBus applications endpoints
    2. Author and deploy Custom Checks that will be monitored by ServicePulse.
  7. See the following sections for detailed guidance on performing these actions

HOWTO: Configure endpoints for monitoring by ServicePulse

ServicePulse monitors NServiceBus endpoints for:

  1. Endpoint availability (using heartbeat signals sent from the endpoint)
  2. Failed Messages (by monitoring the error queue defined for the endpoints)
  3. Custom Checks (defined and developed per application needs)
  4. And more (see An Introduction to ServicePulse for NServiceBus for additional upcoming monitoring features

image

Prerequisites for ServicePulse monitoring of endpoints:

  1. An Endpoint Plugin dll must be deployed in the binaries directory of each NServiceBus endpoint (required for endpoint availability and Custom Checks monitoring)
  2. Endpoints must use NServiceBus version 4.0.0 or higher (support for earlier releases will be added in a future release)
  3. Auditing must be enabled for all monitored endpoints (see Auditing With NServiceBus)
  4. All endpoints must forward audited data to a single audit and error queue, that is monitored by a ServiceControl instance

Deploying Endpoint Plugin in each Endpoint

  1. The Endpoint Plugin consists of two DLL files:
    • ServiceControl.EndpointPlugin.dll
    • ServiceControl.EndpointPlugin.Messages.dll
  2. Get the Endpoint Plugin:
  3. Copy the Endpoint Plugin files to each endpoint bin directory (and restart the endpoint to load the plugin)
  4. By default, the Endpoint Plugin sends a heartbeat indication to ServiceControl every 30 seconds.
    • If a heartbeat indication is not recevied within 30 seconds, ServicePulse raises an event indicates the issue

HOWTO: Develop Custom Checks for ServicePulse

  1. In Visual Studio, create a new Class Library project
  2. Add the Endpoint Plugin to the project
    • Download a zip file containing the Endpoint Plugin DLL's and place them in the endpoint's Bin directory
    • using NuGet: install-package ServiceControl.EndpointPlugin -pre
    • Or by copying the Endpoint Plugin DLL's to the endpoint's bin directory
  3. Add a reference to the Endpoint Plugin DLL's
  4. To create a custom check that executes once, on endpoint startup, create a class that inherits from CustomCheck class (see sample code below)
  5. To create a custom check that executes repeatedly, in defined time intervals, create a class that inherits from PeriodicCheck class (see sample code below)
  6. Build and deploy the class library DLL in the Bin directory of the endpoint you wish to execute these custom checks
    • You can deploy many custom checks per endpoint, and deploy the same custom checks in as many endpoints as required
Sample Custom Check
using System;
using System.IO;

// reference ServiceControl.EndpointPlugin.dll
using ServiceControl.EndpointPlugin.CustomChecks;           
// reference ServiceControl.EndpointPlugin.Messages.dll
using ServiceControl.EndpointPlugin.Messages.CustomChecks;  

namespace CustomCheckSample
{
    // Run the custom check once, on endpoint startup
    class FtpAvailabilityCheck : CustomCheck
    {
        public static bool isAvailable = false;

        public FtpAvailabilityCheck()
            : base("FTP server availability check", "FTP Server") 
        {
            if (!isAvailable) 
                ReportFailed("The FTP Service is down");
        }
    }

    // Run the custom check periodically, in the defined interval timespan
    class FtpStorageDirectoryCheck : PeriodicCheck
    {
        public FtpStorageDirectoryCheck()
            : base("FTP storage directory check", "FTP Server", TimeSpan.FromSeconds(5)){}

        public override CheckResult PerformCheck()
        {
            var dir = @"C:\Client\1035";
            if (!Directory.Exists(dir))
            {
                return CheckResult.Failed(string.Format("FTP storage directory '{0}' does not exist", dir));                
            }
            return CheckResult.Pass;
        }
    }
}

Troubleshooting:

  1. ServicePulse is unable to connect to ServiceControl
    • See ServiceControl release notes Troubleshooting section for guidance on detecting ServiceControl HTTP API accessibility
    • Verify that ServicePulse is trying to access the correct ServiceControl URI (based on ServicControl instance URI defined in ServicePulse installation settings)
    • Check that ServicePulse is not blocked from accessing the ServiceControl URI by firewall settings
  2. ServicePulse reports that 0 endpoints are active, although Endpoint plugins were deployed
    • Make sure you follow the guidance in the section "Deploying Endpoint Plugin in each Endpoint" above
    • Restart the endpoint after copying the Endpoint Plugin files into the endpoint's Bin directory
    • Make sure that the endpoint references NServiceBus 4.0.0 or later
    • Make sure auditing is turned on for the endpoint, and the audited messages are forwarded to the correct audit and error queues monitored by ServiceControl