Documentation ¶
Overview ¶
Package tag provides support for telemetry tagging.
Package tag provides support for telemetry tagging. This package is a thin shim over contexts with the main addition being the the ability to observe when contexts get tagged with new values.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Observe ¶
func Observe(observer Observer)
Observe adds a new tag observer to the registered set. There is no way to ever unregister a observer. Observers are free to use context information to control their behavior.
Types ¶
type Key ¶
type Key string
Key represents the key for a context tag. It is a helper to make use of context tagging slightly easier to read, it is not strictly needed to use it at all. It is intended that your common tagging keys are declared as constants of this type, and then you can use the methods of this type to apply and find those values in the context.
func (Key) Of ¶
Of creates a new Tag with this key and the supplied value. You can use this when building a tag list.
type List ¶
type List []Tag
List is a way of passing around a collection of key value pairs. It is an alternative to the less efficient and unordered method of using maps.
type Observer ¶
Observer is the type for a function that wants to be notified when new tags are set on a context. If you use context.WithValue (or equivalent) it will bypass the observers, you must use the setters in this package for tags that should be observed. Register new observers with the Observe function.
type Tag ¶
type Tag struct { Key interface{} Value interface{} }
Tag holds a key and value pair. It is normally used when passing around lists of tags.
func Of ¶
func Of(key interface{}, value interface{}) Tag
Of returns a Tag for a key and value. This is a trivial helper that makes common logging easier to read.
type Tagger ¶
type Tagger interface { // Tag returns a Tag potentially using information from the Context. Tag(context.Context) Tag }
Tagger is the interface to somthing that returns a Tag given a context. Both Tag itself and Key support this interface, allowing methods that can take either (and other implementations as well)