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 interface{}) *pb.MetricsCollection_RootLabels

        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.