Beyond Tracing - What do we do with all this data

created : Mon, 06 Mar 2023 02:28:31 +0900
modified : Mon, 06 Mar 2023 02:56:19 +0900
tempo grafana

Overview

Matrics-generator

Why metrics if you have traces?

What is Parquet?

Schema

TraceID
Duration
  Span #1
    Name
    ServiceName
    Tag #1
    Tag #2
    .
    Duration
  Span #2
    Name
    ServiceName
    Tag #1
    Event#1
    .
    Duration

Inside a block

TraceQL

Selecting Traces - Basics

{ duration > 2s }
{ name = "GET /:endpoint" }
{ .http.status = 200 }
{ span.http.url =~ "/api/v1/.*" }
{ resource.namespace = "prod" }
{ .http.url="/:endpoint" && .http.status = 200 }

TraceQL - Aggregates

{ .db.system = "postgres" } | cound() > 3 }
{ name = "dns.lookup" } | avg(duration) > 500ms }

TraceQL - Pipelines of Spansets

Selecting Traces - Structural

TraceQL - Structural

{ .service.name = "foo" } >> {.service.name = "bar" }
{ name = "tcp.connect" } ~ { name = "dns.lookup" }
{ .service.name != parent.service.name }

Personal Notes