opentelemetry_kura
OpenTelemetry instrumentation for Kura, the Erlang database layer.
Automatically creates OpenTelemetry spans for every Kura database query by subscribing to Kura's [kura, repo, query] telemetry events.
Installation
Add to your rebar.config:
{deps, [
opentelemetry_kura
]}.Setup
Call opentelemetry_kura:setup/0 in your application's start/2:
start(_Type, _Args) ->
opentelemetry_kura:setup(),
my_sup:start_link().That's it. Every Kura query now produces an OpenTelemetry span.
Span Attributes
Each span includes:
| Attribute | Description |
|---|---|
db.system | "postgresql" (configurable) |
db.statement | The SQL query |
db.operation | SELECT, INSERT, UPDATE, DELETE, etc. |
db.collection.name | Table name (when extractable) |
db.kura.repo | Repo module name |
db.kura.num_rows | Number of rows returned/affected |
Span names follow the "OPERATION table" convention (e.g. "SELECT users", "INSERT posts").
Options
opentelemetry_kura:setup(#{
db_system => <<"postgresql">> %% default
}).Requirements
- Kura >= 1.7.0 (telemetry events)
- OTP 28+