Synapse is a multi-threaded, distributed and high performance oriented server monitoring system that was developed in-house by Daniel Selans and Mark Gregan. From the ground up, Synapse was designed as an enterprise class application that is capable of incredible scaling along with being able to perform tens of thousands of transactions per second without breaking a single sweat. Synapse utilizes an intelligent algorithm to determine whether a server is actually fully unresponsive, overloaded or filtering incoming connection attempts. To this date, Synapse has been monitoring the servers in our datacenter at roughly 30 second intervals.
Under the Hood
Over the years we have had the opportunity to work with many open source and commercial server and network monitoring solutions. Unfortunately, most of them suffer from a number of problems:
- Poor performance
- Very little or no scalability
- Bad data storage mechanism (flat file usage)
- Complex, long configuration(s)
- Non-intuitive interface
While designing Synapse, we wanted to be absolutely sure, that at the very least, we ended up with a solution that addresses all of the issues above. After a year of development, Synapse was put into testing and shortly afterwards it replaced our existing monitoring solution. Not only were we able to achieve all of the goals we set, but we surpassed them quite heavily. Based on our tests against other monitoring systems, Synapse surpassed them all by anywhere between 200-500% in service check speeds. For example, Synapse is capable of performing roughly 13,000 service checks in less than 30 seconds on a single commodity server.
At the heart of Synapse is an efficient thread model and a service check queue mechanism. The thread model permits Synapse to perform a large number of simultaneous checks, while the queue mechanism provides a method for multiple Synapse nodes to behave properly when ran in distributed mode. These two design features allow Synapse to scale very quickly and completely dynamically without any configuration changes or interruptions.
While performance is important, data storage is equally significant. Synapse utilizes an SQL engine for all of its transaction needs. This includes the storage of all service configurations, events and historical data. Having a unified storage mechanism also allows an easy and seamless way for other applications to access Synapse's data sets.
At the front-end, a rich PHP and Ajax based application categorizes and displays all current event data based on the severity of the issue. This same interface serves also as a platform for configuring service monitoring options and viewing historical data. Our server administrators monitor Synapse 24/7/365 to make sure that your servers are running optimally at all times.
If you have any further questions or comments about Synapse, please feel free to submit a ticket to our help desk.
© Copyright 2002-2017 Surpass Hosting, LLC. All rights reserved.