Laurence Ioannou from EyeWitness: “Monitoring specifically for Laravel”
Another interesting interview on our blog, at the same time presenting you a new tool – EyeWitness.io is a monitoring and application analytics tool, built specifically for Laravel. Today we’re talking with its founder Laurence – he shares the idea and why EyeWitness is different from other similar projects.
Let’s start with the back story. What is EyeWitness and how did you come up with the idea?
The idea for Eyewitness was actually to solve a problem I was having myself.
I’ve been a Laravel developer for close to 5 years now (around the time of Laravel 3/4). As a Laravel developer I’ve created a number of “business critical” applications for some large organisations, including Government agencies. As part of my services, I continue to maintain and support a number of these applications for the organisations.
Part of this includes monitoring, to know when there are any problems. I’ve tried a number of solutions, such as New Relic etc. Whilst these were great a monitoring the servers, I found they could never monitoring my actual application in the way I needed. Most importantly, they would not help detect silent errors that can cause big issues.
I’m not sure if you’ve ever had an application stop sending emails without any errors, or had a queue that has been overloaded and is taking days to process a request? But if/when it occurs you often won’t even know about it, as there is often nothing in the logs to indicate there is even a problem. Sometimes it will be days before anyone alerts you, and the issue has built up.
And if you’ve ever had a disk fill up, a SSL certificate expire, or a domain expire, you know how painful it can be 🙂
I didn’t want to scatter sections of “checks”, “pings” and “logs” through my application – I didn’t like the deep integration of a monitor within the application code. Any time I wanted to try another monitoring service, it meant having to replace these bits of code – which always felt wrong. I sometimes used a combination of 3-4 different services to achieve what I needed, but that always felt clunky.
I then had a realisation that using the power of the Laravel IoC container – I could actually monitor any single part of the application without needing to touch a line of code within the application. By focusing on a specific Laravel solution – I was able develop the Eyewitness/Eye package, which can be installed and requires almost no configuration. There are no code changes required to the application (except to add the service provider) – and it will automatically start monitoring queues, schedulers/cron, email, database and much more out of the box.
Further, this allows for analytics of production applications. For example, we currently can provide information about rates of requests, average time of processing etc. We are working on enabling this down the route level – so for example you could see how many calls are occurring to your API etc as part of report. If a particular route or type of request suddenly became slow or unresponsive (such as due to a failed third party API call for example) – you can be alerted.
Eyewitness is positioned in between many monitoring companies. So we have a bit of what New Relic offers. We have a bit of what Bugsnag/Rollbar offers. We have a bit of what DeadManSnitch offers. Each of those tools specialises in what it offers, while we offer a single solution that takes the most common needs and puts it into one simple solution. More importantly – because we focus specifically on Laravel – our solution provides a great insight into what is actually occuring.
3. Do you have any customers already, and what is the feedback from them? Are you happy with it?
We launched the day of Laracon Online (which we sponsored). Since then we are having people sign up each day to Eyewitness and the feedback has been extremely positive. We are working on adding some additional features based upon the feedback, and continue to improve the service daily.
4. What was the greatest challenge in creating Eyewitness?
We worked hard to ensure our package works for all versions of Laravel 5 – including 5.0 to support people running legacy applications. However we also wanted the installation to be dead simple. The power of Laravel’s IoC is truly amazing, and using that we’ve actually been able to use our package to “backport” Laravel 5.3 features into 5.0 and 5.1 – allowing us to monitor every aspect of an application – all without having to change a line of code. The framework of our package means we can now hook into any part of the lifecycle of the application – and we are excited about some of the upcoming features and power that provides.
We’ve also got a beta of a Laravel 4.2 package available now that should be tagged “stable” next week.
It all sounds really ambitious. So we wish Laurence good luck with the project, and thanks for the interview.
Guys, what do you think about EyeWitness? Does it have potential?
If you want to follow the project, here are a few links: