REGISTER_STATSFUNCTION(OpenTsdbWriter, &OpenTsdbWriter::StatsFunc);
+void OpenTsdbWriter::OnConfigLoaded()
+{
+ ObjectImpl<OpenTsdbWriter>::OnConfigLoaded();
+
+ if (!GetEnableHa()) {
+ Log(LogDebug, "OpenTsdbWriter")
+ << "HA functionality disabled. Won't pause connection: " << GetName();
+
+ SetHAMode(HARunEverywhere);
+ } else {
+ SetHAMode(HARunOnce);
+ }
+}
+
void OpenTsdbWriter::StatsFunc(const Dictionary::Ptr& status, const Array::Ptr&)
{
DictionaryData nodes;
status->Set("opentsdbwriter", new Dictionary(std::move(nodes)));
}
-void OpenTsdbWriter::Start(bool runtimeCreated)
+void OpenTsdbWriter::Resume()
{
- ObjectImpl<OpenTsdbWriter>::Start(runtimeCreated);
+ ObjectImpl<OpenTsdbWriter>::Resume();
Log(LogInformation, "OpentsdbWriter")
- << "'" << GetName() << "' started.";
+ << "'" << GetName() << "' resumed.";
m_ReconnectTimer = new Timer();
m_ReconnectTimer->SetInterval(10);
Service::OnNewCheckResult.connect(std::bind(&OpenTsdbWriter::CheckResultHandler, this, _1, _2));
}
-void OpenTsdbWriter::Stop(bool runtimeRemoved)
+void OpenTsdbWriter::Pause()
{
Log(LogInformation, "OpentsdbWriter")
- << "'" << GetName() << "' stopped.";
+ << "'" << GetName() << "' paused.";
- ObjectImpl<OpenTsdbWriter>::Stop(runtimeRemoved);
+ ObjectImpl<OpenTsdbWriter>::Pause();
}
void OpenTsdbWriter::ReconnectTimerHandler()
{
+ if (IsPaused())
+ return;
+
if (m_Stream)
return;
void OpenTsdbWriter::CheckResultHandler(const Checkable::Ptr& checkable, const CheckResult::Ptr& cr)
{
+ if (IsPaused())
+ return;
+
CONTEXT("Processing check result for '" + checkable->GetName() + "'");
if (!IcingaApplication::GetInstance()->GetEnablePerfdata() || !checkable->GetEnablePerfdata())