99import ray
1010from ray ._common .test_utils import wait_for_condition
1111from ray ._private .test_utils import (
12- raw_metrics ,
12+ PrometheusTimeseries ,
13+ raw_metric_timeseries ,
1314)
1415from ray ._private .worker import RayContext
1516from ray .dashboard .consts import RAY_DASHBOARD_STATS_UPDATING_INTERVAL
2627}
2728
2829
29- def _objects_by_tag (info : RayContext , tag : str ) -> Dict :
30- res = raw_metrics (info )
30+ def _objects_by_tag (
31+ info : RayContext , tag : str , timeseries : PrometheusTimeseries
32+ ) -> Dict :
33+ res = raw_metric_timeseries (info , timeseries )
3134 objects_info = defaultdict (int )
3235 if "ray_object_store_memory" in res :
3336 for sample in res ["ray_object_store_memory" ]:
@@ -41,12 +44,12 @@ def _objects_by_tag(info: RayContext, tag: str) -> Dict:
4144 return objects_info
4245
4346
44- def objects_by_seal_state (info : RayContext ) -> Dict :
45- return _objects_by_tag (info , "ObjectState" )
47+ def objects_by_seal_state (info : RayContext , timeseries : PrometheusTimeseries ) -> Dict :
48+ return _objects_by_tag (info , "ObjectState" , timeseries )
4649
4750
48- def objects_by_loc (info : RayContext ) -> Dict :
49- return _objects_by_tag (info , "Location" )
51+ def objects_by_loc (info : RayContext , timeseries : PrometheusTimeseries ) -> Dict :
52+ return _objects_by_tag (info , "Location" , timeseries )
5053
5154
5255def approx_eq_dict_in (actual : Dict , expected : Dict , e : int ) -> bool :
@@ -79,6 +82,7 @@ def test_shared_memory_and_inline_worker_heap(shutdown_only):
7982 },
8083 },
8184 )
85+ timeseries = PrometheusTimeseries ()
8286
8387 # Allocate 80MiB data
8488 objs_in_use = ray .get (
@@ -94,7 +98,7 @@ def test_shared_memory_and_inline_worker_heap(shutdown_only):
9498
9599 wait_for_condition (
96100 # 1KiB for metadata difference
97- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 2 * KiB ),
101+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 2 * KiB ),
98102 timeout = 20 ,
99103 retry_interval_ms = 500 ,
100104 )
@@ -117,7 +121,7 @@ def func():
117121
118122 wait_for_condition (
119123 # 4 KiB for metadata difference
120- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 4 * KiB ),
124+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 4 * KiB ),
121125 timeout = 20 ,
122126 retry_interval_ms = 500 ,
123127 )
@@ -136,7 +140,7 @@ def func():
136140
137141 wait_for_condition (
138142 # 1KiB for metadata difference
139- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 2 * KiB ),
143+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 2 * KiB ),
140144 timeout = 20 ,
141145 retry_interval_ms = 500 ,
142146 )
@@ -158,7 +162,7 @@ def test_spilling(object_spilling_config, shutdown_only):
158162 ** {"object_spilling_config" : object_spilling_config },
159163 },
160164 )
161-
165+ timeseries = PrometheusTimeseries ()
162166 # Create and use 100MiB data, which should fit in memory
163167 objs1 = [ray .put (np .zeros (50 * MiB , dtype = np .uint8 )) for _ in range (2 )]
164168
@@ -171,7 +175,7 @@ def test_spilling(object_spilling_config, shutdown_only):
171175
172176 wait_for_condition (
173177 # 1KiB for metadata difference
174- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 1 * KiB ),
178+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 1 * KiB ),
175179 timeout = 20 ,
176180 retry_interval_ms = 500 ,
177181 )
@@ -187,7 +191,7 @@ def test_spilling(object_spilling_config, shutdown_only):
187191 }
188192 wait_for_condition (
189193 # 1KiB for metadata difference
190- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 1 * KiB ),
194+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 1 * KiB ),
191195 timeout = 20 ,
192196 retry_interval_ms = 500 ,
193197 )
@@ -202,7 +206,7 @@ def test_spilling(object_spilling_config, shutdown_only):
202206 }
203207 wait_for_condition (
204208 # 1KiB for metadata difference
205- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 1 * KiB ),
209+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 1 * KiB ),
206210 timeout = 20 ,
207211 retry_interval_ms = 500 ,
208212 )
@@ -217,7 +221,7 @@ def test_spilling(object_spilling_config, shutdown_only):
217221 }
218222 wait_for_condition (
219223 # 1KiB for metadata difference
220- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 1 * KiB ),
224+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 1 * KiB ),
221225 timeout = 20 ,
222226 retry_interval_ms = 500 ,
223227 )
@@ -239,6 +243,7 @@ def test_fallback_memory(shutdown_only):
239243 object_store_memory = expected_in_memory * obj_size_mb * MiB + delta_mb * MiB ,
240244 _system_config = _SYSTEM_CONFIG ,
241245 )
246+ timeseries = PrometheusTimeseries ()
242247 obj_refs = [
243248 ray .put (np .zeros (obj_size_mb * MiB , dtype = np .uint8 ))
244249 for _ in range (expected_in_memory )
@@ -257,7 +262,7 @@ def test_fallback_memory(shutdown_only):
257262
258263 wait_for_condition (
259264 # 2KiB for metadata difference
260- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 3 * KiB ),
265+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 3 * KiB ),
261266 timeout = 20 ,
262267 retry_interval_ms = 500 ,
263268 )
@@ -285,7 +290,7 @@ def test_fallback_memory(shutdown_only):
285290
286291 wait_for_condition (
287292 # 3KiB for metadata difference
288- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 3 * KiB ),
293+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 3 * KiB ),
289294 timeout = 20 ,
290295 retry_interval_ms = 500 ,
291296 )
@@ -305,7 +310,7 @@ def test_fallback_memory(shutdown_only):
305310
306311 wait_for_condition (
307312 # 3KiB for metadata difference
308- lambda : approx_eq_dict_in (objects_by_loc (info ), expected , 3 * KiB ),
313+ lambda : approx_eq_dict_in (objects_by_loc (info , timeseries ), expected , 3 * KiB ),
309314 timeout = 20 ,
310315 retry_interval_ms = 500 ,
311316 )
@@ -322,7 +327,7 @@ def test_seal_memory(shutdown_only):
322327 object_store_memory = 100 * MiB ,
323328 _system_config = _SYSTEM_CONFIG ,
324329 )
325-
330+ timeseries = PrometheusTimeseries ()
326331 # Allocate 80MiB data
327332 objs_in_use = ray .get (
328333 [ray .put (np .zeros (20 * MiB , dtype = np .uint8 )) for _ in range (4 )]
@@ -335,7 +340,9 @@ def test_seal_memory(shutdown_only):
335340
336341 wait_for_condition (
337342 # 1KiB for metadata difference
338- lambda : approx_eq_dict_in (objects_by_seal_state (info ), expected , 2 * KiB ),
343+ lambda : approx_eq_dict_in (
344+ objects_by_seal_state (info , timeseries ), expected , 2 * KiB
345+ ),
339346 timeout = 20 ,
340347 retry_interval_ms = 500 ,
341348 )
@@ -349,7 +356,9 @@ def test_seal_memory(shutdown_only):
349356
350357 wait_for_condition (
351358 # 1KiB for metadata difference
352- lambda : approx_eq_dict_in (objects_by_seal_state (info ), expected , 2 * KiB ),
359+ lambda : approx_eq_dict_in (
360+ objects_by_seal_state (info , timeseries ), expected , 2 * KiB
361+ ),
353362 timeout = 20 ,
354363 retry_interval_ms = 500 ,
355364 )
@@ -362,9 +371,10 @@ def test_object_store_memory_matches_dashboard_obj_memory(shutdown_only):
362371 ctx = ray .init (
363372 object_store_memory = 500 * MiB ,
364373 )
374+ timeseries = PrometheusTimeseries ()
365375
366376 def verify ():
367- resources = raw_metrics (ctx )["ray_resources" ]
377+ resources = raw_metric_timeseries (ctx , timeseries )["ray_resources" ]
368378 object_store_memory_bytes_from_metrics = 0
369379 for sample in resources :
370380 # print(sample)
0 commit comments