GRPC.Telemetry (gRPC v0.11.4)

View Source

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

client_rpc_prefix()

The client telemetry event prefix.

server_rpc_prefix()

The server telemetry event prefix.