Skip to content
This repository was archived by the owner on Apr 27, 2026. It is now read-only.

About

Absinthe Instrumentation for the New Relic Elixir Agent

Resources

Stars

2 stars

Watchers

1 watching

Forks

 
 

Latest commit

 

History

32 Commits

Folders and files

Repository files navigation

New Relic Absinthe

Hex.pm Version Build Status

This package adds Absinthe specific instrumentation on top of the new_relic_agent package. You may use all the built-in capabilities of the New Relic Agent!

Check out the agent for more:

Installation

Install the Hex package

defp deps do
  [
    {:new_relic_absinthe, "~> 0.1"},
    {:absinthe, "~> 1.4"},
    {:plug_cowboy, "~> 2.0"}
  ]
end

Configuration

Instrumentation

  1. Setup the agent's Plug instrumentation
  1. Add the Absinthe middleware
  • Define a custom middleware stack to install the instrumentation
defmodule MyApp.Schema do
  use Absinthe.Schema

  def middleware(middleware, _field, _object) do
    [NewRelic.Absinthe.Middleware | middleware]
  end

  # ...
end

Tips

  • Use GraphQL's OperationName
    • Transaction grouping is difficult with GraphQL since all queries go to one endpoint. Setting an Operation Name in your query enables improved Transaction grouping
query MyOperationName {
  user {
    id
  }
}
  • Prefer named to anonymous resolvers for better span reporting:
    • When you name your resolver, it makes your span names much more readable.
resolve {MyMod, :function}
resolve &MyMod.function/3

Instead of:

resolve fn args, res ->
  MyMod.function(args, res)
end

Anonymous functions in Elixir do have a name, but they look like this: -__absinthe_type__/1-fun-1-

About

Absinthe Instrumentation for the New Relic Elixir Agent

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages