The full power of Honeycomb is unlocked by proper instrumentation, especially at the code level. The examples in this repository will help guide you along the way to unlocking this power for yourself by showing you how instrumentation is meant to be done.
Most of the top level directories in this repository correspond to an example which demonstrates instrumentation using Honeycomb and sample queries to help you along. The current examples are:
Directory | Meant to Teach | Description |
---|---|---|
buildevents |
Manual tracing | A small binary to help create traces out of Travis-CI builds, visualizing each step and command as spans within the trace. |
dotnet-core-webapi |
Custom instrumentation with .NET | A barebones web API with a HoneycombMiddleware.cs for capturing HTTP metadata. |
golang-gatekeeper |
Go Beeline and custom instrumentation | An API server paired with the Gatekeeper Tour |
golang-ratelimiting-proxy |
Go Beeline and cross-service tracing | A rate limiting, tarpitting proxy, intended to be put in front of a web server. |
golang-webapp |
libhoney-go | A two-tier web application (Go+MySQL) which is a Twitter clone. |
golang-wiki-tracing |
Manual Tracing with Go | A simple wiki (Go) manually instrumented for tracing. |
honeytail-dockerd |
Honeytail (flat log files) | Using Honeytail's keyval parser to ingest the structured logs of the Docker container engine daemon. |
honeytail-mysql |
Honeytail (flat log files) | Using Honeytail's mysql parser to ingest MySQL slow query logs |
honeytail-nginx |
Honeytail (flat log files) | Using Honeytail's nginx parser to ingest Nginx access logs from an instance acting as a reverse proxy. |
java-beeline |
beeline-java | A simple web app instrumented for tracing with the Java Beeline for SpringBoot |
java-webapp |
libhoney-java | A TODO API written and instrumented using Java Spring |
kubernetes-envoy-tracing |
Using the Honeycomb Opentracing Proxy to accept OpenTracing data | Two small services deployed to Kubernetes which communicate using Envoy Proxy |
node-tracing-example |
Node Beeline | A simple webapp showing intra-service and cross-service tracing. |
node-serverless-app |
Node Beeline + Lambda | A simple Lambda function meant to be part of a larger trace. |
python-api |
libhoney-py | A TODO API written and instrumented using Python (Flask). |
python-gatekeeper |
Python Beeline and custom instrumentation | An API server paired with the Gatekeeper Tour |
ruby-gatekeeper |
Ruby Beeline and custom instrumentation | An API server paired with the Gatekeeper Tour |
ruby-wiki-tracing |
Manual Tracing with Ruby | A simple wiki (Ruby) manually instrumented for tracing. |
webhook-listener-triggers |
Executing a webhook as a result of a Honeycomb Trigger firing | A small Go application which listens for HTTP requests issued as a result of a trigger firing |
The following have been proposed but not implemented:
Directory | Description |
---|---|
javascript-api |
A TODO API written and instrumented using JavaScript. |
sidekiq |
Observing behavior of the background job runner Sidekiq. |
honeytail-apache |
Ingesting Apache access logs using Honeytail. |
honeytail-haproxy |
Ingesting HAProxy access logs using Honeytail. |
logstash |
Using the Honeycomb Logstash plugin to send parsed events to Honeycomb. |
fluentd |
Using the Honeycomb Fluentd plugin to send parsed events to Honeycomb. |
We highly encourage community contribution! Let us know if there's anything you'd like to see by filing an issue and CC-ing Honeycombers for discussion.
Let us know if there is something specific you'd like to see by filing an issue.