@@ -1271,13 +1271,11 @@ impl LoadService {
1271
1271
for declared in declared {
1272
1272
if let Entry :: Vacant ( entry) = running. entry ( declared. uuid ) {
1273
1273
tracing:: info!( "spawning workload {}" , declared. uuid) ;
1274
- let root = tracing:: info_span!( parent: None , "workload" ) ;
1275
1274
let this = Arc :: clone ( self ) ;
1276
1275
let done = Arc :: new ( AtomicBool :: new ( false ) ) ;
1277
1276
let done_p = Arc :: clone ( & done) ;
1278
1277
let inhibit = Arc :: clone ( & self . inhibit ) ;
1279
1278
let task = tokio:: task:: spawn ( async move {
1280
- let _enter = root. enter ( ) ;
1281
1279
this. run_one_workload ( done, inhibit, declared) . await
1282
1280
} ) ;
1283
1281
entry. insert ( ( done_p, task) ) ;
@@ -1295,36 +1293,6 @@ impl LoadService {
1295
1293
let client = Arc :: new ( client ( spec. connection . clone ( ) ) . await ) ;
1296
1294
let mut guac = Guacamole :: new ( spec. expires . timestamp_millis ( ) as u64 ) ;
1297
1295
let mut next_op = Instant :: now ( ) ;
1298
- let ( tx, mut rx) = tokio:: sync:: mpsc:: channel ( 1000 ) ;
1299
- let _ = tx
1300
- . send ( tokio:: spawn ( async move { Ok :: < ( ) , Error > ( ( ) ) } ) )
1301
- . await ;
1302
- let this = Arc :: clone ( & self ) ;
1303
- let data_set = Arc :: clone ( & spec. data_set ) ;
1304
- let reaper = tokio:: spawn ( async move {
1305
- while let Some ( task) = rx. recv ( ) . await {
1306
- if let Err ( err) = task. await . unwrap ( ) {
1307
- if !format ! ( "{err:?}" ) . contains ( "429" ) {
1308
- this. metrics . failed . add (
1309
- 1 ,
1310
- & [ KeyValue :: new (
1311
- Key :: from_static_str ( "data_set" ) ,
1312
- Value :: from ( data_set. name ( ) ) ,
1313
- ) ] ,
1314
- ) ;
1315
- tracing:: error!( "workload task failed: {err:?}" ) ;
1316
- } else {
1317
- this. metrics . limited . add (
1318
- 1 ,
1319
- & [ KeyValue :: new (
1320
- Key :: from_static_str ( "data_set" ) ,
1321
- Value :: from ( data_set. name ( ) ) ,
1322
- ) ] ,
1323
- ) ;
1324
- }
1325
- }
1326
- }
1327
- } ) ;
1328
1296
1329
1297
// Initialize the data set.
1330
1298
let data_set = Arc :: clone ( & spec. data_set ) ;
@@ -1408,30 +1376,44 @@ impl LoadService {
1408
1376
. await
1409
1377
. map_err ( |err| Error :: FailWorkload ( err. to_string ( ) ) )
1410
1378
{
1411
- Ok ( ( ) ) => Ok ( ( ) ) ,
1379
+ Ok ( ( ) ) => ( ) ,
1412
1380
Err ( err) => {
1413
- if err . to_string ( ) . contains ( "invalid request: No results" ) {
1381
+ if format ! ( "{err:?}" ) . contains ( "invalid request: No results" ) {
1414
1382
this. metrics . no_results . add (
1415
1383
1 ,
1416
1384
& [ KeyValue :: new (
1417
1385
Key :: from_static_str ( "data_set" ) ,
1418
1386
Value :: from ( data_set. name ( ) ) ,
1419
1387
) ] ,
1420
1388
) ;
1421
- Ok ( ( ) )
1389
+ tracing:: warn!( "workload step no results: {err:?}" ) ;
1390
+ } else if !format ! ( "{err:?}" ) . contains ( "429" ) {
1391
+ this. metrics . failed . add (
1392
+ 1 ,
1393
+ & [ KeyValue :: new (
1394
+ Key :: from_static_str ( "data_set" ) ,
1395
+ Value :: from ( data_set. name ( ) ) ,
1396
+ ) ] ,
1397
+ ) ;
1398
+ tracing:: error!( "workload step failed: {err:?}" ) ;
1422
1399
} else {
1423
- Err ( err)
1400
+ this. metrics . limited . add (
1401
+ 1 ,
1402
+ & [ KeyValue :: new (
1403
+ Key :: from_static_str ( "data_set" ) ,
1404
+ Value :: from ( data_set. name ( ) ) ,
1405
+ ) ] ,
1406
+ ) ;
1407
+ tracing:: warn!( "workload step rate limited: {err:?}" ) ;
1424
1408
}
1425
1409
}
1426
- }
1410
+ } ;
1427
1411
} ;
1428
- tx. send ( tokio:: spawn ( fut) ) . await . unwrap ( ) ;
1412
+ let span = tracing:: info_span!( parent: None , "step" , workload_uuid = %spec. uuid) ;
1413
+ tokio:: spawn ( fut. instrument ( span) ) ;
1429
1414
}
1430
1415
}
1431
- // Not an error, just needs to show up in stdout.
1432
- tracing:: error!( "workload done: {}/{}" , spec. name, spec. description( ) ) ;
1433
- drop ( tx) ;
1434
- reaper. await . unwrap ( ) ;
1416
+ tracing:: info!( "workload done: {}/{}" , spec. name, spec. description( ) ) ;
1435
1417
}
1436
1418
1437
1419
fn load_persistent ( & self ) -> Result < ( ) , Error > {
0 commit comments