本文整理了Java中io.opentracing.Span
类的一些代码示例,展示了Span
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Span
类的具体详情如下:
包路径:io.opentracing.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"));
}
内容来源于网络,如有侵权,请联系作者删除!