use of javax.management.AttributeList in project geode by apache.
the class JMXDataUpdater method updateClusterStatement.
private void updateClusterStatement(ObjectName mbeanName) throws IOException {
try {
AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.STATEMENT_MBEAN_ATTRIBUTES);
// retrieve the full path of the region
String statementDefinition = mbeanName.getKeyProperty("name");
if (isQuoted(statementDefinition)) {
statementDefinition = ObjectName.unquote(statementDefinition);
}
Cluster.Statement statement = cluster.getClusterStatements().get(statementDefinition);
if (null == statement) {
statement = new Cluster.Statement();
statement.setQueryDefinition(statementDefinition);
}
for (int i = 0; i < attributeList.size(); i++) {
Attribute attribute = (Attribute) attributeList.get(i);
String name = attribute.getName();
switch(name) {
case PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESCOMPILED:
statement.setNumTimesCompiled(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTION:
statement.setNumExecution(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMEXECUTIONSINPROGRESS:
statement.setNumExecutionsInProgress(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMTIMESGLOBALINDEXLOOKUP:
statement.setNumTimesGlobalIndexLookup(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMROWSMODIFIED:
statement.setNumRowsModified(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_PARSETIME:
statement.setParseTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_BINDTIME:
statement.setBindTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_OPTIMIZETIME:
statement.setOptimizeTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_ROUTINGINFOTIME:
statement.setRoutingInfoTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_GENERATETIME:
statement.setGenerateTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_TOTALCOMPILATIONTIME:
statement.setTotalCompilationTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_EXECUTIONTIME:
statement.setExecutionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_PROJECTIONTIME:
statement.setProjectionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_TOTALEXECUTIONTIME:
statement.setTotalExecutionTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_ROWSMODIFICATIONTIME:
statement.setRowsModificationTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_QNNUMROWSSEEN:
statement.setqNNumRowsSeen(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_QNMSGSENDTIME:
statement.setqNMsgSendTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_QNMSGSERTIME:
statement.setqNMsgSerTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_QNRESPDESERTIME:
statement.setqNRespDeSerTime(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
}
}
cluster.addClusterStatement(statementDefinition, statement);
// TODO : to store data for sparklines later
/*
* region.getPutsPerSecTrend().add(region.getPutsRate());
* region.getGetsPerSecTrend().add(region.getGetsRate());
*/
} catch (InstanceNotFoundException | ReflectionException infe) {
logger.warn(infe);
}
}
use of javax.management.AttributeList in project geode by apache.
the class JMXDataUpdater method initAsyncEventQueue.
/**
* function used to get attribute values of Async Event Queue and map them to Async Event Queue
* inner class object
*/
private Cluster.AsyncEventQueue initAsyncEventQueue(ObjectName mbeanName) throws InstanceNotFoundException, IntrospectionException, ReflectionException, IOException, AttributeNotFoundException, MBeanException {
Cluster.AsyncEventQueue asyncEventQueue = new Cluster.AsyncEventQueue();
AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.ASYNC_EVENT_QUEUE_MBEAN_ATTRIBUTES);
for (int i = 0; i < attributeList.size(); i++) {
Attribute attribute = (Attribute) attributeList.get(i);
String name = attribute.getName();
switch(name) {
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_ASYNCEVENTID:
asyncEventQueue.setId(getStringAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_ASYNC_EVENT_LISTENER:
asyncEventQueue.setAsyncEventListener(getStringAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_BATCH_CONFLATION_ENABLED:
asyncEventQueue.setBatchConflationEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_BATCH_TIME_INTERVAL:
asyncEventQueue.setBatchTimeInterval(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_BATCH_SIZE:
asyncEventQueue.setBatchSize(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_EVENT_QUEUE_SIZE:
asyncEventQueue.setEventQueueSize(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_PARALLEL:
asyncEventQueue.setParallel(getBooleanAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_AEQ_PRIMARY:
asyncEventQueue.setPrimary(getBooleanAttribute(attribute.getValue(), attribute.getName()));
break;
}
}
return asyncEventQueue;
}
use of javax.management.AttributeList in project geode by apache.
the class JMXDataUpdater method updateMemberRegion.
/**
* function used to get attribute values of Member Region and map them to Member vo
*
* @param mbeanName Member Region MBean
*/
private void updateMemberRegion(ObjectName mbeanName) throws IOException {
try {
String memberName = mbeanName.getKeyProperty(PulseConstants.MBEAN_KEY_PROPERTY_MEMBER);
Cluster.Member member = cluster.getMembersHMap().get(memberName);
// Following attributes are not present in 9.0
// "Members"
// "EmptyNodes"
// "SystemRegionEntryCount"
// "MemberCount"
AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.REGION_MBEAN_ATTRIBUTES);
// retrieve the full path of the region
String regionFullPathKey = null;
for (int i = 0; i < attributeList.size(); i++) {
Attribute attribute = (Attribute) attributeList.get(i);
if (attribute.getName().equals(PulseConstants.MBEAN_ATTRIBUTE_FULLPATH)) {
regionFullPathKey = getStringAttribute(attribute.getValue(), attribute.getName());
break;
}
}
// if member does not exists defined for this region then create a member
if (null == member) {
member = new Cluster.Member();
member.setName(memberName);
cluster.getMembersHMap().put(memberName, member);
}
// if region with given path exists then update same else add new region
Cluster.Region region = member.getMemberRegions().get(regionFullPathKey);
if (null == region) {
region = new Cluster.Region();
member.getMemberRegions().put(regionFullPathKey, region);
member.setTotalRegionCount(member.getTotalRegionCount() + 1);
}
// use already retrieved values
region.setFullPath(regionFullPathKey);
// update the existing or new region
for (int i = 0; i < attributeList.size(); i++) {
Attribute attribute = (Attribute) attributeList.get(i);
String name = attribute.getName();
switch(name) {
case PulseConstants.MBEAN_ATTRIBUTE_FULLPATH:
region.setFullPath(getStringAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
region.setDiskReadsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
region.setDiskWritesRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
region.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_LRUEVICTIONRATE:
region.setLruEvictionRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
region.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_REGIONTYPE:
region.setRegionType(getStringAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_MEMBERCOUNT:
region.setMemberCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
region.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
region.setSystemRegionEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NAME:
region.setName(getStringAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_PERSISTENTENABLED:
region.setPersistentEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_GATEWAYENABLED:
region.setWanEnabled(getBooleanAttribute(attribute.getValue(), attribute.getName()));
break;
}
}
/*
* GemfireXD related code try{// Added for Rolling upgrade changes. Needs to removed once
* Rolling upgrade handled gracefully CompositeData compositeData = (CompositeData)
* (this.mbs.invoke(mbeanName, PulseConstants.MBEAN_OPERATION_LISTREGIONATTRIBUTES, null,
* null));
*
* if (compositeData != null) { if
* (compositeData.containsKey(PulseConstants.COMPOSITE_DATA_KEY_SCOPE)) {
* region.setScope((String) compositeData .get(PulseConstants.COMPOSITE_DATA_KEY_SCOPE)); }
* else if (compositeData .containsKey(PulseConstants.COMPOSITE_DATA_KEY_DISKSTORENAME)) {
* region.setDiskStoreName((String) compositeData
* .get(PulseConstants.COMPOSITE_DATA_KEY_DISKSTORENAME)); } else if (compositeData
* .containsKey(PulseConstants.COMPOSITE_DATA_KEY_DISKSYNCHRONOUS)) {
* region.setDiskSynchronous((Boolean) compositeData
* .get(PulseConstants.COMPOSITE_DATA_KEY_DISKSYNCHRONOUS)); } } }catch (MBeanException anfe)
* { logger.warn(anfe); }catch (javax.management.RuntimeMBeanException anfe) {
* region.setScope(""); region.setDiskStoreName(""); region.setDiskSynchronous(false);
* //logger.
* warning("Some of the Pulse elements are not available currently. There might be a GemFire upgrade going on."
* ); }
*
*
* // Remove deleted regions from member's regions list for (Iterator<String> it =
* cluster.getDeletedRegions().iterator(); it .hasNext();) { String deletedRegion = it.next();
* if (member.getMemberRegions().get(deletedRegion) != null) {
* member.getMemberRegions().remove(deletedRegion); }
* member.setTotalRegionCount(member.getMemberRegions().size()); }
*/
} catch (InstanceNotFoundException | ReflectionException infe) {
logger.warn(infe);
}
}
use of javax.management.AttributeList in project geode by apache.
the class JMXDataUpdater method updateClusterSystem.
/**
* function used to get attribute values of Cluster System and map them to cluster vo
*
* @param mbeanName Cluster System MBean
*/
private void updateClusterSystem(ObjectName mbeanName) throws IOException {
try {
if (!this.isAddedNotiListner) {
this.mbs.addNotificationListener(mbeanName, this, null, new Object());
this.isAddedNotiListner = true;
}
String[] serverCnt = (String[]) (this.mbs.invoke(mbeanName, PulseConstants.MBEAN_OPERATION_LISTSERVERS, null, null));
cluster.setServerCount(serverCnt.length);
TabularData table = (TabularData) (this.mbs.invoke(mbeanName, PulseConstants.MBEAN_OPERATION_VIEWREMOTECLUSTERSTATUS, null, null));
Collection<CompositeData> rows = (Collection<CompositeData>) table.values();
cluster.getWanInformationObject().clear();
for (CompositeData row : rows) {
final Object key = row.get("key");
final Object value = row.get("value");
cluster.getWanInformationObject().put((String) key, (Boolean) value);
}
AttributeList attributeList = this.mbs.getAttributes(mbeanName, PulseConstants.CLUSTER_MBEAN_ATTRIBUTES);
for (int i = 0; i < attributeList.size(); i++) {
Attribute attribute = (Attribute) attributeList.get(i);
String name = attribute.getName();
switch(name) {
case PulseConstants.MBEAN_ATTRIBUTE_MEMBERCOUNT:
cluster.setMemberCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMCLIENTS:
cluster.setClientConnectionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISTRIBUTEDSYSTEMID:
cluster.setClusterId(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_LOCATORCOUNT:
cluster.setLocatorCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMRUNNIGFUNCTION:
try {
cluster.setRunningFunctionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
} catch (Exception e) {
cluster.setRunningFunctionCount(0);
continue;
}
break;
case PulseConstants.MBEAN_ATTRIBUTE_REGISTEREDCQCOUNT:
cluster.setRegisteredCQCount(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMSUBSCRIPTIONS:
cluster.setSubscriptionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMTXNCOMMITTED:
cluster.setTxnCommittedCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_NUMTXNROLLBACK:
cluster.setTxnRollbackCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_TOTALHEAPSIZE:
cluster.setTotalHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_USEDHEAPSIZE:
try {
cluster.setUsedHeapSize(getLongAttribute(attribute.getValue(), attribute.getName()));
} catch (Exception e) {
cluster.setUsedHeapSize((long) 0);
continue;
}
cluster.getMemoryUsageTrend().add(cluster.getUsedHeapSize());
break;
case PulseConstants.MBEAN_ATTRIBUTE_TOTALREGIONENTRYCOUNT:
cluster.setTotalRegionEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_CURRENTENTRYCOUNT:
cluster.setCurrentQueryCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_TOTALDISKUSAGE:
try {
cluster.setTotalBytesOnDisk(getLongAttribute(attribute.getValue(), attribute.getName()));
} catch (Exception e) {
cluster.setTotalBytesOnDisk((long) 0);
continue;
}
cluster.getTotalBytesOnDiskTrend().add(cluster.getTotalBytesOnDisk());
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
cluster.setDiskWritesRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
cluster.getThroughoutWritesTrend().add(cluster.getDiskWritesRate());
break;
case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEWRITES:
try {
cluster.setWritePerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
} catch (Exception e) {
cluster.setWritePerSec(0);
continue;
}
cluster.getWritePerSecTrend().add(cluster.getWritePerSec());
break;
case PulseConstants.MBEAN_ATTRIBUTE_AVERAGEREADS:
try {
cluster.setReadPerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
} catch (Exception e) {
cluster.setReadPerSec(0);
continue;
}
cluster.getReadPerSecTrend().add(cluster.getReadPerSec());
break;
case PulseConstants.MBEAN_ATTRIBUTE_QUERYREQUESTRATE:
cluster.setQueriesPerSec(getDoubleAttribute(attribute.getValue(), attribute.getName()));
cluster.getQueriesPerSecTrend().add(cluster.getQueriesPerSec());
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
cluster.setDiskReadsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
cluster.getThroughoutReadsTrend().add(cluster.getDiskReadsRate());
break;
case PulseConstants.MBEAN_ATTRIBUTE_JVMPAUSES:
long trendVal = determineCurrentJVMPauses(PulseConstants.JVM_PAUSES_TYPE_CLUSTER, "", getLongAttribute(attribute.getValue(), attribute.getName()));
cluster.setGarbageCollectionCount(trendVal);
cluster.getGarbageCollectionTrend().add(cluster.getGarbageCollectionCount());
break;
case PulseConstants.MBEAN_ATTRIBUTE_TOTALREGIONCOUNT:
cluster.setTotalRegionCount(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
}
}
} catch (InstanceNotFoundException | ReflectionException | MBeanException infe) {
logger.warn(infe);
}
}
use of javax.management.AttributeList in project geode by apache.
the class JMXDataUpdater method updateRegionOnMembers.
/**
* Add member specific region information on the region
*
* @param regionObjectName: used to construct the jmx objectname. For region name that has special
* characters in, it will have double quotes around it.
*/
private void updateRegionOnMembers(String regionObjectName, String regionFullPath, Cluster.Region region) throws IOException {
try {
List<String> memberNamesTemp = region.getMemberName();
ArrayList<String> memberNames = new ArrayList<String>(memberNamesTemp);
List<Cluster.RegionOnMember> regionOnMemberList = new ArrayList<Cluster.RegionOnMember>();
List<Cluster.RegionOnMember> regionOnMemberListNew = new ArrayList<Cluster.RegionOnMember>();
Cluster.RegionOnMember[] regionOnMemberNames = region.getRegionOnMembers();
if ((regionOnMemberNames != null) && (regionOnMemberNames.length > 0)) {
regionOnMemberList = new ArrayList<Cluster.RegionOnMember>(Arrays.asList(regionOnMemberNames));
}
logger.debug("updateRegionOnMembers : # regionOnMembers objects in region = {}", regionOnMemberList.size());
for (Cluster.RegionOnMember anRom : regionOnMemberList) {
for (String memberName : memberNames) {
if (anRom.getMemberName().equals(memberName)) {
// Add regionOnMember object in new list
regionOnMemberListNew.add(anRom);
logger.debug("updateRegionOnMembers : Processing existing Member name = {}", anRom.getMemberName());
String objectNameROM = PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObjectName + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + anRom.getMemberName();
ObjectName regionOnMemberMBean = new ObjectName(objectNameROM);
logger.debug("updateRegionOnMembers : Object name = {}", regionOnMemberMBean.getCanonicalName());
AttributeList attributeList = this.mbs.getAttributes(regionOnMemberMBean, PulseConstants.REGION_ON_MEMBER_MBEAN_ATTRIBUTES);
for (int i = 0; i < attributeList.size(); i++) {
Attribute attribute = (Attribute) attributeList.get(i);
String name = attribute.getName();
switch(name) {
case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
anRom.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
logger.debug("updateRegionOnMembers : anRom.getEntrySize() = {}", anRom.getEntrySize());
break;
case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
anRom.setEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
logger.debug("updateRegionOnMembers : anRom.getEntryCount() = {}", anRom.getEntryCount());
break;
case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
anRom.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
logger.debug("updateRegionOnMembers : anRom.getPutsRate() = {}", anRom.getPutsRate());
break;
case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
anRom.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
logger.debug("updateRegionOnMembers : anRom.getGetsRate() = {}", anRom.getGetsRate());
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
anRom.setDiskGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
logger.debug("updateRegionOnMembers : anRom.getDiskGetsRate() = {}", anRom.getDiskGetsRate());
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
anRom.setDiskPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
logger.debug("updateRegionOnMembers : anRom.getDiskPutsRate() = {}", anRom.getDiskPutsRate());
break;
case PulseConstants.MBEAN_ATTRIBUTE_LOCALMAXMEMORY:
anRom.setLocalMaxMemory(getIntegerAttribute(attribute.getValue(), attribute.getName()));
logger.debug("updateRegionOnMembers : anRom.getLocalMaxMemory() = {}", anRom.getLocalMaxMemory());
break;
}
}
anRom.getGetsPerSecTrend().add(anRom.getGetsRate());
anRom.getPutsPerSecTrend().add(anRom.getPutsRate());
anRom.getDiskReadsPerSecTrend().add(anRom.getDiskGetsRate());
anRom.getDiskWritesPerSecTrend().add(anRom.getDiskPutsRate());
logger.debug("updateRegionOnMembers : Existing member on region : getGetsRate() = {}, getPutsRate() = {}, getDiskGetsRate() = {}, getDiskPutsRate() = {}", anRom.getGetsPerSecTrend().size(), anRom.getPutsPerSecTrend().size(), anRom.getDiskReadsPerSecTrend().size(), anRom.getDiskWritesPerSecTrend().size());
// remove existing member names from list so only new ones will remain
memberNames.remove(anRom.getMemberName());
break;
}
}
}
logger.debug("updateRegionOnMembers : Loop over remaining member names and adding new member in region. Existing count = {}", regionOnMemberList.size());
logger.debug("updateRegionOnMembers : Remaining new members in this region = {}", memberNames.size());
// loop over the remaining regions members and add new members for this region
for (String memberName : memberNames) {
String objectNameROM = PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_REGION + regionObjectName + PulseConstants.OBJECT_NAME_REGION_ON_MEMBER_MEMBER + memberName;
ObjectName regionOnMemberMBean = new ObjectName(objectNameROM);
Cluster.RegionOnMember regionOnMember = new Cluster.RegionOnMember();
regionOnMember.setMemberName(memberName);
regionOnMember.setRegionFullPath(regionFullPath);
AttributeList attributeList = this.mbs.getAttributes(regionOnMemberMBean, PulseConstants.REGION_ON_MEMBER_MBEAN_ATTRIBUTES);
for (int i = 0; i < attributeList.size(); i++) {
Attribute attribute = (Attribute) attributeList.get(i);
String name = attribute.getName();
switch(name) {
case PulseConstants.MBEAN_ATTRIBUTE_ENTRYSIZE:
regionOnMember.setEntrySize(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_ENTRYCOUNT:
regionOnMember.setEntryCount(getLongAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_PUTSRATE:
regionOnMember.setPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_GETSRATE:
regionOnMember.setGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKREADSRATE:
regionOnMember.setDiskGetsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_DISKWRITESRATE:
regionOnMember.setDiskPutsRate(getDoubleAttribute(attribute.getValue(), attribute.getName()));
break;
case PulseConstants.MBEAN_ATTRIBUTE_LOCALMAXMEMORY:
regionOnMember.setLocalMaxMemory(getIntegerAttribute(attribute.getValue(), attribute.getName()));
break;
}
}
regionOnMember.getGetsPerSecTrend().add(regionOnMember.getGetsRate());
regionOnMember.getPutsPerSecTrend().add(regionOnMember.getPutsRate());
regionOnMember.getDiskReadsPerSecTrend().add(regionOnMember.getDiskGetsRate());
regionOnMember.getDiskWritesPerSecTrend().add(regionOnMember.getDiskPutsRate());
logger.debug("updateRegionOnMembers : Adding New member on region : getGetsRate() = {}, getPutsRate() = {}, getDiskGetsRate() = {}, getDiskPutsRate() = {}", regionOnMember.getGetsRate(), regionOnMember.getPutsRate(), regionOnMember.getDiskGetsRate(), regionOnMember.getDiskPutsRate());
regionOnMemberListNew.add(regionOnMember);
}
// set region on member
region.setRegionOnMembers(regionOnMemberListNew);
logger.debug("updateRegionOnMembers : Total regions on member in region after update = {}", region.getFullPath(), region.getRegionOnMembers().length);
} catch (MalformedObjectNameException | InstanceNotFoundException | ReflectionException e) {
logger.warn(e);
}
}
Aggregations