Last active
June 19, 2019 22:23
-
-
Save nathanleclaire/9c202ba3241fbeab19bee3e41f43193e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static class DatabaseService { | |
public void queryDb(String id) { | |
try (Span childSpan = beeline.startChildSpan("customer-db-query")) { | |
String data = getCustomerDataById(id); | |
childSpan.addField("customer-data", data); | |
} | |
} | |
public String getCustomerDataById(String id) { | |
return "customer-0123"; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import io.honeycomb.beeline.tracing.Beeline; | |
import io.honeycomb.beeline.tracing.Span; | |
import io.honeycomb.beeline.tracing.SpanBuilderFactory; | |
import io.honeycomb.beeline.tracing.SpanPostProcessor; | |
import io.honeycomb.beeline.tracing.Tracer; | |
import io.honeycomb.beeline.tracing.Tracing; | |
import io.honeycomb.beeline.tracing.propagation.HttpHeaderV1PropagationCodec; | |
import io.honeycomb.beeline.tracing.propagation.Propagation; | |
import io.honeycomb.beeline.tracing.propagation.PropagationContext; | |
import io.honeycomb.beeline.tracing.sampling.Sampling; | |
import io.honeycomb.libhoney.HoneyClient; | |
import io.honeycomb.libhoney.LibHoney; | |
private DatabaseService db = new DatabaseService(); | |
public static void main(String... args) { | |
TracerSpans example = new TracerSpans(); | |
try { | |
HttpRequest request = new HttpRequest(); | |
String headerValue = request.getHeader(HttpHeaderV1PropagationCodec.HONEYCOMB_TRACE_HEADER); | |
PropagationContext context = Propagation.honeycombHeaderV1().decode(headerValue); | |
Span rootSpan = beeline.getSpanBuilderFactory().createBuilder() | |
.setSpanName("get-customer-data") | |
.setServiceName("customer-db-traced") | |
.setParentContext(context) | |
.build(); | |
beeline.getTracer().startTrace(rootSpan); | |
Span span = beeline.getActiveSpan(); | |
try { | |
db.queryDb(request.getParameter("customer-id")); | |
span.addField("result", "OK"); | |
} catch (Exception e) { | |
span.addField("result", "Bad Request") | |
.addField("exception-message", e.getMessage()); | |
} | |
} finally { | |
beeline.getTracer().endTrace(); | |
client.close(); // close to flush events and release its thread pool | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import io.honeycomb.beeline.tracing.Beeline; | |
import io.honeycomb.beeline.tracing.Span; | |
import io.honeycomb.beeline.tracing.SpanBuilderFactory; | |
import io.honeycomb.beeline.tracing.SpanPostProcessor; | |
import io.honeycomb.beeline.tracing.Tracer; | |
import io.honeycomb.beeline.tracing.Tracing; | |
import io.honeycomb.beeline.tracing.sampling.Sampling; | |
import io.honeycomb.libhoney.HoneyClient; | |
import io.honeycomb.libhoney.LibHoney; | |
public class TracerSpans { | |
private static final String WRITE_KEY = "test-write-key"; | |
private static final String DATASET = "test-dataset"; | |
private static final HoneyClient client; | |
private static final Beeline beeline; | |
static { | |
client = LibHoney.create(LibHoney.options().setDataset(DATASET).setWriteKey(WRITE_KEY).build()); | |
SpanPostProcessor postProcessor = Tracing.createSpanProcessor(client, Sampling.alwaysSampler()); | |
SpanBuilderFactory factory = Tracing.createSpanBuilderFactory(postProcessor, Sampling.alwaysSampler()); | |
Tracer tracer = Tracing.createTracer(factory); | |
beeline = Tracing.createBeeline(tracer, factory); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment