Classify a latency reading against a target budget.

latency budget Latency reports are easier to replay when the target and selected reading stay as scalar values.

Latency Budget Reliability Report

latency_ms
latency_budget.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;

my $latency_ms = 180;
my $target_ms = 200;
my $latency_status = "slow";

if ($latency_ms <= 150) {
    $latency_status = "fast";
} elsif ($latency_ms <= $target_ms) {
    $latency_status = "watch";
}

print "latency=$latency_ms target=$target_ms status=$latency_status\n";
use strict;
use warnings;

my $latency_ms = 120;
my $target_ms = 200;
my $latency_status = "slow";

if ($latency_ms <= 150) {
    $latency_status = "fast";
} elsif ($latency_ms <= $target_ms) {
    $latency_status = "watch";
}

print "latency=$latency_ms target=$target_ms status=$latency_status\n";
use strict;
use warnings;

my $latency_ms = 260;
my $target_ms = 200;
my $latency_status = "slow";

if ($latency_ms <= 150) {
    $latency_status = "fast";
} elsif ($latency_ms <= $target_ms) {
    $latency_status = "watch";
}

print "latency=$latency_ms target=$target_ms status=$latency_status\n";
  1. $latency_ms ← 180, $target_ms ← 200, $latency_status ← slow

    4my $latency_ms→ 180 = 180; #@latency_ms=120, 2605my $target_ms→ 200 = 200;6my $latency_status→ slow = "slow";
  2. $latency_status ← watch

    9    $latency_status = "fast";10} elsif ($latency_ms180 <= $target_ms200) {11    $latency_status→ watch = "watch";12}
  3. print "latency=$latency_ms target=$target_ms status=$latency_status ";

    14print "latency=$latency_ms180 target=$target_ms200 status=$latency_statuswatch\n";
    outputlatency=180 target=200 status=watch
  1. $latency_ms ← 120, $target_ms ← 200, $latency_status ← slow

    4my $latency_ms→ 120 = 120;5my $target_ms→ 200 = 200;6my $latency_status→ slow = "slow";
  2. $latency_status ← fast

    8if ($latency_ms120 <= 150) {9    $latency_status→ fast = "fast";10} elsif ($latency_ms <= $target_ms) {
  3. print "latency=$latency_ms target=$target_ms status=$latency_status ";

    14print "latency=$latency_ms120 target=$target_ms200 status=$latency_statusfast\n";
    outputlatency=120 target=200 status=fast
  1. $latency_ms ← 260, $target_ms ← 200, $latency_status ← slow

    4my $latency_ms→ 260 = 260;5my $target_ms→ 200 = 200;6my $latency_status→ slow = "slow";78if ($latency_ms <= 150) {9    $latency_status = "fast";10} elsif ($latency_ms <= $target_ms) {11    $latency_status = "watch";12}1314print "latency=$latency_ms260 target=$target_ms200 status=$latency_statusslow\n";
    outputlatency=260 target=200 status=slow