Let’s Talk Logs
Application and server logs are the eyes and ears for developers when it comes to troubleshooting application problems. Traditional log management solutions do not provide any features for tracking and identifying application errors. What’s worse, multiple users using your application at the same time can cause a major tangle in your logs. Sorting through your logs to figure out which log statements go together for a single web request is a huge headache.
In the fall of 2016, the dev teams at VinSolutions were ready for deeper insights into their code without complexity. Headquartered in Kansas and wholly owned by Cox Automotive, VinSolutions provides automotive dealers with an all-in-one internal management, sales, and service marketing solutions platform. Nathan Wambach, a Senior Software Engineer, tells us that they were looking for more in-depth logging. Having used AppDynamics before, he found it difficult to drill down to anything that was useful.
“With Retrace, the [data] is front and center. It’s easy to find any problems or bottlenecks [that] are slowing down your processes or code.”
This is due in large part to the options that Retrace offers in organizing and associating log messages. For example, a developer can link all of her log messages together by a unique transaction identifier. Full-text searching is also available for log messages, as well as filtering on any fields captured. Several quick filters are easily accessible for things like app name, environment, server name, log type, and log levels.
Better Apps Start with the Developer
Before choosing Retrace, Nathan and some of his co-workers knew about Stackify already, having used Prefix on their local machines. An extremely robust, yet lightweight profiler, Prefix gave him the ability to track remote HTTP calls to determine if they worked, how long each call takes, and so forth.
Like all developers, Nathan and his team are on a mission to build better products and improve their code. On an individual level, Prefix lets him see what his code is doing and how it performs on a remote server.
He tells us, “I liked getting the visibility into all that was going on and all the calls to the database.”
But when he started working with Retrace, the depth of visibility was astonishing. Although logging joins a long list of features that this APM tool provides, Nathan believes that it’s the biggest component of his team’s success. “Our ability to log trace messages, information messages, [and] exceptions is great.”
His enthusiasm is contagious as he tells us the magnitude of Retrace’s impact. “You can log whatever you want,” he says with a big smile. Since Retrace supports structured logging objects to log additional fields within your log messages, anyone on Nathan’s team can view these in a JSON format and any of these fields can be filtered on.
On top of that, the log viewer’s feature for exploring log fields will show what custom fields are being logged. Nathan can also use some log analytics functionality to see how often the fields are used and what type of values are being logged.
“If there’s a part of the code that you’re trying to get some insight into[,] you can log as much information as you need to,” Nathan continues. “Sometimes it’s hard to see this stuff as you’re debugging and the logging can really provide a lot of insight. And the ability to have exception tracking in production – I love to see that.”
Tunnel vision? Retrace can help
Nathan knows firsthand that a developer’s greatest strength and weakness is his focus. There is pressure to not only code well, but also to do so efficiently and quickly. This can lead to a narrower view of what could happen beyond staging. “When we’re in our own little dev world, we don’t necessarily get all of the same scenarios that you would get in production with the same sort of volume.”
Thankfully, Retrace can offer peace of mind during coding, while also making sure everyone on the team is accountable for their work before and after work is released.
“Retrace has made catching things that get through QA and past the developer a lot easier to find [and] fix.”
It’s more than performance monitoring; it’s a catalog of where things are working and where you – and your team – can improve.
Empowering Your Developers Strengthens the Team
Jamie Hamm, Software Engineer II on the Communications team, agrees that logging has been an integral feature. After all, Retrace goes way beyond correlating application logs with errors by fully integrating the experience with their APM transaction tracing capabilities. Now developers can see logs and errors grouped by individual web requests along with the SQL queries, HTTP calls, and much more.
Before making the switch, his team used a few logging implementations, but mainly log4net. After transitioning to Retrace, the convenience of navigating directly to the logs impressed him.
“It was kind of like going through a toy store,” he says. “You have your log section that gives you everything that you want to know about your application and then you have everything [in] the web service and other services section that can give you insight into how it’s performing in the production environment.”
Logging with Retrace has done more than just offer the insights and visibility that developers like Nathan and Jamie rely on. It’s also changed the way their teams work. Jamie sums it up like this: “It’s [gone] from ‘Let’s submit a form to get the logs’ to ‘Have you checked [Retrace]?’”
For VinSolutions, Retrace has given developers access to monitor the performance of their apps and to troubleshoot more effectively with unparalleled logging depth. And, perhaps most importantly of all, Retrace empowers teams to make informed decisions quickly so everyone can keep moving forward.
- KC-Based Stackify Is Growing Fast, Hiring Too - December 10, 2019
- Fast-growing Leawood tech company rounds up local investors for $6M raise - December 5, 2019
- More than a podcast host: Matt Watson’s Stackify raises $6M in rapid scaling maneuver - November 25, 2019
- What are Microservices? Code Examples, Best Practices, Tutorials and More - September 13, 2019
- 9 Best Practices to Handle Exceptions in Java - August 22, 2019