rtcreporter

package
v0.0.0-...-b28dce8 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2017 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package rtcreporter implements a reporting mechanism for RTC targets. The RtcReportOptions configures how a cloudprober instance should populate an RtcTargetInfo protobuf to report to a set of RTC configurations. For more information, see cloudprober/targets/rtc to see how target listing works for RTC configs.

When reporting attributes such as public/private ip, the sysVars map will be used. For more info see cloudprober/util.

Package rtcreporter is a generated protocol buffer package.

It is generated from these files:

github.com/google/cloudprober/targets/rtc/rtcreporter/rtcreporter.proto

It has these top-level messages:

RtcReportOptions
RtcTargetInfo

Index

Constants

View Source
const Default_RtcReportOptions_IntervalMsec int32 = 10000

Variables

This section is empty.

Functions

This section is empty.

Types

type Reporter

type Reporter struct {
	// contains filtered or unexported fields
}

Reporter provides the means and configuration for a cloudprober instance to report its sysVars to a set of RTC configs.

func New

func New(pb *RtcReportOptions, sysVars map[string]string, l *logger.Logger) (*Reporter, error)

New returns a Reporter from a provided configuration. An error will be returned if any of the report_variables are not defined in sysVars.

func (*Reporter) Start

func (r *Reporter) Start(ctx context.Context)

Start calls report for every RTC config each tick of the clock.

type RtcReportOptions

type RtcReportOptions struct {
	// RTC configs which cloudprober should report itself to.
	Cfgs []string `protobuf:"bytes,1,rep,name=cfgs" json:"cfgs,omitempty"`
	// RTC rate at which cloudprober should report itself.
	IntervalMsec *int32 `protobuf:"varint,2,opt,name=interval_msec,json=intervalMsec,def=10000" json:"interval_msec,omitempty"`
	// Which system variables should be reported. For more information see
	// cloudprober/util. The sysVars dictionary contains variable names mapped to
	// their values. variables should be a list of the variable names that should
	// be reported (such as public/private ips).
	Variables []string `protobuf:"bytes,3,rep,name=variables" json:"variables,omitempty"`
	// Which groups this instance is a member of. See RtcTargetInfo.group for
	// more info.
	Groups           []string `protobuf:"bytes,4,rep,name=groups" json:"groups,omitempty"`
	XXX_unrecognized []byte   `json:"-"`
}

func (*RtcReportOptions) Descriptor

func (*RtcReportOptions) Descriptor() ([]byte, []int)

func (*RtcReportOptions) GetCfgs

func (m *RtcReportOptions) GetCfgs() []string

func (*RtcReportOptions) GetGroups

func (m *RtcReportOptions) GetGroups() []string

func (*RtcReportOptions) GetIntervalMsec

func (m *RtcReportOptions) GetIntervalMsec() int32

func (*RtcReportOptions) GetVariables

func (m *RtcReportOptions) GetVariables() []string

func (*RtcReportOptions) ProtoMessage

func (*RtcReportOptions) ProtoMessage()

func (*RtcReportOptions) Reset

func (m *RtcReportOptions) Reset()

func (*RtcReportOptions) String

func (m *RtcReportOptions) String() string

type RtcTargetInfo

type RtcTargetInfo struct {
	// Name of host. Also used as variable name in the RTC config.
	InstanceName *string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName" json:"instance_name,omitempty"`
	// List of tags this host belongs to, in order to filter out groups of related
	// hosts. For instance, maybe an rtc lister will only include instances that
	// have the group tag "DMZ_1". Instances may belong to multiple groups.
	Groups []string `protobuf:"bytes,2,rep,name=groups" json:"groups,omitempty"`
	// List of all ways this host can be addressed (such as public / private ip).
	Addresses        []*RtcTargetInfo_Address `protobuf:"bytes,3,rep,name=addresses" json:"addresses,omitempty"`
	XXX_unrecognized []byte                   `json:"-"`
}

RtcTargetInfo is used by RTC targets. Hosts report all the ways they may be addressed to an RTC configuration, which will later be used as target information. The rtcreporter package is responsible for creating and sending these protobufs, while the rtc targets type of the targets package will receive these protobufs.

func (*RtcTargetInfo) Descriptor

func (*RtcTargetInfo) Descriptor() ([]byte, []int)

func (*RtcTargetInfo) GetAddresses

func (m *RtcTargetInfo) GetAddresses() []*RtcTargetInfo_Address

func (*RtcTargetInfo) GetGroups

func (m *RtcTargetInfo) GetGroups() []string

func (*RtcTargetInfo) GetInstanceName

func (m *RtcTargetInfo) GetInstanceName() string

func (*RtcTargetInfo) ProtoMessage

func (*RtcTargetInfo) ProtoMessage()

func (*RtcTargetInfo) Reset

func (m *RtcTargetInfo) Reset()

func (*RtcTargetInfo) String

func (m *RtcTargetInfo) String() string

type RtcTargetInfo_Address

type RtcTargetInfo_Address struct {
	// "Name" of this address. An rtc lister may only include, for instance,
	// public ip addresses. It will filter out all Addresses that do not have
	// "PUBLIC_IP" as their tag.
	Tag *string `protobuf:"bytes,1,opt,name=tag" json:"tag,omitempty"`
	// Address contents.
	Address          *string `protobuf:"bytes,2,opt,name=address" json:"address,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (*RtcTargetInfo_Address) Descriptor

func (*RtcTargetInfo_Address) Descriptor() ([]byte, []int)

func (*RtcTargetInfo_Address) GetAddress

func (m *RtcTargetInfo_Address) GetAddress() string

func (*RtcTargetInfo_Address) GetTag

func (m *RtcTargetInfo_Address) GetTag() string

func (*RtcTargetInfo_Address) ProtoMessage

func (*RtcTargetInfo_Address) ProtoMessage()

func (*RtcTargetInfo_Address) Reset

func (m *RtcTargetInfo_Address) Reset()

func (*RtcTargetInfo_Address) String

func (m *RtcTargetInfo_Address) String() string

Jump to

Keyboard shortcuts

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