Charts And Analytics
These charts help you spot patterns faster than raw tables alone. Use this page when you want to understand what each chart is trying to show.
Matching docs
Search across docs titles, summaries, groups, and section headings.
Use Up and Down Arrow to move through results, then press Enter to open the active page.
No indexed docs matched that search. Try a broader term or open the docs hub.
What this page helps you do
What this page helps you do
These charts help you spot patterns faster than raw tables alone. Use this page when you want to understand what each chart is trying to show.
Who this is for
Teams reading run output or deciding how local reports and exported results should be consumed.
Prerequisites
- A completed run or a report format you want to enable
By the end
A clearer way to read, choose, or extend the report surface for the workload.
Use this page when
Use this page when you already have run output and need to decide where to start reading or extending the report surface.
Visual guide
Sample Chart Inputs
ScenarioA Requests=600 FailRate=0.50% Bytes=1280000
ScenarioB Requests=420 FailRate=2.14% Bytes=910000
StatusClass 2xx=96.8 4xx=1.1 5xx=2.1
Guide
Summary Charts
The Summary tab renders latency trends plus Failure Rate by Scenario, Bytes by Scenario, and Status Code Class Mix only when those datasets are populated. That keeps the overview focused on charts that actually explain the run.
Correlation Charts
Ungrouped Corelation Summary renders one combined percentile chart across P50 through P99 only when percentile values exist, while Grouped Correlation Summary renders one bounded-width chart per GatherBy value only for populated groups.
Chart Layout
Correlation charts sit below the tables, use bounded card widths to avoid stretched visuals, reserve extra top padding so legend labels do not overlap top values, and are omitted entirely when a chart would otherwise be empty.
When To Use Them
Use summary charts for quick run-level comparisons. Use correlation charts when you need to isolate latency shifts by tenant, region, event type, or any other GatherBy selector value.
Report and output samples
Use these samples to connect the reporting surface on this page back to the run result your team will review or export.
If you run these examples locally, add a valid runner key before execution starts. Set it with WithRunnerKey("...") or the config key LoadStrike:RunnerKey.
HTML reports also include the top-right Light/Dark theme toggle. Light is the default report theme.
HTML Analytics Charts
using LoadStrike;
LoadStrikeRunner.RegisterScenarios(scenarioA, scenarioB)
.WithReportFolder("./reports")
.WithReportFormats(LoadStrikeReportFormat.Html)
.WithRunnerKey("rkl_your_local_runner_key")
.Run();
package main
import (
"time"
loadstrike "loadstrike.com/sdk/go"
)
func main() {
loadstrike.RegisterScenarios(loadstrike.Empty("reports-demo")).
WithReportFolder("./reports").
WithReportFileName("loadstrike-report").
WithReportFormats(
loadstrike.ReportFormatHTML,
loadstrike.ReportFormatCSV,
loadstrike.ReportFormatTXT,
loadstrike.ReportFormatMD,
).
WithReportingInterval(loadstrike.TimeSpan(5 * time.Second)).
Run()
}
import com.loadstrike.runtime.LoadStrikeRuntime.LoadStrikeResponse;
import com.loadstrike.runtime.LoadStrikeRuntime.LoadStrikeRunner;
import com.loadstrike.runtime.LoadStrikeRuntime.LoadStrikeScenario;
import com.loadstrike.runtime.LoadStrikeRuntime.LoadStrikeSimulation;
var scenario = LoadStrikeScenario
.create("submit-orders", ignoredContext -> LoadStrikeResponse.ok("200"))
.withLoadSimulations(LoadStrikeSimulation.inject(10, 1d, 20d));
LoadStrikeRunner
.registerScenarios(scenario)
.withReportFolder("./reports")
.withReportFormats("html", "csv", "txt", "md")
.withReportingInterval(5d)
.withRunnerKey("rkl_your_local_runner_key")
.run();
from loadstrike_sdk import LoadStrikeResponse, LoadStrikeRunner, LoadStrikeScenario, LoadStrikeSimulation
scenario = (
LoadStrikeScenario.create("submit-orders", lambda _: LoadStrikeResponse.ok("200"))
.with_load_simulations(LoadStrikeSimulation.inject(10, 1, 20))
)
LoadStrikeRunner.register_scenarios(scenario) \
.with_report_folder("./reports") \
.with_report_formats("html", "csv", "txt", "md") \
.with_reporting_interval(5) \
.with_runner_key("rkl_your_local_runner_key") \
.run()
import {
LoadStrikeResponse,
LoadStrikeRunner,
LoadStrikeScenario,
LoadStrikeSimulation
} from "@loadstrike/loadstrike-sdk";
const scenario = LoadStrikeScenario
.create("submit-orders", async () => LoadStrikeResponse.ok("200"))
.withLoadSimulations(LoadStrikeSimulation.inject(10, 1, 20));
await LoadStrikeRunner
.registerScenarios(scenario)
.withReportFolder("./reports")
.withReportFormats("html", "csv", "txt", "md")
.withReportingInterval(5)
.withRunnerKey("rkl_your_local_runner_key")
.run();
const {
LoadStrikeResponse,
LoadStrikeRunner,
LoadStrikeScenario,
LoadStrikeSimulation
} = require("@loadstrike/loadstrike-sdk");
(async () => {
const scenario = LoadStrikeScenario
.create("submit-orders", async () => LoadStrikeResponse.ok("200"))
.withLoadSimulations(LoadStrikeSimulation.inject(10, 1, 20));
await LoadStrikeRunner
.registerScenarios(scenario)
.withReportFolder("./reports")
.withReportFormats("html", "csv", "txt", "md")
.withReportingInterval(5)
.withRunnerKey("rkl_your_local_runner_key")
.run();
})();
Charts Rendered
Compares latency behavior across scenarios in the same run and is omitted when there is no latency series to plot.
Shows which scenarios are contributing the most error volume and is hidden when the run produced no scenario totals.
Shows the traffic volume generated or processed per scenario and is hidden when byte totals are absent.
Summarizes the share of 2xx, 4xx, 5xx, and other classes where applicable, and is hidden when no status-class totals exist.
Renders one combined percentile chart for all ungrouped matched correlation rows only when percentile values exist.
Renders one percentile chart per GatherBy value only for groups that contain percentile values, so empty group charts are skipped.