Distribute Load based on requests

I have a web app for which I want to load test its BFF api(backend for frontend). Some of the endpoints are heavily used, while some are rarely used. How to do this correctly using users and rps?

For eg, I have these metrics from a 30-minute window(MAX_DURATION)

  1. /api/req1 – 30000 calls
  2. /api/req2 – 13000 calls
  3. api/req3 — 400 calls

I tried to set up a profile for each type of request using a CSV file and injecting based on that.

… CSV FILE…

requestName,users,rps
req1,1,10
req2,1,5
req3,1,1

prepare scenarios

val req1Scenario: PopulationBuilder = scenario(“REQ 1 Scenario")
  .feed(dataFeeder)
  .exec(req1)
  .inject(rampUsersPerSec(users(req1Profile)) to rps(req1Profile) during MAX_DURATION)

val req2Scenario: PopulationBuilder = scenario(“REQ 2 Scenario")
  .feed(dataFeeder)
  .exec(req2)
  .inject(rampUsersPerSec(users(req2Profile)) to rps(req2Profile) during MAX_DURATION)

val req3Scenario: PopulationBuilder = scenario(“REQ 3 Scenario")
  .feed(dataFeeder)
  .exec(req3)
  .inject(rampUsersPerSec(users(req3Profile)) to rps(req3Profile) during MAX_DURATION)

MAX_DURATION is 30 minutes.

Now, inject scenarios

  setUp(
    appChecksScenario
      andThen (
      req1Scenario,
      req2Scenario,
      req3Scenario
      )
  ).maxDuration(MAX_DURATION).protocols(httpProtocol)

users and rps are self-functions that extract the users/rps values from that csv file

My question is how to come up with the numbers for users/rps here? Or there is a better way to do this?