我有一个每5分钟运行一次API调用的Perl脚本。此API调用包含用于对数据库进行身份验证的REST调用。如果我成功进行身份验证,则会返回“确定”状态。或者' 1'。
我的任务是为我们的前端开发人员提供此API调用的正常运行时间。例如,具有99.98888' 99.98888'这反映了一个范围;例如,90天的范围或365天的可能性。
以下是执行API调用的脚本。
#!/usr/bin/perl -w
use strict;
use LWP::UserAgent;
use Data::Dumper;
use XML::Simple;
use JSON;
## Perl's way of slurping the xml file
my $message = do {
open my $fh, '<', '/usr/lib/xymon/server/ext/States/Puerto-Rico/credentials.xml' or die "Could not open file: $!";
local $/;
<$fh>;
};
my $start = `date +%s.%N`;
my $webpage = "https://xxxxxxxxx/xxxxxx.asp";
my $ua = LWP::UserAgent->new;
my $response = $ua->post($webpage, Content_Type => 'text/xml',
Content => $message);
my $end = `date +%s.%N`;
my $eventtime = `date +%c`;
my $time = $end - $start;
my $response_time = sprintf "%.1f", $time;
if ( $response->is_success) {
my $xml = new XML::Simple;
my $x = $response->decoded_content;
# read XML file
my $data = $xml->XMLin($x);
my $success = $data->{'success'};
if ( $response_time < 5 && $success == '1' )
{
print "good\n";
}
我需要添加代码或数学公式,以便在此Perl脚本中为我提供此API调用的正常运行时间可用90或365天(脚本可以每1或5分钟运行一次),以便填充文本文件。然后,前端开发人员将从文本文件中检索数据并进行漂亮的网页或JavaScript调用。任何提示都将受到赞赏,我也可以在python中写这个。
答案 0 :(得分:0)
我的方法是用2个脚本来做这个。每次运行时,监视脚本都会在txt结果文件中为新行写入日期时间戳和1或0表示成功或失败。另一个脚本每天运行一次,并解析结果文件,计算与总体响应相比的失败响应数。然后,这是一个简单的百分比计算,以获得您可以放在前端人员可以读取的txt文件中的结果。
当您从今天起90或365天到达结果时,循环读取每行的文件,您开始将结果写回文件。完成后,使用新文件替换现有结果文件。
如果您有权访问数据库,那么您可以使用相同的主体,但它会更灵活。