Module: check_mk
Branch: master
Commit: b475243e07e4e7de011351d1a28e335ad642d3ec
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b475243e07e4e7…
Author: Sven Panne <sp(a)mathias-kettner.de>
Date: Mon Dec 4 13:59:35 2017 +0100
Improved logging.
Change-Id: Id707c7eda9c45be90d88ed971e41cef2d54b32fb
---
livestatus/src/TableHosts.cc | 4 ++++
livestatus/src/TableServices.cc | 15 +++++++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/livestatus/src/TableHosts.cc b/livestatus/src/TableHosts.cc
index 245376d..d49d519 100644
--- a/livestatus/src/TableHosts.cc
+++ b/livestatus/src/TableHosts.cc
@@ -24,6 +24,7 @@
#include "TableHosts.h"
#include <memory>
+#include <ostream>
#include "AttributeListAsIntColumn.h"
#include "AttributeListColumn.h"
#include "Column.h"
@@ -43,6 +44,7 @@
#include "HostListColumn.h"
#include "HostSpecialDoubleColumn.h"
#include "HostSpecialIntColumn.h"
+#include "Logger.h"
#include "LogwatchListColumn.h"
#include "MetricsColumn.h"
#include "MonitoringCore.h"
@@ -643,6 +645,7 @@ void TableHosts::addColumns(Table *table, const std::string
&prefix,
void TableHosts::answerQuery(Query *query) {
// do we know the host group?
if (const std::string *value =
query->stringValueRestrictionFor("groups")) {
+ Debug(logger()) << "using host group index with '" <<
*value << "'";
if (hostgroup *hg =
find_hostgroup(const_cast<char *>(value->c_str()))) {
for (hostsmember *mem = hg->members; mem != nullptr;
@@ -656,6 +659,7 @@ void TableHosts::answerQuery(Query *query) {
}
// no index -> linear search over all hosts
+ Debug(logger()) << "using full table scan";
for (host *hst = host_list; hst != nullptr; hst = hst->next) {
if (!query->processDataset(Row(hst))) {
break;
diff --git a/livestatus/src/TableServices.cc b/livestatus/src/TableServices.cc
index 3245a92..2558747 100644
--- a/livestatus/src/TableServices.cc
+++ b/livestatus/src/TableServices.cc
@@ -24,6 +24,7 @@
#include "TableServices.h"
#include <memory>
+#include <ostream>
#include <utility>
#include "AttributeListAsIntColumn.h"
#include "AttributeListColumn.h"
@@ -37,6 +38,7 @@
#include "CustomVarsValuesColumn.h"
#include "DowntimeColumn.h"
#include "FixedIntColumn.h"
+#include "Logger.h"
#include "MetricsColumn.h"
#include "OffsetDoubleColumn.h"
#include "OffsetIntColumn.h"
@@ -468,6 +470,7 @@ void TableServices::answerQuery(Query *query) {
// do we know the host?
if (const std::string *value =
query->stringValueRestrictionFor("host_name")) {
+ Debug(logger()) << "using host name index with '" <<
*value << "'";
// Older Nagios headers are not const-correct... :-P
if (host *host = find_host(const_cast<char *>(value->c_str()))) {
for (servicesmember *m = host->services; m != nullptr;
@@ -481,9 +484,10 @@ void TableServices::answerQuery(Query *query) {
}
// do we know the service group?
- if (const std::string *name =
query->stringValueRestrictionFor("groups")) {
+ if (const std::string *value =
query->stringValueRestrictionFor("groups")) {
+ Debug(logger()) << "using service group index with '"
<< *value << "'";
if (servicegroup *sg =
- find_servicegroup(const_cast<char *>(name->c_str()))) {
+ find_servicegroup(const_cast<char *>(value->c_str()))) {
for (servicesmember *m = sg->members; m != nullptr; m = m->next) {
if (!query->processDataset(Row(m->service_ptr))) {
break;
@@ -494,9 +498,11 @@ void TableServices::answerQuery(Query *query) {
}
// do we know the host group?
- if (const std::string *name =
+ if (const std::string *value =
query->stringValueRestrictionFor("host_groups")) {
- if (hostgroup *hg = find_hostgroup(const_cast<char *>(name->c_str())))
{
+ Debug(logger()) << "using host group index with '" <<
*value << "'";
+ if (hostgroup *hg =
+ find_hostgroup(const_cast<char *>(value->c_str()))) {
for (hostsmember *m = hg->members; m != nullptr; m = m->next) {
for (servicesmember *smem = m->host_ptr->services;
smem != nullptr; smem = smem->next) {
@@ -510,6 +516,7 @@ void TableServices::answerQuery(Query *query) {
}
// no index -> iterator over *all* services
+ Debug(logger()) << "using full table scan";
for (service *svc = service_list; svc != nullptr; svc = svc->next) {
if (!query->processDataset(Row(svc))) {
break;