Python API调用的正常运行时间可用性代码

Python API调用的正常运行时间可用性代码,python,perl,availability-monitoring,Python,Perl,Availability Monitoring,我有一个Perl脚本,每5分钟运行一次,它执行API调用。此API调用包含一个REST调用,用于对数据库进行身份验证。如果身份验证成功,它将返回“ok”或“1” 我的任务是为我们的前端开发人员提供此API调用的正常运行时间。例如,性质为“99.98888”的东西反映了一个范围;例如,范围为90天或365天 下面是执行API调用的脚本 #!/usr/bin/perl -w use strict; use LWP::UserAgent; use Data::Dumper; use XML::Simp

我有一个Perl脚本,每5分钟运行一次,它执行API调用。此API调用包含一个REST调用,用于对数据库进行身份验证。如果身份验证成功,它将返回“ok”或“1”

我的任务是为我们的前端开发人员提供此API调用的正常运行时间。例如,性质为“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";
}
#/usr/bin/perl-w
严格使用;
使用LWP::UserAgent;
使用数据::转储程序;
使用XML::Simple;
使用JSON;
##Perl处理xml文件的方式
我的$message=do{

打开我的$fh,“我的方法是使用两个脚本来完成此操作。监控脚本将在每次运行时在txt结果文件的新行中写入日期时间戳和1或0表示成功或失败。另一个脚本可能每天运行一次,并解析结果文件,计算失败响应与总体响应的数量。I然后,t是一个简单的百分比计算,得到的结果可以放在一个txt文件中,前端人员可以读取

从今天开始的90天或365天内,当您在文件中循环读取每行结果时,您将开始将结果写回文件。完成后,用新的结果文件替换现有的结果文件

如果您可以访问数据库,那么您可以使用相同的主体,但它会更灵活