Run a Performance Test

Generate load against a Service or Ingress from the Operator canvas using a performance profile, and read the results.

Operator mode shows a live picture of your clusters. A performance test adds the missing signal: how a service responds under load. You select a Service or Ingress on the canvas, Kanvas seeds a test from it, and Meshery runs the load and keeps the result as a reusable performance profile.

  • Operator mode on a Meshery you run. The hosted kanvas.new site does not offer Operator mode.
  • A target Meshery Server can reach. Meshery Server generates the load, not your browser and not the cluster. The address you test must be routable from wherever Meshery Server runs. A ClusterIP address is reachable from inside the cluster only.
  • Performance permissions. The form needs View performance profiles to appear, and the Run Test button needs Run test. See Permissions by Role.

The action is named Initiate Performance Test and is offered on Service and Ingress resources only, the kinds that expose an endpoint. It is not offered on pods, deployments, or any other kind. Right-click the resource, or select it and use the action in the header of the Details panel.

The Performance panel opens on the canvas at 400 px wide, floating and minimizable. Only one performance panel exists: starting a test from a second resource replaces the target of the open panel. The panel hosts the Meshery performance test form, so the fields, profiles, and results are the same ones Meshery provides. Opening the panel generates no load. Nothing runs until you press Run Test.

SettingSeeded value
Profile name<Kind> - <component name>, for example Service - checkout
URL to testThe first endpoint derived from the resource, or empty
Concurrent requests10
Queries per second20
Duration30s
Load generatorfortio

Change any value before you run. The form also accepts request headers, cookies, content type, request body, additional load generator options as JSON, and a certificate for TLS endpoints.

For a Service, Kanvas builds an endpoint from the service’s type and ports and seeds the first one. A service with several ports yields several endpoints; edit the URL to test another port.

Service typeSeeded URL
ClusterIP (also when no type is set)http://<clusterIP>:<port>
LoadBalancerhttp://<ingress IP or hostname>:<port>. Empty until the cloud assigns an address.
ExternalNamehttp://<externalName>:<port>
NodePortEmpty. Kanvas does not know node addresses. Enter http://<node address>:<nodePort>.
Headless (clusterIP: None)Seeds http://None:<port>. Replace it with a real address.

For an Ingress, the URL is always empty. Enter the host and path you want to test. The seeded scheme is always http; change it to https for TLS endpoints.

  1. Edit the seeded values.
  2. Press Run Test. Meshery first saves the settings as a performance profile (the toast reads Performance profile <name> has been created), then submits the load test (Load test has been submitted).
  3. A countdown runs for the test duration. The results then render in the same panel, with a way back to the form.

The same profile can be selected and re-run later, which is what makes a test repeatable before and after a change. Results are stored in Meshery’s performance results history, not in Kanvas. Profiles, schedules, comparisons between runs, and how results are interpreted are covered in Performance Management in the Meshery documentation.

MessageMeaning
Please enter a valid URL along with protocolThe URL needs a scheme such as http://.
Please enter a valid JSON stringThe additional options field is not valid JSON.
Duration rejectedDuration must be positive and end in h, m, or s.
Failed to create performance profileThe profile could not be saved, so the test did not start.
Load test did not run with msg: <message>The load generator reported a failure. The message names the cause, often an unreachable endpoint.
Connection to the server got disconnected. Load test might be running in the background. Please check the results page in a few.The result stream dropped. The test may still finish; check the results page in Meshery.
Permission denied block or disabled Run TestYour role lacks View performance profiles or Run test.
Empty panelThe host Meshery did not supply the performance form. Use a Meshery release that includes it.

Kanvas does not pre-check that the endpoint is reachable.

Related Reading