Upgrade to Pro — share decks privately, control downloads, hide ads and more …

18 months of Zipkin

Adrian Cole
December 06, 2018

18 months of Zipkin

18 months later: Overview of changes code and community since Tokyo meetup #1

https://zipkin.connpass.com/event/110553/

Adrian Cole

December 06, 2018
Tweet

More Decks by Adrian Cole

Other Decks in Technology

Transcript

  1. 18 months of Zipkin
    what’s happened since the last meet up!
    @adrianfcole
    works at Pivotal
    works on Zipkin

    View full-size slide

  2. @adrianfcole
    • spring cloud at pivotal
    • focused on distributed tracing
    • helped open zipkin

    View full-size slide

  3. What changed in the community?
    @adrianfcole
    #zipkin

    View full-size slide

  4. We last met 18 months ago
    https://www.timqian.com/star-history/#openzipkin/zipkin

    View full-size slide

  5. We are moving to Apache Software Foundation (ASF)!
    You can find our docs on wiki now
    We have a section describing some of our sites
    We regularly have workshops to collaborate on new features
    Some time soon we will have our first ASF release
    https://cwiki.apache.org/confluence/display/ZIPKIN

    View full-size slide

  6. What changed in the UI?
    @adrianfcole
    #zipkin
    zipkin 1.26.1 -> 2.11.11

    View full-size slide

  7. UI controls are cleaner

    View full-size slide

  8. We disabled some thing that didn’t work :)

    View full-size slide

  9. What changed in the data?
    @adrianfcole
    #zipkin
    zipkin v1 -> v2

    View full-size slide

  10. Much smaller
    $ wc -c 1e1a733a8e3d0f10-v1.json 1e1a733a8e3d0f10-v2.json
    5433 1e1a733a8e3d0f10-v1.json
    3377 1e1a733a8e3d0f10-v2.json
    We also support proto3 format now

    View full-size slide

  11. No more need to translate annotations
    [
    {
    "traceId": "1e1a733a8e3d0f10",
    "id": "1e1a733a8e3d0f10",
    "name": "get /",
    "timestamp": 1544062973621073,
    "duration": 6926,
    "annotations": [
    {
    "timestamp": 1544062973621073,
    "value": "sr",
    "endpoint": {
    "serviceName": "frontend",
    "ipv4": "10.129.171.98"
    }
    },
    {
    "timestamp": 1544062973627999,
    "value": "ss",
    [
    {
    "traceId": "1e1a733a8e3d0f10",
    "id": "1e1a733a8e3d0f10",
    "kind": "SERVER",
    "name": "get /",
    "timestamp": 1544062973621073,
    "duration": 6926,
    "localEndpoint": {
    "serviceName": "frontend",
    "ipv4": "10.129.171.98"
    },
    "remoteEndpoint": {
    "ipv6": "::1",
    "port": 57317
    },
    "tags": {
    "http.method": "GET",
    "http.path": "/",

    View full-size slide

  12. What changed in the headers?
    @adrianfcole
    #zipkin
    b3 -> b3 single

    View full-size slide

  13. Much smaller
    $ wc -c /tmp/b3-multi /tmp/b3-single
    129 /tmp/b3-multi
    73 /tmp/b3-single

    View full-size slide

  14. Easier to integrate
    X-B3-TraceId: 80f198ee56343ba864fe8b2a57d3eff7
    X-B3-ParentSpanId: 05e3ac9a4f6e3b90
    X-B3-SpanId: e457b5a2e4d86bd1
    X-B3-Sampled: 1
    b3: 80f198ee56343ba864fe8b2a57d3eff7-e457b5a2e4d86bd1-1-05e3ac9a4f6e3b90
    The single format is optional, but elegantly allows
    integration in naming-constrained transports like JMS.

    View full-size slide

  15. What’s new in integrations
    You can send data over RabbitMQ now
    You can proxy data or send it directly to cloud services
    X-Ray and StackDriver with community options for others
    PS you can run Zipkin on JRE 11 now

    View full-size slide

  16. What’s new in tracing
    Http route for tags or span names. Ex /messages/:id
    Messaging relationships like producer and consumer are traceable
    Extra fields can often be propagated, like your correlation-id
    V2 style libraries Brave, zipkin-go and zipkin-php look the same

    View full-size slide

  17. What changed in javascript tracing?
    Tracer now supports tracing local operations
    Instrumentation adds connect, grpc, postgres, request-
    promise, superagent
    v1 will happen soon, as a pure typescript library
    zipkin-js v0.7 -> v0.15

    View full-size slide

  18. What changed in java tracing?
    Tracer has simpler api for local tracing and “span finish” hooks
    Instrumentation adds dubbo, jersey, jms, kafka, kafka-
    streams, mysql8, netty, rabbit, vert.x
    spring-boot tracing (sleuth) uses Brave natively now
    brave v4.3 -> v5.5

    View full-size slide

  19. What changed in ruby tracing?
    Http route (ex /api/v1/messages/:id) is used for span names
    Instrumentation adds Sidekiq (job processing)
    zipkin-ruby v0.24 -> v0.29

    View full-size slide

  20. New C# tracer
    Tracer is very similar to Finagle (scala library)
    Instrumentation includes Owin and ASP.NET Core
    Contributed by Criteo
    zipkin4net

    View full-size slide

  21. New golang tracer
    Tracer is “v2 native” and very similar to Brave (java library)
    Instrumentation includes http and grpc, with others in different
    repositories: redis, sql, sqlx
    Go-kit includes this library
    zipkin-go

    View full-size slide

  22. New PHP tracer
    Tracer is “v2 native” and very similar to Brave (java library)
    Instrumentation are in different repositories and include
    symfony, doctrine, guzzle
    OpenTracing bridge is optional
    zipkin-php

    View full-size slide

  23. What’s next in UI?
    @adrianfcole
    #zipkin
    Zipkin Lens

    View full-size slide

  24. Zipkin Lens allows trace preview

    View full-size slide

  25. Zipkin Lens has a mini-map for quick navigation

    View full-size slide

  26. Want to know more?
    LINE developed Zipkin Lens and are open sourcing it tonight!

    View full-size slide

  27. Wrapping up
    Lots of stuff going on, but don’t get overwhelmed.
    Check our “Last Month In Zipkin”
    Chat any time on Gitter
    @adrianfcole
    #zipkin
    gitter.im/openzipkin/zipkin
    github.com/openzipkin/zipkin

    View full-size slide