Skip to main content

First run of Canarytrace

What you’ll learn#

  • You will know how to run Canarytrace Smoke
  • You will know what data it collects
  • You will be know how to prepare the environment for data storage and visualization
  • You get a dashboards with visualizations

Welcome to Canarytrace#

This tutorial introduces you to the essentials of Canarytrace community edition by walking you through run first smoke on your localhost.

Canarytrace is a Plug’n'Play stack for testing, monitoring availability and measuring the loading speed your web application from user perspective. The canarytrace design is designed to be easy to run and maintenance-free. So you only need 5 minutes 👌


Only Docker. If you don't know the docker, take a look at our examples.


We will go step by step to start testing successfully.

Run Elasticsearch in a Docker#

Data from Canarytrace are continuously stored to Elasticsearch.

Create a user-defined bridges

docker network create canary
  • Elasticsearch is the distributed search and analytics engine at the heart of the Elastic Stack.
docker run --name elasticsearch --net canary --rm -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_SETTING_XPACK_SECURITY_ENABLED=false -e ES_SETTING_ACTION_DESTRUCTIVE__REQUIRES__NAME=false bin/elasticsearch

Run Kibana in a Docker#

Kibana is a web application with GUI for viewing data stored in Elasticsearch.

docker run --name kibana --net canary --rm -d -p 5601:5601

Open localhost:5601 in your browser and wait for Kibana will be ready.

Setup Elasticsearch and Kibana#

docker run --name installer --net canary --rm

Prepare script for run Canarytrace Smoke#

For this demo we use docker-compose. Create file with name docker-compose.yaml with code:

version: "3.8"
image: selenium/standalone-chrome:4.1.1-20211217
network_mode: "host"
shm_size: '2gb'
- /dev/shm:/dev/shm
- browser
network_mode: "host"
ELASTIC_CLUSTER: http://localhost:9200
LABELS: 'compose, pipeline'
PT_AUDIT: 'allow'

Run Canarytrace smoke with two URLs.#

In this same location where is your docker-compose.yaml run docker compose

docker-compose up

and result is

canarytrace_1 | "spec" Reporter:
canarytrace_1 | ------------------------------------------------------------------
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] Running: chrome (v91.0.4472.77) on linux
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] Session ID: 86b9c22616a6c062d8e991b24c747f70
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0]
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] » /smoke/smoke.js
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] Smoke
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] ✓ smoke-setup
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] ✓
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] ✓ performance audit
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] ✓
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] ✓ performance audit
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0]
canarytrace_1 | [chrome 91.0.4472.77 linux #0-0] 5 passing (15.7s)
canarytrace_1 |
canarytrace_1 |
canarytrace_1 | Spec Files: 1 passed, 1 total (100% completed) in 00:00:19

If you have problem with docker-compose look at the bugs #44, #45 from the community

What data is stored into Elasticsearch#

Canarytrace collect these data

  •* index with test step name and function result passed / false
  • c.performance-entries-* index with collected list of all PerformanceEntry objects for the tested page.
  • c.smoke-title-* index with entryURL, responseUrl, title, responseStatus and responseStatusText
  • c.audit-* index with metrics from performance audit.

View the result in Kibana#

That's all 🎉 Now you can explore dashboard and visualizations in Kibana. Open http://localhost:5601/ in your browser and navigate to Dashboard / Canarytrace Smoke Overview


For real use or for production use start your Canarytrace on cloud in Kubernetes.