diff --git a/scripts/acceptance/provider-burst.sh b/scripts/acceptance/provider-burst.sh index 33186d4..7667fcb 100644 --- a/scripts/acceptance/provider-burst.sh +++ b/scripts/acceptance/provider-burst.sh @@ -46,9 +46,9 @@ WITH source AS ( LIMIT 1 ), variants(platform_id, platform_key, platform_name, concurrency_limit, rpm_limit, tpm_limit, priority) AS ( VALUES - ('${provider_burst_platform_ids[0]}'::uuid, 'acceptance-provider-burst-2', 'Acceptance Provider Burst C2', 2, 4, 28, 100), - ('${provider_burst_platform_ids[1]}'::uuid, 'acceptance-provider-burst-4', 'Acceptance Provider Burst C4', 4, 8, 56, 100), - ('${provider_burst_platform_ids[2]}'::uuid, 'acceptance-provider-burst-6', 'Acceptance Provider Burst C6', 6, 12, 84, 200) + ('${provider_burst_platform_ids[0]}'::uuid, 'acceptance-provider-burst-2', 'Acceptance Provider Burst C2', 2, 2, 14, 100), + ('${provider_burst_platform_ids[1]}'::uuid, 'acceptance-provider-burst-4', 'Acceptance Provider Burst C4', 4, 4, 28, 100), + ('${provider_burst_platform_ids[2]}'::uuid, 'acceptance-provider-burst-6', 'Acceptance Provider Burst C6', 6, 3, 21, 200) ) INSERT INTO integration_platforms ( id, provider, platform_key, name, base_url, auth_type, credentials, config, @@ -106,9 +106,9 @@ WITH source AS ( LIMIT 1 ), variants(model_id, platform_id, concurrency_limit, rpm_limit, tpm_limit) AS ( VALUES - ('${provider_burst_model_ids[0]}'::uuid, '${provider_burst_platform_ids[0]}'::uuid, 2, 4, 28), - ('${provider_burst_model_ids[1]}'::uuid, '${provider_burst_platform_ids[1]}'::uuid, 4, 8, 56), - ('${provider_burst_model_ids[2]}'::uuid, '${provider_burst_platform_ids[2]}'::uuid, 6, 12, 84) + ('${provider_burst_model_ids[0]}'::uuid, '${provider_burst_platform_ids[0]}'::uuid, 2, 2, 14), + ('${provider_burst_model_ids[1]}'::uuid, '${provider_burst_platform_ids[1]}'::uuid, 4, 4, 28), + ('${provider_burst_model_ids[2]}'::uuid, '${provider_burst_platform_ids[2]}'::uuid, 6, 3, 21) ) INSERT INTO platform_models ( id, platform_id, base_model_id, model_name, model_alias, model_type, @@ -232,7 +232,7 @@ JOIN platform_models model ON model.platform_id = platform.id WHERE COALESCE((platform.config->>'acceptanceProviderBurst')::boolean, false) AND platform.config->>'acceptanceBurstRunId' = '$run_id';") jq -e '.platforms == 3 and .enabled == 3 and .limits == [2,4,6] and - .rpmLimits == [4,8,12] and .tpmLimits == [28,56,84] and .priorities == [100,100,200]' \ + .rpmLimits == [2,4,3] and .tpmLimits == [14,28,21] and .priorities == [100,100,200]' \ <<<"$configured" >/dev/null } @@ -467,13 +467,15 @@ SELECT jsonb_build_object( FROM gateway_task_callback_outbox callback WHERE callback.task_id IN (SELECT id FROM gateway_tasks WHERE acceptance_run_id='$run_id'::uuid);") resource_summary=$(provider_burst_resource_summary "$resources") - if ! jq -e 'length==3 and + if ! jq -e --argjson requests "$requests" 'length==3 and [.[].priority] == [100,100,200] and - [.[].attempts] == [4,8,12] and - all(.[]; .peak == .limit and .rpmPeak == .rpmLimit and .tpmPeak == .tpmLimit)' \ + ([.[].attempts]|add)==$requests and all(.[]; .attempts>0) and + all(.[]; .peak<=.limit and .rpmPeak==.rpmLimit and .tpmPeak==.tpmLimit) and + .[0].peak==.[0].limit and .[1].peak==.[1].limit' \ <<<"$platforms" >/dev/null; then passed=false; fi if ! jq -e '.[0].priority==.[1].priority and - .[0].attempts*2==.[1].attempts and + ((.[0].attempts/.[0].limit)/(.[1].attempts/.[1].limit))>=0.5 and + ((.[0].attempts/.[0].limit)/(.[1].attempts/.[1].limit))<=2 and .[2].priority>.[1].priority and .[0].peak==.[0].limit and .[1].peak==.[1].limit and .[2].attempts>0' \ <<<"$platforms" >/dev/null; then passed=false; fi @@ -505,7 +507,14 @@ WHERE callback.task_id IN (SELECT id FROM gateway_tasks WHERE acceptance_run_id= platforms:$platforms, totalConfiguredConcurrency:([$platforms[].limit]|add), samePriorityLoadBalanced:($platforms[0].priority==$platforms[1].priority and - $platforms[0].attempts*2==$platforms[1].attempts), + (($platforms[0].attempts/$platforms[0].limit)/($platforms[1].attempts/$platforms[1].limit))>=0.5 and + (($platforms[0].attempts/$platforms[0].limit)/($platforms[1].attempts/$platforms[1].limit))<=2), + highPriorityHardLimitsSaturated:($platforms[0].peak==$platforms[0].limit and + $platforms[1].peak==$platforms[1].limit and + $platforms[0].rpmPeak==$platforms[0].rpmLimit and + $platforms[1].rpmPeak==$platforms[1].rpmLimit and + $platforms[0].tpmPeak==$platforms[0].tpmLimit and + $platforms[1].tpmPeak==$platforms[1].tpmLimit), lowerPrioritySpilloverObserved:($platforms[2].priority>$platforms[1].priority and $platforms[0].peak==$platforms[0].limit and $platforms[1].peak==$platforms[1].limit and