target

package
v0.0.0-...-01cd1ea Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2024 License: Apache-2.0 Imports: 13 Imported by: 36

Documentation

Overview

Package target contains information about the thing that is sending metrics - either a NetworkDevice (a machine) or a Task (a service). There is a default target that is usually configured with commandline flags (flags.go), but a target can also be passed through the Context (context.go) if you need to set metric values for a different target.

Index

Constants

This section is empty.

Variables

View Source
var (
	// NilType is given if a metric was created without the TargetType specified.
	NilType = types.TargetType{}

	DeviceType = (*NetworkDevice)(nil).Type()
	TaskType   = (*Task)(nil).Type()
)

Functions

func Get

Get returns the target set in this context.

func NewFromFlags

func NewFromFlags(fl *Flags) (types.Target, error)

NewFromFlags returns a Target configured from commandline flags.

func RootLabel

func RootLabel(key string, value any) *pb.MetricsCollection_RootLabels

RootLabel returns a root label with a given value.

func Set

Set returns a new context with the given target set. If this context is passed to metric Set, Get or Incr methods the metrics for that target will be affected. A nil target means to use the default target.

Types

type Flags

type Flags struct {
	TargetType      types.TargetType
	DeviceHostname  string
	DeviceRegion    string
	DeviceRole      string
	DeviceNetwork   string
	TaskServiceName string
	TaskJobName     string
	TaskRegion      string
	TaskHostname    string
	TaskNumber      int
	AutoGenHostname bool

	// If nil, system info is computed from the actual host. Used
	// in tests.
	SysInfo *SysInfo
}

Flags defines command line flags related to tsmon targets. Use NewFlags() to get a Flags struct with sensible default values.

func NewFlags

func NewFlags() Flags

NewFlags returns a Flags struct with sensible default values. Hostname, region and network flags are expensive to compute, so get assigned default values later in SetDefaultsFromHostname.

func (*Flags) Register

func (fl *Flags) Register(f *flag.FlagSet)

Register adds tsmon target related flags to a FlagSet.

func (*Flags) SetDefaultsFromHostname

func (fl *Flags) SetDefaultsFromHostname()

SetDefaultsFromHostname computes the expensive default values for hostname, region and network fields.

type NetworkDevice

type NetworkDevice struct {
	Metro     string
	Role      string
	Hostname  string
	Hostgroup string
}

A NetworkDevice is a machine that has a hostname.

func (*NetworkDevice) Clone

func (t *NetworkDevice) Clone() types.Target

Clone returns a copy of this object.

func (*NetworkDevice) Hash

func (t *NetworkDevice) Hash() uint64

Hash returns a uint64 hash of this target.

func (*NetworkDevice) PopulateProto

func (t *NetworkDevice) PopulateProto(d *pb.MetricsCollection)

PopulateProto implements Target.

func (*NetworkDevice) Type

func (t *NetworkDevice) Type() types.TargetType

Type returns the TargetType of NetworkDevice.

type SysInfo

type SysInfo struct {
	Hostname string
	Region   string
}

SysInfo overrides system's hostname and region for tests.

type Task

type Task struct {
	ServiceName string
	JobName     string
	DataCenter  string
	HostName    string
	TaskNum     int32
}

A Task is a process or a service running on one or more machine.

func (*Task) Clone

func (t *Task) Clone() types.Target

Clone returns a copy of this object.

func (*Task) Hash

func (t *Task) Hash() uint64

Hash returns a uint64 hash of this target.

func (*Task) PopulateProto

func (t *Task) PopulateProto(d *pb.MetricsCollection)

PopulateProto implements Target.

func (*Task) Type

func (t *Task) Type() types.TargetType

Type returns the TargetType of Task.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL