Merge pull request #6078 from Icinga/feature/random-check-metrics

Add more metrics and details to built-in 'random' check
This commit is contained in:
Michael Friedrich 2018-02-09 14:08:49 +01:00 committed by GitHub
commit e3c27dd838
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 4 deletions

View File

@ -24,7 +24,6 @@
#include "icinga/icingaapplication.hpp" #include "icinga/icingaapplication.hpp"
#include "base/utility.hpp" #include "base/utility.hpp"
#include "base/perfdatavalue.hpp" #include "base/perfdatavalue.hpp"
#include "base/convert.hpp"
#include "base/function.hpp" #include "base/function.hpp"
#include "base/logger.hpp" #include "base/logger.hpp"
@ -38,13 +37,25 @@ void RandomCheckTask::ScriptFunc(const Checkable::Ptr& service, const CheckResul
if (resolvedMacros && !useResolvedMacros) if (resolvedMacros && !useResolvedMacros)
return; return;
String output = "Hello from "; double now = Utility::GetTime();
output += IcingaApplication::GetInstance()->GetNodeName(); double uptime = now - Application::GetStartTime();
String output = "Hello from " + IcingaApplication::GetInstance()->GetNodeName()
+ ". Icinga 2 has been running for " + Utility::FormatDuration(uptime)
+ ". Version: " + Application::GetAppVersion();
cr->SetOutput(output); cr->SetOutput(output);
double random = Utility::Random() % 1000;
cr->SetPerformanceData(new Array({ cr->SetPerformanceData(new Array({
new PerfdataValue("time", Convert::ToDouble(Utility::GetTime())) new PerfdataValue("time", now),
new PerfdataValue("value", random),
new PerfdataValue("value_1m", random * 0.9),
new PerfdataValue("value_5m", random * 0.8),
new PerfdataValue("uptime", uptime),
})); }));
cr->SetState(static_cast<ServiceState>(Utility::Random() % 4)); cr->SetState(static_cast<ServiceState>(Utility::Random() % 4));
service->ProcessCheckResult(cr); service->ProcessCheckResult(cr);