README.md
# OpentelemetryCommanded
Telemetry handler that creates OpenTelemetry spans from [Commanded](https://github.com/commanded/commanded) commands and events.
## Supported spans
OpentelemetryCommanded currently creates spans for:
* Application Dispatch
* Aggregate Execute
* Event.Handler Handle
* ProcessManager Handle
* EventStore `append_to_stream` and `stream_forward`
## Installation
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `opentelemetry_commanded` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:opentelemetry_commanded, "~> 0.2"}
]
end
```
Once installed, execute the following function in your application behaviour before your top-level supervisor starts.
``` elixir
# lib/my_app/application.ex
OpentelemetryCommanded.setup()
```
Then add the `OpentelemetryCommanded.Middleware` to your `Commanded` routers
``` elixir
middleware OpentelemetryCommanded.Middleware
```
## Documentation
[https://hexdocs.pm/opentelemetry_commanded](https://hexdocs.pm/opentelemetry_commanded).