Changeset 6817602 in nscp for modules/CheckSystem
- Timestamp:
- 02/22/06 21:47:57 (7 years ago)
- Branches:
- master, 0.4.0, 0.4.1, 0.4.2, stable
- Children:
- 1b7ae3d
- Parents:
- 89f1a84
- Location:
- modules/CheckSystem
- Files:
-
- 4 edited
-
CheckSystem.cpp (modified) (8 diffs)
-
CheckSystem.h (modified) (2 diffs)
-
PDHCollector.cpp (modified) (2 diffs)
-
PDHCollector.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
modules/CheckSystem/CheckSystem.cpp
r75d5e70 r6817602 10 10 #include <sysinfo.h> 11 11 #include <checkHelpers.hpp> 12 #include <map> 12 13 13 14 CheckSystem gNSClientCompat; … … 137 138 } 138 139 140 141 class cpuload_handler { 142 public: 143 static int parse(std::string s) { 144 return strEx::stoi(s); 145 } 146 static int parse_percent(std::string s) { 147 return strEx::stoi(s); 148 } 149 static std::string print(int value) { 150 return strEx::itos(value) + "%"; 151 } 152 static std::string print_unformated(int value) { 153 return strEx::itos(value); 154 } 155 static std::string print_percent(int value) { 156 return strEx::itos(value) + "%"; 157 } 158 static std::string key_prefix() { 159 return "average load "; 160 } 161 static std::string key_postfix() { 162 return ""; 163 } 164 }; 139 165 NSCAPI::nagiosReturn CheckSystem::checkCPU(const unsigned int argLen, char **char_args, std::string &msg, std::string &perf) 140 166 { 141 typedef checkHolders::CheckConatiner<checkHolders::MaxMinBounds Integer> CPULoadConatiner;167 typedef checkHolders::CheckConatiner<checkHolders::MaxMinBounds<checkHolders::NumericBounds<int, cpuload_handler> > > CPULoadConatiner; 142 168 143 169 std::list<std::string> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); … … 179 205 return NSCAPI::returnUNKNOWN; 180 206 } 207 int value = pObject->getCPUAvrage(load.data + "m"); 208 if (value == -1) { 209 msg = "ERROR: We don't collect data this far back: " + load.getAlias(); 210 return NSCAPI::returnUNKNOWN; 211 } 181 212 if (bNSClient) { 182 int value = pObject->getCPUAvrage(load.data + "m");183 if (value == -1) {184 msg = "ERROR: We don't collect data this far back: " + load.getAlias();185 return NSCAPI::returnUNKNOWN;186 }187 213 if (!msg.empty()) msg += "&"; 188 214 msg += strEx::itos(value); 189 215 } else { 190 int value = pObject->getCPUAvrage(load.data); 191 if (value == -1) { 192 msg = "ERROR: We don't collect data this far back: " + load.getAlias(); 193 return NSCAPI::returnUNKNOWN; 194 } else { 195 load.setDefault(tmpObject); 196 load.runCheck(value, returnCode, msg, perf); 197 } 216 load.setDefault(tmpObject); 217 load.runCheck(value, returnCode, msg, perf); 198 218 } 199 219 } … … 380 400 NSCAPI::nagiosReturn CheckSystem::checkMem(const unsigned int argLen, char **char_args, std::string &msg, std::string &perf) 381 401 { 382 typedef checkHolders::CheckConatiner<checkHolders::MaxMin PercentageBoundsDiskSizei64> MemoryConatiner;402 typedef checkHolders::CheckConatiner<checkHolders::MaxMinBounds<checkHolders::NumericPercentageBounds<checkHolders::PercentageValueType<unsigned __int64, unsigned __int64>, checkHolders::disk_size_handler<unsigned __int64> > > > MemoryConatiner; 383 403 std::list<std::string> stl_args = arrayBuffer::arrayBuffer2list(argLen, char_args); 384 404 if (stl_args.empty()) { … … 390 410 bool bNSClient = false; 391 411 MemoryConatiner bounds; 392 393 bounds.data = "page";412 typedef enum { tPaged, tPage, tVirtual, tPhysical } check_type; 413 check_type type = tPaged; 394 414 395 415 MAP_OPTIONS_BEGIN(stl_args) … … 398 418 MAP_OPTIONS_SHOWALL(bounds) 399 419 MAP_OPTIONS_BOOL_TRUE(NSCLIENT, bNSClient) 420 MAP_OPTIONS_MODE("type", "paged", type, tPaged) 421 MAP_OPTIONS_MODE("type", "page", type, tPage) 422 MAP_OPTIONS_MODE("type", "virtual", type, tVirtual) 423 MAP_OPTIONS_MODE("type", "physical", type, tPhysical) 400 424 MAP_OPTIONS_MISSING(msg, "Unknown argument: ") 401 425 MAP_OPTIONS_END() 402 426 403 PDHCollector *pObject = pdhThread.getThread(); 404 if (!pObject) { 405 msg = "ERROR: PDH Collection thread not running."; 406 return NSCAPI::returnUNKNOWN; 407 } 408 checkHolders::PercentageValueType<long long, long long> value; 409 value.value = pObject->getMemCommit(); 410 value.total = pObject->getMemCommitLimit(); 427 428 checkHolders::PercentageValueType<unsigned long long, unsigned long long> value; 429 if (type == tPaged) { 430 PDHCollector *pObject = pdhThread.getThread(); 431 if (!pObject) { 432 msg = "ERROR: PDH Collection thread not running."; 433 return NSCAPI::returnUNKNOWN; 434 } 435 value.value = pObject->getMemCommit(); 436 value.total = pObject->getMemCommitLimit(); 437 if (bounds.data.empty()) 438 bounds.data = "paged bytes"; 439 } else { 440 CheckMemory::memData data; 441 try { 442 data = memoryChecker.getMemoryStatus(); 443 } catch (CheckMemoryException e) { 444 msg = e.getError() + ":" + strEx::itos(e.getErrorCode()); 445 return NSCAPI::returnCRIT; 446 } 447 // MEMORYSTATUS mem; 448 // GlobalMemoryStatus(&mem); 449 if (type == tPage) { 450 value.value = data.pageFile.total-data.pageFile.avail; // mem.dwTotalPageFile-mem.dwAvailPageFile; 451 value.total = data.pageFile.total; //mem.dwTotalPageFile; 452 if (bounds.data.empty()) 453 bounds.data = "page file"; 454 } else if (type == tPhysical) { 455 value.value = data.phys.total-data.phys.avail; //mem.dwTotalPhys-mem.dwAvailPhys; 456 value.total = data.phys.total; //mem.dwTotalPhys; 457 if (bounds.data.empty()) 458 bounds.data = "physical memory"; 459 } else if (type == tVirtual) { 460 value.value = data.virtualMem.total-data.virtualMem.avail;//mem.dwTotalVirtual-mem.dwAvailVirtual; 461 value.total = data.virtualMem.total;//mem.dwTotalVirtual; 462 if (bounds.data.empty()) 463 bounds.data = "virtual memory"; 464 } 465 } 466 411 467 if (bNSClient) { 412 468 msg = strEx::itos(value.total) + "&" + strEx::itos(value.value); … … 431 487 CEnumProcess::CProcessEntry entry; 432 488 } NSPROCDATA; 433 typedef std:: hash_map<std::string,NSPROCDATA> NSPROCLST;489 typedef std::map<std::string,NSPROCDATA,strEx::case_blind_string_compare> NSPROCLST; 434 490 /** 435 491 * Get a hash_map with all running processes. … … 613 669 pdh.addCounter(counter.data, &cDouble); 614 670 pdh.open(); 615 pdh.collect(); 616 Sleep(1000); 671 if (bCheckAverages) { 672 pdh.collect(); 673 Sleep(1000); 674 } 617 675 pdh.gatherData(); 618 676 pdh.close(); -
modules/CheckSystem/CheckSystem.h
re26cfe0 r6817602 1 1 #pragma once 2 2 #include "PDHCollector.h" 3 #include <CheckMemory.h> 3 4 4 5 NSC_WRAPPERS_MAIN(); … … 6 7 class CheckSystem { 7 8 private: 9 CheckMemory memoryChecker; 8 10 int processMethod_; 9 11 PDHCollectorThread pdhThread; -
modules/CheckSystem/PDHCollector.cpp
r75d5e70 r6817602 199 199 * @return Some form of memory check 200 200 */ 201 long long PDHCollector::getMemCommitLimit() {201 unsigned long long PDHCollector::getMemCommitLimit() { 202 202 MutexLock mutex(mutexHandler); 203 203 if (!mutex.hasMutex()) { … … 212 212 * @return Some form of memory check 213 213 */ 214 long long PDHCollector::getMemCommit() {214 unsigned long long PDHCollector::getMemCommit() { 215 215 MutexLock mutex(mutexHandler); 216 216 if (!mutex.hasMutex()) { -
modules/CheckSystem/PDHCollector.h
re26cfe0 r6817602 30 30 int checkIntervall_; 31 31 32 PDHCollectors::StaticPDHCounterListener< __int64, PDHCollectors::format_large> memCmtLim;33 PDHCollectors::StaticPDHCounterListener< __int64, PDHCollectors::format_large> memCmt;32 PDHCollectors::StaticPDHCounterListener<unsigned __int64, PDHCollectors::format_large> memCmtLim; 33 PDHCollectors::StaticPDHCounterListener<unsigned __int64, PDHCollectors::format_large> memCmt; 34 34 PDHCollectors::StaticPDHCounterListener<__int64, PDHCollectors::format_large> upTime; 35 35 PDHCollectors::RoundINTPDHBufferListener<__int64, PDHCollectors::format_large> cpu; … … 44 44 int getCPUAvrage(std::string time); 45 45 long long getUptime(); 46 long long getMemCommitLimit();47 long long getMemCommit();46 unsigned long long getMemCommitLimit(); 47 unsigned long long getMemCommit(); 48 48 49 49
Note: See TracChangeset
for help on using the changeset viewer.








