Tracing in Honeycomb
In this three and a half minute video, we show you how to find all the details associated with your traces. You’ll also learn how you can navigate and customize the waterfall trace view in Honeycomb.
Pierre Tessier [Director, Solutions Architect|Honeycomb]:
The Honeycomb waterfall trace view contains all the details associated with your trace. Let’s explore its features so you can make the best use of this view.
Starting off with the center of it itself, the hierarchical listing of all of your spans and tiny bars associated for each one, and some of these will also include circles within a timing bar. These are indicative of a span event that took place during that span. You may also notice a T bar that shows up at the end, these are trying to tell you that there was an asynchronous span that finished after this span itself here finished. Sometimes, it can also mean a clock skew and if you see the T bar at the front of it, it’s most definitely clock skew between your services and you should get that fixed right away.
Another way to navigate this screen is to use the arrow keys on your keyboard up and down to select different spans. And you’ll have this little menu button over here on the left that you could use to collapse or expand your spans at that various level in the hierarchy, you could pull up that same menu bar using the enter key on your keyboard.
Now, when you selected a span, we’re going to pull the details for that span over here on the right, starting off with a Heatmap. This Heatmap here is filtered for all the spans of service name “checkout” and the name of “MSdemo checkout service place order.” If I were to select another span like this one down here with checkout, with the select checkout discounts, I could see my Heatmap looks really different and my crosshair is trying to indicate that to me, where this one falls amongst its peers.
Below the Heatmap, we’re going to have all the details associated with that span itself, including all of its attributes. You can have up to 2000 unique attributes in Honeycomb. And in Honeycomb, we want you to drive more questions and more querying, so from any of these attributes, you could pull up a small menu to drive that query group by this field or filter on its value or copy its name or value to use for later on. If there were any span events associated, you’d be able to pull them up right here and do the same thing to understand what each event was. Now sometimes with those 2000 attributes, you might have more than you could actually go through. So you could go ahead and search for them and we’ll search both the keys and the values of all your attributes. You can see here, I have some of them with service and the value or service and the key or name itself.
Now, what else can we do with this actual waterfall view right here? Well, we could add more columns to this, I’ve got a whole list of all my columns. Maybe I care about anything that has a database name associated with it. And when I do that, I’ve got a list here of all of the different spans that had a database associated with each one, but we could do a little bit more than just that. I could color my spans based on that name as well, and now I could see it kind of laid out in a maybe more visually appealing way. You could do this with any of the attributes that you have inside of your entire trace.
And finally, maybe you know, about something inside your trace, but you can’t remember what span had it. You go ahead and type for it, like “statement” for example, and we’ll pull up every single span that has that word in an attribute key or value. You could use these arrow buttons right here to navigate through the various spans and we’ll even pull up that search criteria to the top of your attribute list. That’s all there is to know for the trace waterfall view in Honeycomb. I hope you enjoyed this video.
If you see any typos in this text or have any questions, reach out to email@example.com.
How Tracing Uncovers Half-truths in Slack’s CI Infrastructure
Frank Chen shares how traces gave us a critical and compounding capability to better understand where, when, how, and why faults occur for our customers in CI. We share how shared tooling for high-dimensionality event traces (using SlackTrace and SpanEvents) could significantly increase our velocity to diagnose code in flight and to debug complex system interactions.