To keep your digital production line running smoothly, you need to know what's happening. And, as IT ecosystems become ever more complex and distributed in nature, keeping a close eye on everything becomes more and more difficult. So to stay on top of this problem, you need tools which can worm their way into your environment, scooping up every little morsel of information, analysing it, and presenting it in an easily digestible style - a style that makes sense for your business objectives.
Welome to Uhoh.
Uhoh is a super-lightweight, flexible and easy to use distributed system monitoring toolkit. Packed with a plethora of neat little features for slurping up log files and collecting streams of information from your applications, Uhoh binds together your End-to-End Service Assurance stack to ensure that the flow of essential events and metrics can be put to good use.
There are many facets to Service Assurance, but from the point-of-view of Uhoh we are talking about:
In other words, from a business perspective, to be able to answer the question - "is it working ?".
Coupling Uhoh's data collection and processing framework with it's service-mapping capabilities, delivers a really solid base for fully-automated service assurance.
Deploying Uhoh into your environment involves:
The Uhoh Server's main functions are to:
The Uhoh Client running on a host:
The main focus for Uhoh is to provide the often missing 'glue' in between applications and analytics or visualisation tools. For example an Uhoh Server Log Stream can be used by simple scripts which feed quality-controlled alert and metric data into ElasticSearch, Amazon Web Services CloudWatch, a Slack channel used by your DevOps teams or any other metric or alert visualisation tool.
Uhoh doesn't require any agents or implants to be embedded within your applications.
Uhoh Clients feed events to Uhoh Servers which in turn feed events to Uhoh Log Streams.
The Uhoh Server Fault Management View.
At the most basic level, using Uhoh involves setting up an Uhoh Server and then running Uhoh Clients on all of your hosts. Full details of how to set up and Uhoh Server can be found on this page: Set up a Server. A single Uhoh Server provides you with the full range of fault and performance management capabilities offered by Uhoh, but for real-world deployments, you will most likely require:
The Bring it to Life page covers all of the above and more.
Both the Uhoh Server and Uhoh Client are implemented 100% in Java and are not dependent on any external Java libraries. They are both supplied within a single Java archive (.jar) file and run standalone rather than needing to be deployed into any kind of container. The various user interfaces (Fault Management, Performance Management, Service Map View and Dashboard) make use of HTML and Javascript. Javascript libraries and fonts are loaded from Internet-facing (Mootools, Google Charts and Google Fonts) sources as needed. Uhoh was designed to run on Linux / Unix-like systems - requiring only a Java Runtime of version 1.6 or above. Also, as Uhoh is so teeny-tiny, it's very, very easy to test new monitoring configurations on a single host.
For a deep-dive into how to configure monitoring functionality within Uhoh, refer to the Set up a Client page.
Uhoh is released as Open Source software under the FreeBSD licence. It can be downloaded from GitHub here.