Skip to content

Commit

Permalink
loki/wal: Add last reclaimed segment metric (#4703)
Browse files Browse the repository at this point in the history
  • Loading branch information
thepalbi authored Aug 4, 2023
1 parent c497037 commit 8bc17c0
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
5 changes: 4 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ Main (unreleased)

- Flow: Add a new stage `non_indexed_labels` to attach non-indexed labels from extracted data to log line entry. (@vlad-diachenko)

- `loki.write` now exposes basic WAL support. (@thepalbi)

- `loki.write` WAL now exposes a last segment reclaimed metric. (@thepalbi)

- New Grafana Agent Flow components:

- `prometheus.exporter.gcp` - scrape GCP metrics. (@tburgessdev)
Expand All @@ -55,7 +59,6 @@ Main (unreleased)
- `discovery.eureka` discovers targets from a Eureka Service Registry. (@spartan0x117)
- `discovery.openstack` - service discovery for OpenStack. (@marctc)
- `discovery.hetzner` - service discovery for Hetzner Cloud. (@marctc)
- `loki.write` now exposes basic WAL support. (@thepalbi)

### Bugfixes

Expand Down
10 changes: 10 additions & 0 deletions component/common/loki/wal/writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ type Writer struct {
writeSubscribers []WriteEventSubscriber

reclaimedOldSegmentsSpaceCounter *prometheus.CounterVec
lastReclaimedSegment *prometheus.GaugeVec

closeCleaner chan struct{}
}
Expand Down Expand Up @@ -89,8 +90,16 @@ func NewWriter(walCfg Config, logger log.Logger, reg prometheus.Registerer) (*Wr
Help: "Number of bytes reclaimed from storage.",
}, []string{})

wrt.lastReclaimedSegment = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: "loki_write",
Subsystem: "wal_writer",
Name: "last_reclaimed_segment",
Help: "Last reclaimed segment number",
}, []string{})

if reg != nil {
_ = reg.Register(wrt.reclaimedOldSegmentsSpaceCounter)
_ = reg.Register(wrt.lastReclaimedSegment)
}

wrt.start(walCfg.MaxSegmentAge)
Expand Down Expand Up @@ -202,6 +211,7 @@ func (wrt *Writer) cleanSegments(maxAge time.Duration) error {
for _, subscriber := range wrt.cleanupSubscribers {
subscriber.SeriesReset(maxReclaimed)
}
wrt.lastReclaimedSegment.WithLabelValues().Set(float64(maxReclaimed))
}
return nil
}
Expand Down

0 comments on commit 8bc17c0

Please sign in to comment.