Skip to content

vishalishere/HealthMonitoring

 
 

Repository files navigation

Health Monitoring

This project aims to provide a tool for monitoring health of various components belonging to a bigger eco-system (like SOA or Microservice Architecture).

HealthMonitoring offers a standalone, self-hosted tool that:

  • offers an WEB API for registering components and obtaining health information about them,
  • monitors (with configurable time periods) registered components,
  • offers a HTML dashboard to display the current status of monitored components,
  • offers an endpoint detailed HTML page to display endpoint details and health history.

Building

To build the project, please open a powershell console in project root folder and execute: PS> .\make\make_local.ps1 After a successful build, the root folder would contain built nuget packages (*.nupkg)

Installation

The Health Monitoring service is self hosted. The HealthMonitoring.SelfHost project is a console application that offers all the functionality.

The easiest way to install it is to:

  1. install a HealthMonitoring.Service-deploy nuget package in target folder,
  2. make a monitors directory in target folder (where HealthMonitoring.SelfHost.exe is),
  3. install one or more HealthMonitoring.Monitors.XXX-deploy monitor packages in monitors directory,
  4. (optionally) edit HealthMonitoring.SelfHost.exe.config to customise host settings,
  5. run HealthMonitoring.SelfHost.exe to start a console application or run install_service.cmd to register the health monitor as a windows service

Running

If health monitor is installed with default settings and it is running, it's home page would be available at http://localhost:9000/ address. It will provide urls to:

  • API documentation (with ability to execute API commands),
  • to the dashboard.

Registering a new component

The component registration has to be done via WEB API and it could be done via API documentation page (http://localhost:9000/swagger/ui/index)

A POST /api/endpoints/register method is doing registration. Below there is an example request body to register a monitoring for http://google.com

{
  "Name": "Google",
  "Address": "http://google.com",
  "MonitorType": "http",
  "Group": "My group"
}

Please note that MonitorType value has to be one of supported monitors (they are installed as plugins). To list the currently supported monitors, please use GET /api/monitors

Contributing

Any kind of contribution is welcome :)

To contribute please:

  • fork the repo,
  • write code, unit tests and acceptance tests (if applicable),
  • add nuspec file for the new plugin (if applicable) and ensure that it is being packaged with PS> .\make\make_local.ps1,
  • ensure that PS> .\make\make_local.ps1 finish successfuly,
  • update README.MD if necesarry,
  • make a pull request.

More details

To see more details, please visit the Wiki page of the project.

About

A health monitoring service

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 86.4%
  • HTML 8.8%
  • CSS 3.4%
  • PowerShell 1.1%
  • JavaScript 0.3%