Honeycomb Blog

How Honeycomb Uses Honeycomb, Part 9: Tracing The Query Path

This post continues our long-running dogfooding series from How Honeycomb Uses Honeycomb Part 8: A Bee’s Life. To understand how Honeycomb uses Honeycomb at a high level, check out our dogfooding blog posts first — they do a great job of telling the story of problems we’ve solved with Honeycomb. Last week we announced the general availability of tracing in Honeycomb. We’ve been dogfooding this feature extensively as part of an ongoing effort to keep Honeycomb fast and reliable. In this post, we’ll discuss how we use tracing internally, some of the ways it’s helped us improve our service, and some of the…

Read More...

Instrument Your Ruby App In Minutes with the Honeycomb Beeline for Ruby

there has to be a better way! fake infomercial gif

You’ve always been able to get observability for your Ruby apps by instrumenting them with our SDK, affectionately known as libhoney, but we know instrumenting code you’ve already written is nobody’s favourite job. If only there were some way to automate the repetitive parts, so you could get instant insight into what your app is doing in production, and then focus your effort on augmenting that insight with the information that’s unique to your app!   Meet the Honeycomb Beeline for Ruby. Like our Beelines for Go and Node, it understands the common packages you’re using and automatically instruments them to send useful events to…

Read More...

Instrument Your Go App In Minutes with the Honeycomb Beeline for Go

Want magical per-request instrumentation to roll effortlessly out of your Go app without even looking like you’re trying? Meet the Honeycomb Beeline for Go! Beelines automatically construct and emit useful events for common components of your application, such as HTTP handlers and SQL connections. You can now instrument these components in just a few lines of code, and the Beeline will automagically send Honeycomb everything you need to quickly start visualizing complex questions, like “what’s the 99th percentile latency of each endpoint?” or “what endpoints are being hit most often?” And if you want to slice and dice additional app context, you can add a custom event…

Read More...

The fastest, most direct route to instrumented code: a Honeycomb Beeline

If you’re feeling too busy or overwhelmed to instrument your code, we are here for you. We’ve talked many times about the value of instrumentation, and how it’s necessary to instrument your code properly to have access to the kind of data you need to get real observability. Instrumenting your code can mean a lot of things, but in particular it means you have to augment it in many different places, which is time-consuming. What if there was something we could do to reduce that time to almost zero? Meet the first in a series*, the Honeycomb Beeline for Node.js!…

Read More...

Instrument Your Rails Apps Automatically With Honeycomb’s New Rails Integration

You’ve always been able to get observability for your Ruby apps by instrumenting them with our SDK, affectionately known as libhoney. Unfortunately, instrumenting code you’ve already written is nobody’s favourite job. If only there were some way to automate the repetitive parts, so you could get instant insight into what your app is doing in production, and then focus your effort on augmenting that insight with the information that’s unique to your app! That’s why we’re releasing our Rails integration. Out of the box, Rails web apps provide a rich stream of data about what they’re doing and how they’re…

Read More...

Get Observability for Your Mobile Apps with Honeycomb

If you think about it, mobile apps are among the production services most in need of real observability: nearly countless hardware platforms and operating systems in combination with your app’s code result in a dizzying matrix of possible sources for any given issue, which means you need the power of true high-cardinality search to solve your problems. Have no fear, though–here are some tips for thinking about observing a mobile app: Take advantage of Honeycomb’s support for high-dimensionality + high-cardinality In our own production services, we have a standard set of metadata that we know will be useful when debugging…

Read More...

Announcing the Honeycomb Examples Repository

Learn By Example Honeycomb is next generation DevOps observability and debugging. It’s incredibly flexible and there’s a lot to learn, so getting started sending data can seem overwhelming. We’re toiling like good worker bees to make the path clearer, and one of the best approaches is near and dear to my heart – teaching by example. As a hands on learner, I couldn’t be more pleased to introduce you to the shiny new Honeycomb Examples Repo today. Containing four examples in its early stages, I hope to someday have it serve as a reference of fully shrink-wrapped ready to rock…

Read More...

Simple Structured Logging with NLog

We’re grateful for this guest post from Tim Wilde! You can find the source code for the examples he uses in his github repo. Strings are where data go to die There you go; I said it. How often have you found yourself contemplating some hair-brained regex scheme in order to extract an inkling of value from a string and wishing the data had just arrived in a well-structured package without all the textual fluff? So why do we insist on writing prose in our logs? Take “Exception while processing order 1234 for customer abc123” for example. There are at…

Read More...

Best Practices for Observability

Observability has been getting a lot of attention recently. What started out as a fairly obscure technical term, dragged from the dusty annals of control theory, has been generating attention for one simple reason: it describes a set of problems that more and more people are having, and that set of problems isn’t well-addressed by our robust and mature ecosystem of monitoring tools and best practices. In a prime example of “this may be frustrating and irritating, but this is how language works” — observability, despite arriving on the computer architecture scene much later than monitoring, turns out to actually…

Read More...

Instrumenting browser page loads at Honeycomb

Update: We now have a browser js guide with practical tips on how to send browser data to Honeycomb. “Nines don’t matter if users aren’t happy” – my boss As web applications have grown more complex (Responsive design! React! Redux!) and browser capabilities have grown more awesome (Web sockets! Prefetch/Prerender! Service Worker!), the mapping between a single http request and what the customer actually experiences when loading the page has gotten fuzzier and fuzzier. As a result, the best way to understand what our users experience when using our app is to instrument the browser directly. The Problem Unfortunately, browsers…

Read More...