Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions DEPS.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -1754,10 +1754,10 @@ def go_deps():
patches = [
"@com_github_cockroachdb_cockroach//build/patches:com_github_cockroachdb_crlib.patch",
],
sha256 = "a9a4b8810d52a2d18dddbbc359d060f5db854e328b4d75f12b7c5081ac25b2a2",
strip_prefix = "github.com/cockroachdb/[email protected]20251024155502-a2e0a212ef05",
sha256 = "fa361e52b072ce18ac1d103e2556851906477361b5fe688745d29b1efabff3cb",
strip_prefix = "github.com/cockroachdb/[email protected]20251122031428-fe658a2dbda1",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlib/com_github_cockroachdb_crlib-v0.0.0-20251024155502-a2e0a212ef05.zip",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlib/com_github_cockroachdb_crlib-v0.0.0-20251122031428-fe658a2dbda1.zip",
],
)
go_repository(
Expand Down Expand Up @@ -1834,10 +1834,10 @@ def go_deps():
patches = [
"@com_github_cockroachdb_cockroach//build/patches:com_github_cockroachdb_pebble.patch",
],
sha256 = "e70a40a057027337af8f5bc3758dc0b1bd30c81a96f7d42455856c16f08b6309",
strip_prefix = "github.com/cockroachdb/[email protected]20251119182253-219f3fc13027",
sha256 = "402e2c8db1b570e5ea8395779f08dffcb30b8615e2f5bef6ba0de6d469810dd4",
strip_prefix = "github.com/cockroachdb/[email protected]20251124213414-e6b971f9a96e",
urls = [
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20251119182253-219f3fc13027.zip",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20251124213414-e6b971f9a96e.zip",
],
)
go_repository(
Expand Down
4 changes: 2 additions & 2 deletions build/bazelutil/distdir_files.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ DISTDIR_FILES = {
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/cmux/com_github_cockroachdb_cmux-v0.0.0-20250514152509-914d3bf9ec58.zip": "c1cf4cd99a1ad6a00f2ccd4188cbcf004cb0d56895670b2c171061ce564cd791",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/cockroach-go/v2/com_github_cockroachdb_cockroach_go_v2-v2.4.1.zip": "ba646db91152f3121a6812c7b74d12d8c0e126f7b4d3b927618b159692ceb424",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlfmt/com_github_cockroachdb_crlfmt-v0.0.0-20221214225007-b2fc5c302548.zip": "fedc01bdd6d964da0425d5eaac8efadc951e78e13f102292cc0774197f09ab63",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlib/com_github_cockroachdb_crlib-v0.0.0-20251024155502-a2e0a212ef05.zip": "a9a4b8810d52a2d18dddbbc359d060f5db854e328b4d75f12b7c5081ac25b2a2",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/crlib/com_github_cockroachdb_crlib-v0.0.0-20251122031428-fe658a2dbda1.zip": "fa361e52b072ce18ac1d103e2556851906477361b5fe688745d29b1efabff3cb",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/datadriven/com_github_cockroachdb_datadriven-v1.0.3-0.20251006155849-f84f9e519edd.zip": "a7ffcef0b264d9c28c36b2f9b737ff739542f472d7614938ae507e2da269f6c2",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/drpc/com_github_cockroachdb_drpc-v0.0.0-20250924114114-78d4e121902a.zip": "98b44a51f82873f93f77da80230212ab40f35044e8d38645cb1392ae03462f0b",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/errors/com_github_cockroachdb_errors-v1.12.1-0.20251010171200-64801262cd6f.zip": "4df66cc44791d4290071696abf179dc6df7b94b4cb5d29a20f39c6bf522c60ee",
Expand All @@ -352,7 +352,7 @@ DISTDIR_FILES = {
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/gostdlib/com_github_cockroachdb_gostdlib-v1.19.0.zip": "c4d516bcfe8c07b6fc09b8a9a07a95065b36c2855627cb3514e40c98f872b69e",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/logtags/com_github_cockroachdb_logtags-v0.0.0-20241215232642-bb51bb14a506.zip": "920068af09e3846d9ebb4e4a7787ff1dd10f3989c5f940ad861b0f6a9f824f6e",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/metamorphic/com_github_cockroachdb_metamorphic-v0.0.0-20231108215700-4ba948b56895.zip": "28c8cf42192951b69378cf537be5a9a43f2aeb35542908cc4fe5f689505853ea",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20251119182253-219f3fc13027.zip": "e70a40a057027337af8f5bc3758dc0b1bd30c81a96f7d42455856c16f08b6309",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20251124213414-e6b971f9a96e.zip": "402e2c8db1b570e5ea8395779f08dffcb30b8615e2f5bef6ba0de6d469810dd4",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/redact/com_github_cockroachdb_redact-v1.1.6.zip": "018eccb5fb9ca52d43ec9eaf213539d01c1f2b94e0e822406ebfb2e9321ef6cf",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/returncheck/com_github_cockroachdb_returncheck-v0.0.0-20200612231554-92cdbca611dd.zip": "ce92ba4352deec995b1f2eecf16eba7f5d51f5aa245a1c362dfe24c83d31f82b",
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/stress/com_github_cockroachdb_stress-v0.0.0-20220803192808-1806698b1b7b.zip": "3fda531795c600daf25532a4f98be2a1335cd1e5e182c72789bca79f5f69fcc1",
Expand Down
9 changes: 9 additions & 0 deletions docs/generated/metrics/metrics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10548,6 +10548,15 @@ layers:
derivative: NONE
how_to_use: If this value is greater than 100ms, it is an indication of a disk stall. To mitigate the effects of disk stalls, consider deploying your cluster with WAL failover configured. When WAL failover is configured, the more relevant metric is storage.wal.failover_write_and_sync.latency, as this metric reflects the fsync latency of the primary and/or the secondary WAL device.
essential: true
- name: storage.wal.secondary.file_op.latency
exported_name: storage_wal_secondary_file_op_latency
description: The latency of file operations on the secondary Write-Ahead Log device.
y_axis_label: File Op Latency
type: HISTOGRAM
unit: NANOSECONDS
aggregation: AVG
derivative: NONE
how_to_use: Only populated when WAL failover is configured. This metric tracks file operation latency specifically on the secondary WAL device.
- name: storage.write-stalls
exported_name: storage_write_stalls
description: Number of instances of intentional write stalls to backpressure incoming writes
Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -132,12 +132,12 @@ require (
github.com/cockroachdb/changefeedpb v0.0.0-20250818184245-aab9e65dff20
github.com/cockroachdb/cmux v0.0.0-20250514152509-914d3bf9ec58
github.com/cockroachdb/cockroach-go/v2 v2.4.1
github.com/cockroachdb/crlib v0.0.0-20251024155502-a2e0a212ef05
github.com/cockroachdb/crlib v0.0.0-20251122031428-fe658a2dbda1
github.com/cockroachdb/datadriven v1.0.3-0.20251006155849-f84f9e519edd
github.com/cockroachdb/errors v1.12.1-0.20251010171200-64801262cd6f
github.com/cockroachdb/gostdlib v1.19.0
github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506
github.com/cockroachdb/pebble v0.0.0-20251119182253-219f3fc13027
github.com/cockroachdb/pebble v0.0.0-20251124213414-e6b971f9a96e
github.com/cockroachdb/redact v1.1.6
github.com/cockroachdb/returncheck v0.0.0-20200612231554-92cdbca611dd
github.com/cockroachdb/tokenbucket v0.0.0-20250429170803-42689b6311bb
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -550,8 +550,8 @@ github.com/cockroachdb/cockroach-go/v2 v2.4.1 h1:ACVT/zXsuK6waRPVYtDQpsM8pPA7IA/
github.com/cockroachdb/cockroach-go/v2 v2.4.1/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
github.com/cockroachdb/crlfmt v0.0.0-20221214225007-b2fc5c302548 h1:i0bnjanlWAvM50wHMT7EFyxlt5HQusznWrkwl+HBIsU=
github.com/cockroachdb/crlfmt v0.0.0-20221214225007-b2fc5c302548/go.mod h1:qtkxNlt5i3rrdirfJE/bQeW/IeLajKexErv7jEIV+Uc=
github.com/cockroachdb/crlib v0.0.0-20251024155502-a2e0a212ef05 h1:7DV1UcpuwF78hKMC33w8ube+/wawG/57dT8Wo56+vUo=
github.com/cockroachdb/crlib v0.0.0-20251024155502-a2e0a212ef05/go.mod h1:ae57yNis2F1FThSNdPdoXfiPOVi8G1TLreCBQYPOdqo=
github.com/cockroachdb/crlib v0.0.0-20251122031428-fe658a2dbda1 h1:iX0YCYC5Jbt2/g7zNTP/QxhrV8Syp5kkzNiERKeN1uE=
github.com/cockroachdb/crlib v0.0.0-20251122031428-fe658a2dbda1/go.mod h1:NjNuToN/FbhwH1cCyM9G4Rhtxx+ZaOgtoqFR+thng7w=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU=
github.com/cockroachdb/datadriven v1.0.3-0.20251006155849-f84f9e519edd h1:vpWCe7VvdQbQ/9wGtlH3i+Oj+9OggKci3lsASL1ydvg=
Expand All @@ -572,8 +572,8 @@ github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILM
github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo=
github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895 h1:XANOgPYtvELQ/h4IrmPAohXqe2pWA8Bwhejr3VQoZsA=
github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895/go.mod h1:aPd7gM9ov9M8v32Yy5NJrDyOcD8z642dqs+F0CeNXfA=
github.com/cockroachdb/pebble v0.0.0-20251119182253-219f3fc13027 h1:6Rb15Lct/OjpiK4IwuGunbcDXpB3CI8aXu1K8xopu6A=
github.com/cockroachdb/pebble v0.0.0-20251119182253-219f3fc13027/go.mod h1:XCkfpLCGXq5/lUtsHapEvHih54DWRK/AqhWee96YHsU=
github.com/cockroachdb/pebble v0.0.0-20251124213414-e6b971f9a96e h1:937aM14KDCRVKw+mRgM0bbNAxPha350pbTDvnrPUk5c=
github.com/cockroachdb/pebble v0.0.0-20251124213414-e6b971f9a96e/go.mod h1:4p9u+hqtw8sRxiY5cNFWETymMf4brYGG90pS8MzlXmg=
github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314=
github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
github.com/cockroachdb/returncheck v0.0.0-20200612231554-92cdbca611dd h1:KFOt5I9nEKZgCnOSmy8r4Oykh8BYQO8bFOTgHDS8YZA=
Expand Down
23 changes: 22 additions & 1 deletion pkg/kv/kvserver/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -2842,6 +2842,9 @@ Note that the measurement does not include the duration for replicating the eval
Measurement: "Events",
Unit: metric.Unit_COUNT,
}
// metaStorageFsyncLatency tracks the primary WAL device latency.
// For secondary WAL device latency (when WAL failover is configured),
// see metaStorageWALSecondaryFileOpLatency.
metaStorageFsyncLatency = metric.Metadata{
Name: "storage.wal.fsync.latency",
Help: "The fsync latency to the Write-Ahead Log device.",
Expand All @@ -2854,6 +2857,14 @@ Note that the measurement does not include the duration for replicating the eval
"When WAL failover is configured, the more relevant metric is storage.wal.failover_write_and_sync.latency, as " +
"this metric reflects the fsync latency of the primary and/or the secondary WAL device.",
}
metaStorageWALSecondaryFileOpLatency = metric.Metadata{
Name: "storage.wal.secondary.file_op.latency",
Help: "The latency of file operations on the secondary Write-Ahead Log device.",
Measurement: "File Op Latency",
Unit: metric.Unit_NANOSECONDS,
Category: metric.Metadata_STORAGE,
HowToUse: "Only populated when WAL failover is configured. This metric tracks file operation latency specifically on the secondary WAL device.",
}
metaStorageWALFailoverSwitchCount = metric.Metadata{
Name: "storage.wal.failover.switch.count",
Help: "Count of the number of times WAL writing has switched from primary to secondary " +
Expand Down Expand Up @@ -3452,7 +3463,12 @@ type StoreMetrics struct {
SubsumeLocksWritten *metric.Counter

FlushUtilization *metric.GaugeFloat64
FsyncLatency *metric.ManualWindowHistogram
// FsyncLatency tracks file operation latency for the primary WAL device.
// When WAL failover is configured, see also WALSecondaryFileOpLatency.
FsyncLatency *metric.ManualWindowHistogram
// WALSecondaryFileOpLatency tracks file operation latency for the secondary
// WAL device. Only populated when WAL failover is configured.
WALSecondaryFileOpLatency *metric.ManualWindowHistogram

// Disk metrics
DiskReadBytes *metric.Counter
Expand Down Expand Up @@ -4266,6 +4282,11 @@ func newStoreMetrics(histogramWindow time.Duration) *StoreMetrics {
pebble.FsyncLatencyBuckets,
false, /* withRotate */
),
WALSecondaryFileOpLatency: metric.NewManualWindowHistogram(
metaStorageWALSecondaryFileOpLatency,
pebble.FsyncLatencyBuckets,
false, /* withRotate */
),

ReplicaReadBatchDroppedLatchesBeforeEval: metric.NewCounter(metaReplicaReadBatchDroppedLatchesBeforeEval),
ReplicaReadBatchWithoutInterleavingIter: metric.NewCounter(metaReplicaReadBatchWithoutInterleavingIter),
Expand Down
33 changes: 33 additions & 0 deletions pkg/kv/kvserver/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,36 @@ func TestPebbleDiskWriteMetrics(t *testing.T) {
t.Fatal(err)
}
}

// TestWALSecondaryFileOpLatencyMetric verifies that the secondary WAL file
// operation latency metric is properly registered and accessible.
func TestWALSecondaryFileOpLatencyMetric(t *testing.T) {
defer leaktest.AfterTest(t)()
defer log.Scope(t).Close(t)

tmpDir, cleanup := testutils.TempDir(t)
defer cleanup()

ctx := context.Background()
ts, _, _ := serverutils.StartServer(t, base.TestServerArgs{
DefaultTestTenant: base.TestControlsTenantsExplicitly,
StoreSpecs: []base.StoreSpec{
{Size: storageconfig.BytesSize(storageconfig.MinimumStoreSize), Path: tmpDir},
},
})
defer ts.Stopper().Stop(ctx)

// Verify the secondary WAL file operation latency metric is registered.
if err := ts.GetStores().(*Stores).VisitStores(func(s *Store) error {
if ok := s.Registry().Contains("storage.wal.secondary.file_op.latency"); !ok {
return fmt.Errorf("missing secondary WAL file operation latency metric")
}
// Verify the metric is non-nil in the store metrics.
if s.metrics.WALSecondaryFileOpLatency == nil {
return fmt.Errorf("WALSecondaryFileOpLatency metric is nil")
}
return nil
}); err != nil {
t.Fatal(err)
}
}
21 changes: 16 additions & 5 deletions pkg/kv/kvserver/raftstorebench/stats.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,22 @@ func newAggStats() *aggStats {
func printLogWriterMetrics(t T, prefix string, m storage.Metrics) {
var b strings.Builder
_, _ = fmt.Fprintf(&b, "%s logWriter: rate(peak): %s(%s) len(pending,sync): (%.2f,%.2f)",
prefix, humanize.IBytes(uint64(m.LogWriter.WriteThroughput.Rate())),
humanize.IBytes(uint64(m.LogWriter.WriteThroughput.PeakRate())),
m.LogWriter.PendingBufferLen.Mean(), m.LogWriter.SyncQueueLen.Mean())
qs := calculateQuantiles(m.LogWriter.FsyncLatency, 0.5, 0.9, 0.99)
_, _ = fmt.Fprintf(&b, " sync: p50,p90,p99: %.2fms,%.2fms,%.2fms", qs[0]/1e6, qs[1]/1e6, qs[2]/1e6)
prefix, humanize.IBytes(uint64(m.Metrics.WALMetrics.WriteThroughput.Rate())),
humanize.IBytes(uint64(m.Metrics.WALMetrics.WriteThroughput.PeakRate())),
m.Metrics.WALMetrics.PendingBufferLen.Mean(), m.Metrics.WALMetrics.SyncQueueLen.Mean())

// Log primary file operation latency
qsPrimary := calculateQuantiles(m.Metrics.WALMetrics.PrimaryFileOpLatency, 0.5, 0.9, 0.99)
_, _ = fmt.Fprintf(&b, " primary: p50,p90,p99: %.2fms,%.2fms,%.2fms",
qsPrimary[0]/1e6, qsPrimary[1]/1e6, qsPrimary[2]/1e6)

// Log secondary file operation latency if available (WAL failover scenarios)
if m.Metrics.WALMetrics.SecondaryFileOpLatency != nil {
qsSecondary := calculateQuantiles(m.Metrics.WALMetrics.SecondaryFileOpLatency, 0.5, 0.9, 0.99)
_, _ = fmt.Fprintf(&b, " secondary: p50,p90,p99: %.2fms,%.2fms,%.2fms",
qsSecondary[0]/1e6, qsSecondary[1]/1e6, qsSecondary[2]/1e6)
}

logf(t, "%s", &b)
}

Expand Down
8 changes: 7 additions & 1 deletion pkg/kv/kvserver/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -3813,9 +3813,15 @@ func (s *Store) ComputeMetricsPeriodically(
wt.Subtract(prevMetrics.FlushWriteThroughput)

if err := updateWindowedHistogram(
prevMetrics.WALFsyncLatency, m.LogWriter.FsyncLatency, s.metrics.FsyncLatency); err != nil {
prevMetrics.WALFsyncLatency, m.Metrics.WALMetrics.PrimaryFileOpLatency, s.metrics.FsyncLatency); err != nil {
return m, err
}
if m.Metrics.WALMetrics.SecondaryFileOpLatency != nil {
if err := updateWindowedHistogram(
prevMetrics.WALSecondaryFileOpLatency, m.Metrics.WALMetrics.SecondaryFileOpLatency, s.metrics.WALSecondaryFileOpLatency); err != nil {
return m, err
}
}
if m.WAL.Failover.FailoverWriteAndSyncLatency != nil {
if err := updateWindowedHistogram(prevMetrics.WALFailoverWriteAndSyncLatency,
m.WAL.Failover.FailoverWriteAndSyncLatency, s.metrics.WALFailoverWriteAndSyncLatency); err != nil {
Expand Down
4 changes: 4 additions & 0 deletions pkg/roachprod/agents/opentelemetry/cockroachdb_metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -2447,6 +2447,10 @@ var cockroachdbMetrics = map[string]string{
"storage_wal_fsync_latency_bucket": "storage.wal.fsync.latency.bucket",
"storage_wal_fsync_latency_count": "storage.wal.fsync.latency.count",
"storage_wal_fsync_latency_sum": "storage.wal.fsync.latency.sum",
"storage_wal_secondary_file_op_latency": "storage.wal.secondary.file_op.latency",
"storage_wal_secondary_file_op_latency_bucket": "storage.wal.secondary.file_op.latency.bucket",
"storage_wal_secondary_file_op_latency_count": "storage.wal.secondary.file_op.latency.count",
"storage_wal_secondary_file_op_latency_sum": "storage.wal.secondary.file_op.latency.sum",
"storage_write_amplification": "storage.write_amplification",
"storage_write_stall_nanos": "storage.write_stall_nanos",
"storage_write_stalls": "storage.write.stalls",
Expand Down
8 changes: 7 additions & 1 deletion pkg/server/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -1219,7 +1219,7 @@ func (n *Node) computeMetricsPeriodically(
} else {
storeToMetrics[store].FlushWriteThroughput = newMetrics.Flush.WriteThroughput
}
if err := newMetrics.LogWriter.FsyncLatency.Write(&storeToMetrics[store].WALFsyncLatency); err != nil {
if err := newMetrics.Metrics.WALMetrics.PrimaryFileOpLatency.Write(&storeToMetrics[store].WALFsyncLatency); err != nil {
return err
}
if newMetrics.WAL.Failover.FailoverWriteAndSyncLatency != nil {
Expand All @@ -1228,6 +1228,12 @@ func (n *Node) computeMetricsPeriodically(
return err
}
}
if newMetrics.Metrics.WALMetrics.SecondaryFileOpLatency != nil {
if err := newMetrics.Metrics.WALMetrics.SecondaryFileOpLatency.Write(
&storeToMetrics[store].WALSecondaryFileOpLatency); err != nil {
return err
}
}
}
return nil
})
Expand Down
1 change: 1 addition & 0 deletions pkg/storage/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -1337,6 +1337,7 @@ type MetricsForInterval struct {
WALFsyncLatency prometheusgo.Metric
FlushWriteThroughput pebble.ThroughputMetric
WALFailoverWriteAndSyncLatency prometheusgo.Metric
WALSecondaryFileOpLatency prometheusgo.Metric
}

// NumSSTables returns the total number of SSTables in the LSM, aggregated
Expand Down
Loading