View Source GRPC.Telemetry (grpc v0.9.0)
Events published by GRPC
These can be divided in client-side events and server-side events.
Client-side Events
[:grpc, :client, :rpc, :start]
- Published before all interceptors are executed.[:grpc, :client, :rpc, :stop]
- Published after all interceptors executed successfully.:duration
- the duration as measured throughSystem.monotonic_time()
for the whole interceptor pipeline.
[:grpc, :client, :rpc, :exception]
- Published if any exception occurs while receiving a message.:duration
- the duration as measured throughSystem.monotonic_time()
for the execution since the start of the pipeline until the exception happened.
event | measurements | metadata |
---|---|---|
[:rpc, :start] | :count | :stream |
[:rpc, :stop] | :duration | :stream |
[:rpc, :exception] | :duration | :stream , :kind , :reason , :stacktrace |
Metadata
:stream
- the%GRPC.Server.Stream{}
for the request:function_name
- the name of the function called:server
- the server module name:endpoint
- the endpoint module name:request
- the client request:result
- the result returned from the interceptor pipeline.
:exception
events also include some error metadata:
:reason
is the error value in case ofcatch
or the actual exception in case ofrescue
.:kind
can be one of::error
— from an{:error, error}
return value. Some Erlang functions may also throw an:error
tuple, which will be reported as:error
.:exit
— from a caught process exit.:throw
— from a caught value, this doesn't necessarily mean that an error occurred.
Server-side Events
[:grpc, :server, :rpc, :start]
- Published before all interceptors are executed.[:grpc, :server, :rpc, :stop]
- Published after all interceptors executed successfully.:duration
- the duration as measured throughSystem.monotonic_time()
for the whole interceptor pipeline.
[:grpc, :server, :rpc, :exception]
- Published if any exception occurs while receiving a message.:duration
- the duration as measured throughSystem.monotonic_time()
for the execution since the start of the pipeline until the exception happened.
event | measurements | metadata |
---|---|---|
[:rpc, :start] | :count | :stream , :server , :endpoint , :function_name |
[:rpc, :stop] | :duration | :stream , :server , :endpoint , :function_name , :result |
[:rpc, :exception] | :duration | :stream , :server , :endpoint , :function_name , :kind , :reason , :stacktrace |
Metadata
:stream
- the%GRPC.Server.Stream{}
for the request.:function_name
- the name of the function called.:server
- the server module name.:endpoint
- the endpoint module name.:result
- the result returned from the interceptor pipeline.
:exception
events also include some error metadata:
:reason
is the error value in case ofcatch
or the actual exception in case ofrescue
.:kind
can be one of::error
— from an{:error, error}
return value. Some Erlang functions may also throw an:error
tuple, which will be reported as:error
.:exit
— from a caught process exit.:throw
— from a caught value, this doesn't necessarily mean that an error occurred.
Summary
Functions
The client telemetry event prefix.
The server telemetry event prefix.