Closed barthez closed 4 years ago
Segment breakdowns are powered by metrics that the agent doesn't collect yet. The segments themselves are visible in Transaction Traces & as Span Events in Distributed Traces
So, it will show transaction breakdown if NewRelic.report_metric
would be added somewhere here, am I right?
Is there anything that stops us from doing so?
No, this has to be done in the agent itself, it has to report "scoped" metrics for the segments
I'm not seeing any Transactions traces show up for absinthe queries or resolvers, not sure if I'm doing something wrong. I'm using absinthe together with phoenix, does this setup sound like it should report query resolvers as transaction traces?
instrumenters: [NewRelic.Phoenix.Instrumenter]
to Endpoint configuse NewRelic.Phoenix.Transaction
to App.EndpointNewRelic.Absinthe.Middleware
to schema middlewaredoes use NewRelic.Transaction
need to be added somewhere?
this change seems to not do anything:
pipeline :graphql do
+ use NewRelic.Transaction
plug :accepts, ["json"]
plug :fetch_session
end
scope "/graphql", as: :graphql do
pipe_through [:graphql]
forward "/", Absinthe.Plug,
schema: App.Schema,
before_send: {AppSchema, :before_send}
end
Newer versions of the agents support this, just upgrade!
Describe the bug Transaction segments are not displayed in New Relic. I did inspect segements in
NewRelic.Transaction.Reporter.complete_transaction
with:Resulting:
See output
``` │├ #PID<0.1511.0> ││├ #PID<0.1514.0> ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Types.Message.-__absinthe_type__1-fun-1- ││├ Graphql.Types.Message.-__absinthe_type__1-fun-0- ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ││├ Graphql.Resolvers.Quality.resolve ││├ Graphql.Resolvers.Ability.-build1-fun-0- ││├ Graphql.Resolvers.LocalizedDateTime.resolve ││├ Graphql.Resolvers.MessageBody.resolve ```So it seems segments are being collected, but I cannot see them in transaction details in New Relic interface.
New Relic transactions details looks like this:
Environment
elixir -v
): Elixir 1.7.4 (compiled with Erlang/OTP 21)mix deps | grep new_relic_agent
): 1.6.2