Skip to content

draftedus/spandex_phoenix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpandexPhoenix

CircleCI Inline docs Coverage Status Hex pm Ebert

Phoenix and Plug integrations for the Spandex tracing library.

Usage

Add spandex_phoenix to your dendencies in mix.exs:

def deps do
  [
    {:spandex_phoenix, "~> 0.4.0"}
  ]
end

Configure it to use your desired Spandex.Tracer module in config.exs:

config :spandex_phoenix, tracer: MyApp.Tracer

Add use SpandexPhoenix to the appropriate module. This will "wrap" the module with tracing and error-reporting via Spandex.

Phoenix integration:

defmodule MyAppWeb.Endpoint do
  use Phoenix.Endpoint, otp_app: :my_app
  use SpandexPhoenix

  # ...
end

Plug integration:

defmodule MyApp.Router do
  use Plug.Router
  use SpandexPhoenix

  # ...
end

Customizing Traces

Traces can be customized and filtered by passing options to the use SpandexPhoenix macro. See the documentation for SpandexPhoenix for more information.

Integrating with Phoenix Instrumentation

If you are using Phoenix and you configure SpandexPhoenix.Instrumenter in your Phoenix instrumenters list, you will automatically get spans created for Phoenix.Controller and Phoenix.View timing, with the resource set to the name of the controller action or view name.

Note that this should be used in addition to the use SpandexPhoenix macro to start the trace and top-level span, as the instrumenter only creates child spans, assuming that the trace will already have been created.

Configure your Phoenix Endpoint to use this library as one of its instrumenters:

config :my_app, MyAppWeb.Endpoint,
  # ... existing config ...
  instrumenters: [SpandexPhoenix.Instrumenter]

More details can also be found in the docs on Hexdocs.

About

Phoenix Instrumentation tracer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Elixir 100.0%