Search in sources :

Example 11 with SpanDecorator

use of org.apache.camel.opentracing.SpanDecorator in project camel by apache.

the class AbstractSpanDecoratorTest method testPre.

@Test
public void testPre() {
    Endpoint endpoint = Mockito.mock(Endpoint.class);
    Mockito.when(endpoint.getEndpointUri()).thenReturn(TEST_URI);
    SpanDecorator decorator = new AbstractSpanDecorator() {

        @Override
        public String getComponent() {
            return null;
        }
    };
    MockTracer tracer = new MockTracer();
    MockSpan span = (MockSpan) tracer.buildSpan("TestSpan").start();
    decorator.pre(span, null, endpoint);
    assertEquals("camel-test", span.tags().get(Tags.COMPONENT.getKey()));
}
Also used : Endpoint(org.apache.camel.Endpoint) SpanDecorator(org.apache.camel.opentracing.SpanDecorator) MockTracer(io.opentracing.mock.MockTracer) MockSpan(io.opentracing.mock.MockSpan) Test(org.junit.Test)

Example 12 with SpanDecorator

use of org.apache.camel.opentracing.SpanDecorator in project camel by apache.

the class AbstractSpanDecoratorTest method testGetOperationName.

@Test
public void testGetOperationName() {
    Endpoint endpoint = Mockito.mock(Endpoint.class);
    Mockito.when(endpoint.getEndpointUri()).thenReturn(TEST_URI);
    SpanDecorator decorator = new AbstractSpanDecorator() {

        @Override
        public String getComponent() {
            return null;
        }
    };
    // Operation name is scheme, as no specific span decorator to
    // identify an appropriate name
    assertEquals("test", decorator.getOperationName(null, endpoint));
}
Also used : Endpoint(org.apache.camel.Endpoint) SpanDecorator(org.apache.camel.opentracing.SpanDecorator) Test(org.junit.Test)

Example 13 with SpanDecorator

use of org.apache.camel.opentracing.SpanDecorator in project camel by apache.

the class AbstractSpanDecoratorTest method testPostExchangeFailed.

@Test
public void testPostExchangeFailed() {
    Exchange exchange = Mockito.mock(Exchange.class);
    Mockito.when(exchange.isFailed()).thenReturn(true);
    Exception e = new Exception("Test Message");
    Mockito.when(exchange.getException()).thenReturn(e);
    SpanDecorator decorator = new AbstractSpanDecorator() {

        @Override
        public String getComponent() {
            return null;
        }
    };
    MockTracer tracer = new MockTracer();
    MockSpan span = (MockSpan) tracer.buildSpan("TestSpan").start();
    decorator.post(span, exchange, null);
    assertEquals(true, span.tags().get(Tags.ERROR.getKey()));
    assertEquals(1, span.logEntries().size());
    assertEquals("error", span.logEntries().get(0).fields().get("event"));
    assertEquals("Exception", span.logEntries().get(0).fields().get("error.kind"));
    assertEquals(e.getMessage(), span.logEntries().get(0).fields().get("message"));
}
Also used : Exchange(org.apache.camel.Exchange) SpanDecorator(org.apache.camel.opentracing.SpanDecorator) MockTracer(io.opentracing.mock.MockTracer) MockSpan(io.opentracing.mock.MockSpan) Test(org.junit.Test)

Example 14 with SpanDecorator

use of org.apache.camel.opentracing.SpanDecorator in project camel by apache.

the class CqlSpanDecoratorTest method testPreCqlFromUri.

@Test
public void testPreCqlFromUri() {
    String cql = "select%20*%20from%20users";
    String keyspace = "test";
    Endpoint endpoint = Mockito.mock(Endpoint.class);
    Exchange exchange = Mockito.mock(Exchange.class);
    Message message = Mockito.mock(Message.class);
    Mockito.when(endpoint.getEndpointUri()).thenReturn("cql://host1,host2:8080/" + keyspace + "?cql=" + cql + "&consistencyLevel=quorum");
    Mockito.when(exchange.getIn()).thenReturn(message);
    SpanDecorator decorator = new CqlSpanDecorator();
    MockTracer tracer = new MockTracer();
    MockSpan span = (MockSpan) tracer.buildSpan("TestSpan").start();
    decorator.pre(span, exchange, endpoint);
    assertEquals(CqlSpanDecorator.CASSANDRA_DB_TYPE, span.tags().get(Tags.DB_TYPE.getKey()));
    assertEquals(cql, span.tags().get(Tags.DB_STATEMENT.getKey()));
    assertEquals(keyspace, span.tags().get(Tags.DB_INSTANCE.getKey()));
}
Also used : Exchange(org.apache.camel.Exchange) Endpoint(org.apache.camel.Endpoint) Message(org.apache.camel.Message) SpanDecorator(org.apache.camel.opentracing.SpanDecorator) MockTracer(io.opentracing.mock.MockTracer) MockSpan(io.opentracing.mock.MockSpan) Test(org.junit.Test)

Example 15 with SpanDecorator

use of org.apache.camel.opentracing.SpanDecorator in project camel by apache.

the class ElasticsearchSpanDecoratorTest method testPre.

@Test
public void testPre() {
    String indexName = "twitter";
    String cluster = "local";
    Endpoint endpoint = Mockito.mock(Endpoint.class);
    Exchange exchange = Mockito.mock(Exchange.class);
    Message message = Mockito.mock(Message.class);
    Mockito.when(endpoint.getEndpointUri()).thenReturn("elasticsearch://" + cluster + "?operation=INDEX&indexName=" + indexName + "&indexType=tweet");
    Mockito.when(exchange.getIn()).thenReturn(message);
    SpanDecorator decorator = new ElasticsearchSpanDecorator();
    MockTracer tracer = new MockTracer();
    MockSpan span = tracer.buildSpan("TestSpan").start();
    decorator.pre(span, exchange, endpoint);
    assertEquals(ElasticsearchSpanDecorator.ELASTICSEARCH_DB_TYPE, span.tags().get(Tags.DB_TYPE.getKey()));
    assertEquals(indexName, span.tags().get(Tags.DB_INSTANCE.getKey()));
    assertEquals(cluster, span.tags().get(ElasticsearchSpanDecorator.ELASTICSEARCH_CLUSTER_TAG));
}
Also used : Exchange(org.apache.camel.Exchange) Endpoint(org.apache.camel.Endpoint) Message(org.apache.camel.Message) SpanDecorator(org.apache.camel.opentracing.SpanDecorator) MockTracer(io.opentracing.mock.MockTracer) MockSpan(io.opentracing.mock.MockSpan) Test(org.junit.Test)

Aggregations

SpanDecorator (org.apache.camel.opentracing.SpanDecorator)18 Test (org.junit.Test)18 Endpoint (org.apache.camel.Endpoint)15 MockSpan (io.opentracing.mock.MockSpan)13 MockTracer (io.opentracing.mock.MockTracer)13 Exchange (org.apache.camel.Exchange)11 Message (org.apache.camel.Message)8