19
Introduction to Distributed Tracing Joe Elliott, Annanay Agarwal

Introduction to Distributed Tracing

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Distributed Tracing

Introduction to Distributed TracingJoe Elliott, Annanay Agarwal

Page 2: Introduction to Distributed Tracing

- Intro!- Jaeger Getting Started- OpenTracing: What is Tracing- OpenTracing Examples

- Open Source- Demo

- Jaeger All In One + Instrumentation- Grafana + Jaeger Integrations

What are we doing here?

Page 3: Introduction to Distributed Tracing

Why?

Page 4: Introduction to Distributed Tracing

Images: Prometheus, Influx, Loki, Elastic

Monitoring tools

LogsMetrics

Page 5: Introduction to Distributed Tracing

https://grafana.com/blog/2018/08/02/the-red-method-how-to-instrument-your-services/

RED MethodRequests Error Duration

USE MethodUtilization Saturation Errors

….

Metrics - Aggregatable

Page 6: Introduction to Distributed Tracing

http_request_duration_sec{“app=ice-cream-shop”} 10s

Metrics - Cardinality

Page 7: Introduction to Distributed Tracing

http_request_duration_sec{“app=ice-cream-shop”

datacenter=”us-central”, env=”production”,

service=”cart-manager”, path=”/api/order”,

func_name=”my-func”, cust_name=”annanay”} 10s

Metrics - Cardinality

Page 8: Introduction to Distributed Tracing

Img src: https://www.dictionary.com/e/emoji/heavy-dollar-sign-emoji/

http_request_duration_sec{“app=ice-cream-shop”

datacenter=”us-central”, env=”production”,

service=”cart-manager”, path=”/api/order”,

func_name=”my-func”, cust_name=”annanay”} 10s

Metrics - Cardinality

🐌

Page 9: Introduction to Distributed Tracing

Logs

Page 10: Introduction to Distributed Tracing

Useful to check health of a particular service.“Events” in a service.

"rpc error: code = Code(400) desc = user = xyz:

series={__name__=\"process_virtual_memory_bytes\", cluster=\"us-central\",

instance=\"consul-5sqwxccxvq\", timestamp=2020-01-04T14:12:59.102Z: out of order

sample}".

.

level=error ts=2020-05-08T09:46:43.11193994Z caller=a_file_from_my_codebase:16

msg="error processing requests" err="rpc error: Code(400) desc = expected string

but got null"

Logs

Page 11: Introduction to Distributed Tracing

TLDR;

Telemetry Primary use case What we want in addition

Metrics Aggregations Fine grained information

Logs Events Cross process tracing

Page 12: Introduction to Distributed Tracing

Distributed Tracing

Page 13: Introduction to Distributed Tracing

Would You Like Some Tracing With Your Monitoring? - Yuri Shkuro, Uber Technologies - KCCNA 2017

Diagnosing the Long Tail

Page 14: Introduction to Distributed Tracing

Inspired from - Would You Like Some Tracing With Your Monitoring? - Yuri Shkuro, Uber Technologies - KCCNA 2017

Distributed Tracing!

Page 15: Introduction to Distributed Tracing

https://www.jaegertracing.io/docs/1.17/architecture/

How? Context propagation

Page 16: Introduction to Distributed Tracing

- Context Propagation (OpenTracing Nethttp)- In Process : Context- Cross Process : Headers

- Metadata- Logs, Span Tags, Process Tags

- Explore the Jaeger UI- Grafana/Loki Trace Integration

https://github.com/joe-elliott/tracing-example

Demo! (Jaeger + OpenTracing)

Page 17: Introduction to Distributed Tracing

Getting involved

Page 18: Introduction to Distributed Tracing

Open Source

Page 19: Introduction to Distributed Tracing

Thank you for watching!Have more questions?

Join us at community.grafana.com.

LIVE WEBINAR Introduction To Distributed Tracing | with Joe Elliott