We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents db756a1 + 3ee337e commit 2022a41Copy full SHA for 2022a41
1 file changed
lib/prometheus/client/data_stores/direct_file_store.rb
@@ -114,8 +114,7 @@ def increment(labels:, by: 1)
114
115
key = store_key(labels)
116
in_process_sync do
117
- value = internal_store.read_value(key)
118
- internal_store.write_value(key, value + by.to_f)
+ internal_store.increment_value(key, by.to_f)
119
end
120
121
@@ -286,6 +285,21 @@ def write_value(key, value)
286
285
@f.flush
287
288
+ def increment_value(key, by)
289
+ if !@positions.has_key?(key)
290
+ init_value(key)
291
+ end
292
+
293
+ pos = @positions[key]
294
+ @f.seek(pos)
295
+ value = @f.read(8).unpack('d')[0]
296
297
+ now = Process.clock_gettime(Process::CLOCK_MONOTONIC)
298
+ @f.seek(-8, :CUR)
299
+ @f.write([value + by, now].pack('dd'))
300
+ @f.flush
301
302
303
def close
304
@f.close
305
0 commit comments