blob: cee4a4d7bd2cac18bff371abd86d7f8f2ce2a345 [file] [log] [blame]
/*
* 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 org.apache.ignite.spi.discovery.tcp;
import java.util.Map;
import java.util.UUID;
import org.apache.ignite.mxbean.MXBeanDescription;
import org.apache.ignite.mxbean.MXBeanParameter;
import org.apache.ignite.spi.IgniteSpiManagementMBean;
import org.apache.ignite.spi.discovery.DiscoverySpiMBean;
import org.jetbrains.annotations.Nullable;
/**
* Management bean for {@link TcpDiscoverySpi}.
*/
@MXBeanDescription("MBean provide access to TCP-based discovery SPI.")
public interface TcpDiscoverySpiMBean extends IgniteSpiManagementMBean, DiscoverySpiMBean {
/**
* Gets current SPI state.
*
* @return Current SPI state.
*/
@MXBeanDescription("SPI state.")
@Override public String getSpiState();
/**
* Gets {@link org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder} (string representation).
*
* @return IPFinder (string representation).
*/
@MXBeanDescription("IP Finder.")
public String getIpFinderFormatted();
/**
* Gets number of connection attempts.
*
* @return Number of connection attempts.
*/
@MXBeanDescription("Reconnect count.")
public int getReconnectCount();
/**
* Gets connection check interval in ms.
*
* @return Connection check interval.
*/
@MXBeanDescription("Connection check interval.")
public long getConnectionCheckInterval();
/**
* Gets network timeout.
*
* @return Network timeout.
*/
@MXBeanDescription("Network timeout.")
public long getNetworkTimeout();
/**
* Gets local TCP port SPI listens to.
*
* @return Local port range.
*/
@MXBeanDescription("Local TCP port.")
public int getLocalPort();
/**
* Gets local TCP port range.
*
* @return Local port range.
*/
@MXBeanDescription("Local TCP port range.")
public int getLocalPortRange();
/**
* Gets thread priority. All threads within SPI will be started with it.
*
* @return Thread priority.
*/
@MXBeanDescription("Threads priority.")
public int getThreadPriority();
/**
* Gets IP finder clean frequency.
*
* @return IP finder clean frequency.
*/
@MXBeanDescription("IP finder clean frequency.")
public long getIpFinderCleanFrequency();
/**
* Gets statistics print frequency.
*
* @return Statistics print frequency in milliseconds.
*/
@MXBeanDescription("Statistics print frequency.")
public long getStatisticsPrintFrequency();
/**
* Gets message worker queue current size.
*
* @return Message worker queue current size.
*/
@MXBeanDescription("Message worker queue current size.")
public int getMessageWorkerQueueSize();
/**
* Gets joined nodes count.
*
* @return Nodes joined count.
*/
@MXBeanDescription("Nodes joined count.")
@Override public long getNodesJoined();
/**
* Gets left nodes count.
*
* @return Left nodes count.
*/
@MXBeanDescription("Nodes left count.")
@Override public long getNodesLeft();
/**
* Gets failed nodes count.
*
* @return Failed nodes count.
*/
@MXBeanDescription("Nodes failed count.")
@Override public long getNodesFailed();
/**
* Gets pending messages registered count.
*
* @return Pending messages registered count.
*/
@MXBeanDescription("Pending messages registered.")
public long getPendingMessagesRegistered();
/**
* Gets pending messages discarded count.
*
* @return Pending messages registered count.
*/
@MXBeanDescription("Pending messages discarded.")
public long getPendingMessagesDiscarded();
/**
* Gets avg message processing time.
*
* @return Avg message processing time.
*/
@MXBeanDescription("Avg message processing time.")
public long getAvgMessageProcessingTime();
/**
* Gets max message processing time.
*
* @return Max message processing time.
*/
@MXBeanDescription("Max message processing time.")
public long getMaxMessageProcessingTime();
/**
* Gets total received messages count.
*
* @return Total received messages count.
*/
@MXBeanDescription("Total received messages count.")
public int getTotalReceivedMessages();
/**
* Gets received messages counts (grouped by type).
*
* @return Map containing message types and respective counts.
*/
@MXBeanDescription("Received messages by type.")
public Map<String, Integer> getReceivedMessages();
/**
* Gets total processed messages count.
*
* @return Total processed messages count.
*/
@MXBeanDescription("Total processed messages count.")
public int getTotalProcessedMessages();
/**
* Gets processed messages counts (grouped by type).
*
* @return Map containing message types and respective counts.
*/
@MXBeanDescription("Processed messages by type.")
public Map<String, Integer> getProcessedMessages();
/**
* Gets time local node has been coordinator since.
*
* @return Time local node is coordinator since.
*/
@MXBeanDescription("Local node is coordinator since.")
public long getCoordinatorSinceTimestamp();
/**
* Gets current coordinator.
*
* @return Gets current coordinator.
*/
@MXBeanDescription("Coordinator node ID.")
@Override @Nullable public UUID getCoordinator();
/**
* Gets message acknowledgement timeout.
*
* @return Message acknowledgement timeout.
*/
@MXBeanDescription("Message acknowledgement timeout.")
public long getAckTimeout();
/**
* Gets maximum message acknowledgement timeout.
*
* @return Maximum message acknowledgement timeout.
*/
@MXBeanDescription("Maximum message acknowledgement timeout.")
public long getMaxAckTimeout();
/**
* Gets socket timeout.
*
* @return Socket timeout.
*/
@MXBeanDescription("Socket timeout.")
public long getSocketTimeout();
/**
* Gets join timeout.
*
* @return Join timeout.
*/
@MXBeanDescription("Join timeout.")
public long getJoinTimeout();
/**
* Dumps debug info using configured logger.
*/
@MXBeanDescription("Dump debug info.")
public void dumpDebugInfo();
/**
* Whether or not discovery is started in client mode.
*
* @return {@code true} if node is in client mode.
* @throws IllegalStateException If discovery SPI is not started.
*/
@MXBeanDescription("Client mode.")
public boolean isClientMode() throws IllegalStateException;
/**
* Diagnosis method for determining ring message latency.
* On this method call special message will be sent across the ring
* and stats about the message will appear in the logs of each node.
*
* @param maxHops Maximum hops for the message (3 * TOTAL_NODE_CNT is recommended).
*/
@MXBeanDescription("Check ring latency.")
public void checkRingLatency(
@MXBeanParameter(name = "maxHops",
description = "Maximum hops for the message (3 * TOTAL_NODE_CNT is recommended).") int maxHops
);
/**
* Current topology version.
*
* @return current topVer.
*/
@MXBeanDescription("Get current topology version.")
public long getCurrentTopologyVersion();
/**
* Dumps ring structure to log.
*/
@MXBeanDescription("Dumps ring structure to log.")
public void dumpRingStructure();
}