Skip to content

Commit a6e663a

Browse files
committed
Add replication task latency histogram
Signed-off-by: Diana Zawadzki <dzawa@live.de>
1 parent 4e6f35e commit a6e663a

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

common/metrics/defs.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2226,6 +2226,7 @@ const (
22262226
PersistenceFailures
22272227
PersistenceLatency
22282228
PersistenceLatencyHistogram
2229+
PersistenceQuota
22292230
PersistenceErrShardExistsCounter
22302231
PersistenceErrShardOwnershipLostCounter
22312232
PersistenceErrConditionFailedCounter
@@ -2480,6 +2481,7 @@ const (
24802481
const (
24812482
TaskRequests = iota + NumCommonMetrics
24822483
TaskLatency
2484+
ExponentialTaskLatency
24832485
TaskFailures
24842486
TaskDiscarded
24852487
TaskAttemptTimer
@@ -2650,6 +2652,7 @@ const (
26502652
CacheRequests
26512653
CacheFailures
26522654
CacheLatency
2655+
ExponentialCacheLatency
26532656
CacheHitCounter
26542657
CacheMissCounter
26552658
CacheFullCounter
@@ -3045,6 +3048,7 @@ var MetricDefs = map[ServiceIdx]map[MetricIdx]metricDefinition{
30453048
PersistenceFailures: {metricName: "persistence_errors", metricType: Counter},
30463049
PersistenceLatency: {metricName: "persistence_latency", metricType: Timer},
30473050
PersistenceLatencyHistogram: {metricName: "persistence_latency_histogram", metricType: Histogram, buckets: PersistenceLatencyBuckets},
3051+
PersistenceQuota: {metricName: "persistence_quota", metricType: Gauge},
30483052
PersistenceErrShardExistsCounter: {metricName: "persistence_errors_shard_exists", metricType: Counter},
30493053
PersistenceErrShardOwnershipLostCounter: {metricName: "persistence_errors_shard_ownership_lost", metricType: Counter},
30503054
PersistenceErrConditionFailedCounter: {metricName: "persistence_errors_condition_failed", metricType: Counter},
@@ -3309,6 +3313,7 @@ var MetricDefs = map[ServiceIdx]map[MetricIdx]metricDefinition{
33093313
History: {
33103314
TaskRequests: {metricName: "task_requests", metricType: Counter},
33113315
TaskLatency: {metricName: "task_latency", metricType: Timer},
3316+
ExponentialTaskLatency: {metricName: "task_latency_ns", metricType: Histogram, exponentialBuckets: Low1ms100s},
33123317
TaskAttemptTimer: {metricName: "task_attempt", metricType: Timer},
33133318
TaskFailures: {metricName: "task_errors", metricType: Counter},
33143319
TaskDiscarded: {metricName: "task_errors_discarded", metricType: Counter},
@@ -3470,10 +3475,11 @@ var MetricDefs = map[ServiceIdx]map[MetricIdx]metricDefinition{
34703475
UnbufferReplicationTaskTimer: {metricName: "unbuffer_replication_tasks", metricType: Timer},
34713476
HistoryConflictsCounter: {metricName: "history_conflicts", metricType: Counter},
34723477
CompleteTaskFailedCounter: {metricName: "complete_task_fail_count", metricType: Counter},
3473-
CacheSize: {metricName: "cache_size", metricType: Timer},
3478+
CacheSize: {metricName: "cache_size", metricType: Gauge},
34743479
CacheRequests: {metricName: "cache_requests", metricType: Counter},
34753480
CacheFailures: {metricName: "cache_errors", metricType: Counter},
34763481
CacheLatency: {metricName: "cache_latency", metricType: Timer},
3482+
ExponentialCacheLatency: {metricName: "cache_latency_ns", metricType: Histogram, exponentialBuckets: Low1ms100s},
34773483
CacheHitCounter: {metricName: "cache_hit", metricType: Counter},
34783484
CacheMissCounter: {metricName: "cache_miss", metricType: Counter},
34793485
CacheFullCounter: {metricName: "cache_full", metricType: Counter},

service/history/replication/task_ack_manager.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,13 @@ func (t *TaskAckManager) getTasks(ctx context.Context, pollingCluster string, la
131131
lastReadTaskID = previousReadTaskID
132132
}
133133

134+
// Keep timer (backwards compatible), dual-emit exponential histogram for migration.
135+
taskGeneratedStart := t.timeSource.Now()
134136
taskGeneratedTimer := t.scope.StartTimer(metrics.TaskLatency)
135137
defer taskGeneratedTimer.Stop()
138+
defer func() {
139+
t.scope.ExponentialHistogram(metrics.ExponentialTaskLatency, t.timeSource.Since(taskGeneratedStart))
140+
}()
136141

137142
batchSize := t.dynamicTaskBatchSizer.value()
138143
t.scope.UpdateGauge(metrics.ReplicationTasksBatchSize, float64(batchSize))

0 commit comments

Comments
 (0)