| // Copyright 2021 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 jsonrpc2 |
| |
| import ( |
| "golang.org/x/exp/event" |
| ) |
| |
| func Method(v string) event.Label { return event.String("method", v) } |
| func RPCID(v string) event.Label { return event.String("id", v) } |
| func RPCDirection(v string) event.Label { return event.String("direction", v) } |
| func StatusCode(v string) event.Label { return event.String("status.code", v) } |
| |
| var ( |
| Started = event.NewCounter("started", &event.MetricOptions{Description: "Count of started RPCs."}) |
| Finished = event.NewCounter("finished", &event.MetricOptions{Description: "Count of finished RPCs (includes error)."}) |
| ReceivedBytes = event.NewIntDistribution("received_bytes", &event.MetricOptions{ |
| Description: "Bytes received.", |
| Unit: event.UnitBytes, |
| }) |
| SentBytes = event.NewIntDistribution("sent_bytes", &event.MetricOptions{ |
| Description: "Bytes sent.", |
| Unit: event.UnitBytes, |
| }) |
| Latency = event.NewDuration("latency", &event.MetricOptions{ |
| Description: "Elapsed time of an RPC.", |
| Unit: event.UnitMilliseconds, |
| }) |
| ) |
| |
| const ( |
| Inbound = "in" |
| Outbound = "out" |
| ) |