Josh Lee b85420afed
Don't record DB statements without sanitizaiton (#166)
* Don't record DB statements without sanitizaiton

This adds an option to OpentelemetryEcto.setup/1 that allows a query
sanitization function to be provided. If it is not provided, queries
are not captured (this is the default).

* test that db.statement isnt present unless query sanitizer is configured

* rename option to `:db_statement`

* run mix format
2023-06-13 05:13:01 -06:00
..
2021-10-08 15:38:18 -06:00
2021-10-08 15:38:18 -06:00
2023-05-23 04:49:29 -06:00
2021-10-08 15:38:18 -06:00
2023-05-23 05:04:01 -06:00
2022-11-15 17:48:50 -07:00
2021-12-28 16:39:06 -07:00

OpentelemetryEcto

Telemetry handler that creates Opentelemetry spans from Ecto query events. Because Ecto emits telemetry events only after queries have finished, OpentelemetryEcto estimates the start time of the span by subtracting the reported total duration from the current timestamp.

After installing, setup the handler in your application behaviour before your top-level supervisor starts.

OpentelemetryEcto.setup([:blog, :repo])

See the documentation for OpentelemetryEcto.setup/2 for additional options that may be supplied.

Installation

If available in Hex, the package can be installed by adding opentelemetry_ecto to your list of dependencies in mix.exs:

def deps do
  [
    {:opentelemetry_ecto, "~> 1.0"}
  ]
end

Compatibility Matrix

OpentelemetryEcto Version Otel Version Notes
v0.1.0 <= v.0.5.0
v1.0.0-rc.1 v1.0.0-rc.1
v1.0.0-rc.2 v1.0.0-rc.2
v1.0.0-rc.3 v1.0.0-rc.3
v1.0.0-rc.4 v1.0.0-rc.4
v1.0 v1.0

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/opentelemetry_ecto.