Score dependency health from failed and total counts and assign a status label.

dependency health Dependency health scoring reduces a set of component checks to a single status label.

Dependency Health Report

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

my $failed_deps = 1;
my $total_deps = 5;
my $healthy_deps = $total_deps - $failed_deps;
my $dep_status = "green";

if ($failed_deps >= 3) {
    $dep_status = "red";
} elsif ($failed_deps > 0) {
    $dep_status = "watch";
}

print "failed=$failed_deps healthy=$healthy_deps status=$dep_status\n";
use strict;
use warnings;

my $failed_deps = 0;
my $total_deps = 5;
my $healthy_deps = $total_deps - $failed_deps;
my $dep_status = "green";

if ($failed_deps >= 3) {
    $dep_status = "red";
} elsif ($failed_deps > 0) {
    $dep_status = "watch";
}

print "failed=$failed_deps healthy=$healthy_deps status=$dep_status\n";
use strict;
use warnings;

my $failed_deps = 3;
my $total_deps = 5;
my $healthy_deps = $total_deps - $failed_deps;
my $dep_status = "green";

if ($failed_deps >= 3) {
    $dep_status = "red";
} elsif ($failed_deps > 0) {
    $dep_status = "watch";
}

print "failed=$failed_deps healthy=$healthy_deps status=$dep_status\n";
  1. $failed_deps ← 1, $total_deps ← 5, $healthy_deps ← 4, $dep_status ← green

    4my $failed_deps→ 1 = 1; #@failed_deps=0, 35my $total_deps→ 5 = 5;6my $healthy_deps→ 4 = $total_deps5 - $failed_deps1;7my $dep_status→ green = "green";
  2. $dep_status ← watch

    10    $dep_status = "red";11} elsif ($failed_deps1 > 0) {12    $dep_status→ watch = "watch";13}
  3. print "failed=$failed_deps healthy=$healthy_deps status=$dep_status ";

    15print "failed=$failed_deps1 healthy=$healthy_deps4 status=$dep_statuswatch\n";
    outputfailed=1 healthy=4 status=watch
  1. $failed_deps ← 0, $total_deps ← 5, $healthy_deps ← 5, $dep_status ← green

    4my $failed_deps→ 0 = 0;5my $total_deps→ 5 = 5;6my $healthy_deps→ 5 = $total_deps5 - $failed_deps0;7my $dep_status→ green = "green";89if ($failed_deps >= 3) {10    $dep_status = "red";11} elsif ($failed_deps > 0) {12    $dep_status = "watch";13}1415print "failed=$failed_deps0 healthy=$healthy_deps5 status=$dep_statusgreen\n";
    outputfailed=0 healthy=5 status=green
  1. $failed_deps ← 3, $total_deps ← 5, $healthy_deps ← 2, $dep_status ← green

    4my $failed_deps→ 3 = 3;5my $total_deps→ 5 = 5;6my $healthy_deps→ 2 = $total_deps5 - $failed_deps3;7my $dep_status→ green = "green";
  2. $dep_status ← red

    9if ($failed_deps3 >= 3) {10    $dep_status→ red = "red";11} elsif ($failed_deps > 0) {
  3. print "failed=$failed_deps healthy=$healthy_deps status=$dep_status ";

    15print "failed=$failed_deps3 healthy=$healthy_deps2 status=$dep_statusred\n";
    outputfailed=3 healthy=2 status=red