Documentation ¶
Overview ¶
Package probes is a generated protocol buffer package.
It is generated from these files:
github.com/google/cloudprober/probes/config.proto
It has these top-level messages:
ProbeDef
Package probes provides an interface to initialize probes using prober config.
Index ¶
- Constants
- Variables
- func Init(probeProtobufs []*ProbeDef, globalTargetsOpts *targets.GlobalTargetsOptions, ...) (map[string]Probe, error)
- func RegisterProbeType(extensionFieldNo int, newProbeFunc func() Probe)
- func RegisterUserDefined(name string, probe Probe)
- type Probe
- type ProbeDef
- func (*ProbeDef) Descriptor() ([]byte, []int)
- func (*ProbeDef) ExtensionRangeArray() []proto.ExtensionRange
- func (m *ProbeDef) GetDnsProbe() *cloudprober_probes_dns.ProbeConf
- func (m *ProbeDef) GetExternalProbe() *cloudprober_probes_external.ProbeConf
- func (m *ProbeDef) GetHttpProbe() *cloudprober_probes_http.ProbeConf
- func (m *ProbeDef) GetIntervalMsec() int32
- func (m *ProbeDef) GetLatencyDistribution() *cloudprober_metrics.Dist
- func (m *ProbeDef) GetLatencyUnit() string
- func (m *ProbeDef) GetName() string
- func (m *ProbeDef) GetPingProbe() *cloudprober_probes_ping.ProbeConf
- func (m *ProbeDef) GetProbe() isProbeDef_Probe
- func (m *ProbeDef) GetRunOn() string
- func (m *ProbeDef) GetTargets() *cloudprober_targets.TargetsDef
- func (m *ProbeDef) GetTimeoutMsec() int32
- func (m *ProbeDef) GetType() ProbeDef_Type
- func (m *ProbeDef) GetUdpListenerProbe() *cloudprober_probes_udplistener.ProbeConf
- func (m *ProbeDef) GetUdpProbe() *cloudprober_probes_udp.ProbeConf
- func (m *ProbeDef) GetUserDefinedProbe() string
- func (*ProbeDef) ProtoMessage()
- func (m *ProbeDef) Reset()
- func (m *ProbeDef) String() string
- func (*ProbeDef) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, ...)
- type ProbeDef_DnsProbe
- type ProbeDef_ExternalProbe
- type ProbeDef_HttpProbe
- type ProbeDef_PingProbe
- type ProbeDef_Type
- type ProbeDef_UdpListenerProbe
- type ProbeDef_UdpProbe
- type ProbeDef_UserDefinedProbe
Constants ¶
const Default_ProbeDef_IntervalMsec int32 = 2000
const Default_ProbeDef_LatencyUnit string = "us"
const Default_ProbeDef_TimeoutMsec int32 = 1000
Variables ¶
var ProbeDef_Type_name = map[int32]string{
0: "PING",
1: "HTTP",
2: "DNS",
3: "EXTERNAL",
4: "UDP",
5: "UDP_LISTENER",
98: "EXTENSION",
99: "USER_DEFINED",
}
var ProbeDef_Type_value = map[string]int32{
"PING": 0,
"HTTP": 1,
"DNS": 2,
"EXTERNAL": 3,
"UDP": 4,
"UDP_LISTENER": 5,
"EXTENSION": 98,
"USER_DEFINED": 99,
}
Functions ¶
func Init ¶
func Init(probeProtobufs []*ProbeDef, globalTargetsOpts *targets.GlobalTargetsOptions, l *logger.Logger, sysVars map[string]string) (map[string]Probe, error)
Init initializes the probes defined in the config.
func RegisterProbeType ¶
RegisterProbeType registers a new probe-type. New probe types are integrated with the config subsystem using the protobuf extensions.
TODO: Add a full example of using extensions.
func RegisterUserDefined ¶
RegisterUserDefined allows you to register a user defined probe with cloudprober. Example usage:
import ( "github.com/google/cloudprober" "github.com/google/cloudprober/probes" ) p := &FancyProbe{} probes.RegisterUserDefined("fancy_probe", p) pr, err := cloudprober.InitFromConfig(*configFile) if err != nil { log.Exitf("Error initializing cloudprober. Err: %v", err) }
Types ¶
type Probe ¶
type Probe interface { Init(name string, opts *options.Options) error Start(ctx context.Context, dataChan chan *metrics.EventMetrics) }
Probe interface represents a probe.
A probe is initilized using the Init() method. Init takes the name of the probe and probe options.
Start() method starts the probe. Start is not expected to return for the lifetime of the prober. It takes a data channel that it writes the probe results on. Actual publishing of these results is handled by cloudprober itself.
type ProbeDef ¶
type ProbeDef struct { Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` Type *ProbeDef_Type `protobuf:"varint,2,req,name=type,enum=cloudprober.probes.ProbeDef_Type" json:"type,omitempty"` // Which machines this probe should run on. If defined, cloudprober will run // this probe only if machine's hostname matches this value. RunOn *string `protobuf:"bytes,3,opt,name=run_on,json=runOn" json:"run_on,omitempty"` // Interval between two probes IntervalMsec *int32 `protobuf:"varint,4,opt,name=interval_msec,json=intervalMsec,def=2000" json:"interval_msec,omitempty"` // Timeout for each probe TimeoutMsec *int32 `protobuf:"varint,5,opt,name=timeout_msec,json=timeoutMsec,def=1000" json:"timeout_msec,omitempty"` // Targets for the probe Targets *cloudprober_targets.TargetsDef `protobuf:"bytes,6,req,name=targets" json:"targets,omitempty"` // Latency distribution. If specified, latency is stored as a distribution. LatencyDistribution *cloudprober_metrics.Dist `protobuf:"bytes,7,opt,name=latency_distribution,json=latencyDistribution" json:"latency_distribution,omitempty"` // Latency unit. Any string that's parseable by time.ParseDuration. // Valid values: "ns", "us" (or "µs"), "ms", "s", "m", "h". LatencyUnit *string `protobuf:"bytes,8,opt,name=latency_unit,json=latencyUnit,def=us" json:"latency_unit,omitempty"` // Types that are valid to be assigned to Probe: // *ProbeDef_PingProbe // *ProbeDef_HttpProbe // *ProbeDef_DnsProbe // *ProbeDef_ExternalProbe // *ProbeDef_UdpProbe // *ProbeDef_UdpListenerProbe // *ProbeDef_UserDefinedProbe Probe isProbeDef_Probe `protobuf_oneof:"probe"` proto.XXX_InternalExtensions `json:"-"` XXX_unrecognized []byte `json:"-"` }
func (*ProbeDef) Descriptor ¶
func (*ProbeDef) ExtensionRangeArray ¶
func (*ProbeDef) ExtensionRangeArray() []proto.ExtensionRange
func (*ProbeDef) GetDnsProbe ¶
func (m *ProbeDef) GetDnsProbe() *cloudprober_probes_dns.ProbeConf
func (*ProbeDef) GetExternalProbe ¶
func (m *ProbeDef) GetExternalProbe() *cloudprober_probes_external.ProbeConf
func (*ProbeDef) GetHttpProbe ¶
func (m *ProbeDef) GetHttpProbe() *cloudprober_probes_http.ProbeConf
func (*ProbeDef) GetIntervalMsec ¶
func (*ProbeDef) GetLatencyDistribution ¶
func (m *ProbeDef) GetLatencyDistribution() *cloudprober_metrics.Dist
func (*ProbeDef) GetLatencyUnit ¶
func (*ProbeDef) GetPingProbe ¶
func (m *ProbeDef) GetPingProbe() *cloudprober_probes_ping.ProbeConf
func (*ProbeDef) GetTargets ¶
func (m *ProbeDef) GetTargets() *cloudprober_targets.TargetsDef
func (*ProbeDef) GetTimeoutMsec ¶
func (*ProbeDef) GetType ¶
func (m *ProbeDef) GetType() ProbeDef_Type
func (*ProbeDef) GetUdpListenerProbe ¶
func (m *ProbeDef) GetUdpListenerProbe() *cloudprober_probes_udplistener.ProbeConf
func (*ProbeDef) GetUdpProbe ¶
func (m *ProbeDef) GetUdpProbe() *cloudprober_probes_udp.ProbeConf
func (*ProbeDef) GetUserDefinedProbe ¶
func (*ProbeDef) ProtoMessage ¶
func (*ProbeDef) ProtoMessage()
type ProbeDef_DnsProbe ¶
type ProbeDef_DnsProbe struct {
DnsProbe *cloudprober_probes_dns.ProbeConf `protobuf:"bytes,22,opt,name=dns_probe,json=dnsProbe,oneof"`
}
type ProbeDef_ExternalProbe ¶
type ProbeDef_ExternalProbe struct {
ExternalProbe *cloudprober_probes_external.ProbeConf `protobuf:"bytes,23,opt,name=external_probe,json=externalProbe,oneof"`
}
type ProbeDef_HttpProbe ¶
type ProbeDef_HttpProbe struct {
HttpProbe *cloudprober_probes_http.ProbeConf `protobuf:"bytes,21,opt,name=http_probe,json=httpProbe,oneof"`
}
type ProbeDef_PingProbe ¶
type ProbeDef_PingProbe struct {
PingProbe *cloudprober_probes_ping.ProbeConf `protobuf:"bytes,20,opt,name=ping_probe,json=pingProbe,oneof"`
}
type ProbeDef_Type ¶
type ProbeDef_Type int32
const ( ProbeDef_PING ProbeDef_Type = 0 ProbeDef_HTTP ProbeDef_Type = 1 ProbeDef_DNS ProbeDef_Type = 2 ProbeDef_EXTERNAL ProbeDef_Type = 3 ProbeDef_UDP ProbeDef_Type = 4 ProbeDef_UDP_LISTENER ProbeDef_Type = 5 // One of the extension probe types. See "extensions" below for more // details. ProbeDef_EXTENSION ProbeDef_Type = 98 // USER_DEFINED probe type is for a one off probe that you want to compile // into cloudprober, but you don't expect it to be reused. If you expect // it to be reused, you should consider adding it using the extensions // mechanism. ProbeDef_USER_DEFINED ProbeDef_Type = 99 )
func (ProbeDef_Type) Enum ¶
func (x ProbeDef_Type) Enum() *ProbeDef_Type
func (ProbeDef_Type) EnumDescriptor ¶
func (ProbeDef_Type) EnumDescriptor() ([]byte, []int)
func (ProbeDef_Type) String ¶
func (x ProbeDef_Type) String() string
func (*ProbeDef_Type) UnmarshalJSON ¶
func (x *ProbeDef_Type) UnmarshalJSON(data []byte) error
type ProbeDef_UdpListenerProbe ¶
type ProbeDef_UdpListenerProbe struct {
UdpListenerProbe *cloudprober_probes_udplistener.ProbeConf `protobuf:"bytes,25,opt,name=udp_listener_probe,json=udpListenerProbe,oneof"`
}
type ProbeDef_UdpProbe ¶
type ProbeDef_UdpProbe struct {
UdpProbe *cloudprober_probes_udp.ProbeConf `protobuf:"bytes,24,opt,name=udp_probe,json=udpProbe,oneof"`
}
type ProbeDef_UserDefinedProbe ¶
type ProbeDef_UserDefinedProbe struct {
UserDefinedProbe string `protobuf:"bytes,99,opt,name=user_defined_probe,json=userDefinedProbe,oneof"`
}
Directories ¶
Path | Synopsis |
---|---|
Package dns is a generated protocol buffer package.
|
Package dns is a generated protocol buffer package. |
cmd
Dns_bin implements a stand-alone dns prober binary using the cloudprober/probes/dns package.
|
Dns_bin implements a stand-alone dns prober binary using the cloudprober/probes/dns package. |
Package external is a generated protocol buffer package.
|
Package external is a generated protocol buffer package. |
cmd
This program implements a stand-alone external prober binary using the cloudprober/probes/external package.
|
This program implements a stand-alone external prober binary using the cloudprober/probes/external package. |
serverutils
Package serverutils is a generated protocol buffer package.
|
Package serverutils is a generated protocol buffer package. |
Package http is a generated protocol buffer package.
|
Package http is a generated protocol buffer package. |
cmd
This program implements a stand-alone http prober binary using the cloudprober/http package.
|
This program implements a stand-alone http prober binary using the cloudprober/http package. |
Package options provides a shared interface to common probe options.
|
Package options provides a shared interface to common probe options. |
Package ping is a generated protocol buffer package.
|
Package ping is a generated protocol buffer package. |
cmd
This program implements a stand-alone ping prober binary using the cloudprober/ping package.
|
This program implements a stand-alone ping prober binary using the cloudprober/ping package. |
Package udp is a generated protocol buffer package.
|
Package udp is a generated protocol buffer package. |
cmd
Udp_bin implements a stand-alone udp prober binary using the cloudprober/probes/udp package.
|
Udp_bin implements a stand-alone udp prober binary using the cloudprober/probes/udp package. |
Package udplistener is a generated protocol buffer package.
|
Package udplistener is a generated protocol buffer package. |