All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gemstone.gemfire.management.DistributedSystemMXBean Maven / Gradle / Ivy

Go to download

Apache Geode (incubating) provides a database-like consistency model, reliable transaction processing and a shared-nothing architecture to maintain very low latency performance with high concurrency processing

The newest version!
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.gemstone.gemfire.management;

import java.util.Map;

import javax.management.ObjectName;

import com.gemstone.gemfire.cache.DiskStore;
import com.gemstone.gemfire.cache.Region;
import com.gemstone.gemfire.distributed.DistributedMember;
import com.gemstone.gemfire.distributed.DistributedSystem;
import com.gemstone.gemfire.management.internal.security.Resource;
import com.gemstone.gemfire.management.internal.security.ResourceConstants;
import com.gemstone.gemfire.management.internal.security.ResourceOperation;
import com.gemstone.gemfire.management.internal.security.ResourceOperationContext.ResourceOperationCode;

/**
 * MBean that provides access to information and management operations for a
 * {@link DistributedSystem}.
 *
 * It also provides an API for navigating the other MBeans exposed by the
 * GemFire distributed system.
 * 
 * There will be one DistributedSystemMBean per GemFire cluster.
 * 
 * 

ObjectName : GemFire:service=System,type=Distributed * *

List of notifications emitted by this MBean. * *

*

* * * * * * * * * * * * * * * * * * * * * * * * * *
Notification TypeNotification SourceMessage
gemfire.distributedsystem.cache.member.joinedName or ID of member who joinedMember Joined <Member Name or ID>
gemfire.distributedsystem.cache.member.departedName or ID of member who departedMember Departed <Member Name or ID> has crashed = <true/false>
gemfire.distributedsystem.cache.member.suspectName or ID of member who is suspectedMember Suspected <Member Name or ID> By <Who Suspected>
system.alertDistributedSystem("<DistributedSystem ID">)Alert Message
* * @author rishim * @since 7.0 * */ public interface DistributedSystemMXBean { /** * Returns the ID of thie DistributedSystem. * * @return The DistributedSystem ID or -1 if not set. */ public int getDistributedSystemId(); /** * Returns the number of members in the distributed system. */ public int getMemberCount(); /** * Returns a list of names for all members. */ @ResourceOperation(resource = Resource.DISTRIBUTED_SYSTEM) public String[] listMembers(); /** * Returns a list of names for locator members. * * @param onlyStandAloneLocators * if set to true, includes only stand alone locator * members. * @return a list of names for locator members. */ public String[] listLocatorMembers(boolean onlyStandAloneLocators); /** * Returns a list of names for all groups. */ public String[] listGroups(); /** * Returns the number of locators in the distributed system. */ public int getLocatorCount(); /** * Returns a list of IDs for all locators. */ public String[] listLocators(); //TODO - Abhishek Should be renamed to listLocatorDiscoveryConfigurations? Do we need something for mcast too? /** * Returns the number of disks stores in the distributed system. */ public int getSystemDiskStoreCount(); /** * Returns a map of all {@link DistributedMember}s and their {@link DiskStore}s. */ public Map listMemberDiskstore(); /** * @return A map of all {@link DistributedMember}s and their HDFSStore's. */ public Map listMemberHDFSStore(); /** * Returns a list of IDs for all gateway senders. */ public String[] listGatewaySenders(); /** * Returns a list of IDs for all gateway receivers. */ public String[] listGatewayReceivers(); /** * Returns the minimum level set for alerts to be delivered to listeners. */ public String getAlertLevel(); /** * Sets the minimum level for alerts to be delivered to listeners. * * @param alertLevel * Minimum level for alerts to be delivered. * Must be one of: WARNING, ERROR, SEVERE or NONE. */ @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.CHANGE_ALERT_LEVEL_DS) public void changeAlertLevel(String alertLevel) throws Exception; /** * Returns the total available heap (in megabytes) across all distributed * members. */ public long getTotalHeapSize(); /** * Returns the total number of entries in all regions. */ public long getTotalRegionEntryCount(); /** * Returns the number of {@link Region}s. */ public int getTotalRegionCount(); /** * Returns the number of times that a cache miss occurred for all regions. */ public int getTotalMissCount(); /** * Returns the number of times that a hit occurred for all regions. */ public int getTotalHitCount(); /** * Returns the number of connected clients. */ public int getNumClients(); /** * Returns the average number of disk reads per second across all distributed * members. */ public float getDiskReadsRate(); /** * Returns the average number of disk writes per second across all * distributed members. */ public float getDiskWritesRate(); /** * Returns the average disk flush latency time. */ public long getDiskFlushAvgLatency(); /** * Returns the number of backups currently in progress for all disk stores. */ public int getTotalBackupInProgress(); /** * Returns the number of initial images in progress. */ public int getNumInitialImagesInProgress(); /** * Returns the number of active (currently executing) CQs for all cache servers. */ public long getActiveCQCount(); /** * Returns the average number of queries per second across all * distributed members. */ public float getQueryRequestRate(); /** * Performs a backup on all members. * * @param targetDirPath * Directory to which backup files will be written * @param baselineDirPath * path of the directory for baseline backup. * @return The results of the backup request. */ @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.BACKUP_DS) public DiskBackupStatus backupAllMembers(String targetDirPath, String baselineDirPath) throws Exception; /** * Returns the configuration information for a distributed member. * * @param member * Name or ID of the member. * @return The configuration information for a member. * @throws Exception * for an invalid member ID. */ public GemFireProperties fetchMemberConfiguration(String member) throws Exception; /** * Returns the total time (in seconds) since a distributed member was started. * * @param member * Name or ID of the member. * @return The total time (in seconds) since a member was started. * @throws Exception * for an invalid member ID. */ public long fetchMemberUpTime(String member) throws Exception; /** * Returns a list of names for all cache servers which are able to serve requests from GemFire clients. * */ public String[] listCacheServers(); /** * Returns a list of names for all servers where server means * any long-running GemFire process that was started with "start server" command from GFSH. */ public String[] listServers(); /** * Returns JVM metrics for a distributed member. * * @param member * Name or ID of the member. * @throws Exception * for an invalid member ID. */ public JVMMetrics showJVMMetrics(String member) throws Exception; /** * Returns operating system metrics for a distributed member. * * @param member * Name or ID of the member. * @throws Exception * for an invalid member ID. */ public OSMetrics showOSMetrics(String member) throws Exception; /** * Returns network metrics for a distributed member. * * @param member * Name or ID of the member. * @throws Exception * for an invalid member ID. */ public NetworkMetrics showNetworkMetric(String member) throws Exception; /** * Returns disk metrics for a distributed member. * * @param member * Name or ID of the member. * @throws Exception * for an invalid member ID. */ public DiskMetrics showDiskMetrics(String member) throws Exception; /** * Shuts down all members of a distributed system except for the managing member. * * @return List of names of all distributed members that were shutdown. */ @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.SHUTDOWN_DS) public String[] shutDownAllMembers() throws Exception; /** * Returns a list of names for all regions. */ public String[] listRegions(); /** * Returns a list of full paths for all regions. */ public String[] listAllRegionPaths(); /** * Removes a disk store from the distributed system. * * @param diskStoreId * UUID of the disk store to remove * @return True if the request is successful, false otherwise. */ @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.REMOVE_DISKSTORE_DS) public boolean revokeMissingDiskStores(String diskStoreId) throws Exception; /** * Returns a list of details for disk stores which have been determined to be * unavailable during the recovery of region. */ public PersistentMemberDetails[] listMissingDiskStores(); /** * Returns the object name for a {@link MemberMXBean} used to access * this distributed member. */ public ObjectName getMemberObjectName(); /** * Returns the object name for a {@link ManagerMXBean} used to access the * management service running on this distributed member. */ public ObjectName getManagerObjectName(); /** * Returns a list of object names for the {@link MemberMXBean}s used to * access all distributed members. */ public ObjectName[] listMemberObjectNames(); /** * Returns the object name for a {@link MemberMXBean} used to access * a distributed member.. * * @param member * Name or ID of the member. */ public ObjectName fetchMemberObjectName(String member) throws Exception; /** * Returns a list of object names for the {@link RegionMXBean}s used to * access all regions on a distributed member. * * @param memberMBeanName * ObjectName of the member. */ public ObjectName[] fetchRegionObjectNames(ObjectName memberMBeanName) throws Exception; /** * Returns a list of object names for the {@link DistributedRegionMXBean}s * used to access all distributed regions. * * @return An array of object names or an empty array if no distributed regions * are found. */ public ObjectName[] listDistributedRegionObjectNames(); /** * Returns the object name for a {@link DistributedRegionMXBean} used to * access a distributed region. * * @param regionPath * Full path of the region. */ public ObjectName fetchDistributedRegionObjectName(String regionPath) throws Exception; /** * Returns the object name for a {@link RegionMXBean} used to access * a region. * * @param member * Name or ID of the member. * @param regionPath * Full path of the region. */ public ObjectName fetchRegionObjectName(String member, String regionPath) throws Exception; /** * Returns the object name for a {@link GatewaySenderMXBean} used to access * a gateway sender. * * @param member * Name or ID of the member. * @param senderId * ID of a gateway sender. */ public ObjectName fetchGatewaySenderObjectName(String member, String senderId) throws Exception; /** * Returns the object name for a {@link GatewayReceiverMXBean} used to access * a gateway receiver. * * @param member * Name or ID of the member. */ public ObjectName fetchGatewayReceiverObjectName(String member) throws Exception; /** * Returns a list of object names for the {@link GatewaySenderMXBean}s * used to access all gateway senders. * * @return An array of object names or an empty array if no gateway senders * are found. */ public ObjectName[] listGatewaySenderObjectNames(); /** * Returns a list of object names for the {@link GatewaySenderMXBean}s * used to access all gateway senders on a member. * * @param member * Name or ID of the member. */ public ObjectName[] listGatewaySenderObjectNames(String member) throws Exception; /** * Returns a list of object names for the {@link GatewayReceiverMXBean}s * used to access all gateway senders. * * @return An array of object names or an empty array if no gateway receivers * are found. */ public ObjectName[] listGatewayReceiverObjectNames(); /** * Returns the object name for a {@link DistributedLockServiceMXBean} used to * access a distributed lock service. * * @param lockServiceName * Name of the lock service. */ public ObjectName fetchDistributedLockServiceObjectName(String lockServiceName) throws Exception; /** * Returns the object name for a {@link LockServiceMXBean} used to * access a lock service. * * @param member * Name or Id of the member. * @param lockService * Name of the lock service. */ public ObjectName fetchLockServiceObjectName(String member, String lockService) throws Exception; /** * Returns object name of a {@link DiskStoreMXBean} for a given name and member * * @param member * name or id of the member * @param diskStoreName * name of the disk store * @return a ObjectName * @throws Exception */ public ObjectName fetchDiskStoreObjectName(String member, String diskStoreName) throws Exception; /** * Returns the object name for a {@link CacheServerMXBean} used to access * a cache server. * * @param member * Name or ID of the member. * @param port * Port of the server. */ public ObjectName fetchCacheServerObjectName(String member, int port) throws Exception; /** * Returns a list of object names for the {@link CacheServerMXBean}s * used to access all cache servers. */ public ObjectName[] listCacheServerObjectNames(); /** * Returns the number of map-reduce jobs currently running on all members * in the distributed system. */ public int getNumRunningFunctions(); /** * Returns the number of CQs registers on all members. */ public long getRegisteredCQCount(); /** * Returns the number of bytes used on all disks. */ public long getTotalDiskUsage(); /** * Returns the total heap used on all members. */ public long getUsedHeapSize(); /** * Returns the average number of reads per second for all members. */ public float getAverageReads(); /** * Returns the average writes per second, including both put and putAll operations, * for all members. */ public float getAverageWrites(); /** * Returns the number of subscriptions for all members. */ public int getNumSubscriptions(); /** * Returns the number of garbage collection operations for all members. */ public long getGarbageCollectionCount(); /** * Returns a map of remote distributed system IDs and the current connection * status for each. */ public Map viewRemoteClusterStatus(); /** * Returns the number JVM pauses (which may or may not include full garbage * collection pauses) detected by GemFire. */ public long getJVMPauses(); /** * This API is used to query data from GemFire system. This returns a JSON * formated String having data and it's type. Type and value of data makes an * array , type preceding the value. * * e.g. {"result":[["java.lang.String","v"],["java.lang.String","b"]]} * * GemFire PDXInstances are also supported. The type of PDXInstance is * PDXInstance and value will be key value pair. There is no marker to know * the "IdentityField" of the PDXInstance. * * If the query is executed on the cluster and no member list is given in * input first key of the JSON string will be "result" followed by the result * set in JSON format. * * If the query is executed on one or more specific members then returned * string will have an array of "member" and "result" keys. * * For query on replicated region data from a random node which have the * region is shown, if no member input is given. For PR regions data from all * the nodes are collected and shown. User must be careful to query on a PR if * the region is big and hosted on a lot of nodes * * Join queries on PR mandates that user provide one member as input. If the * member does not host the regions or the regions are not co-located error * string will be returned. * * * @param queryString * GemFire supported OQL query * @param members * comma separated list of members on which the query is to be * executed. It is not mandatory to give this input barring join * queries on PR. If member list is not provided query will be for * the whole cluster. * @param limit * result set limit. If not set or 0 is passed default limit of 1000 * will be set. * @return a JSON formated string containing data and its type */ @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.QUERYDATA_DS) public String queryData(String queryString, String members, int limit) throws Exception; /** * * Functionality is same as queryData() method. Only difference being the * resultant JSON string is compressed with Java GZIP with UTF-8 encoding. Any * client application can de compress the byte[] using GZIP. * * e.g. * * GZIPInputStream gis = new GZIPInputStream(new ByteArrayInputStream(bytes)); * * BufferedReader bf = new BufferedReader(new InputStreamReader(gis,"UTF-8")); * * String outStr = ""; String line; while ((line = bf.readLine()) != null) { * outStr += line; } * * @param queryString * GemFire supported OQL query * @param members * comma separated list of members on which the query is to be * executed. It is not mandatory to give this input barring join * queries on PR. If member list is not provided query will be for * the whole cluster. * @param limit * result set limit. If not set or 0 is passed default limit of 1000 * will be set. * @return a byte[] which is a compressed JSON string. */ @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.QUERYDATA_DS) public byte[] queryDataForCompressedResult(String queryString, String members, int limit) throws Exception; /** * Returns the number of committed transactions across all members. It gives * point in time value i.e. Number of tx committed at the time of reading this * value */ public int getTransactionCommitted(); /** * Returns the number of transactions that were rolled back across all * members. It gives point in time value i.e. Number of tx rolled back at the * time of reading this value */ public int getTransactionRolledBack(); /** * Number of rows DistributedSystemMXBean.queryData() operation will return. * By default it will be 1000. User can modify this to control number of rows * to be shown on Pulse, as Pulse DataBrowser internally uses * DistributedSystemMXBean.queryData() */ public int getQueryResultSetLimit(); @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.QUERYDATA_DS) public void setQueryResultSetLimit(int queryResultSetLimit); /** * Number of elements in a collection to be shown in queryData operation if * query results contain collections like Map, List etc. * */ public int getQueryCollectionsDepth(); @ResourceOperation( resource=Resource.DISTRIBUTED_SYSTEM, operation=ResourceConstants.QUERYDATA_DS) public void setQueryCollectionsDepth(int queryCollectionsDepth); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy