From 798f74b9e6c714c7868a4e20870786bc7821bc32 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Wed, 18 Jul 2018 16:09:06 -0400 Subject: [PATCH] doc/go1.11: shorten, tidy, and promote user annotation API Text based on CL 124655. Change-Id: I7c4866ce829cb28a4c60cd8ced3ef99047a38c54 Reviewed-on: https://go-review.googlesource.com/124711 Reviewed-by: Austin Clements --- doc/go1.11.html | 71 +++++++++---------------------------------------- 1 file changed, 12 insertions(+), 59 deletions(-) diff --git a/doc/go1.11.html b/doc/go1.11.html index c62165af4e..a070442535 100644 --- a/doc/go1.11.html +++ b/doc/go1.11.html @@ -300,6 +300,18 @@ func f(v interface{}) { a warning to be printed, and vet to exit with status 1.

+

Trace

+ +

+ 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. +

+

Runtime

@@ -696,65 +708,6 @@ for k := range m { -

runtime/trace
-
-

- 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. -

- -
-
sync

-- 2.50.0