本文整理了Java中io.opentracing.Span.finish()
方法的一些代码示例,展示了Span.finish()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Span.finish()
方法的具体详情如下:
包路径:io.opentracing.Span
类名称:Span
方法名:finish
[英]Sets the end timestamp to now and records the span.
With the exception of calls to #context, this should be the last call made to the span instance. Future calls to #finish are defined as noops, and future calls to methods other than #contextlead to undefined behavior.
[中]将结束时间戳设置为“现在”,并记录跨度。
除了对#context的调用之外,这应该是对span实例的最后一次调用。未来对#finish的调用被定义为noop,未来对#contexts以外的方法的调用会导致未定义的行为。
代码示例来源:origin: apache/incubator-shardingsphere
@Override
public void finishSuccess(final SQLStatement sqlStatement, final ShardingTableMetaData shardingTableMetaData) {
span.finish();
}
代码示例来源:origin: oracle/helidon
protected void finishSpan(Span span, List<String> logs) {
if (null == span) {
return;
}
logs.forEach(span::log);
span.finish();
}
代码示例来源:origin: apache/incubator-shardingsphere
@Override
public void finishFailure(final Exception cause) {
ShardingErrorSpan.setError(span, cause);
span.finish();
}
}
代码示例来源:origin: apache/incubator-shardingsphere
@Override
public void finishSuccess() {
span.finish();
if (null != activeSpan) {
activeSpan.deactivate();
}
}
代码示例来源:origin: stagemonitor/stagemonitor
@Override
public void finish() {
durationNanos = System.nanoTime() - startTimestampNanos;
for (SpanEventListener spanEventListener : spanEventListeners) {
spanEventListener.onFinish(this, operationName, durationNanos);
}
delegate.finish();
}
代码示例来源:origin: stagemonitor/stagemonitor
@Override
public void finish(long finishMicros) {
durationNanos = TimeUnit.MICROSECONDS.toNanos(finishMicros) - startTimestampNanos;
for (SpanEventListener spanEventListener : spanEventListeners) {
spanEventListener.onFinish(this, operationName, durationNanos);
}
delegate.finish(finishMicros);
}
代码示例来源:origin: oracle/helidon
@Override
public void finish(long finishMicros) {
span.log("ss");
span.finish(finishMicros);
}
代码示例来源:origin: oracle/helidon
@Override
public void finish() {
span.log("ss");
span.finish();
}
代码示例来源:origin: apache/incubator-shardingsphere
@Override
public void finishFailure(final Exception cause) {
ShardingErrorSpan.setError(span, cause);
span.finish();
if (null != activeSpan) {
activeSpan.deactivate();
}
}
}
代码示例来源: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: oracle/helidon
private void finishSpanWithError(Span readSpan, Throwable t) {
Tags.ERROR.set(readSpan, Boolean.TRUE);
readSpan.log(CollectionsHelper.mapOf("event", "error",
"error.kind", "Exception",
"error.object", t,
"message", t.toString()));
readSpan.finish();
}
代码示例来源:origin: oracle/helidon
static void traceError(Span span, Throwable throwable) {
// failed
Tags.ERROR.set(span, true);
span.log(CollectionsHelper.mapOf("event", "error",
"error.object", throwable));
span.finish();
}
代码示例来源:origin: oracle/helidon
private void atnSpanFinish(Span atnSpan, AuthenticationResponse response) {
response.user()
.ifPresent(subject -> atnSpan
.log("security.user: " + subject.principal().getName()));
response.service()
.ifPresent(subject -> atnSpan.log("security.service: " + subject.principal().getName()));
atnSpan.log("status: " + response.status());
atnSpan.finish();
}
代码示例来源:origin: stagemonitor/stagemonitor
@Test
public void testUpdateSpan() throws Exception {
final Span span = tracer.buildSpan("Test#test")
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER)
.start();
span.finish();
elasticsearchClient.waitForCompletion();
refresh();
reporter.updateSpan(B3HeaderFormat.getB3Identifiers(tracer, span), null, Collections.singletonMap("foo", "bar"));
refresh();
final JsonNode hits = elasticsearchClient.getJson("/stagemonitor-spans*/_search").get("hits");
assertThat(hits.get("total").intValue()).as(hits.toString()).isEqualTo(1);
final JsonNode spanJson = hits.get("hits").elements().next().get("_source");
assertThat(spanJson.get("foo").asText()).as(spanJson.toString()).isEqualTo("bar");
}
代码示例来源:origin: oracle/helidon
static void traceError(Span span, Throwable throwable, String description) {
// failed
if (null != throwable) {
Tags.ERROR.set(span, true);
span.log(CollectionsHelper.mapOf("event", "error",
"error.object", throwable));
} else {
Tags.ERROR.set(span, true);
span.log(CollectionsHelper.mapOf("event", "error",
"message", description,
"error.kind", "SecurityException"));
}
span.finish();
}
}
代码示例来源:origin: stagemonitor/stagemonitor
@Test
public void testUpdateNotYetExistentSpan_eventuallyUpdates() throws Exception {
final Span span = tracer.buildSpan("Test#test")
.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_SERVER)
.start();
reporter.updateSpan(B3HeaderFormat.getB3Identifiers(tracer, span), null, Collections.singletonMap("foo", "bar"));
span.finish();
elasticsearchClient.waitForCompletion();
refresh();
reporter.getUpdateReporter().flush();
refresh();
final JsonNode hits = elasticsearchClient.getJson("/stagemonitor-spans*/_search").get("hits");
assertThat(hits.get("total").intValue()).as(hits.toString()).isEqualTo(1);
final JsonNode spanJson = hits.get("hits").elements().next().get("_source");
assertThat(spanJson.get("foo").asText()).as(spanJson.toString()).isEqualTo("bar");
}
代码示例来源: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: stagemonitor/stagemonitor
@Test
public void testInternalTags() throws Exception {
spanWrappingTracer.buildSpan("test")
.withTag(SpanWrapper.INTERNAL_TAG_PREFIX + "foo", "foo")
.withTag("foo", "foo")
.start()
.setTag(SpanWrapper.INTERNAL_TAG_PREFIX + "bar", "bar")
.setTag("bar", "bar")
.finish();
final List<MockSpan> mockSpans = mockTracer.finishedSpans();
assertThat(mockSpans).hasSize(1);
final Map<String, Object> tags = mockSpans.get(0).tags();
assertThat(tags).doesNotContainKeys(SpanWrapper.INTERNAL_TAG_PREFIX + "foo", SpanWrapper.INTERNAL_TAG_PREFIX + "bar");
assertThat(tags).containsKeys("foo", "bar");
}
}
代码示例来源:origin: stagemonitor/stagemonitor
private SpanContextInformation reportSpan(long executionTimeMs, CallStackElement callTree, String operationName) {
final Tracer tracer = tracingPlugin.getTracer();
final Span span;
Tracer.SpanBuilder spanBuilder = tracer.buildSpan(operationName)
.withStartTimestamp(1);
spanBuilder = setStartTags(spanBuilder);
span = spanBuilder
.start();
final SpanContextInformation spanContextInformation = SpanContextInformation.forSpan(span);
spanContextInformation.setCallTree(callTree);
// implicitly reports
span.finish(TimeUnit.MILLISECONDS.toMicros(executionTimeMs) + 1);
return spanContextInformation;
}
代码示例来源: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();
}
}
}
内容来源于网络,如有侵权,请联系作者删除!