Skip to content

Releases: Particular/ServicePulse

1.2.0

11 Aug 01:16

Choose a tag to compare

As part of this release we had 81 commits which resulted in 12 issues being closed.

Improvements

#177 Failed messages are now grouped by exception type and failed line of code

When a Failed Message is detected it is bundled into a group based on the type of Exception that was thrown and the method in the source code that it was thrown from.
intro-failed-messages-failed-groups-page

All of the messages with a Failure Group can be retried or archived at once from the Failure Group screen. To see a list of messages within a Failure Group click the the title of the group.

See Failed Message Monitoring in ServicePulse for more information.

NOTE: This feature requires ServiceControl version 1.6 or higher.

#183 "Endpoints Overview" and "Configuration" screens are now displaying their lists in alphabetically order

When you have more than a few endpoints, this quickly becomes unmanageable.
By sorting these lists by default, it becomes easier to manage and browse the lists.

#180 Failed messages to display UNKNOWN when data is missing instead of blank or minimum date

When an NServiceBus endpoint receives messages from external systems such as BizTalk, TIBCO, etc. directly, the message itself will not contain regular NServiceBus headers. Without them ServiceControl cannot provide all usual information. For example, it won’t be able to determine when message was sent or what is its type.

To ensure that you are able to monitor your endpoints and have valuable metadata from ServiceControl, it becomes important as to how you integrate these messages. If for some reason failed messages will miss some metadata ServicePulse will handle it better by providing more meaningful defaults and descriptions.
Here is an example:
image

#171 A confirmation is now displayed when clicking the "Retry all messages" button

Confirmation when one clicks the "Retry all messages". This will prevent situations where messages are retried when the button is clicked by accident.

#170 In Failed Messages screen, word-wrap message type and destination address is now on

The failed message details cuts off long message types and destination addresses, this commit addresses this issue.

#22 Notification of a new version available is now displayed in the Dashboard

Added a footer to the dashboard of ServicePulse that displays when a new version is available.

image

This footer contains a hyperlink that will take you to the download page for the latest release.

Bugs

  • #172 When a message is missing headers such as TimeSent, display appropriate defaults
  • #169 In Failed Messages screen, when message types are not present in the metadata from ServiceControl, ServicePulse must display proper default values instead of NULL_TYPE
  • #156 When upgrading ServicePulse the "config.js" file is overridden/reset
  • #149 Word-wrap endpointname in endpoints screen
  • #67 White rectangle appears behind notification messages on Failed Messages page

Where to get it

You can download this release from our website

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