mirror of https://github.com/Icinga/icinga2.git
Move stats into a separate file
This commit is contained in:
parent
3229982bee
commit
d7f6d7994b
|
@ -18,7 +18,7 @@
|
||||||
mkclass_target(rediswriter.ti rediswriter-ti.cpp rediswriter-ti.hpp)
|
mkclass_target(rediswriter.ti rediswriter-ti.cpp rediswriter-ti.hpp)
|
||||||
|
|
||||||
set(redis_SOURCES
|
set(redis_SOURCES
|
||||||
rediswriter.cpp rediswriter-objects.cpp rediswriter-utility.cpp rediswriter-ti.hpp
|
rediswriter.cpp rediswriter-objects.cpp rediswriter-stats.cpp rediswriter-utility.cpp rediswriter-ti.hpp
|
||||||
)
|
)
|
||||||
|
|
||||||
if(ICINGA2_UNITY_BUILD)
|
if(ICINGA2_UNITY_BUILD)
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
/******************************************************************************
|
||||||
|
* Icinga 2 *
|
||||||
|
* Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) *
|
||||||
|
* *
|
||||||
|
* This program is free software; you can redistribute it and/or *
|
||||||
|
* modify it under the terms of the GNU General Public License *
|
||||||
|
* as published by the Free Software Foundation; either version 2 *
|
||||||
|
* of the License, or (at your option) any later version. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||||
|
* GNU General Public License for more details. *
|
||||||
|
* *
|
||||||
|
* You should have received a copy of the GNU General Public License *
|
||||||
|
* along with this program; if not, write to the Free Software Foundation *
|
||||||
|
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. *
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "redis/rediswriter.hpp"
|
||||||
|
#include "base/json.hpp"
|
||||||
|
#include "base/logger.hpp"
|
||||||
|
#include "base/serializer.hpp"
|
||||||
|
#include "base/statsfunction.hpp"
|
||||||
|
#include "base/convert.hpp"
|
||||||
|
|
||||||
|
using namespace icinga;
|
||||||
|
|
||||||
|
Dictionary::Ptr RedisWriter::GetStats()
|
||||||
|
{
|
||||||
|
//TODO: Figure out if more stats can be useful here.
|
||||||
|
Dictionary::Ptr statsFunctions = ScriptGlobal::Get("StatsFunctions", &Empty);
|
||||||
|
|
||||||
|
if (!statsFunctions)
|
||||||
|
Dictionary::Ptr();
|
||||||
|
|
||||||
|
Function::Ptr func = statsFunctions->Get("CIB");
|
||||||
|
|
||||||
|
Dictionary::Ptr status = new Dictionary();
|
||||||
|
Array::Ptr perfdata = new Array();
|
||||||
|
|
||||||
|
func->Invoke({ status, perfdata });
|
||||||
|
|
||||||
|
// String jsonStats = JsonEncode(status);
|
||||||
|
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "redis/rediswriter-ti.cpp"
|
#include "redis/rediswriter-ti.cpp"
|
||||||
#include "remote/eventqueue.hpp"
|
#include "remote/eventqueue.hpp"
|
||||||
#include "base/json.hpp"
|
#include "base/json.hpp"
|
||||||
#include "base/statsfunction.hpp"
|
|
||||||
#include <boost/algorithm/string.hpp>
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
||||||
using namespace icinga;
|
using namespace icinga;
|
||||||
|
@ -230,19 +229,7 @@ void RedisWriter::PublishStats()
|
||||||
if (!m_Context)
|
if (!m_Context)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//TODO: Figure out if more stats can be useful here.
|
Dictionary::Ptr status = GetStats();
|
||||||
Dictionary::Ptr statsFunctions = ScriptGlobal::Get("StatsFunctions", &Empty);
|
|
||||||
|
|
||||||
if (!statsFunctions)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Function::Ptr func = statsFunctions->Get("CIB");
|
|
||||||
|
|
||||||
Dictionary::Ptr status = new Dictionary();
|
|
||||||
Array::Ptr perfdata = new Array();
|
|
||||||
|
|
||||||
func->Invoke({ status, perfdata });
|
|
||||||
|
|
||||||
String jsonStats = JsonEncode(status);
|
String jsonStats = JsonEncode(status);
|
||||||
|
|
||||||
ExecuteQuery({ "PUBLISH", "icinga:stats", jsonStats });
|
ExecuteQuery({ "PUBLISH", "icinga:stats", jsonStats });
|
||||||
|
|
|
@ -71,6 +71,9 @@ private:
|
||||||
void SendStatusUpdate(const ConfigObject::Ptr& object, bool useTransaction);
|
void SendStatusUpdate(const ConfigObject::Ptr& object, bool useTransaction);
|
||||||
void UpdateObjectAttrs(const String& keyPrefix, const ConfigObject::Ptr& object, int fieldType);
|
void UpdateObjectAttrs(const String& keyPrefix, const ConfigObject::Ptr& object, int fieldType);
|
||||||
|
|
||||||
|
/* Stats */
|
||||||
|
Dictionary::Ptr GetStats();
|
||||||
|
|
||||||
/* utilities */
|
/* utilities */
|
||||||
static String FormatCheckSumBinary(const String& str);
|
static String FormatCheckSumBinary(const String& str);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue