LiveLoad.Result (LiveLoad v0.0.1-rc.46)

Copy Markdown View Source

LiveLoad.Result defines the summarized result of a full distributed load test. This result is a compact, serializable representation of all of the metrics collected while the load test was running across all of the nodes. It can be used by reporters in order to render reports of what occured during the entirety of a load test.

The result structure is made up of a pre-computed set of quantiles from 0-100, along with dimensional breakdowns of different metrics by various dimensions, time series data that can show all of the collected data on a timeline of the entire load test, and per-node breakdowns of each metric to allow pinning down the data from individual nodes that ran the load test.

This structure is built with the following notes in mind:

  • Semi-compact: it is exploded to allow easy access to all of the dimensions and time series buckets, but is compacted into structures of arrays with indices in the metadata instead of large objects.
  • JSON serializable: Reporters can be built with any language that can read the serialized result.
  • Minimal understanding of internals: Reporters don't need to know much about the internals of LiveLoad. The LiveLoad.Result contains all of the necessary information already fully calculated, allowing any reporter to do whatever they want with it.

Summary

Types

t()

@type t() :: %LiveLoad.Result{
  bucket_width_ms: pos_integer(),
  generated_at: DateTime.t(),
  global: LiveLoad.Result.ScenarioResult.t(),
  liveload_version: String.t(),
  name: String.t(),
  nodes: [LiveLoad.Result.NodeResult.t()],
  quantile_points: [float()]
}