tools: Index | Files

package tag

import ""

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.


Package Files

key.go tag.go

func Get Uses

func Get(ctx context.Context, keys ...interface{}) telemetry.TagList

Get collects a set of values from the context and returns them as a tag list.

func Of Uses

func Of(key interface{}, value interface{}) telemetry.Tag

Of returns a Tag for a key and value. This is a trivial helper that makes common logging easier to read.

func Tags Uses

func Tags(ctx context.Context, taggers ...Tagger) telemetry.TagList

Tags collects a list of tags for the taggers from the context.

func With Uses

func With(ctx context.Context, tags ...telemetry.Tag) context.Context

With is roughly equivalent to context.WithValue except that it also notifies registered observers. Unlike WithValue, it takes a list of tags so that you can set many values at once if needed. Each call to With results in one invocation of each observer.

type Key Uses

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 Uses

func (k Key) Of(v interface{}) telemetry.Tag

Of creates a new Tag with this key and the supplied value. You can use this when building a tag list.

func (Key) Tag Uses

func (k Key) Tag(ctx context.Context) telemetry.Tag

Tag can be used to get a tag for the key from a context. It makes Key conform to the Tagger interface.

func (Key) With Uses

func (k Key) With(ctx context.Context, v interface{}) context.Context

With applies sets this key to the supplied value on the context and returns the new context generated. It uses the With package level function so that observers are also notified.

type Tagger Uses

type Tagger interface {
    // Tag returns a Tag potentially using information from the Context.
    Tag(context.Context) telemetry.Tag

Tagger is the interface to something 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)

Package tag imports 4 packages (graph) and is imported by 27 packages. Updated 2020-02-24. Refresh now. Tools for package owners.