io.opentracing.Span类的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(8.5k)|赞(0)|评价(0)|浏览(243)

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

Span介绍

[英]Span represents the OpenTracing specification's Span contract.
[中]Span代表OpenTracing规范的Span契约。

代码示例

代码示例来源:origin: oracle/helidon

@Override
public void finish(long finishMicros) {
  span.log("ss");
  span.finish(finishMicros);
}

代码示例来源:origin: stagemonitor/stagemonitor

@Override
public SpanContext context() {
  return delegate.context();
}

代码示例来源:origin: jersey/jersey

/**
 * Resource method with explicit child span creation.
 *
 * @param context injected request context with resource-level (parent) span reference
 * @return dummy response
 * @throws InterruptedException if interrupted
 */
@GET
@Path("childSpan")
public Response childSpan(@Context ContainerRequestContext context) throws InterruptedException {
  final Span childSpan = OpenTracingUtils.getRequestChildSpan(context, "AppCreatedSpan");
  childSpan.log("Starting expensive operation.");
  // Do the business
  Thread.sleep(200);
  childSpan.log("Expensive operation finished.");
  childSpan.setTag("expensiveOperationSuccess", true);
  childSpan.finish();
  return Response.ok("SUCCESS").build();
}

代码示例来源:origin: apache/incubator-shardingsphere

/**
 * Set error.
 * 
 * @param span span to be set
 * @param cause failure cause of span
 */
public static void setError(final Span span, final Exception cause) {
  span.setTag(Tags.ERROR.getKey(), true).log(System.currentTimeMillis(), getReason(cause));
}

代码示例来源:origin: jersey/jersey

.orElseThrow(() -> new RuntimeException("Tracing failed"));
providedSpan.log("Resource method started.");
    .property(OpenTracingFeature.SPAN_CONTEXT_PROPERTY, providedSpan.context())  // <--- span propagation
    .post(Entity.text("Hello"));
providedSpan.log("1st Response received from managed client");
providedSpan.log("Firing 1st request from managed client");
providedSpan.log("Creating child span");
final Span childSpan = OpenTracingUtils.getRequestChildSpan(context, "jersey-resource-child-span");
childSpan.log("Firing 2nd request from managed client");
final Response response2 = wt.request()
    .property(OpenTracingFeature.SPAN_CONTEXT_PROPERTY, childSpan.context())  // <--- span propagation
    .post(Entity.text("World"));
childSpan.log("2st Response received from managed client");
childSpan.finish();
return Response.ok("Result: " + response.getStatus() + ", " + response2.getStatus()).build();

代码示例来源:origin: oracle/helidon

@Override
public Span setTag(String key, boolean value) {
  span.setTag(key, value);
  return this;
}

代码示例来源:origin: stagemonitor/stagemonitor

@Override
public Span log(String event) {
  delegate = delegate.log(event);
  return this;
}

代码示例来源:origin: apache/incubator-shardingsphere

@Override
public void finishSuccess(final SQLStatement sqlStatement, final ShardingTableMetaData shardingTableMetaData) {
  span.finish();
}

代码示例来源:origin: jersey/jersey

@Override
  public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
    final Object spanProperty = requestContext.getProperty(OpenTracingFeature.SPAN_CONTEXT_PROPERTY);
    if (spanProperty != null && spanProperty instanceof Span) {
      ((Span) spanProperty)
          .setTag(Tags.HTTP_STATUS.getKey(), responseContext.getStatus())
          .setTag(LocalizationMessages.OPENTRACING_TAG_HAS_RESPONSE_ENTITY(), responseContext.hasEntity())
          .setTag(LocalizationMessages.OPENTRACING_TAG_RESPONSE_LENGTH(), responseContext.getLength())
          .setTag(LocalizationMessages.OPENTRACING_TAG_RESPONSE_HEADERS(),
              OpenTracingUtils.headersAsString(responseContext.getHeaders()))
          .finish();
    }
  }
}

代码示例来源:origin: sixt/ja-micro

