internal/telemetry/export/ocagent: update metrics tutorial to use the event system

This change updates the metrics tutorial to be compatible with the new event system.

Change-Id: I8b75f6b02d241bc9dede01cfac167a982f1df67c
Reviewed-on: https://go-review.googlesource.com/c/tools/+/225058
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/internal/telemetry/export/ocagent/README.md b/internal/telemetry/export/ocagent/README.md
index e81ee9f..67fa124 100644
--- a/internal/telemetry/export/ocagent/README.md
+++ b/internal/telemetry/export/ocagent/README.md
@@ -36,25 +36,39 @@
 	"net/http"
 	"time"
 
-	"golang.org/x/tools/internal/telemetry/export"
-	"golang.org/x/tools/internal/telemetry/export/ocagent"
-	"golang.org/x/tools/internal/telemetry/export/metric"
 	"golang.org/x/tools/internal/telemetry/event"
+	"golang.org/x/tools/internal/telemetry/export"
+	"golang.org/x/tools/internal/telemetry/export/metric"
+	"golang.org/x/tools/internal/telemetry/export/ocagent"
 )
 
-func main() {
+type testExporter struct {
+	metrics metric.Exporter
+	ocagent *ocagent.Exporter
+}
 
-	exporter := ocagent.Connect(&ocagent.Config{
+func (e *testExporter) ProcessEvent(ctx context.Context, ev event.Event) (context.Context, event.Event) {
+	ctx, ev = export.Tag(ctx, ev)
+	ctx, ev = export.ContextSpan(ctx, ev)
+	ctx, ev = e.metrics.ProcessEvent(ctx, ev)
+	ctx, ev = e.ocagent.ProcessEvent(ctx, ev)
+	return ctx, ev
+}
+
+func main() {
+	exporter := &testExporter{}
+
+	exporter.ocagent = ocagent.Connect(&ocagent.Config{
 		Start:   time.Now(),
 		Address: "http://127.0.0.1:55678",
 		Service: "go-tools-test",
 		Rate:    5 * time.Second,
 		Client:  &http.Client{},
 	})
-	export.SetExporter(exporter)
+	event.SetExporter(exporter)
 
 	ctx := context.TODO()
-	mLatency := event.NewFloat64Key("latency", "the latency in milliseconds", "ms")
+	mLatency := event.NewFloat64Key("latency", "the latency in milliseconds")
 	distribution := metric.HistogramFloat64Data{
 		Info: &metric.HistogramFloat64{
 			Name:        "latencyDistribution",
@@ -63,12 +77,12 @@
 		},
 	}
 
-	distribution.Info.Record(mLatency)
+	distribution.Info.Record(&exporter.metrics, mLatency)
 
 	for {
 		sleep := randomSleep()
 		time.Sleep(time.Duration(sleep) * time.Millisecond)
-		mLatency.Record(ctx, float64(sleep))
+		event.Record(ctx, mLatency.Of(float64(sleep)))
 
 		fmt.Println("Latency: ", float64(sleep))
 	}