Phoenix has abandoned instrumenters in 1.5 in favour of the :telemetry
library. The following approach should work with all versions of Phoenix.
Simply ensure that the following code runs while your app is starting up (eg, in the Application.start/2
callback):
# lib/my_app_web/endpoint.ex check this file for the event_prefix
defmodule MyAppWeb.Endpoint do
...
plug Plug.Telemetry, event_prefix: [:my_app, :endpoint]
...
end
# lib/my_app/application.ex, add this line using event_prefix from above:
def start(_type, _args) do
...
OpencensusPhoenix.Telemetry.setup()
...
end
Phoenix instrumenter callback module to automatically create OpenCensus spans for Phoenix Controller and View information.
Simply configure your Phoenix Endpoint
to use this library as one of its instrumenters
:
config :my_app, MyAppWeb.Endpoint,
# ... existing config ...
instrumenters: [OpencensusPhoenix.Instrumenter]
Prior to Phoenix 1.4, the "route info" was not available to plugs. As such instead of using the http route as the resource name, we use the controller + action combination. For example:
- Pre 1.4:
MyApp.Posts.index
- Version 1.4 or greater:
/posts