| // Copyright 2015 The Vanadium 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 stats defines an interface to access statistical information for |
| // troubleshooting and monitoring purposes. |
| package stats |
| |
| import ( |
| "v.io/v23/security/access" |
| "v.io/v23/services/watch" |
| ) |
| |
| // The Stats interface is used to access stats for troubleshooting and |
| // monitoring purposes. The stats objects are discoverable via the Globbable |
| // interface and watchable via the GlobWatcher interface. |
| // |
| // The types of the object values are implementation specific, but should be |
| // primarily numeric in nature, e.g. counters, memory usage, latency metrics, |
| // etc. |
| type Stats interface { |
| // Stats objects can be watched. Updates are streamed to the watcher. |
| watch.GlobWatcher |
| // Value returns the current value of an object, or an error. The type |
| // of the value is implementation specific. |
| // Some objects may not have a value, in which case, Value() returns |
| // a NoValue error. |
| Value() (any | error) {access.Debug} |
| } |
| |
| error ( |
| NoValue(suffix string) {"en": "object has no value, suffix: {suffix}"} |
| ) |