SeaLights .NET Core agent - Setting up a windows service

Coverage Collector Service Installation

  • As an Administrator, install and start the coverage collector service

    SL.DotNet.CoverageCollectorService.exe install start
  • Register our agent as a profiler in the services registry settings:

    SL.DotNet.exe instrumentService --serviceName {YourService} --force
  • Restart your service manually via the Service Manager console or the following PowerShell command

    Restart-Service -Name {YourService} -Force

At the successful completion of this step, you will see a new entry appearing in the Cockpit > Live Agents Monitor for an entity called CollectorService for dotnet technology

Capturing coverage

During the time you want to run your tests and capture coverage, you can now start and stop the coverage collection of the SeaLights agent test listener

Starting coverage collection session

Before you start running your tests, you need to update the SeaLights test listener to start collecting coverage. You do so with the startCollectorServiceSession parameter.

At the successful completion of this step, you will see new entries appearing in the Cockpit > Live Agents Monitor: the CollectorServiceSession and a entity called Profiler with the version details of your service.

  • Note that this can be run on a remote machine (like the CI running the tests) while providing the host to start the session on using the parameter: --machine <host> 

  • If you’re running several services on the machine, you can use the above command with --processName * and every service having the Sealights' environment variables defined in its Registry entry will be metered

If the Profiler doesn't start correctly, you can validate your configuration using the following approaches:

  1. Open the Event Viewer and search for possible errors under Local> Windows Log > Application

  2. Validate the correct variables were attached to the process of your service using a tool like https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer.
    You can refer to our dedicated article https://sealights.atlassian.net/wiki/spaces/SUP/pages/2062745609 for detailed instructions on how to use it with Sealights.

  3. You can enable advanced logs at the Profiler level according to the following instructions: https://sealights.atlassian.net/wiki/spaces/SUP/pages/1755480065/.NET+-+Collecting+Profiler+Logs#Collecting-Profiler-logs-from-Windows-Services

Running your tests

Now you can run any one of your tests that runs against this service and capture coverage.

Stopping coverage collection session

Uninstalling Profiler from your Service

If needed, you can un-register the SeaLights profiler from your Service

Sample script