szkiba / xk6-output-plugin-js

JavaScript plugin SDK for xk6-output-plugin k6 extension

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xk6-output-plugin-js

JavaScript plugin SDK for xk6-output-plugin.

Documentation

API documentation

yarn

yarn add xk6-output-plugin-js

npm

npm add xk6-output-plugin-js

Example

import { serve, Info } from 'xk6-output-plugin-js'

class Example {
  init (params) {
    console.info('init')
    return { description: 'example-js plugin' }
  }

  start () {
    console.info('start')
  }

  stop () {
    console.info('stop')
  }

  addMetrics (metrics) {
    console.info('metrics')
    metrics.forEach(metric => {
      console.info(
        { 'metric.type': metric.type, 'metric.contains': metric.contains },
        metric.name
      )
    })
  }

  addSamples (samples) {
    console.info('samples')
    samples.forEach(sample => {
      console.info(
        { 'sample.time': new Date(sample.time).toISOString(), 'sample.value': sample.value },
        sample.metric
      )
    })
  }
}

serve(new Example())
Output
          /\      |‾‾| /‾‾/   /‾‾/   
     /\  /  \     |  |/  /   /  /    
    /  \/    \    |     (   /   ‾‾\  
   /          \   |  |\  \ |  (‾)  | 
  / __________ \  |__| \__\ \_____/ .io

INFO[0000] init                                          plugin=example.js
  execution: local
     script: script.js
     output: example-js plugin

  scenarios: (100.00%) 1 scenario, 1 max VUs, 10m30s max duration (incl. graceful stop):
           * default: 1 iterations for each of 1 VUs (maxDuration: 10m0s, gracefulStop: 30s)

INFO[0000] start                                         plugin=example.js
INFO[0001] metrics                                       plugin=example.js
INFO[0001] http_reqs                                     metric.contains=DEFAULT metric.type=COUNTER plugin=example.js
INFO[0001] http_req_duration                             metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0001] http_req_blocked                              metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0001] http_req_connecting                           metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0001] http_req_tls_handshaking                      metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0001] http_req_sending                              metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0001] http_req_waiting                              metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0001] http_req_receiving                            metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0001] http_req_failed                               metric.contains=DEFAULT metric.type=RATE plugin=example.js
INFO[0001] samples                                       plugin=example.js
INFO[0001] http_reqs                                     plugin=example.js sample.time="2023-06-23T07:19:16.636Z" sample.value=1
INFO[0001] http_req_duration                             plugin=example.js sample.time="2023-06-23T07:19:16.636Z" sample.value=122.422427
INFO[0001] http_req_blocked                              plugin=example.js sample.time="2023-06-23T07:19:16.636Z" sample.value=138.24792
INFO[0001] http_req_connecting                           plugin=example.js sample.time="2023-06-23T07:19:16.636Z" sample.value=122.250959
INFO[0001] http_req_tls_handshaking                      plugin=example.js sample.time="2023-06-23T07:19:16.636Z"
INFO[0001] http_req_sending                              plugin=example.js sample.time="2023-06-23T07:19:16.636Z" sample.value=0.068827
INFO[0001] http_req_waiting                              plugin=example.js sample.time="2023-06-23T07:19:16.636Z" sample.value=122.270076
INFO[0001] http_req_receiving                            plugin=example.js sample.time="2023-06-23T07:19:16.636Z" sample.value=0.083524
INFO[0001] http_req_failed                               plugin=example.js sample.time="2023-06-23T07:19:16.636Z"
INFO[0001] http_reqs                                     plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=1
INFO[0001] http_req_duration                             plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=127.856718
INFO[0001] http_req_blocked                              plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=250.898776
INFO[0001] http_req_connecting                           plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=124.567128
INFO[0001] http_req_tls_handshaking                      plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=126.245516
INFO[0001] http_req_sending                              plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=0.05719
INFO[0001] http_req_waiting                              plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=127.653513
INFO[0001] http_req_receiving                            plugin=example.js sample.time="2023-06-23T07:19:17.015Z" sample.value=0.146015
INFO[0001] http_req_failed                               plugin=example.js sample.time="2023-06-23T07:19:17.015Z"
INFO[0002] metrics                                       plugin=example.js
INFO[0002] vus                                           metric.contains=DEFAULT metric.type=GAUGE plugin=example.js
INFO[0002] vus_max                                       metric.contains=DEFAULT metric.type=GAUGE plugin=example.js
INFO[0002] data_sent                                     metric.contains=DATA metric.type=COUNTER plugin=example.js
INFO[0002] data_received                                 metric.contains=DATA metric.type=COUNTER plugin=example.js
INFO[0002] iteration_duration                            metric.contains=TIME metric.type=TREND plugin=example.js
INFO[0002] iterations                                    metric.contains=DEFAULT metric.type=COUNTER plugin=example.js
INFO[0002] samples                                       plugin=example.js
INFO[0002] vus                                           plugin=example.js sample.time="2023-06-23T07:19:17.375Z" sample.value=1
INFO[0002] vus_max                                       plugin=example.js sample.time="2023-06-23T07:19:17.375Z" sample.value=1
INFO[0002] data_sent                                     plugin=example.js sample.time="2023-06-23T07:19:18.015Z" sample.value=542
INFO[0002] data_received                                 plugin=example.js sample.time="2023-06-23T07:19:18.015Z" sample.value=17338
INFO[0002] iteration_duration                            plugin=example.js sample.time="2023-06-23T07:19:18.015Z" sample.value=1640.163223
INFO[0002] iterations                                    plugin=example.js sample.time="2023-06-23T07:19:18.015Z" sample.value=1
INFO[0002] stop                                          plugin=example.js

     data_received..................: 17 kB 11 kB/s
     data_sent......................: 542 B 330 B/s
     http_req_blocked...............: avg=194.57ms min=138.24ms med=194.57ms max=250.89ms p(90)=239.63ms p(95)=245.26ms
     http_req_connecting............: avg=123.4ms  min=122.25ms med=123.4ms  max=124.56ms p(90)=124.33ms p(95)=124.45ms
   ✓ http_req_duration..............: avg=125.13ms min=122.42ms med=125.13ms max=127.85ms p(90)=127.31ms p(95)=127.58ms
       { expected_response:true }...: avg=125.13ms min=122.42ms med=125.13ms max=127.85ms p(90)=127.31ms p(95)=127.58ms
   ✓ http_req_failed................: 0.00% ✓ 0        ✗ 2  
     http_req_receiving.............: avg=114.76µs min=83.52µs  med=114.76µs max=146.01µs p(90)=139.76µs p(95)=142.89µs
     http_req_sending...............: avg=63µs     min=57.19µs  med=63µs     max=68.82µs  p(90)=67.66µs  p(95)=68.24µs 
     http_req_tls_handshaking.......: avg=63.12ms  min=0s       med=63.12ms  max=126.24ms p(90)=113.62ms p(95)=119.93ms
     http_req_waiting...............: avg=124.96ms min=122.27ms med=124.96ms max=127.65ms p(90)=127.11ms p(95)=127.38ms
     http_reqs......................: 2     1.219317/s
     iteration_duration.............: avg=1.64s    min=1.64s    med=1.64s    max=1.64s    p(90)=1.64s    p(95)=1.64s   
     iterations.....................: 1     0.609659/s
     vus............................: 1     min=1      max=1
     vus_max........................: 1     min=1      max=1


running (00m01.6s), 0/1 VUs, 1 complete and 0 interrupted iterations
default ✓ [======================================] 1 VUs  00m01.6s/10m0s  1/1 iters, 1 per VU

About

JavaScript plugin SDK for xk6-output-plugin k6 extension

License:MIT License


Languages

Language:TypeScript 90.3%Language:JavaScript 9.7%