Documentation ¶
Overview ¶
Package conn implements a bi-directional communication channel between an envelope and a weavelet.
Index ¶
- func Profile(req *protos.RunProfiling) ([]byte, error)
- type EnvelopeConn
- type EnvelopeHandler
- type WeaveletConn
- func (d *WeaveletConn) ExportListenerRPC(req *protos.ExportListenerRequest) (*protos.ExportListenerReply, error)
- func (d *WeaveletConn) GetAddressRPC(req *protos.GetAddressRequest) (*protos.GetAddressReply, error)
- func (d *WeaveletConn) GetComponentsToStartRPC(info *protos.GetComponentsToStart) (*protos.ComponentsToStart, error)
- func (d *WeaveletConn) GetRoutingInfoRPC(info *protos.GetRoutingInfo) (*protos.RoutingInfo, error)
- func (d *WeaveletConn) RegisterReplicaRPC(replica *protos.ReplicaToRegister) error
- func (d *WeaveletConn) ReportLoadRPC(load *protos.WeaveletLoadReport) error
- func (d *WeaveletConn) Run() error
- func (d *WeaveletConn) SendLogEntry(entry *protos.LogEntry) error
- func (d *WeaveletConn) SendTraceSpans(spans *protos.Spans) error
- func (d *WeaveletConn) StartColocationGroupRPC(group *protos.ColocationGroup) error
- func (d *WeaveletConn) StartComponentRPC(componentToStart *protos.ComponentToStart) error
- func (d *WeaveletConn) Weavelet() *protos.WeaveletInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type EnvelopeConn ¶
type EnvelopeConn struct {
// contains filtered or unexported fields
}
EnvelopeConn is the envelope side of the connection between a weavelet and the envelope.
func NewEnvelopeConn ¶
func NewEnvelopeConn(r io.ReadCloser, w io.WriteCloser, h EnvelopeHandler, weavelet *protos.WeaveletInfo) (*EnvelopeConn, error)
NewEnvelopeConn creates the envelope side of the connection between a weavelet and an envelope. The connection uses (r,w) to carry messages. Synthesized high-level events are passed to h.
NewEnvelopeConn sends the provided protos.Weavelet to the weavelet.
func (*EnvelopeConn) DoProfilingRPC ¶
func (e *EnvelopeConn) DoProfilingRPC(req *protos.RunProfiling) (*protos.Profile, error)
DoProfilingRPC requests the weavelet to profile itself and return its profile data.
func (*EnvelopeConn) GetMetricsRPC ¶
func (e *EnvelopeConn) GetMetricsRPC() ([]*metrics.MetricSnapshot, error)
GetMetricsRPC requests the weavelet to return its up-to-date metrics.
func (*EnvelopeConn) HealthStatusRPC ¶
func (e *EnvelopeConn) HealthStatusRPC() (protos.HealthStatus, error)
HealthStatusRPC requests the weavelet to return its health status.
func (*EnvelopeConn) Run ¶
func (e *EnvelopeConn) Run() error
Run interacts with the peer. Messages that are received are handled as an ordered sequence.
type EnvelopeHandler ¶
type EnvelopeHandler interface { // StartComponent starts the given component. StartComponent(entry *protos.ComponentToStart) error // StartColocationGroup starts the given colocation group. StartColocationGroup(entry *protos.ColocationGroup) error // RegisterReplica registers the given weavelet replica. RegisterReplica(entry *protos.ReplicaToRegister) error // ReportLoad reports the given weavelet load information. ReportLoad(entry *protos.WeaveletLoadReport) error // GetAddress gets the address a weavelet should listen on for a listener. GetAddress(req *protos.GetAddressRequest) (*protos.GetAddressReply, error) // ExportListener exports the given listener. ExportListener(req *protos.ExportListenerRequest) (*protos.ExportListenerReply, error) // GetRoutingInfo returns the latest routing information for the weavelet. // // This is a blocking method that can be processed out-of-order w.r.t. // the other methods. GetRoutingInfo(request *protos.GetRoutingInfo) (*protos.RoutingInfo, error) // GetComponentsToStart is a blocking call that returns the latest set of // components that should be started by the weavelet. // // This is a blocking method that can be processed out-of-order w.r.t. // the other methods. GetComponentsToStart(request *protos.GetComponentsToStart) (*protos.ComponentsToStart, error) // RecvLogEntry enables the envelope to receive a log entry. RecvLogEntry(entry *protos.LogEntry) // RecvTraceSpans enables the envelope to receive a sequence of trace spans. RecvTraceSpans(spans []trace.ReadOnlySpan) error }
EnvelopeHandler implements the envelope side processing of messages exchanged with the managed weavelet.
type WeaveletConn ¶
type WeaveletConn struct {
// contains filtered or unexported fields
}
WeaveletConn is the weavelet side of the connection between a weavelet and its envelope. It communicates with the envelope over a pair of pipes.
func NewWeaveletConn ¶
func NewWeaveletConn(r io.ReadCloser, w io.WriteCloser) (*WeaveletConn, error)
NewWeaveletConn creates the weavelet side of the connection between a weavelet and its envelope. The connection uses (r,w) to carry messages. Synthesized high-level events are passed to h.
NewWeaveletConn blocks until it receives a protos.Weavelet from the envelope.
func (*WeaveletConn) ExportListenerRPC ¶
func (d *WeaveletConn) ExportListenerRPC(req *protos.ExportListenerRequest) (*protos.ExportListenerReply, error)
func (*WeaveletConn) GetAddressRPC ¶ added in v0.1.2
func (d *WeaveletConn) GetAddressRPC(req *protos.GetAddressRequest) (*protos.GetAddressReply, error)
func (*WeaveletConn) GetComponentsToStartRPC ¶
func (d *WeaveletConn) GetComponentsToStartRPC(info *protos.GetComponentsToStart) (*protos.ComponentsToStart, error)
GetComponentsToStartRPC is a blocking call to the envelope to send us a list of components to start.
func (*WeaveletConn) GetRoutingInfoRPC ¶
func (d *WeaveletConn) GetRoutingInfoRPC(info *protos.GetRoutingInfo) (*protos.RoutingInfo, error)
GetRoutingInfoRPC requests the envelope to send us the latest routing info.
func (*WeaveletConn) RegisterReplicaRPC ¶
func (d *WeaveletConn) RegisterReplicaRPC(replica *protos.ReplicaToRegister) error
RegisterReplicaRPC requests the envelope to register the given replica.
func (*WeaveletConn) ReportLoadRPC ¶
func (d *WeaveletConn) ReportLoadRPC(load *protos.WeaveletLoadReport) error
ReportLoadRPC reports the given load to the envelope.
func (*WeaveletConn) Run ¶
func (d *WeaveletConn) Run() error
Run interacts with the peer. Messages that are received are handled as an ordered sequence.
func (*WeaveletConn) SendLogEntry ¶
func (d *WeaveletConn) SendLogEntry(entry *protos.LogEntry) error
SendLogEntry sends a log entry to the envelope, without waiting for a reply.
func (*WeaveletConn) SendTraceSpans ¶
func (d *WeaveletConn) SendTraceSpans(spans *protos.Spans) error
SendTraceSpans sends a set of trace spans to the envelope, without waiting for a reply.
func (*WeaveletConn) StartColocationGroupRPC ¶
func (d *WeaveletConn) StartColocationGroupRPC(group *protos.ColocationGroup) error
StartColocationGroupRPC requests the envelope to start the given colocation group.
func (*WeaveletConn) StartComponentRPC ¶
func (d *WeaveletConn) StartComponentRPC(componentToStart *protos.ComponentToStart) error
StartComponentRPC requests the envelope to start the given component.
func (*WeaveletConn) Weavelet ¶
func (d *WeaveletConn) Weavelet() *protos.WeaveletInfo
Weavelet returns the protos.Weavelet for this weavelet.