title: Data Model

Note this page is out-of-date. Please view the Zipkin Api doc which elaborates the fields in the model until this page is updated.

In order to illustrate the tracing data that Zipkin displays, let's relate it to the equivalent information in the Zipkin data model. By comparing these, we see that

  • inbound and outbound requests are in different spans
  • spans that include cs can log an sa annotation of where they are going
    • This helps when the destination protocol isn't Zipkin instrumented, such as MySQL.

First, we see one trace as shown in the Zipkin trace viewer:

![Zipkin Screenshot]({{ site.github.url }}/public/img/json_zipkin_screenshot.png)

And the same trace in the data model of Zipkin:

{% highlight json %}
[
{
“traceId”: “bd7a977555f6b982”, “name”: “get”, “id”: “bd7a977555f6b982”, “timestamp”: 1458702548467000, “duration”: 386000, “annotations”: [ { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548467000, “value”: “sr” }, { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548853000, “value”: “ss” } ], “binaryAnnotations”: [] }, { “traceId”: “bd7a977555f6b982”, “name”: “get-traces”, “id”: “ebf33e1a81dc6f71”, “parentId”: “bd7a977555f6b982”, “timestamp”: 1458702548478000, “duration”: 354374, “annotations”: [], “binaryAnnotations”: [ { “key”: “lc”, “value”: “JDBCSpanStore”, “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 } }, { “key”: “request”, “value”: “QueryRequest{serviceName=zipkin-query, spanName=null, annotations=[], binaryAnnotations={}, minDuration=null, maxDuration=null, endTs=1458702548478, lookback=86400000, limit=1}”, “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 } } ] }, { “traceId”: “bd7a977555f6b982”, “name”: “query”, “id”: “be2d01e33cc78d97”, “parentId”: “ebf33e1a81dc6f71”, “timestamp”: 1458702548786000, “duration”: 13000, “annotations”: [ { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548786000, “value”: “cs” }, { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548799000, “value”: “cr” } ], “binaryAnnotations”: [ { “key”: “jdbc.query”, “value”: “select distinct zipkin_spans.trace_id from zipkin_spans join zipkin_annotations on (zipkin_spans.trace_id = zipkin_annotations.trace_id and zipkin_spans.id = zipkin_annotations.span_id) where (zipkin_annotations.endpoint_service_name = ? and zipkin_spans.start_ts between ? and ?) order by zipkin_spans.start_ts desc limit ?”, “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 } }, { “key”: “sa”, “value”: true, “endpoint”: { “serviceName”: “spanstore-jdbc”, “ipv4”: “127.0.0.1”, “port”: 3306 } } ] }, { “traceId”: “bd7a977555f6b982”, “name”: “query”, “id”: “13038c5fee5a2f2e”, “parentId”: “ebf33e1a81dc6f71”, “timestamp”: 1458702548817000, “duration”: 1000, “annotations”: [ { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548817000, “value”: “cs” }, { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548818000, “value”: “cr” } ], “binaryAnnotations”: [ { “key”: “jdbc.query”, “value”: “select zipkin_spans.trace_id, zipkin_spans.id, zipkin_spans.name, zipkin_spans.parent_id, zipkin_spans.debug, zipkin_spans.start_ts, zipkin_spans.duration from zipkin_spans where zipkin_spans.trace_id in (?)”, “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 } }, { “key”: “sa”, “value”: true, “endpoint”: { “serviceName”: “spanstore-jdbc”, “ipv4”: “127.0.0.1”, “port”: 3306 } } ] }, { “traceId”: “bd7a977555f6b982”, “name”: “query”, “id”: “37ee55f3d3a94336”, “parentId”: “ebf33e1a81dc6f71”, “timestamp”: 1458702548827000, “duration”: 2000, “annotations”: [ { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548827000, “value”: “cs” }, { “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 }, “timestamp”: 1458702548829000, “value”: “cr” } ], “binaryAnnotations”: [ { “key”: “jdbc.query”, “value”: “select zipkin_annotations.trace_id, zipkin_annotations.span_id, zipkin_annotations.a_key, zipkin_annotations.a_value, zipkin_annotations.a_type, zipkin_annotations.a_timestamp, zipkin_annotations.endpoint_ipv4, zipkin_annotations.endpoint_port, zipkin_annotations.endpoint_service_name from zipkin_annotations where zipkin_annotations.trace_id in (?) order by zipkin_annotations.a_timestamp asc, zipkin_annotations.a_key asc”, “endpoint”: { “serviceName”: “zipkin-query”, “ipv4”: “192.168.1.2”, “port”: 9411 } }, { “key”: “sa”, “value”: true, “endpoint”: { “serviceName”: “spanstore-jdbc”, “ipv4”: “127.0.0.1”, “port”: 3306 } } ] } ]
{% endhighlight %}