Go traces can have lots of information and can capture a lot of requests per second. The traces are therefore captured in a binary format. The structure of the trace output is static. In the following output, we can see that the traces follow a specific pattern—they are defined, and events are categorized with a hex prefix and some information about the specific trace event. Looking at this trace format will help us to understand how the events of our traces are stored and retrieved with the tooling that the Go team has made available to us:
Trace = "gotrace" Version {Event} .
Event = EventProcStart | EventProcStop | EventFreq | EventStack | EventGomaxprocs | EventGCStart | EventGCDone | EventGCScanStart | EventGCScanDone | EventGCSweepStart | EventGCSweepDone | EventGoCreate | EventGoStart | EventGoEnd | EventGoStop | EventGoYield...