/examples

Example apps and instrumentation for Honeycomb

Primary LanguageGoApache License 2.0Apache-2.0

Honeycomb Instrumentation Examples

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

Proposed Examples

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.