February 2019
Intermediate to advanced
444 pages
11h 36m
English
Let's look at how the SpanCountJob is implemented. The Jaeger collector writes spans to Kafka in Protobuf format, so we need a way to parse them. The package io.jaegertracing.api_v2 is auto-generated by the Protobuf compiler from the IDL file found in the Jaeger codebase (model/proto/model.proto in Jaeger v1.8). Protobuf-generated classes are not particularly convenient to work with in Flink, so in the model package we define a simplified model of the trace that only contains the span data that we need for the purpose of the span count calculations:
public class Span implements Serializable { public String traceId; public String spanId; public String serviceName; public String operationName; public long startTimeMicros; public ...