Honeycomb Blog

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...

Support for AWS Application Load Balancer in the Honeycomb AWS Bundle

silly dancing bee gif

When we announced support for ingesting AWS Elastic Load Balancer access logs to Honeycomb, one of the first follow-up requests was for us to add support for AWS Application Load Balancer as well (which, alongside the Network Load Balancer, represents ELBv2). Given the list of features that ALB supports, it’s not difficult to see why. Who doesn’t want microservice-friendly path routing, native HTTP/2 support, tight integration with Amazon’s container-related services, and more? Today, we’re happy to announce that we’ve released support for ingesting such ALB logs. Based on work originally submitted by Jonathan Reichhold, community member Pavan Ravipati carried the pull request most of the…

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...

Significant CPU Usage Improvements in New Version of libhoney.py

We’ve published version 1.2.0 of libhoney-py, which now batches events. Based on our internal testing, this results in 8-10x more efficiency, so you probably want to give this a try if you’re sending us Python events. We’re extra-grateful to our pals at Nylas for inspiring us to prioritize this improvement by showing us (with their glorious flame graphs) exactly what we were subjecting them to. Before they started using the new version: And after, confirming our 10x improvement estimate: You can find the docs, API reference, and source code for libhoney.py here: Documentation: https://honeycomb.io/docs/connect/python/ API reference: https://honeycombio.github.io/libhoney-py/ Source code: https://github.com/honeycombio/libhoney-py…

Read More...

Dynamic Sampling in Honeytail

A while ago I wrote a three part series on sampling, covering an introduction, some simple straight forward ways to do it, and some ideas for fancy implementations. I’m happy to say that that work has made its way in to Honeytail, our log tailing agent. Dynamic sampling in Honeytail works with a two phase algorithm – it measures the frequency of values in one or more columns for 30 seconds, computes appropriate sample rates for each value based on trying to fit a logarithmic curve to the traffic, then uses those values for the following 30 seconds. While it’s…

Read More...

Introducing Honeycomb’s TCP Agent for MongoDB

We’re excited to release honeycomb-tcpagent, an efficient way to get query-level visibility into your MongoDB deployment. honeycomb-tcpagent parses TCP traffic between MongoDB clients and servers, and reconstructs queries in a friendly JSON format. Honeycomb helps you explore this data to quickly uncover anomalies. Get started with Honeycomb and run the agent, or keep reading for more background and examples. Are you running a database that’s not MongoDB? Let us know! Support for MySQL is already in the works. Database Observability Means Lots of Questions About Lots of Data For any serious database performance work, the ability to fully capture a…

Read More...

Enriching Nginx Logs with request_time, Server Data, and Other Goodies

How can you make your nginx logs more awesome? Nginx has some fantastic data hiding in its log_format spec, but oddly enough, most of it is not enabled by default. Here are a couple of variables to add to your nginx logs to help you get the most from them. Two suggestions $request_time: Hands down, the most important measurement for tracking the performance of a dynamic service is the response time of each request that comes in … and even that measurement is not enabled by default. I can understand how it used to be that way — way back…

Read More...

Guest Post: Web Latency Spikes

Intro: Our friend Issac Kelly has been working part time with us on marketing and copy. The first thing he did was set up Honeycomb for his own business. In less than 20 min, he had web logs streaming in to Honeycomb, and then discovered two unknown problems. We were delighted, because surfacing unknown-unknowns is near and dear to our hearts. If you already know what’s wrong, the hardest part is often over! We asked him to write up what happened.—charity Discovering and Exploring Web Latency Spikes Last week I got a signup invite for Honeycomb. My consulting business has…

Read More...

Honeycomb’s Open Source Connectors

We’re happy to announce 3 open sourced components to help you get your data into Honeycomb – 2 libraries and a log tailing utility. We have two libraries available to make it easy to send events to Honeycomb directly from within your application: go and python. For details of how our libraries integrate with your code, you can read our docs on SDKs. // call Init before using libhoney libhoney.Init(libhoney.Config{ WriteKey: “abcabc123123defdef456456”, Dataset: “Example Service”, }) defer libhoney.Close() // create an event, add fields ev := libhoney.NewEvent() ev.AddField(“duration_ms”, 153.12) ev.AddField(“method”, “get”) // send the event ev.Send() Honeytail is a small…

Read More...