com.github.kristofa.brave.Brave.getClientTracer()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(3.4k)|赞(0)|评价(0)|浏览(126)

本文整理了Java中com.github.kristofa.brave.Brave.getClientTracer()方法的一些代码示例,展示了Brave.getClientTracer()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Brave.getClientTracer()方法的具体详情如下:
包路径:com.github.kristofa.brave.Brave
类名称:Brave
方法名:getClientTracer

Brave.getClientTracer介绍

[英]Gets a ClientTracer that will be initialized with a custom SpanCollector and a custom list of TraceFilter.

The ClientTracer is used to initiate a new span when doing a request to another service. It will generate the cs (client send) and cr (client received) annotations. When the cr annotation is set the span will be submitted to SpanCollector if not filtered by one of the trace filters.
[中]获取将使用自定义SpanCollector和自定义TraceFilter列表初始化的ClientTracer。
ClientTracer用于在向另一个服务发出请求时启动新的范围。它将生成cs(客户端发送)和cr(客户端接收)注释。设置cr注释后,如果未通过某个跟踪过滤器过滤,则跨度将提交给SpanCollector。

代码示例

代码示例来源:origin: com.github.kristofa/brave-impl-spring

/**
   * Creates a singleton ClientTracer instance.
   * 
   * @return Singleton ClientTracer instance.
   */
  @Bean
  @Scope(value = "singleton")
  public ClientTracer clientTracer() {
    return Brave.getClientTracer(spanCollector, traceFilters.getTraceFilters());
  }
}

代码示例来源:origin: Flipkart/phantom

/**
 * Interface method implementation. Interprets the response and submits suitable annotation to the client tracer and also marks receipt of the response on it. 
 * @see com.flipkart.phantom.task.spi.interceptor.ResponseInterceptor#process(java.lang.Object)
 */
public void process(S response, Optional<RuntimeException> transportError) {
  ClientTracer clientTracer = Brave.getClientTracer(this.eventDispatchingSpanCollector, this.traceFilters);		
  if (transportError.isPresent()) {
    clientTracer.submitAnnotation(FAILURE_ANNOTATION);
  } else {
    final Optional<Integer> statusCode = this.getResponseStatusCode(response);
    if (statusCode.isPresent()) {
      clientTracer.submitBinaryAnnotation(RESPONSE_CODE_ANNOTATION, statusCode.get());
    }
    if (!this.isResponseSuccess(response)) {
      // In this case response will be the error message.
      clientTracer.submitAnnotation(FAILURE_ANNOTATION);
    }
  }
  clientTracer.setClientReceived();
}

代码示例来源:origin: Flipkart/phantom

/**
 * Interface method implementation. Performs client request tracing.
 * @see com.flipkart.phantom.task.spi.interceptor.RequestInterceptor#process(com.flipkart.phantom.task.spi.RequestWrapper)
 */
public void process(T request) {
  // we let trace filter decide if client request tracing is needed. Handler level config takes precedence even if global trace is on.
  for (final TraceFilter traceFilter : traceFilters) {
    if (!traceFilter.trace(request.getRequestName())) { 
      return;
    }
  }
  ClientTracer clientTracer = Brave.getClientTracer(this.eventDispatchingSpanCollector, this.traceFilters);
  String spanName = this.getSpanName(request);
  SpanId newSpanId = clientTracer.startNewSpan(spanName);
  this.addTracingHeaders(request, newSpanId, spanName);
  if (request.getRequestContext().isPresent() && request.getRequestContext().get().getCurrentClientEndpoint() != null) {
    // override the service name with the value contained in the request
    clientTracer.setCurrentClientServiceName(request.getRequestContext().get().getCurrentClientEndpoint().getServiceName());
    // submit an annotation so that host endpoint is visible in the span
    clientTracer.submitBinaryAnnotation(HOST_ANNOTATION, request.getRequestContext().get().getCurrentClientEndpoint().getHost() + 
        ":" + request.getRequestContext().get().getCurrentClientEndpoint().getPort());
  }
  final Optional<String> requestMetadata = request.getRequestMetaData();
  if (requestMetadata.isPresent()) {
    clientTracer.submitBinaryAnnotation(REQUEST_ANNOTATION, requestMetadata.get());
  }
  clientTracer.setClientSent();
}

相关文章