| // Copyright 2020 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // 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. |
| package format |
| |
| type Data struct { |
| Events []*Event `json:"traceEvents"` |
| Frames map[string]Frame `json:"stackFrames"` |
| TimeUnit string `json:"displayTimeUnit"` |
| } |
| |
| 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 struct { |
| Name string `json:"name"` |
| Parent int `json:"parent,omitempty"` |
| } |
| |
| type NameArg struct { |
| Name string `json:"name"` |
| } |
| |
| type BlockedArg struct { |
| Blocked string `json:"blocked"` |
| } |
| |
| type SortIndexArg struct { |
| Index int `json:"sort_index"` |
| } |
| |
| type HeapCountersArg struct { |
| Allocated uint64 |
| NextGC uint64 |
| } |
| |
| 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 GoroutineCountersArg struct { |
| Running uint64 |
| Runnable uint64 |
| GCWaiting uint64 |
| } |
| |
| type ThreadCountersArg struct { |
| Running int64 |
| InSyscall int64 |
| } |
| |
| type ThreadIDArg struct { |
| ThreadID uint64 |
| } |