func getEventsMetrics(s scope, process string) Events {
	return Events{
		NumWorkers:     ProcessCounterInit(s, "num_"+process+"_workers"),
		EventsRead:     CounterInit(s, process+"_events_read"),
		EventsWritten:  CounterInit(s, process+"_events_written"),
		BytesRead:      CounterInit(s, process+"_bytes_read"),
		BytesWritten:   CounterInit(s, process+"_bytes_written"),
		BatchSize:      TimerInit(s, process+"_batch_size"),
		ReadLatency:    TimerInit(s, process+"_read_latency"),
		ProduceLatency: TimerInit(s, process+"_produce_latency"),
	}
}
getEventsMetrics returns the Events metrics object for a given process (ChangelogReader, Snapshot or Streamer)
package metrics
import "time"
type counter interface {
	Update(value int64)
}
type timer interface {
	Start()
	Stop()
	Record(time.Duration)
}
type scope interface {
	InitCounter(name string) counter
	InitTimer(name string) timer
	SubScope(name string) scope
	Tagged(tags map[string]string) scope
}
type metricsConstructor func() (scope, error)
var metricsInit metricsConstructor = noopMetricsInit
var _ metricsConstructor = tallyMetricsInit
var IdleWorkers *ProcessCounter
type State struct {
	NumTablesRegistered *Counter
	Sync         *ProcessCounter
	SyncDuration *Timer
	TableReg         *ProcessCounter
	TableRegDuration *Timer
	TableDereg         *ProcessCounter
	TableDeregDuration *Timer
	SyncErrors *Counter
}
type Events struct {
	NumWorkers    *ProcessCounter
	EventsRead    *Counter
	EventsWritten *Counter
	BytesRead     *Counter
	BytesWritten  *Counter
	BatchSize     *Timer
	ReadLatency    *Timer
	ProduceLatency *Timer
}
type Snapshot struct {
	Events
	Errors      *Counter
	Duration    *Timer
	SizeRead    *Counter
	SizeWritten *Counter
	ThrottledUs *Counter
}
type Streamer struct {
	Events
	TimeInBuffer *Timer
	Errors       *Counter
	LockLost     *Counter
}
type ChangelogReader struct {
	Events
	ChangelogRowEventsWritten   *Counter
	ChangelogAlterTableEvents   *Counter
	ChangelogQueryEventsWritten *Counter
	ChangelogUnhandledEvents    *Counter
	TimeToEncounter *Timer
	NumTablesIngesting *Counter
	Errors *Counter
	LockLost *Counter
}
type Validation struct {
	NumValidations           *ProcessCounter
	ValidationRowsProcessed  *Counter
	ValidatedInsertEvents    *Counter
	ValidatedDeleteEvents    *Counter
	ValidatedSchemaEvents    *Counter
	ValidationFailed         *Counter
	ValidationSuccess        *Counter
	ValidationSuccessBatch   *Counter
	ValidationSchemaErrors   *Counter
	ValidationEventTypeError *Counter
	SnapshotBase             *Snapshot
	SnapshotRef              *Snapshot
}
type FilePipeMetrics struct {
	BytesWritten *Counter
	BytesRead    *Counter
	FilesCreated *Counter
	FilesOpened  *Counter
	FilesClosed  *Counter  
}