The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
grafana/devenv/docker/loadtest
Will Browne abfc711c53
Plugins: Remove deprecated /api/tsdb/query metrics endpoint (#49916)
3 years ago
..
modules Fixing login request in loadtest (#43750) 3 years ago
README.md devenv: Add docker load test which authenticates with API key (#28905) 5 years ago
annotations_by_tag_test.js Plugins: Remove deprecated /api/tsdb/query metrics endpoint (#49916) 3 years ago
auth_key_test.js Plugins: Remove deprecated /api/tsdb/query metrics endpoint (#49916) 3 years ago
auth_proxy_test.js Prettier: Upgrade to 2 (#30387) 4 years ago
auth_token_slow_test.js Plugins: Remove deprecated /api/tsdb/query metrics endpoint (#49916) 3 years ago
auth_token_test.js Plugins: Remove deprecated /api/tsdb/query metrics endpoint (#49916) 3 years ago
run.sh Fix K6 load test script (#38465) 4 years ago

README.md

Grafana load test

Runs load tests and checks using k6.

Prerequisites

Docker

To run the auth proxy test you'll need to setup nginx proxy from docker block and enable auth proxy together with configuring Grafana for auth proxy.

Run

Run load test for 15 minutes using 2 virtual users and targeting http://localhost:3000.

$ ./run.sh

Run load test for custom duration:

$ ./run.sh -d 10s

Run load test for custom target url:

$ ./run.sh -u http://grafana.loc

Run load test for 10 virtual users:

$ ./run.sh -v 10

Run load test and send the results to the database "myDb" in influxDB running locally on port 8086 (with no authentication):

$ ./run.sh  -o influxdb=http://localhost:8086/myDb

Run auth token slow test (random query latency between 1 and 30 seconds):

$ ./run.sh -c auth_token_slow_test -s 30

Run auth proxy test:

$ ./run.sh -c auth_proxy_test

Run API key test (option -k must be a valid admin API key)

$ ./run.sh -c auth_token_test -k "<api key here>"

Example output:


          /\      |‾‾|  /‾‾/  /‾/
     /\  /  \     |  |_/  /  / /
    /  \/    \    |      |  /  ‾‾\
   /          \   |  |\  \ | (_) |
  / __________ \  |__|  \__\ \___/ .io

  execution: local
     output: -
     script: src/auth_token_test.js

    duration: 15m0s, iterations: -
         vus: 2,     max: 2

    done [==========================================================] 15m0s / 15m0s

    █ user auth token test

      █ user authenticates through ui with username and password

        ✓ response status is 200
        ✓ response has cookie 'grafana_session' with 32 characters

      █ batch tsdb requests

        ✓ response status is 200

    checks.....................: 100.00% ✓ 328440
    data_received..............: 411 MB  457 kB/s
    data_sent..................: 12 MB   14 kB/s
    group_duration.............: avg=95.64ms  min=16.42ms  med=94.35ms  max=307.52ms p(90)=137.78ms p(95)=146.75ms
    http_req_blocked...........: avg=1.27ms   min=942ns    med=610.08µs max=48.32ms  p(90)=2.92ms   p(95)=4.25ms
    http_req_connecting........: avg=1.06ms   min=0s       med=456.79µs max=47.19ms  p(90)=2.55ms   p(95)=3.78ms
    http_req_duration..........: avg=58.16ms  min=1ms      med=52.59ms  max=293.35ms p(90)=109.53ms p(95)=120.19ms
    http_req_receiving.........: avg=38.98µs  min=6.43µs   med=32.55µs  max=16.2ms   p(90)=64.63µs  p(95)=78.8µs
    http_req_sending...........: avg=328.66µs min=8.09µs   med=110.77µs max=44.13ms  p(90)=552.65µs p(95)=1.09ms
    http_req_tls_handshaking...: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s
    http_req_waiting...........: avg=57.79ms  min=935.02µs med=52.15ms  max=293.06ms p(90)=109.04ms p(95)=119.71ms
    http_reqs..................: 34486   38.317775/s
    iteration_duration.........: avg=1.09s    min=1.81µs   med=1.09s    max=1.3s     p(90)=1.13s    p(95)=1.14s
    iterations.................: 1642    1.824444/s
    vus........................: 2       min=2   max=2
    vus_max....................: 2       min=2   max=2