log

package
v0.0.0-...-b571b42 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2025 License: AGPL-3.0 Imports: 1 Imported by: 0

Documentation

Overview

Package log provides an interface and data structures for MySQL log parsers. Log parsing yields events that are aggregated to calculate metric statistics like max Query_time. See also percona.com/go-mysql/event/.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event struct {
	Offset        uint64    // byte offset in file at which event starts
	OffsetEnd     uint64    // byte offset in file at which event ends
	Ts            time.Time // timestamp of event
	Admin         bool      // true if Query is admin command
	Query         string    // SQL query or admin command
	User          string
	Host          string
	Db            string
	TimeMetrics   map[string]float64 // *_time and *_wait metrics
	NumberMetrics map[string]uint64  // most metrics
	BoolMetrics   map[string]bool    // yes/no metrics
	RateType      string             // Percona Server rate limit type
	RateLimit     uint               // Percona Server rate limit value
}

An event is a query like "SELECT col FROM t WHERE id = 1", some metrics like Query_time (slow log) or SUM_TIMER_WAIT (Performance Schema), and other metadata like default database, timestamp, etc. Metrics and metadata are not guaranteed to be defined--and frequently they are not--but at minimum an event is expected to define the query and Query_time metric. Other metrics and metadata vary according to MySQL version, distro, and configuration.

func NewEvent

func NewEvent() *Event

NewEvent returns a new Event with initialized metric maps.

type LogParser

type LogParser interface {
	Start() error
	Stop()
	EventChan() <-chan *Event
}

A LogParser sends events to a channel.

type Options

type Options struct {
	StartOffset        uint64          // byte offset in file at which to start parsing
	FilterAdminCommand map[string]bool // admin commands to ignore
	Debug              bool            // print trace info to STDOUT
	DefaultLocation    *time.Location  // DefaultLocation to assume for logs in MySQL < 5.7 format.
}

Options encapsulate common options for making a new LogParser.

Directories

Path Synopsis
Package slow implements a MySQL slow log parser.
Package slow implements a MySQL slow log parser.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL