async function generatePayloads()

in scripts/apm-server-load-test.js [257:328]


async function generatePayloads(transactionCount, trPerSession = 10) {
  const spanPerTransaction = 50
  let promises = []
  let sessionId
  let baseUrl
  let payloads = []
  for (let i = 0; i < transactionCount; i++) {
    const sequence = i % trPerSession
    if (sequence == 0) {
      sessionId = generateRandomId(16)
      baseUrl = faker.internet.url()
    }

    let payload = generateTransaction(
      spanPerTransaction,
      sessionId,
      sequence + 1,
      baseUrl
    )
    payload.unshift(merge({}, defaultMeta))
    payloads.push(payload)
    let p = postPayload(`${serverUrl}/intake/v2/rum/events`, payload)
    promises.push(p)
  }
  let transactionResponses = await Promise.all(promises)
  const responses = {}
  transactionResponses.forEach(tr => {
    if (!responses[tr]) {
      responses[tr] = 1
    } else {
      responses[tr]++
    }
  })

  const result = {
    '@timestamp': Date.now(),
    transactionCount,
    spanPerTransaction,
    apmServer: null,
    transformStats: null,
    responses
  }

  try {
    let response = await fetch(`${serverUrl}/debug/vars`)
    const apmServerResults = await response.json()
    result.apmServer = apmServerResults
  } catch (error) {
    result.apmServer = error
  }

  if (debug) {
    console.log(responses)
    result.payloads = payloads
    try {
      let transformStats = await fetch(
        `${esUrl}/_transform/transform_rum_sessions/_stats`,
        {
          method: 'GET',
          headers: {
            Authorization: esAuth
          }
        }
      )
      result.transformStats = await transformStats.json()
    } catch (error) {
      result.transformStats = error
    }
  }

  return result
}