NixOps network to experiment with a hypothetical IOT scaling scenario.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
grafana
scripts
README.md
load-test-app.nix
load-test-common.nix
load-test-database.nix
load-test-locust.nix
load-test-network.nix
load-test-vbox.nix
monitoring.nix
node-exporter.nix

README.md

Load testing experiment

This is a NixOps network and model application to experiment with a hypothetical IOT scaling scenario:

There are a number of devices out in the field which regularly send their measurements to a server and poll for commands.

The question is how will the server perform with a large number of devices and what will be the performance bottleneck.

More discussion in my blog post.

How to run the test harness

To try the test harness on VirtualBox:

$ nixops create -d load-test load-test-network.nix load-test-vbox.nix
$ nixops deploy -d load-test

The various tools can be accessed at the following URLs (IP addresses might vary slightly)

Setting up Grafana

Grafana doesn't have a simple JSON export/import for data sources, so there is some manual setup to do.

  1. Sign in to Grafana with username admin, password admin.
  2. Add a data source
    • Name: prometheus
    • Default: Yes
    • Type: Prometheus
    • URL: http://localhost:9090
    • Access: Proxy
    • Scrape interval: 10s
  3. Import a Dashboard
  4. View the dashboard, etc. Upload the dashboard to raintank.io by using the share button at the top of the page and selecting Snapshot.