From 798f74b9e6c714c7868a4e20870786bc7821bc32 Mon Sep 17 00:00:00 2001
From: Austin Clements vet
to exit with status 1.
+ With the new runtime/trace
+ package's user
+ annotation API, users can record application-level information
+ in execution traces and create groups of related goroutines.
+ The go
tool
trace
+ command visualizes this information in the trace view and the new
+ user task/span analysis page.
+
@@ -696,65 +708,6 @@ for k := range m { -
- This release adds a new user annotation API. - It introduces three basic building blocks: Log, Span, and Task. -
- -- Log is for basic logging. When called, the message will be recorded - to the trace along with timestamp, goroutine id, and stack info. -
- -trace.Log(ctx, messageType message)- -
- Span can be thought as an extension of log to record interesting - time interval during a goroutine's execution. A span is local to a - goroutine by definition. -
- --trace.WithSpan(ctx, "doVeryExpensiveOp", func(ctx context) { - /* do something very expensive */ -})- -
- Task is higher-level concept that aids tracing of complex operations - that encompass multiple goroutines or are asynchronous. - For example, an RPC request, a HTTP request, a file write, or a - batch job can be traced with a Task. -
- -- Note we chose to design the API around context.Context so it allows - easier integration with other tracing tools, often designed around - context.Context as well. Log and WithSpan APIs recognize the task - information embedded in the context and record it in the trace as - well. That allows the Go execution tracer to associate and group - the spans and log messages based on the task information. -
- -- In order to create a Task, -
- -ctx, end := trace.NewContext(ctx, "myTask") -defer end()- -
- The Go execution tracer measures the time between the task created - and the task ended for the task latency. -
- -- More discussion history is in golang.org/cl/59572. -
- --- 2.50.0