span.setTag("rpc.call", client.getServiceMethodName());
  if (orangeContext != null) {
    span.setTag("correlation_id", orangeContext.getCorrelationId());
  tracer.inject(span.context(), Format.Builtin.HTTP_HEADERS, new TextMapInjectAdapter(request.getHeaders()));
if (span != null) {
  Tags.HTTP_STATUS.set(span, lastStatusCode);
  span.finish();
  Tags.HTTP_STATUS.set(span, lastStatusCode);
  Tags.ERROR.set(span, true);
  span.finish();

代码示例来源:origin: sixt/ja-micro

protected Span getSpan(String methodName, Map<String, String> headers, OrangeContext context) {
  Span span = null;
  if (tracer != null) {
    SpanContext spanContext = tracer.extract(Format.Builtin.HTTP_HEADERS, new TextMapExtractAdapter(headers));
    if (spanContext != null) {
      span = tracer.buildSpan(methodName).asChildOf(spanContext).start();
    } else {
      span = tracer.buildSpan(methodName).start();
    }
    span.setTag("correlation_id", context.getCorrelationId());
    span.setTag("rpc.call", methodName);
    Tags.SPAN_KIND.set(span, Tags.SPAN_KIND_SERVER);
    Tags.PEER_SERVICE.set(span, context.getRpcOriginService());
    context.setTracingContext(span.context());
  }
  return span;
}

代码示例来源:origin: stagemonitor/stagemonitor

private void reportSpan() {
  final MockHttpServletRequest request = new MockHttpServletRequest("GET", "/test");
  request.addHeader(WidgetAjaxSpanReporter.CONNECTION_ID, connectionId);
  final MonitoredHttpRequest monitoredHttpRequest = new MonitoredHttpRequest(request,
      mock(StatusExposingByteCountingServletResponse.class), new MockFilterChain(), configuration, mock(ExecutorService.class));
  span = monitoredHttpRequest.createScope().span();
  span.setOperationName("test");
  span.finish();
}

代码示例来源:origin: jersey/jersey

/**
 * Similar as {@link #appLevelLogging(ContainerRequestContext)}, just with {@code POST} method.
 *
 * @param entity  posted entity
 * @param context injected context
 * @return dummy response
 */
@POST
@Path("appLevelPost")
public Response tracePost(String entity, @Context ContainerRequestContext context) {
  final Span resourceSpan = OpenTracingUtils
      .getRequestSpan(context)
      .orElseThrow(() -> new RuntimeException("Tracing has failed"));
  resourceSpan.setTag("result", "42");
  resourceSpan.setBaggageItem("entity", entity);
  return Response.ok("Done!").build();
}

代码示例来源:origin: stagemonitor/stagemonitor

@Advice.OnMethodEnter(inline = false)
  public static void setRequestName(@AbstractTracingTransformer.RequestName String requestName) {
    final Span span = TracingPlugin.getCurrentSpan();
    span.setTag(MetricsSpanEventListener.ENABLE_TRACKING_METRICS_TAG, true);
    span.setOperationName(requestName);
  }
}

代码示例来源:origin: stagemonitor/stagemonitor

@Override
public Span setBaggageItem(String key, String value) {
  delegate = delegate.setBaggageItem(key, value);
  return this;
}

代码示例来源:origin: oracle/helidon

WebServer webServer = bareRequest.webServer();
Span span = createRequestSpan(tracer(webServer), bareRequest);
RoutedResponse response = new RoutedResponse(webServer, bareResponse, span.context());
response.whenSent()
    .thenRun(() -> {
        if (statusCode >= 400) {
          Tags.ERROR.set(span, true);
          span.log(CollectionsHelper.mapOf("event", "error",
                  "message", "Response HTTP status: " + statusCode,
                  "error.kind", statusCode < 500 ? "ClientError" : "ServerError"));
      span.finish();
    })
    .exceptionally(t -> {
      Tags.ERROR.set(span, true);
      span.log(CollectionsHelper.mapOf("event", "error",
              "error.object", t));
      span.finish();
      return null;
    });

代码示例来源:origin: stagemonitor/stagemonitor

public static void setParameters(Span span, Map<String, String> parameters) {
  if (parameters == null) {
    return;
  }
  for (Map.Entry<String, String> entry : parameters.entrySet()) {
    span.setTag(PARAMETERS_PREFIX + entry.getKey(), entry.getValue());
  }
}

代码示例来源:origin: stagemonitor/stagemonitor

@Override
public Span log(long timestampMicroseconds, Map<String, ?> fields) {
  delegate = delegate.log(timestampMicroseconds, fields);
  return this;
}

代码示例来源:origin: oracle/helidon

protected void finishSpan(Span span, List<String> logs) {
  if (null == span) {
    return;
  }
  logs.forEach(span::log);
  span.finish();
}

代码示例来源:origin: stagemonitor/stagemonitor

@Test
public void reportSpan() throws Exception {
  final Map<String, String> parameters = new HashMap<>();
  parameters.put("attr.Color", "Blue");
  parameters.put("attr", "bla");
  parameters.put("foo", "bar");
  final Span span = tracer.buildSpan("Test#test")
      .withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER)
      .start();
  SpanUtils.setParameters(span, parameters);
  span.setTag(SpanUtils.OPERATION_TYPE, "method_invocation");
  span.setTag("foo.bar", "baz");
  span.finish();
  elasticsearchClient.waitForCompletion();
  refresh();
  final JsonNode hits = elasticsearchClient.getJson("/stagemonitor-spans*/_search").get("hits");
  assertThat(hits.get("total").intValue()).as(hits.toString()).isEqualTo(1);
  validateSpanJson(hits.get("hits").elements().next().get("_source"));
}

相关文章