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)
|
||||
|
||||
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)
|
||||
|
|
|
@ -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 "remote/eventqueue.hpp"
|
||||
#include "base/json.hpp"
|
||||
#include "base/statsfunction.hpp"
|
||||
#include <boost/algorithm/string.hpp>
|
||||
|
||||
using namespace icinga;
|
||||
|
@ -230,19 +229,7 @@ void RedisWriter::PublishStats()
|
|||
if (!m_Context)
|
||||
return;
|
||||
|
||||
//TODO: Figure out if more stats can be useful here.
|
||||
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 });
|
||||
|
||||
Dictionary::Ptr status = GetStats();
|
||||
String jsonStats = JsonEncode(status);
|
||||
|
||||
ExecuteQuery({ "PUBLISH", "icinga:stats", jsonStats });
|
||||
|
|
|
@ -71,6 +71,9 @@ private:
|
|||
void SendStatusUpdate(const ConfigObject::Ptr& object, bool useTransaction);
|
||||
void UpdateObjectAttrs(const String& keyPrefix, const ConfigObject::Ptr& object, int fieldType);
|
||||
|
||||
/* Stats */
|
||||
Dictionary::Ptr GetStats();
|
||||
|
||||
/* utilities */
|
||||
static String FormatCheckSumBinary(const String& str);
|
||||
|
||||
|
|
Loading…
Reference in New Issue