@@ -33,9 +33,15 @@ class InvalidStoreSettingsError < StandardError; end
3333 DEFAULT_METRIC_SETTINGS = { aggregation : SUM }
3434 DEFAULT_GAUGE_SETTINGS = { aggregation : ALL }
3535
36- def initialize ( dir :)
36+ def initialize ( dir :, clean_dir : false )
3737 @store_settings = { dir : dir }
3838 FileUtils . mkdir_p ( dir )
39+
40+ if clean_dir
41+ Dir . glob ( File . join ( dir , "#{ MetricStore ::FILENAME_PREFIX } _*___*.bin" ) ) . each do |file_path |
42+ File . unlink ( file_path )
43+ end
44+ end
3945 end
4046
4147 def for_metric ( metric_name , metric_type :, metric_settings : { } )
@@ -52,6 +58,12 @@ def for_metric(metric_name, metric_type:, metric_settings: {})
5258 metric_settings : settings )
5359 end
5460
61+ def clean_pid ( pid )
62+ Dir . glob ( File . join ( @store_settings [ :dir ] , "#{ MetricStore ::FILENAME_PREFIX } _*___#{ pid } .bin" ) ) . each do |file_path |
63+ File . unlink ( file_path )
64+ end
65+ end
66+
5567 private
5668
5769 def validate_metric_settings ( metric_settings )
@@ -68,6 +80,7 @@ def validate_metric_settings(metric_settings)
6880 end
6981
7082 class MetricStore
83+ FILENAME_PREFIX = "prometheus_#{ Prometheus ::Client ::VERSION } "
7184 attr_reader :metric_name , :store_settings
7285
7386 def initialize ( metric_name :, store_settings :, metric_settings :)
@@ -168,12 +181,12 @@ def internal_store
168181
169182 # Filename for this metric's PStore (one per process)
170183 def filemap_filename
171- filename = "metric_ #{ metric_name } ___#{ process_id } .bin"
184+ filename = "#{ FILENAME_PREFIX } _ #{ metric_name } ___#{ process_id } .bin"
172185 File . join ( @store_settings [ :dir ] , filename )
173186 end
174187
175188 def stores_for_metric
176- Dir . glob ( File . join ( @store_settings [ :dir ] , "metric_ #{ metric_name } ___*" ) )
189+ Dir . glob ( File . join ( @store_settings [ :dir ] , "#{ FILENAME_PREFIX } _ #{ metric_name } ___*.bin " ) )
177190 end
178191
179192 def process_id
0 commit comments