protected void handleSentEvent(ExchangeSentEvent sentEvent) { String name = namingStrategy.getName(sentEvent.getExchange(), sentEvent.getEndpoint()); Tags tags = namingStrategy.getTags(sentEvent, sentEvent.getEndpoint()); getMeterRegistry().timer(name, tags).record(sentEvent.getTimeTaken(), TimeUnit.MILLISECONDS); }
@Override public void notify(EventObject event) throws Exception { if (event instanceof ExchangeSentEvent) { ExchangeSentEvent sent = (ExchangeSentEvent) event; String logRecord ="Took " + sent.getTimeTaken() + " millis to send to: " + sent.getEndpoint(); // LOG.info(logRecord); taskSession.incrementCurrentProgress(); } // LOG.info("Event = "+ event); taskSession.appendOut(event.toString()); }
@Override public void notify(EventObject event) throws Exception { // use event notifier to track events when Camel messages to endpoints // these events corresponds to Zipkin client events // client events if (event instanceof ExchangeSendingEvent) { ExchangeSendingEvent ese = (ExchangeSendingEvent) event; String serviceName = getServiceName(ese.getExchange(), ese.getEndpoint(), false, true); Tracing brave = getTracing(serviceName); if (brave != null) { clientRequest(brave, serviceName, ese); } } else if (event instanceof ExchangeSentEvent) { ExchangeSentEvent ese = (ExchangeSentEvent) event; String serviceName = getServiceName(ese.getExchange(), ese.getEndpoint(), false, true); Tracing brave = getTracing(serviceName); if (brave != null) { clientResponse(brave, serviceName, ese); } } }
@Override protected void doNotify(ExchangeSentEvent event) throws Exception { String endpointUri = event.getEndpoint().getEndpointUri(); Request request = getRequest(event.getExchange(), event.getEndpoint());
private void clientResponse(Tracing brave, String serviceName, ExchangeSentEvent event) { Span span = null; ZipkinState state = event.getExchange().getProperty(ZipkinState.KEY, ZipkinState.class); if (state != null) { // only process if it was a zipkin client event span = state.popClientSpan(); } if (span != null) { ZipkinClientResponseAdaptor parser = new ZipkinClientResponseAdaptor(this, event.getEndpoint()); parser.onResponse(event.getExchange(), span.customizer()); span.finish(); TraceContext context = span.context(); String traceId = "" + context.traceIdString(); String spanId = "" + context.spanId(); String parentId = context.parentId() != null ? "" + context.parentId() : null; if (camelContext.isUseMDCLogging()) { MDC.put("traceId", traceId); MDC.put("spanId", spanId); MDC.put("parentId", parentId); } if (LOG.isDebugEnabled()) { if (parentId != null) { LOG.debug(String.format("clientResponse[service=%s, traceId=%20s, spanId=%20s, parentId=%20s]", serviceName, traceId, spanId, parentId)); } else { LOG.debug(String.format("clientResponse[service=%s, traceId=%20s, spanId=%20s]", serviceName, traceId, spanId)); } } } }
SpanDecorator sd = getSpanDecorator(ese.getEndpoint()); if (!sd.newSpan() || isExcluded(ese.getExchange(), ese.getEndpoint())) { return; LOG.trace("OpenTracing: start client span={}", span); sd.post(span, ese.getExchange(), ese.getEndpoint()); span.finish(); ActiveSpanManager.deactivate(ese.getExchange());
public static String endpointUri(EventObject event) { if (event instanceof AuditEvent) { AuditEvent auditEvent = (AuditEvent) event; return auditEvent.getEndpointURI(); } else if (event instanceof ExchangeSendingEvent) { ExchangeSendingEvent sentEvent = (ExchangeSendingEvent) event; return sentEvent.getEndpoint().getEndpointUri(); } else if (event instanceof ExchangeSentEvent) { ExchangeSentEvent sentEvent = (ExchangeSentEvent) event; return sentEvent.getEndpoint().getEndpointUri(); } else if (event instanceof AbstractExchangeEvent) { AbstractExchangeEvent ae = (AbstractExchangeEvent) event; Exchange exchange = ae.getExchange(); if (event instanceof ExchangeFailureHandledEvent || event instanceof ExchangeFailedEvent) { return exchange.getProperty(Exchange.FAILURE_ENDPOINT, String.class); } else { Endpoint fromEndpoint = exchange.getFromEndpoint(); if (fromEndpoint != null) { return fromEndpoint.getEndpointUri(); } } } return null; }