...

Package format

import "internal/trace/traceviewer/format"
Overview
Index

Overview ▾

Package traceviewer provides definitions of the JSON data structures used by the Chrome trace viewer.

The official description of the format is in this file: https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview

Note: This can't be part of the parent traceviewer package as that would throw. go_bootstrap cannot depend on the cgo version of package net in ./make.bash.

Constants

const (
    ProcsSection = 0 // where Goroutines or per-P timelines are presented.
    StatsSection = 1 // where counters are presented.
    TasksSection = 2 // where Task hierarchy & timeline is presented.
)

type BlockedArg

type BlockedArg struct {
    Blocked string `json:"blocked"`
}

type Data

type Data struct {
    Events   []*Event         `json:"traceEvents"`
    Frames   map[string]Frame `json:"stackFrames"`
    TimeUnit string           `json:"displayTimeUnit"`
}

type Event

type Event struct {
    Name      string  `json:"name,omitempty"`
    Phase     string  `json:"ph"`
    Scope     string  `json:"s,omitempty"`
    Time      float64 `json:"ts"`
    Dur       float64 `json:"dur,omitempty"`
    PID       uint64  `json:"pid"`
    TID       uint64  `json:"tid"`
    ID        uint64  `json:"id,omitempty"`
    BindPoint string  `json:"bp,omitempty"`
    Stack     int     `json:"sf,omitempty"`
    EndStack  int     `json:"esf,omitempty"`
    Arg       any     `json:"args,omitempty"`
    Cname     string  `json:"cname,omitempty"`
    Category  string  `json:"cat,omitempty"`
}

type Frame

type Frame struct {
    Name   string `json:"name"`
    Parent int    `json:"parent,omitempty"`
}

type GoroutineCountersArg

type GoroutineCountersArg struct {
    Running   uint64
    Runnable  uint64
    GCWaiting uint64
}

type HeapCountersArg

type HeapCountersArg struct {
    Allocated uint64
    NextGC    uint64
}

type NameArg

type NameArg struct {
    Name string `json:"name"`
}

type SortIndexArg

type SortIndexArg struct {
    Index int `json:"sort_index"`
}

type ThreadCountersArg

type ThreadCountersArg struct {
    Running   int64
    InSyscall int64
}

type ThreadIDArg

type ThreadIDArg struct {
    ThreadID uint64
}