module NewRelic::Agent::Instrumentation::GRPC::Client::Chain

Public Class Methods

instrument!() click to toggle source
# File lib/new_relic/agent/instrumentation/grpc/client/chain.rb, line 11
def self.instrument!
  ::GRPC::ClientStub.class_eval do
    include NewRelic::Agent::Instrumentation::GRPC::Client

    def bidi_streamer_with_new_relic_trace(method, requests, marshal, unmarshal,
      deadline: nil,
      return_op: false,
      parent: nil,
      credentials: nil,
      metadata: {},
      &blk)

      issue_request_with_tracing(:bidi_streamer, method, requests, marshal, unmarshal,
        deadline: deadline,
        return_op: return_op,
        parent: parent,
        credentials: credentials,
        metadata: metadata)

      # TODO: gRPC - confirm that &blk is being invoked correctly
    end

    alias bidi_streamer_without_newrelic_trace bidi_streamer
    alias bidi_streamer bidi_streamer_with_newrelic_trace

    def client_streamer_with_newrelic_trace(method, requests, marshal, unmarshal,
      deadline: nil,
      return_op: false,
      parent: nil,
      credentials: nil,
      metadata: {})

      issue_request_with_tracing(:client_streamer, method, requests, marshal, unmarshal,
        deadline: deadline,
        return_op: return_op,
        parent: parent,
        credentials: credentials,
        metadata: metadata)
    end

    alias client_streamer_without_newrelic_trace client_streamer
    alias client_streamer client_streamer_with_newrelic_trace

    def request_response_with_newrelic_trace(method, req, marshal, unmarshal,
      deadline: nil,
      return_op: false,
      parent: nil,
      credentials: nil,
      metadata: {})

      issue_request_with_tracing(:request_response, method, req, marshal, unmarshal,
        deadline: deadline,
        return_op: return_op,
        parent: parent,
        credentials: credentials,
        metadata: metadata)
    end

    alias request_response_without_newrelic_trace request_response
    alias request_response request_response_with_newrelic_trace

    def server_streamer_with_newrelic_trace(method, req, marshal, unmarshal,
      deadline: nil,
      return_op: false,
      parent: nil,
      credentials: nil,
      metadata: {},
      &blk)

      issue_request_with_tracing(:server_streamer, method, req, marshal, unmarshal,
        deadline: deadline,
        return_op: return_op,
        parent: parent,
        credentials: credentials,
        metadata: metadata)

      # TODO: gRPC - confirm that &blk is being invoked correctly
    end

    alias server_streamer_without_newrelic_trace server_streamer
    alias server_streamer server_streamer_with_newrelic_trace
  end
end

Public Instance Methods

bidi_streamer_with_new_relic_trace(method, requests, marshal, unmarshal, deadline: nil, return_op: false, parent: nil, credentials: nil, metadata: {}, &blk) click to toggle source
# File lib/new_relic/agent/instrumentation/grpc/client/chain.rb, line 15
def bidi_streamer_with_new_relic_trace(method, requests, marshal, unmarshal,
  deadline: nil,
  return_op: false,
  parent: nil,
  credentials: nil,
  metadata: {},
  &blk)

  issue_request_with_tracing(:bidi_streamer, method, requests, marshal, unmarshal,
    deadline: deadline,
    return_op: return_op,
    parent: parent,
    credentials: credentials,
    metadata: metadata)

  # TODO: gRPC - confirm that &blk is being invoked correctly
end
client_streamer_with_newrelic_trace(method, requests, marshal, unmarshal, deadline: nil, return_op: false, parent: nil, credentials: nil, metadata: {}) click to toggle source
# File lib/new_relic/agent/instrumentation/grpc/client/chain.rb, line 36
def client_streamer_with_newrelic_trace(method, requests, marshal, unmarshal,
  deadline: nil,
  return_op: false,
  parent: nil,
  credentials: nil,
  metadata: {})

  issue_request_with_tracing(:client_streamer, method, requests, marshal, unmarshal,
    deadline: deadline,
    return_op: return_op,
    parent: parent,
    credentials: credentials,
    metadata: metadata)
end
request_response_with_newrelic_trace(method, req, marshal, unmarshal, deadline: nil, return_op: false, parent: nil, credentials: nil, metadata: {}) click to toggle source
# File lib/new_relic/agent/instrumentation/grpc/client/chain.rb, line 54
def request_response_with_newrelic_trace(method, req, marshal, unmarshal,
  deadline: nil,
  return_op: false,
  parent: nil,
  credentials: nil,
  metadata: {})

  issue_request_with_tracing(:request_response, method, req, marshal, unmarshal,
    deadline: deadline,
    return_op: return_op,
    parent: parent,
    credentials: credentials,
    metadata: metadata)
end
server_streamer_with_newrelic_trace(method, req, marshal, unmarshal, deadline: nil, return_op: false, parent: nil, credentials: nil, metadata: {}, &blk) click to toggle source
# File lib/new_relic/agent/instrumentation/grpc/client/chain.rb, line 72
def server_streamer_with_newrelic_trace(method, req, marshal, unmarshal,
  deadline: nil,
  return_op: false,
  parent: nil,
  credentials: nil,
  metadata: {},
  &blk)

  issue_request_with_tracing(:server_streamer, method, req, marshal, unmarshal,
    deadline: deadline,
    return_op: return_op,
    parent: parent,
    credentials: credentials,
    metadata: metadata)

  # TODO: gRPC - confirm that &blk is being invoked correctly
end