in exporter/collector/metrics.go [281:317]
func (me *MetricsExporter) setupWAL() (uint64, uint64, error) {
err := me.closeWAL()
if err != nil {
return 0, 0, err
}
if me.wal == nil {
me.wal = &exporterWAL{}
}
walPath := filepath.Join(me.cfg.MetricConfig.WALConfig.Directory, "gcp_metrics_wal")
me.wal.path = walPath
metricWal, err := wal.Open(walPath, &wal.Options{LogFormat: 1})
if err != nil {
return 0, 0, err
}
me.wal.Log = metricWal
// default to 1 hour exponential backoff
me.wal.maxBackoff = defaultWalMaxBackoff
if me.cfg.MetricConfig.WALConfig.MaxBackoff != 0 {
me.wal.maxBackoff = me.cfg.MetricConfig.WALConfig.MaxBackoff
}
// sync existing WAL indices
rIndex, err := me.wal.FirstIndex()
if err != nil {
return 0, 0, err
}
wIndex, err := me.wal.LastIndex()
if err != nil {
return 0, 0, err
}
return rIndex, wIndex, nil
}