Skip to content

An Elixir Plug for adding OpenTracing instrumentation.

License

Notifications You must be signed in to change notification settings

nmohoric/plug_opentracing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PlugOpenTracing

Build Status Hex.pm Documentation

An Elixir Plug for adding OpenTracing instrumentation.

Usage

Update your mix.exs file and run mix deps.get.

defp deps do
  [{:plug_opentracing, "~> 0.1"}]
end

Add the plug to a pipeline. In this case we will look for the uber-trace-id header to exist. If so, it is split on : and the first and second values are used as the trace_id and parent_id when creating the span.

defmodule MyPhoenixApp.MyController do
  use MyPhoenixApp.Web, :controller
  alias Plug.Conn.Status

  plug PlugOpenTracing, trace_id: 'uber-trace-id'
  plug :action

  def index(conn, _params) do
    conn
    |> put_status(Status.code :ok)
  end
end

The created span can be accessed using conn.assigns[:trace_span]. This is useful when you want to use this span as the parent of another span in your request, or if you want to add tags/logs to the span before it is finished.

The request span will be finished at the end of your request using a callback, which will send it to the Jaeger or Zipkin endpoint you've set up in your config.

About

An Elixir Plug for adding OpenTracing instrumentation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages