Complex problems can often be solved with simple, practical solutions. That’s what our team at Kenshoo discovered when we realized that we needed a way to easily and proactively track specific log messages which indicate mission-critical events.
As the engineers tasked with developing technology that thousands of marketers depend upon, it is critical that we ensure our product remains fully functional at all times in order to support the wide variety of marketing campaigns managed by our customers.
We found that log analysis plays an important role in monitoring our production environment, maintaining our infrastructure, and enabling us to understand when something may malfunction. By constantly analyzing and monitoring our log data, our team can catch suspicious events before they affect our customers which keeps both our product and credibility intact.
Importance of Log Analytics and Proactive Alerting
Of course, one of the main reasons for implementing log analysis is to easily monitor our environment and prevent downtime, errors, and issues in production. As we have seen in many high profile examples, downtime can cause severe repercussions not only in terms of customer experience and credibility but financially as well. In fact, according to a recent study of IT Managers, downtime typically costs organizations between $301,000-$400,000 per hour.
Although downtime is a huge concern, it is not something that we frequently experience. More often, proactive monitoring catches minor production issues that might affect our customers. Kenshoo’s platform integrates with over 100 third-party systems that plug into a client’s existing infrastructure. Of course, this also means that occasionally, one of these integrations can fail or break, causing us to lose our ability to optimize our client’s marketing campaigns. Despite the fact that our team constantly monitors our environment in order to catch these events, small issues can easily be missed as a result of data overload.
With so much log data streaming each second, issues are at risk of getting lost in the clutter. That’s where alerting comes in. Alerting takes log analytics to the next level by leaving nothing to chance by notifying our engineers when critical events take place. Logz.io’s alerting mechanism has been instrumental in this process and enables our team to proactively monitor and troubleshoot our systems with ease and efficiency.
Empowering DevOps Team with Proactive Alerting
After implementing Logz.io alerts, we found that the feature served a dual purpose. In addition to enabling proactive monitoring, the alerts help our team to stay aligned. Our engineering team strongly believes in DevOps principles and strives to bridge gaps between developers and operations in order to encourage developers to own their code from development through production. A fully managed, end-to-end monitoring system—used by over 200 employees—enables us to gain visibility and seamlessly facilitate development workflows.
Because the alerting informs us of errors or threats, our team can work together to quickly resolve issues in production. Most importantly, having a more streamlined approach to monitoring empowers our developers to truly own their code throughout the full development cycle.
While our team found alerting incredibly useful for promoting full cycle ownership, we still felt there were ways this process could be improved. For example, if a developer was reviewing existing code or writing new code, he or she may come across a log message worth creating an alert as it could indicate potential errors or threats that might affect performance.
In addition, when developers need to analyze and troubleshoot a specific ticket, they may come across points in their code’s flow that may be indicative of an issue. Once a developer sees a suspicious log message like this, he or she can try and figure out if it occurs frequently by setting up an alert.
Normally, to create this alert for any of these scenarios, a developer would have to go into Logz.io, search, then create the alert. Because this process takes a of couple of steps, it would sometimes slow down the code review and troubleshooting processes.
For our team, efficiency and productivity go hand-in-hand with DevOps. In order to continue pushing high-quality code into production as quickly as possible, we felt that we needed to enhance the alerting process to make it more seamless than ever.
In order to accomplish this, we decided to simplify the alerting process by creating a completely Logz.io-native alerting mechanism.
Journey to Seamless Alerting
The main consideration for creating alerts in Logz.io was for proactive monitoring. For the sake of simplicity, we felt that creating these alerts from IntelliJ was the ideal solution. We wanted our development team to create alerts straight from the log messages themselves in just a few clicks. In addition, we wanted our plugin to be easy to create, simple to implement, and community driven. Most of all, we wanted to continue to encourage full cycle ownership in our team by making it easier than ever for them to keep tabs on their production environment.
With all of this in mind, we decided to create a IntelliJ/Jetbrains Plugin which would enable developers to generate alerts straight from their code. While users will need a Logz.io API Token the first time they use it, our plugin removes steps usually needed to create alerts, making it a more intuitive and fluid process.
Here’s how to set it up:
Consider the following log message
Simply select the code in theIDE → Right Click → Select “Create Logz.io Alert”. Then, the menu below will appear.
Once selected, a new Dialog will be opened
Then, adjust any of the values and click OK to create this alert in Logz.io
Achieving Full Cycle Ownership
Our alerting plugin encourages our developers to own their code throughout all stages of production. Since developers can easily create and monitor alerts in their dev environment when creating new features, it’s easy for them to check the performance of the code they write and the systems they deploy. As a result, they have become more invested in the quality and functionality of the product itself.
Testing has become a simpler and much more fluid process and our DevOps team is able to more easily identify issues that will inhibit the functionality of our product.
Open to the Community
As fans of open source software, community-driven initiatives are a huge part of our culture. In fact, when we were first outlining our requirements for our alert plugin, making it open to the community was at the top of our priority list.
We published our plugin so that anyone using this popular developer tool—as well as Logz.io—can take advantage of our log-based alerting plugin.
In the upcoming months, we plan on open sourcing the plugin so that even more developers can take advantage of simplified alerting right inside Logz.io.
We are very excited and proud of how this plugin has empowered our team and streamlined our development processes. We believe it can help others achieve the same goals.
Check out our plugin here and let us know what you think! Stay tuned for updates when we officially open source the tool.
We hope you find it as useful as we did.