誰かがこの種の問題に対処し、アドバイスを提供できるかどうか疑問に思います:
ログファイルを解析して、ホストに障害が発生しているかどうか、いつ障害が発生しているか、およびホストの合計ダウンタイムを確認しています。私の問題は、ホストが別の倒れたホストの時間枠内にあるかどうかを把握する方法がわからないことです(2回カウントしたくない)
例:
ホストAは14:15-14:18に落ちます
ホストBは14:16-14:21に落ちます
ホストCは14:17-14:20に落ちます
これにより、
3分のダウンタイムを占めるホストA
ホストBを3分間
0のホストC(他のホストはその時点ですでにダウンしていた)
現在、私は配列upTime:downTimeにプッシュしています-配列をウォークスルーして比較するのが最も簡単だと思いました。しかし、この問題に取り組むための最善の方法が何であるかはわかりません。
push(@arr, "$tempdown:$upTime");
}
}
}
}
#temp vars x and y rep downtime and uptime
#count from x..y and see if any other service has fallen within x-y
for my $index (@arr) {
my $tempx;
my $tempy;
if ($index=~/(.*):/ && /($index=~(.*:(.*)/) {
$tempx = $1;
$tempy = $2;
}
for ($tempx..$tempy) {
.
.
.