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 through System.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 through System.monotonic_time() for the execution since the start of the pipeline until the exception happened.
eventmeasurementsmetadata
[: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 of catch or the actual exception in case of rescue.
  • :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 through System.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 through System.monotonic_time() for the execution since the start of the pipeline until the exception happened.
eventmeasurementsmetadata
[: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 of catch or the actual exception in case of rescue.
  • :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.

Functions

The client telemetry event prefix.

The server telemetry event prefix.