Skip to content
This repository has been archived by the owner on Apr 9, 2020. It is now read-only.

lowleveldesign/diagnostics-kit

Repository files navigation

Diagnostics Kit

Diagnostics Kit is a set of tools created to help you monitor .NET applications. I tried to make the installation easy, with only minimal changes required in the configuration files. Diagnostics Kit is composed of few layers, but its architecture is really simple: Musketeer instances (Windows services) and Harvesters (assemblies from Nuget packages) installed in your apps deliver logs to the central point, called the Diagnostics Castle (an Owin-Nancy web application). Two most important parts of the Castle are the monitoring grid and the log viewer. I paste sample screenshots below:

Monitoring grid

Log viewer

To make configuration simpler, applications are identified by their paths so logs from applications installed under the same paths on various servers will be treated as logs from one application. I know it is quite restrictive, but believe me: it makes things much easier to maintain.

An interesting part of the Diagnostics Kit is also the Fiddler plugin, named Bishop. Bishop integrates with the Castle and provides different ways of tampering the requests. With its help you may:

  • skip the load-balancers and send requests directly to the servers where you deployed applications
  • emulate border routers HTTPS encryption on localhost when testing/developing applications
  • test regex rules for your load-balancers or reverse proxies
  • forward all the traffic to your test server (for instance on Docker)

The detailed documentation can be found in wiki: https://github.com/lowleveldesign/diagnostics-kit/wiki

The intended audience

There are many monitoring services available on the market, thus you might be wondering why I wrote another one. My point was to create a monitoring solution for small and midsize .NET projects (mainly web, but performance monitoring of Windows services is supported), which is fast to setup and easily cusomizable by project developers. I tried to keep the source code concise and easy to read. The requirements list is also short: a web server (preferably IIS), storage for logs (works with: Elastic Search, MySql or SQL Server) - you should have them already available in your infrastructure.

How to get started?

Download the components you need from the release page and read the installation guide on wiki. Then, depending on your application type, read the log collection guide:

How to contribute?

If you like the project and would like to help, you are more than welcome. The features I currently consider most required include:

  • ASP.NET Core Harvester
  • Serilog sink for Diagnostics Kit
  • .NET Core CLR support
  • support for PostgreSql as a Log Store

But if you have a different idea/requirement, the Pull requests tab is awaiting you :)

External links

You may also have a look at the following articles, which provide overview of the features available in the kit:

About

Diagnostics Kit is a set of tools and libraries to effectively work with logs generated in .NET applications.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published