Skip to content

Latest commit

 

History

History
216 lines (153 loc) · 10.1 KB

README.md

File metadata and controls

216 lines (153 loc) · 10.1 KB

Stargazers Issues LinkedIn


HandyDash

Operational Monitoring Made Easy.

HandyDash is a cross-platform HTTP, TCP, and IP monitoring tool, intended for desktop use. It is agent free, requires no installation, and saves all configuration to a single portable file. Simply unzip the package and run the executable to view and edit nodes within the browser based UI.

Logo

Report Bug · Request Feature

Table of Contents
  1. About
  2. Getting Started
  3. Features
  4. Roadmap
  5. License
  6. Contact
  7. Acknowledgments

About The Project

Welcome to HandyDash. I set about developing this software with the following features in mind:

  • I wanted a monitoring tool that could be run with a single click, and doesn't require the installation of agents on target systems.
  • I wanted a monitoring tool that is simple to configure, without requiring programming or scripting knowledge.
  • I wanted a monitoring tool that can visually represent the platforms that my team is monitoring.
  • I wanted a monitoring tool that distinguishes the criticality of different events.
  • I wanted a monitoring tool that distinguishes between application failures and lower level connectivity failures.
  • I wanted a monitoring tool that articulates failures in a way that is actionable by my operations team.
  • I wanted a monitoring tool that links the systems underpinning composite platforms, and propagates failures to upstream nodes.

Please see my blog for further discussion of application and systems monitoring.

(back to top)

Getting Started

To get started using HandyDash, simply:

  1. Download and unzip the HandyDash version for your chosen platform.
  2. Run the HandyDash executable to start the application.
  3. Add and edit monitor configurations using the Plus and Cog icons shown.

That's it!

(back to top)

Features

v2.0

Please see below for HandyDash v2.0 features. A screenshot illustrating these features is shown further below.

Available Checks

  • HTTP check for 200-299 (success) responses (follows 30X redirects).
  • HTTP check for specific response content (text).
  • HTTP check for latest and average response times.
  • HTTP check for validity of server, intermediate, and root certificates.
  • TCP check conducted (only) if HTTP check failure occurs.
  • IP check conducted (only) if TCP check failure occurs.

Warnings & Failures

  • Informative summary of HTTP, TCP, IP warnings and failures.
  • Warning if HTTP response is slower than average by 100%.
  • Warning if expiry date of server, intermediate, root certificate is less than 2 weeks, but more than 2 days.
  • Error if expiry date of server, intermediate, root certificate is less than 2 days.
  • Error if expiry date of server, intermediate, root certificate has passed, or start date is not yet reached.
  • Error if server, intermediate, root certificate is invalid, including missing SAN values, or signed by an untrusted certificate authority.
  • Error if HTTP response is not received within 15 seconds.
  • Error if HTTP response is slower than average by 200%.
  • Error if HTTP response code is not 200-299, or 30X redirect.
  • Error if HTTP response does not contain the expected response content (text).
  • Error if TCP check (connection) is not complete within 3 seconds. (Only executed when HTTP check fails).
  • Error if IP check (ping response) is not received within 2 seconds. (Only executed when TCP check fails).
  • Date and Time shown for the most recent failure 'Last Failure', when node is in the warning or failed state.
  • Date and Time shown for the initial failure 'First Failure', when consecutive failures have occurred. 'First Failure' is reset upon node returning to a healthy state (green state).
  • Date and Time shown for the most recent alert 'Last Alert', when node has returned to a healthy state (green state).
  • Automatic bubble up of warning and failure states (yellow and red states), when 2 consecutive alerts have occurred for a given child node.
  • Bubbled up alerts propagate to the root/top level node.
  • Ability to suppress bubbled up alerts - at the source of the alert - for 24 hours.

General

  • Browser based tree view UI, with in-built browser zoom options.
  • Single click to zoom to any individual node (useful when browser zoom is set to a low value in order to display many nodes).
  • Expand and collapse button for each parent node.
  • Move Node feature. Activated via the control bar on each node.
  • Compact View feature. Activated via the root node control bar, this shows a compact view for healthy nodes.
  • UI options for spacing between parent and child nodes, and horizontal or vertical display of child nodes.
  • Automatic polling of all HTTP targets at 1 minute intervals.
  • Automatic refresh of browser UI at 1 minute intervals.
  • HTTP check automatically follows 30X redirects and conducts checks against the target location.
  • Logging of all failures to the console UI, containing local and UTC time that each failure occurred. Enabled by default via the 'ConsoleLoggingEnabled' setting, with 'Error', 'Warn', or 'Verbose' being valid 'ConsoleLoggingLevel' values.
  • Ability to execute node checks in serial or parallel. Controlled via the appsettings.json file, via the 'RunChecksInParallel' setting, that is set to false by default.
  • Ability to set a proxy server for HandyDash to use, when undertaking HTTP checks. Controlled via the appsettings.json file, via the 'ProxyOverride' setting.
  • Runs on local URL http://127.0.0.1:55480, with port configurable via "Urls" setting in appsettings.json.
  • All monitor configurations are persisted to a single portable JSON file 'handydash-configuration.json', located under the wwwroot folder.
  • Cross platform support, including Windows, Linux, and macOS (please enquire about further platforms).

Screenshot

(back to top)

Roadmap

As visible within the create and edit node screens, only a subset of configuration features are currently implemented. For example, while there are TCP and IP checks conducted when a HTTP check fails, you cannot currently specify a TCP, UDP, or IP only monitor.

I plan on extending these features as time permits. A star in GitHub or an email will certainly help with motivation, so please feel free to contact me using the details further below.

(back to top)

License

HandyDash v2 is free, however it is not open-source. Please see the HandyDash License for further details.

(back to top)

Contact

Nathan Handy - All feedback and questions are welcome. If you encounter any bugs please raise an issue.

(back to top)

Acknowledgments

HandyDash makes use of the following open source frameworks and templates.

(back to top)