static void loadCpuData(void) { int32 i; boolean foundIt = FALSE; PPERF_INSTANCE_DEFINITION PerfInst; lastFetchData = currentFetchData; currentFetchData.perfTimeMs = (uint32)(((__int64)PerfData->PerfTime100nSec.QuadPart) / 10000); if (ProcessorObj == NULL) { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: loadCpuData, no ProcessorObj!\n"); #endif return; } if (ProcessObj == NULL) { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: loadCpuData, no ProcessObj!\n"); #endif return; } if (ProcessObj->NumInstances <= 0) { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: loadCpuData, ProcessObj->NumInstances <= 0!\n"); #endif return; } PerfInst = FirstInstance(ProcessorObj); for (i=0; i < (int32)ProcessorObj->NumInstances; i++) { PPERF_COUNTER_BLOCK PerfCntrBlk = (PPERF_COUNTER_BLOCK)((PBYTE)PerfInst + PerfInst->ByteLength); /* starts with "_" must be "_Total" */ short* unicodePtr = (short*)((PBYTE)PerfInst + PerfInst->NameOffset); if (PerfInst->UniqueID == PERF_NO_UNIQUE_ID && unicodePtr[0] != '_') { PerfInst = NextInstance(PerfCntrBlk); continue; } currentFetchData.usertime = getLongValue(&processorCtrCache[TOTAL_USERTIME_IDX], PerfCntrBlk); currentFetchData.systime = getLongValue(&processorCtrCache[TOTAL_PRIVILEGEDTIME_IDX], PerfCntrBlk); currentFetchData.idletime = getLongValue(&processorCtrCache[TOTAL_PROCESSORTIME_IDX], PerfCntrBlk); currentFetchData.inttime = getLongValue(&processorCtrCache[INTERRUPTTIME_IDX], PerfCntrBlk); currentFetchData.interrupts = (uint32)getLongValue(&processorCtrCache[INTERRUPTS_IDX], PerfCntrBlk); foundIt = TRUE; break; } #ifdef FLG_DEBUG if (!foundIt) { fprintf(stderr, "DEBUG: did not find processor named _Total!\n"); } #endif }
static void loadNetworkData(void) { int32 i; unsigned int c; int32 val; char nausea[512]; PPERF_COUNTER_DEFINITION PerfCntr; PPERF_COUNTER_DEFINITION CurCntr; PPERF_INSTANCE_DEFINITION PerfInst; PPERF_COUNTER_BLOCK PerfCntrBlk; if (NetworkObj == NULL) { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: loadNetworkData, no NetworkObj!\n"); #endif return; } if (NetworkObj->NumInstances <= 0) { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: loadNetworkData, NetworkObj->NumInstances <= 0!\n"); #endif return; } /* We're collecting sums, so start by zeroing out */ netStats.loopbackPackets = 0; netStats.loopbackBytes = 0; netStats.packetsReceived = 0; netStats.bytesReceived = 0; netStats.packetsSent = 0; netStats.bytesSent = 0; PerfCntr = FirstCounter(NetworkObj); // retrieve all instances PerfInst = FirstInstance(NetworkObj); for (i = 0; i < NetworkObj->NumInstances; i ++) { boolean loopBack; wchar_t* unicodePtr = (wchar_t*)((PBYTE)PerfInst + PerfInst->NameOffset); #if 0 printf( "\n\tInstance %S: \n", unicodePtr); #endif sprintf(nausea, "%S", unicodePtr); loopBack = strcmp(nausea, "MS TCP Loopback interface") == 0; PerfCntrBlk = (PPERF_COUNTER_BLOCK)((PBYTE)PerfInst + PerfInst->ByteLength); CurCntr = PerfCntr; // retrieve all counters for (c = 0; c < NetworkObj->NumCounters; c ++) { #if 0 printf("\t\tCounter %ld: %s\n", CurCntr->CounterNameTitleIndex, lpNamesArray[CurCntr->CounterNameTitleIndex]); #endif switch (CurCntr->CounterNameTitleIndex) { case PACKETS_RECEIVED_ID: val = (int32)getLongValue(CurCntr, PerfCntrBlk); if (loopBack) netStats.loopbackPackets = val; else netStats.packetsReceived += val; break; case BYTES_RECEIVED_ID: val = (int32)getLongValue(CurCntr, PerfCntrBlk); if (loopBack) netStats.loopbackBytes = val; else netStats.bytesReceived += val; break; case PACKETS_SENT_ID: if (!loopBack) { val = (int32)getLongValue(CurCntr, PerfCntrBlk); netStats.packetsSent += val; } break; case BYTES_SENT_ID: if (!loopBack) { val = (int32)getLongValue(CurCntr, PerfCntrBlk); netStats.bytesSent += val; } break; default: /* unknown counter. just skip it. */ break; } CurCntr = NextCounter(CurCntr); } PerfInst = NextInstance(PerfCntrBlk); } }
static void refreshProcess(jint pid, int32* intStorage, int64* longStorage, double* doubleStorage) { #define INT_FIELD_STORE(field, value) \ (intStorage[com_gemstone_gemfire_internal_WindowsProcessStats_##field##INT] = value) #define LONG_FIELD_STORE(field, value) \ (longStorage[com_gemstone_gemfire_internal_WindowsProcessStats_##field##LONG] = value) #define DOUBLE_FIELD_STORE(field, value) \ (doubleStorage[com_gemstone_gemfire_internal_WindowsProcessStats_##field##DOUBLE] = value) #define FLOAT_FIELD_STORE(field, value) \ DOUBLE_FIELD_STORE(field, (double)(value)) int32 i; if (ProcessObj) { PPERF_INSTANCE_DEFINITION PerfInst; if (ProcessObj->NumInstances > 0) { #if 0 static int done = 0; if (!done) { done = 1; PerfInst = FirstInstance(ProcessObj); for (i=0; i < (int32)ProcessObj->NumInstances; i++) { PPERF_COUNTER_BLOCK PerfCntrBlk; PerfCntrBlk = (PPERF_COUNTER_BLOCK)((PBYTE)PerfInst + PerfInst->ByteLength); printf("process: %s\n", getInstIdStr(PerfInst, "proc-")); PerfInst = NextInstance(PerfCntrBlk); } } #endif PerfInst = FirstInstance(ProcessObj); for (i=0; i < (int32)ProcessObj->NumInstances; i++) { PPERF_COUNTER_BLOCK PerfCntrBlk; PerfCntrBlk = (PPERF_COUNTER_BLOCK)((PBYTE)PerfInst + PerfInst->ByteLength); if (pid == getPid(pidCtrOffset, PerfCntrBlk)) { LONG_FIELD_STORE(activeTime, getLongValue(&processCtrCache[PROCESS_PROCESSORTIME_IDX], PerfCntrBlk)); LONG_FIELD_STORE(userTime, getLongValue(&processCtrCache[PROCESS_USERTIME_IDX], PerfCntrBlk)); LONG_FIELD_STORE(systemTime, getLongValue(&processCtrCache[PROCESS_PRIVILEGEDTIME_IDX], PerfCntrBlk)); LONG_FIELD_STORE(virtualSizePeak, getLongValue(&processCtrCache[VIRTUALBYTESPEAK_IDX], PerfCntrBlk)); LONG_FIELD_STORE(virtualSize, getLongValue(&processCtrCache[VIRTUALBYTES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pageFaults, getLongValue(&processCtrCache[PAGEFAULTS_IDX], PerfCntrBlk)); LONG_FIELD_STORE(workingSetSizePeak, getLongValue(&processCtrCache[WORKINGSETPEAK_IDX], PerfCntrBlk)); LONG_FIELD_STORE(workingSetSize, getLongValue(&processCtrCache[WORKINGSET_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pageFileSizePeak, getLongValue(&processCtrCache[PAGEFILEBYTESPEAK_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pageFileSize, getLongValue(&processCtrCache[PAGEFILEBYTES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(privateSize, getLongValue(&processCtrCache[PRIVATEBYTES_IDX], PerfCntrBlk)); INT_FIELD_STORE(threads, (int32)getLongValue(&processCtrCache[THREADCOUNT_IDX], PerfCntrBlk)); INT_FIELD_STORE(priorityBase, (int32)getLongValue(&processCtrCache[PRIORITYBASE_IDX], PerfCntrBlk)); /* ELAPSEDTIME omitted? */ /* POOLPAGEDBYTES omitted? */ /* POOLNONPAGEBYTES omitted? */ INT_FIELD_STORE(handles, (int32)getLongValue(&processCtrCache[HANDLECOUNT_IDX], PerfCntrBlk)); return; } PerfInst = NextInstance(PerfCntrBlk); } } else { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: unexpected 0 instances!\n"); #endif } } #undef INT_FIELD_STORE #undef LONG_FIELD_STORE #undef FLOAT_FIELD_STORE #undef DOUBLE_FIELD_STORE }
static void refreshSystem(int32* intStorage, int64* longStorage, double* doubleStorage) { #define INT_FIELD_STORE(field, value) \ (intStorage[com_gemstone_gemfire_internal_WindowsSystemStats_##field##INT] = (int32)(value)) #define LONG_FIELD_STORE(field, value) \ (longStorage[com_gemstone_gemfire_internal_WindowsSystemStats_##field##LONG] = (int64)(value)) #define DOUBLE_FIELD_STORE(field, value) \ (doubleStorage[com_gemstone_gemfire_internal_WindowsSystemStats_##field##DOUBLE] = (double)(value)) #define FLOAT_FIELD_STORE(field, value) \ DOUBLE_FIELD_STORE(field, (double)(value)) { float usertime = 0.0; float systime = 0.0; float idletime = 0.0; float activetime = 0.0; float inttime = 0.0; if (lastFetchData.perfTimeMs != 0) { uint32 timeDelta = currentFetchData.perfTimeMs - lastFetchData.perfTimeMs; int64 valueDelta; valueDelta = currentFetchData.usertime - lastFetchData.usertime; usertime = (float)(100.0 * ((double)valueDelta / timeDelta)); valueDelta = currentFetchData.systime - lastFetchData.systime; systime = (float)(100.0 * ((double)valueDelta / timeDelta)); valueDelta = currentFetchData.inttime - lastFetchData.inttime; inttime = (float)(100.0 * ((double)valueDelta / timeDelta)); valueDelta = currentFetchData.idletime - lastFetchData.idletime; idletime = (float)(100.0 * ((double)valueDelta / timeDelta)); activetime = (float)(100.0 - idletime); } FLOAT_FIELD_STORE(cpuActive, activetime); FLOAT_FIELD_STORE(cpuUser, usertime); FLOAT_FIELD_STORE(cpuSystem, systime); FLOAT_FIELD_STORE(cpuInterrupt, inttime); FLOAT_FIELD_STORE(cpuIdle, idletime); INT_FIELD_STORE(interrupts, currentFetchData.interrupts); } if (SystemObj) { if (SystemObj->NumInstances == PERF_NO_INSTANCES) { PPERF_COUNTER_BLOCK PerfCntrBlk; PerfCntrBlk = (PPERF_COUNTER_BLOCK)FirstInstance(SystemObj); LONG_FIELD_STORE(contextSwitches, getLongValue(&systemCtrCache[TOTALCONTEXTSWITCHES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(systemCalls, getLongValue(&systemCtrCache[TOTALSYSTEMCALLS_IDX], PerfCntrBlk)); INT_FIELD_STORE(processorQueueLength, getLongValue(&systemCtrCache[PROCESSORQUEUELENGTH_IDX], PerfCntrBlk)); INT_FIELD_STORE(registryQuotaInUse, getLongValue(&systemCtrCache[REGISTRYQUOTAINUSE_IDX], PerfCntrBlk)); } else { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: unexpected >0 instances!\n"); #endif } } if (UdpObj) { if (UdpObj->NumInstances == PERF_NO_INSTANCES) { PPERF_COUNTER_BLOCK PerfCntrBlk; PerfCntrBlk = (PPERF_COUNTER_BLOCK)FirstInstance(UdpObj); INT_FIELD_STORE(dgramsReceived, getLongValue(&udpCtrCache[DATAGRAMS_RECEIVED_PER_SEC_IDX], PerfCntrBlk)); INT_FIELD_STORE(dgramsNoPort, getLongValue(&udpCtrCache[DATAGRAMS_NO_PORT_PER_SEC_IDX], PerfCntrBlk)); INT_FIELD_STORE(dgramsReceivedErrors, getLongValue(&udpCtrCache[DATAGRAMS_RECEIVED_ERRORS_IDX], PerfCntrBlk)); INT_FIELD_STORE(dgramsSent, getLongValue(&udpCtrCache[DATAGRAMS_SENT_PER_SEC_IDX], PerfCntrBlk)); } else { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: unexpected >0 instances!\n"); #endif } } if (MemoryObj) { if (MemoryObj->NumInstances == PERF_NO_INSTANCES) { PPERF_COUNTER_BLOCK PerfCntrBlk; PerfCntrBlk = (PPERF_COUNTER_BLOCK)FirstInstance(MemoryObj); LONG_FIELD_STORE(availableMemory, getLongValue(&memoryCtrCache[AVAILABLEBYTES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(committedMemory, getLongValue(&memoryCtrCache[COMMITTEDBYTES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(committedMemoryLimit, getLongValue(&memoryCtrCache[COMMITLIMIT_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pageFaults, getLongValue(&memoryCtrCache[TOTALPAGEFAULTS_IDX], PerfCntrBlk)); LONG_FIELD_STORE(cacheFaults, getLongValue(&memoryCtrCache[CACHEFAULTS_IDX], PerfCntrBlk)); LONG_FIELD_STORE(demandZeroFaults, getLongValue(&memoryCtrCache[DEMANDZEROFAULTS_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pages, getLongValue(&memoryCtrCache[PAGES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pagesInput, getLongValue(&memoryCtrCache[PAGESINPUT_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pageReads, getLongValue(&memoryCtrCache[PAGEREADS_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pagesOutput, getLongValue(&memoryCtrCache[PAGESOUTPUT_IDX], PerfCntrBlk)); LONG_FIELD_STORE(pageWrites, getLongValue(&memoryCtrCache[PAGEWRITES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(cacheSize, getLongValue(&memoryCtrCache[CACHEBYTES_IDX], PerfCntrBlk)); LONG_FIELD_STORE(cacheSizePeak, getLongValue(&memoryCtrCache[CACHEBYTESPEAK_IDX], PerfCntrBlk)); INT_FIELD_STORE(committedMemoryInUse, getLongValue(&memoryCtrCache[COMMITTEDBYTESINUSE_IDX], PerfCntrBlk)); } else { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: unexpected >0 instances!\n"); #endif } } if (ObjectsObj) { if (ObjectsObj->NumInstances == PERF_NO_INSTANCES) { PPERF_COUNTER_BLOCK PerfCntrBlk; PerfCntrBlk = (PPERF_COUNTER_BLOCK)FirstInstance(ObjectsObj); INT_FIELD_STORE(processes, getLongValue(&objectsCtrCache[PROCESSES_IDX], PerfCntrBlk)); INT_FIELD_STORE(threads, getLongValue(&objectsCtrCache[THREADS_IDX], PerfCntrBlk)); INT_FIELD_STORE(events, getLongValue(&objectsCtrCache[EVENTS_IDX], PerfCntrBlk)); INT_FIELD_STORE(semaphores, getLongValue(&objectsCtrCache[SEMAPHORES_IDX], PerfCntrBlk)); INT_FIELD_STORE(mutexes, getLongValue(&objectsCtrCache[MUTEXES_IDX], PerfCntrBlk)); INT_FIELD_STORE(sharedMemorySections, getLongValue(&objectsCtrCache[SECTIONS_IDX], PerfCntrBlk)); } else { #ifdef FLG_DEBUG fprintf(stderr, "DEBUG: unexpected >0 instances!\n"); #endif } } if (NetworkObj) { INT_FIELD_STORE(loopbackPackets, netStats.loopbackPackets); INT_FIELD_STORE(loopbackBytes, netStats.loopbackBytes); INT_FIELD_STORE(netPacketsReceived, netStats.packetsReceived); INT_FIELD_STORE(netBytesReceived, netStats.bytesReceived); INT_FIELD_STORE(netPacketsSent, netStats.packetsSent); INT_FIELD_STORE(netBytesSent, netStats.bytesSent); } #undef INT_FIELD_STORE #undef LONG_FIELD_STORE #undef FLOAT_FIELD_STORE #undef DOUBLE_FIELD_STORE }
int FGPropertyManager::GetLong (const string &name, long defaultValue ) { return getLongValue(name.c_str(), defaultValue); }
int FGPropertyNode::GetLong (const string &name, long defaultValue ) const { return getLongValue(name.c_str(), defaultValue); }