Product Updates  

Feature Focus: September 2022

By Nick Rycar  |   Last modified on October 3, 2022

Another month has come to a close, so I’m back again to take you through what’s new and noteworthy from the month of September. If you missed last month’s blog, this will be a monthly recurring series to keep you posted with the latest and greatest at Honeycomb. There’s a ton to cover, so I’ll dispense with the preamble and dive right in.

Updated APIs and transports

Dataset API updates

Dataset definitions allow you to define which fields you send to Honeycomb have a special meaning that needs to be understood. While these definitions could always be managed in the UI, they can now be defined and updated programmatically via the new dataset_definitions API.

An existing dataset can have its definitions updated via the PATCH endpoint, like so:

curl https://api.honeycomb.io/1/dataset_definitions/$DATASET_SLUG \
    -X PATCH \
    -H "X-Honeycomb-Team: YOUR_API_KEY" \
    -d '{"trace_id": { "name": "trace.trace_id"}, "error": {"name": "err_msg"}}'

SLO API updates

We’ve augmented the payload of GET requests to the SLO API in a couple of small (but exciting!) ways. First, you will now see reset_at alongside created_at and updated_at, which contains a timestamp for when the requested SLO was last reset. Additionally, enterprise customers now have the option to execute their requests with the new ?detailed query param, which will include the compliance percentage and budget remaining for the requested SLO. Now, your SLO health is just an authenticated curl away, making it that much easier to integrate into your toolchain of choice. 

Here’s what an example API request might look like.

Request:

curl https://api.honeycomb.io/1/slos/<dataset>/<slo-id>?detailed -X GET  \
    -H "X-Honeycomb-Team: YOUR_API_KEY"

Response:

200 OK
{
  "time_period_days": 6,
  "target_per_million": 950000,
  "id": "t2xbD5vNhh1",
  "name": "slo name",
  "description": "what is the intent of this slo",
  "sli": {
    "alias": "service_error_indicator",
    "expression": "GTE($\"level\", 500)"
  },
  "created_at": "2022-05-11T09:53:04-07:00",
  "updated_at": "2022-05-11T09:53:04-07:00",
  "reset_at":   "2022-05-11T09:53:04-07:00",
  "budget_remaining": 7.73,
  "compliance": 95.39
}

HTTP/JSON support for OTLP 

Another small but impactful change—and the heading says it all. We can ingest your OTLP (OpenTelemetry Protocol) data over gRPC, HTTP/protobuf, and now, HTTP/JSON as well! 

New Refinery releases

As the data you collect grows, it becomes more and more important to sample that data, or collect a representative subset of the overall data without losing valuable insights. Refinery is a trace-aware sampling proxy that specializes in doing just this for your Honeycomb traces. It automates the process of determining which traces to keep or discard.

There’s been a ton of activity in the Refinery project of late, including two releases in the month of September (1.16.0 and 1.17.0). There are new bugfixes and enhancements, but a theme you’ll see in this update is improved methods for diagnosing and validating your sampling process.

Of particular note, there is now a new query endpoint you can use to validate the running configuration, as well as an optional flag that will attach sampling information to your traces.

New integration: Terraformer

Did you know that there’s a Honeycomb provider for Terraform? Being able to manage your observability as code can be invaluable for automating processes, onboarding new people, and bootstrapping new environments. Still, there is one potential impediment to adoption: the process of collecting and translating existing configurations to Terraform can be time-consuming and tedious, particularly for longtime Honeycomb users with a lot of manually created resources.

Actually, scratch that. There was a potential impediment to adoption that’s addressed with the release of Terraformer 0.8.22, which now includes support for Honeycomb. If you’re unfamiliar, Terraformer is “a CLI tool that generates tf/json and tfstate files based on existing infrastructure.” In other words, you can point Terraformer at an existing resource that Terraform knows how to configure, and it will reverse engineer the appropriate config files to recreate them…
…and those resources now include Honeycomb! Go ahead and check it out. You can grab any of the desired resources with:

export HONEYCOMB_API_KEY=MYAPIKEY
./terraformer import honeycombio --resources=board,trigger,derived_column,slo

Updated integration: PagerDuty

Our PagerDuty integration was updated with a snazzy new feature: image snapshots. Now, when a PagerDuty alert is created from a Honeycomb trigger, it will attach an image of a graph that corresponds with the associated trigger. No changes required to your integration settings, just more context in your alerts.

Note: This feature is currently limited to alerts generated from triggers and does not apply to burn alerts.

Feature Focus September 2022: A PagerDuty alert triggered by Honeycomb including an image of a graph of P99 duration that corresponds with the alert.

Updated integration: GitHub Actions

We’ve released version 2.0 of our gha-buildevents utility. If you’re not familiar with Buildevents, it allows you to add instrumentation to your CI/CD pipelines and send traces to Honeycomb. If you run builds with GitHub Actions, we created the gha-buildevents action to make it easier to instrument your workflows. With the release of version 2.0, you can now generate traces for an entire workflow end to end or for a singular job.

You can check out the details in the README as well as an updated example configuration.
Traces can be workflow scoped! By the way, since you’re reading this and you’re most likely a fan of both Buildevents and GitHub Actions, have you seen our new guide? It’ll take your CI game to the next level.

August, revisited

We made a couple of small changes for some of the items featured in last month’s feature focus

Derived Column editor

The new IDE-like editor is now default when creating or updating a Derived Column. If you were a fan of the old editor, don’t worry—you can still toggle. Either way, we’d love your feedback on the new experience.

We’ve also updated the live preview such that the Derived Column data shows up in the left column, making it easier to see changes at a glance.

A screenshot of a preview data table with the Derived Column (log_duration_ms) on the left, and a related column (duration_ms) on the right.

Docs copy button

We noticed that our new copy button wasn’t showing up on textboxes with tabs. This has been resolved. Let the copypasta flow! 🍝

Wrapping it up

That’s all for the back-to-school edition of feature focus. As always, you can find a full list of updates we’ve made to Honeycomb in our changelog, in Pollinators Slack, or by following our Twitter account via the #changelog hashtag.

See you next month!

 

Related Posts

Product Updates   Observability  

Introducing Relational Fields

Expanded fields allow you to more easily find interesting traces and learn about the spans within them, saving time for debugging and enabling more curiosity...

Product Updates   Instrumentation  

Safer Client-Side Instrumentation with Honeycomb's Ingest-Only API Keys

We're delighted to introduce our new Ingest API Keys, a significant step toward enabling all Honeycomb customers to manage their observability complexity simply, efficiently, and...

Product Updates   News & Announcements  

Now Available: Honeycomb Launches Data Residency in Europe

At Honeycomb, we are very concerned about privacy and data sovereignty—it’s something we take very seriously, and in an effort to serve our customers better,...