elli-lib / elli_otter

OpenTracing instrumentation for Elli

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

elli_otter

OpenTracing, via otter, middleware for Elli.

Install

{deps, [elli_otter]}.

Use the elli_middleware module as the callback with the elli_otter_middleware in the mods list, followed by other middlewares and your callback.

ElliOtterConfig = elli_otter:config(#{prefix => <<>>,
                                      traced_request_attributes => [path, method, headers],
                                      log_exceptions => true}),
Config = [{mods, [{elli_otter_middleware, ElliOtterConfig}, ...]}],
ElliOpts = [{callback, elli_middleware}, {callback_args, Config}, ...],

Configuration

See the otter documentation for how to configure filtering and sending to Zipkin or Jaeger.

elli_otter provides the function config to return the proper list used for configuration in the middleware. It takes a map with options:

  • prefix: String the headers in requests will have for OpenTracing specific headers. Default: <<>>.
  • traced_request_attributes: List of a attributes to tag. Default: [path, method, headers].
  • log_exceptions: If true the and an exception happens that Elli handles, like request_parse_error if it fails to parse the request, a log of the stacktrace will be included in the span. Default: true.
  • debug: If true the span is started for every request. Default: true.
  • sampling_percent: Percent of incoming requests to create spans for. Default: 10. Note: When using defaults this one doesnt matter since debug is true.

About

OpenTracing instrumentation for Elli

License:Apache License 2.0


Languages

Language:Erlang 100.0%