opentelemetry-erlang-contrib/instrumentation/opentelemetry_ecto
Andrew Rosa 3faa246d02
Remove exporter race-condition on tests (#44)
Default exporter immediately attempts on start connect to
`:otel-collector` default port. As we don't have any collector running
on our test environment, this results in a few warnings. That's not an
issue in itself, as code immediately switches to another export, but
creates a lot of noise.

This patch moves the exporter setup to `config/test.exs`, essentially
removing the need to restart opentelemetry applicationn for each test
case. The only work setup blocks do is update the exporter's target pid.

The processor was changed to simple mode, available now, which also remove
another vector of (unlikely but theoretically possible) race-conditions.
2022-03-24 11:48:59 -06:00
..
config Remove exporter race-condition on tests (#44) 2022-03-24 11:48:59 -06:00
lib Add idle_time measurement (#66) 2022-03-14 10:22:22 -06:00
priv/test_repo/migrations Migrate otel ecto (#16) 2021-10-08 15:38:18 -06:00
test Remove exporter race-condition on tests (#44) 2022-03-24 11:48:59 -06:00
.formatter.exs Migrate otel ecto (#16) 2021-10-08 15:38:18 -06:00
.gitignore Migrate otel ecto (#16) 2021-10-08 15:38:18 -06:00
CHANGELOG.md Otel 1.0 support (#57) 2022-01-04 18:58:06 -07:00
LICENSE Migrate otel ecto (#16) 2021-10-08 15:38:18 -06:00
README.md Otel 1.0.0-rc.4 updates (#54) 2021-12-28 16:39:06 -07:00
docker-compose.yml Otel 1.0.0-rc.3 support (#27) 2021-10-13 21:11:26 -06:00
mix.exs Otel 1.0 support (#57) 2022-01-04 18:58:06 -07:00
mix.lock Otel 1.0 support (#57) 2022-01-04 18:58:06 -07:00
rebar.lock Otel 1.0.0-rc.4 updates (#54) 2021-12-28 16:39:06 -07:00

README.md

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.0-rc.4"}
  ]
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

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