Documentation ¶
Overview ¶
Package parser implements a MySQL slow log parser.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ContinuousFileReader ¶
type ContinuousFileReader struct {
// contains filtered or unexported fields
}
ContinuousFileReader reads lines from the single file across renames, truncations and symlink changes.
func NewContinuousFileReader ¶
func NewContinuousFileReader(filename string, l Logger) (*ContinuousFileReader, error)
NewContinuousFileReader creates new ContinuousFileReader.
func (*ContinuousFileReader) Close ¶
func (r *ContinuousFileReader) Close() error
Close implements Reader interface.
func (*ContinuousFileReader) Metrics ¶
func (r *ContinuousFileReader) Metrics() *ReaderMetrics
Metrics implements Reader interface.
func (*ContinuousFileReader) NextLine ¶
func (r *ContinuousFileReader) NextLine() (string, error)
NextLine implements Reader interface.
type Reader ¶
type Reader interface { // NextLine reads full lines from the underlying source and returns them (including the last '\n'). // If the full line can't be read because of EOF, reader implementation may decide to return it, // or block and wait for new data to arrive. Other errors should be returned without blocking. // NextLine also should not block when the source is closed, but it may return buffered data while it has it. NextLine() (string, error) // Close closes the underlying source. A caller should continue to call NextLine until error is returned. Close() error // Metrics returns current metrics. Metrics() *ReaderMetrics }
A Reader reads lines from the underlying source.
Implementation should allow concurrent calls to different methods.
type ReaderMetrics ¶
ReaderMetrics contains Reader metrics.
type SimpleFileReader ¶
type SimpleFileReader struct {
// contains filtered or unexported fields
}
SimpleFileReader reads lines from the single file from the start until EOF.
func NewSimpleFileReader ¶
func NewSimpleFileReader(filename string) (*SimpleFileReader, error)
NewSimpleFileReader creates new SimpleFileReader.
func (*SimpleFileReader) Close ¶
func (r *SimpleFileReader) Close() error
Close implements Reader interface.
func (*SimpleFileReader) Metrics ¶
func (r *SimpleFileReader) Metrics() *ReaderMetrics
Metrics implements Reader interface.
func (*SimpleFileReader) NextLine ¶
func (r *SimpleFileReader) NextLine() (string, error)
NextLine implements Reader interface.
type SlowLogParser ¶
type SlowLogParser struct {
// contains filtered or unexported fields
}
A SlowLogParser parses a MySQL slow log.
func NewSlowLogParser ¶
func NewSlowLogParser(r Reader, opts log.Options) *SlowLogParser
NewSlowLogParser returns a new SlowLogParser that reads from the given reader.
func (*SlowLogParser) Err ¶
func (p *SlowLogParser) Err() error
Err returns a reason why parsing stop. It must be called only after Parse() returned nil.
func (*SlowLogParser) Parse ¶
func (p *SlowLogParser) Parse() *log.Event
Parse returns next parsed event, or nil, when parsing is done.
func (*SlowLogParser) Run ¶
func (p *SlowLogParser) Run()
Run parses events until reader's NextLine() method returns error. Caller should call Parse() until nil is returned, then inspect Err().