Sha256: 283628c5f2ed82247624dee39e15db393eae3783e7fd383b3f7f894a3d3b05d0

Contents?: true

Size: 1.21 KB

Versions: 11

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

require 'grpc_kit'

class LoggingInterceptor < GRPC::ServerInterceptor
  def request_response(request: nil, call: nil, method: nil)
    now = Time.now.to_i
    GrpcKit.logger.info("Started request #{request}, method=#{method.name}, service_name=#{method.receiver.class.service_name}")
    yield(request, call).tap do
      GrpcKit.logger.info("Elapsed Time: #{Time.now.to_i - now}")
    end
  end

  def client_streamer(call: nil, method: nil)
    GrpcKit.logger.info("Started request method=#{method.name}, service_name=#{method.receiver.class.service_name}")
    yield(LoggingStream.new(call))
  end

  def server_streamer(call: nil, method: nil, **)
    GrpcKit.logger.info("Started request method=#{method.name}, service_name=#{method.receiver.class.service_name}")
    yield(LoggingStream.new(call))
  end

  def bidi_streamer(**)
    yield
  end

  class LoggingStream
    def initialize(stream)
      @stream = stream
    end

    def send_msg(msg, **opt)
      GrpcKit.logger.info("logging interceptor send #{msg}")
      @stream.send_msg(msg, opt)
    end

    def recv(**opt)
      @stream.recv(**opt).tap do |v|
        GrpcKit.logger.info("logging interceptor recv #{v}")
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
grpc_kit-0.1.9 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.8 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.7 examples/interceptors/server_logging_interceptor.rb
griffin-0.1.2 examples/interceptors/server_logging_interceptor.rb
griffin-0.1.1 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.6 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.5 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.4 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.3 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.2 examples/interceptors/server_logging_interceptor.rb
grpc_kit-0.1.1 examples/interceptors/server_logging_interceptor.rb