Documentation ¶
Overview ¶
Package channel contains protocol details of two-way communication channel between pmm-managed and pmm-agent.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AgentRequest ¶
type AgentRequest struct { ID uint32 Payload agentpb.AgentRequestPayload }
AgentRequest represents an request from agent. It is similar to agentpb.AgentMessage except it can contain only requests, and the payload is already unwrapped (XXX instead of AgentMessage_XXX).
type Channel ¶
type Channel struct {
// contains filtered or unexported fields
}
Channel encapsulates two-way communication channel between pmm-managed and pmm-agent.
All exported methods are thread-safe.
func New ¶
func New(stream agentpb.Agent_ConnectServer, m *SharedChannelMetrics) *Channel
New creates new two-way communication channel with given stream.
Stream should not be used by the caller after channel is created.
func (*Channel) Requests ¶
func (c *Channel) Requests() <-chan *AgentRequest
Requests returns a channel for incoming requests. It must be read. It is closed on any error (see Wait).
func (*Channel) SendRequest ¶
func (c *Channel) SendRequest(payload agentpb.ServerRequestPayload) agentpb.AgentResponsePayload
SendRequest sends request to pmm-managed, blocks until response is available, and returns it. Response will be nil if channel is closed. It is no-op once channel is closed (see Wait).
func (*Channel) SendResponse ¶
func (c *Channel) SendResponse(resp *ServerResponse)
SendResponse sends message to pmm-managed. It is no-op once channel is closed (see Wait).
type ServerResponse ¶
type ServerResponse struct { ID uint32 Payload agentpb.ServerResponsePayload }
ServerResponse represents server's response. It is similar to agentpb.ServerMessage except it can contain only responses, and the payload is already unwrapped (XXX instead of ServerMessage_XXX).
type SharedChannelMetrics ¶
type SharedChannelMetrics struct {
// contains filtered or unexported fields
}
SharedChannelMetrics represents channel metrics shared between all channels.
func NewSharedMetrics ¶
func NewSharedMetrics() *SharedChannelMetrics
NewSharedMetrics creates new SharedChannelMetrics.
func (*SharedChannelMetrics) Collect ¶
func (scm *SharedChannelMetrics) Collect(ch chan<- prom.Metric)
Collect implement prometheus.Collector.
func (*SharedChannelMetrics) Describe ¶
func (scm *SharedChannelMetrics) Describe(ch chan<- *prom.Desc)
Describe implements prometheus.Collector.