Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type MockReporter ¶
type MockReporter struct {
// contains filtered or unexported fields
}
MockReporter provides a Reporter that provides some useful functionalities for tests (eg.: wait for certain number of messages).
func NewMockReporter ¶
func NewMockReporter(expectedOnMetricsProcessedCalls int) *MockReporter
NewMockReporter returns a new instance of a MockReporter.
func (*MockReporter) OnDebugf ¶
func (m *MockReporter) OnDebugf(_ string, _ ...any)
func (*MockReporter) WaitAllOnMetricsProcessedCalls ¶
func (m *MockReporter) WaitAllOnMetricsProcessedCalls()
WaitAllOnMetricsProcessedCalls blocks until the number of expected calls specified at creation of the reporter is completed.
type Reporter ¶
type Reporter interface { // OnDebugf allows less structured reporting for debugging scenarios. OnDebugf( template string, args ...any) }
Reporter is used to report (via zPages, logs, metrics, etc) the events happening when the Server is receiving and processing data.
type Server ¶
type Server interface { // ListenAndServe is a blocking call that starts to listen for client messages // on the specific transport, and prepares the message to be processed by // the Parser and passed to the next consumer. ListenAndServe( mc consumer.Metrics, r Reporter, transferChan chan<- Metric, ) error // Close stops any running ListenAndServe, however, it waits for any // data already received to be parsed and sent to the next consumer. Close() error }
Server abstracts the type of transport being used and offer an interface to handle serving clients over that transport.
func NewTCPServer ¶ added in v0.86.0
NewTCPServer creates a transport.Server using TCP as its transport.
type SplitBytes ¶ added in v0.104.0
type SplitBytes struct {
// contains filtered or unexported fields
}
SplitBytes iterates over a byte buffer, returning chunks split by a given delimiter byte. It does not perform any allocations, and does not modify the buffer it is given. It is not safe for use by concurrent goroutines.
sb := NewSplitBytes(buf, '\n') for sb.Next() { fmt.Printf("%q\n", sb.Chunk()) }
The sequence of chunks returned by SplitBytes is equivalent to calling bytes.Split, except without allocating an intermediate slice.
func NewSplitBytes ¶ added in v0.104.0
func NewSplitBytes(buf []byte, delim byte) *SplitBytes
NewSplitBytes initializes a SplitBytes struct with the provided buffer and delimiter.
func (*SplitBytes) Chunk ¶ added in v0.104.0
func (sb *SplitBytes) Chunk() []byte
Chunk returns the current chunk.
func (*SplitBytes) Next ¶ added in v0.104.0
func (sb *SplitBytes) Next() bool
Next advances SplitBytes to the next chunk, returning true if a new chunk actually exists and false otherwise.
type Transport ¶ added in v0.92.0
type Transport string
Transport is a set of constants of the transport supported by this receiver.
func NewTransport ¶ added in v0.92.0
NewTransport creates a Transport based on the transport string or returns an empty Transport.
func (Transport) IsPacketTransport ¶ added in v0.92.0
IsPacketTransport returns true if the transport is packet based.
func (Transport) IsStreamTransport ¶ added in v0.92.0
IsStreamTransport returns true if the transport is stream based.