Skip to content

Commit

Permalink
TEIID-5524 adding minimal standalone jmx (#1106)
Browse files Browse the repository at this point in the history
  • Loading branch information
shawkins committed Nov 5, 2018
1 parent 64d3b06 commit ae29d65
Show file tree
Hide file tree
Showing 18 changed files with 757 additions and 248 deletions.
68 changes: 1 addition & 67 deletions admin/src/main/java/org/teiid/adminapi/EngineStatistics.java
Expand Up @@ -17,72 +17,6 @@
*/
package org.teiid.adminapi;

public interface EngineStatistics extends AdminObject, DomainAware {

/**
* Active Number of Sessions in the engine
* @return
*/
int getSessionCount();

/**
* Total amount memory used by buffer manager for active queries and cached queries
* @return
*/
long getTotalMemoryUsedInKB();

/**
* Total memory used by buffer manager for active plans
* @return
*/
long getMemoryUsedByActivePlansInKB();

/**
* Number of writes to disk by buffer manager to save the overflow from memory
* @return
*/
long getDiskWriteCount();

/**
* Number reads from the disk used by buffer manager that cache overflowed.
* @return
*/
long getDiskReadCount();

/**
* Total number of cache reads, includes disk and soft-cache references
* @return
*/
long getCacheReadCount();

/**
* Total number of cache writes, includes disk and soft-cache references
* @return
*/
long getCacheWriteCount();

/**
* Disk space used by buffer manager to save overflowed memory contents
* @return
*/
long getDiskSpaceUsedInMB();

/**
* Current active plan count
* @return
*/
int getActivePlanCount();

/**
* Current number of waiting plans in the queue
* @return
*/
int getWaitPlanCount();

/**
* High water mark for the waiting plans
* @return
*/
int getMaxWaitPlanWaterMark();
public interface EngineStatistics extends EngineStatisticsBean, AdminObject, DomainAware {

}
89 changes: 89 additions & 0 deletions admin/src/main/java/org/teiid/adminapi/EngineStatisticsBean.java
@@ -0,0 +1,89 @@
/*
* Copyright Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags and
* the COPYRIGHT.txt file distributed with this work.
*
* Licensed 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.teiid.adminapi;

public interface EngineStatisticsBean {

/**
* Active Number of Sessions in the engine
* @return
*/
int getSessionCount();

/**
* Total amount memory used by buffer manager for active queries and cached queries
* @return
*/
long getTotalMemoryUsedInKB();

/**
* Total memory used by buffer manager for active plans
* @return
*/
long getMemoryUsedByActivePlansInKB();

/**
* Number of writes to disk by buffer manager to save the overflow from memory
* @return
*/
long getDiskWriteCount();

/**
* Number reads from the disk used by buffer manager that cache overflowed.
* @return
*/
long getDiskReadCount();

/**
* Total number of cache reads, includes disk and soft-cache references
* @return
*/
long getCacheReadCount();

/**
* Total number of cache writes, includes disk and soft-cache references
* @return
*/
long getCacheWriteCount();

/**
* Disk space used by buffer manager to save overflowed memory contents
* @return
*/
long getDiskSpaceUsedInMB();

/**
* Current active plan count
* @return
*/
int getActivePlanCount();

/**
* Current number of waiting plans in the queue
* @return
*/
int getWaitPlanCount();

/**
* High water mark for the waiting plans
* @return
*/
int getMaxWaitPlanWaterMark();

}
50 changes: 1 addition & 49 deletions admin/src/main/java/org/teiid/adminapi/Request.java
Expand Up @@ -30,7 +30,7 @@
* <p>A request is identified by a numbers separated by '|'. usually in they are arranged
* in the pattern [session]|[request] or [session]|[request]|[source request] </p>
*/
public interface Request extends AdminObject, DomainAware {
public interface Request extends RequestBean, AdminObject, DomainAware {

public enum ProcessingState {
PROCESSING,
Expand All @@ -44,57 +44,9 @@ public enum ThreadState {
IDLE
}

/**
* Get the ExecutionId for a Request
* @return ExecutionId
*/
public long getExecutionId();

/**
* Get the SessionID for a Request
*
* @return String SessionID
*/
public String getSessionId();

/**
* Get the SQL Command sent to the Server for a Request
*
* @return SQL Command
*/
public String getCommand();

/**
* Get when the processing began for this Request
* @return Date processing began
*/
public long getStartTime();

/**
* Get the TransactionID of the Request
*
* @return String of TransactionID if in a transaction
*/
public String getTransactionId();

/**
* @return Returns whether this is a Source Request.
*/
public boolean sourceRequest();

/**
* @return In the case that this is a source request this represents the node id. Otherwise null
*/
public Integer getNodeId();

/**
* @return The request state
*/
ProcessingState getState();

/**
* @return The thread state
*/
ThreadState getThreadState();

}
79 changes: 79 additions & 0 deletions admin/src/main/java/org/teiid/adminapi/RequestBean.java
@@ -0,0 +1,79 @@
/*
* Copyright Red Hat, Inc. and/or its affiliates
* and other contributors as indicated by the @author tags and
* the COPYRIGHT.txt file distributed with this work.
*
* Licensed 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.teiid.adminapi;

import org.teiid.adminapi.Request.ProcessingState;
import org.teiid.adminapi.Request.ThreadState;

public interface RequestBean {

/**
* Get the ExecutionId for a Request
* @return ExecutionId
*/
public long getExecutionId();

/**
* Get the SessionID for a Request
*
* @return String SessionID
*/
public String getSessionId();

/**
* Get the SQL Command sent to the Server for a Request
*
* @return SQL Command
*/
public String getCommand();

/**
* Get when the processing began for this Request
* @return Date processing began
*/
public long getStartTime();

/**
* Get the TransactionID of the Request
*
* @return String of TransactionID if in a transaction
*/
public String getTransactionId();

/**
* @return Returns whether this is a Source Request.
*/
public boolean isSourceRequest();

/**
* @return In the case that this is a source request this represents the node id. Otherwise null
*/
public Integer getNodeId();

/**
* @return The request state
*/
ProcessingState getState();

/**
* @return The thread state
*/
ThreadState getThreadState();

}
79 changes: 1 addition & 78 deletions admin/src/main/java/org/teiid/adminapi/Session.java
Expand Up @@ -24,83 +24,6 @@
*
* A user is allowed to have multiple sessions active simultaneously.
*/
public interface Session extends AdminObject, DomainAware {
public interface Session extends SessionBean, AdminObject, DomainAware {

/**
* Get the Last time Client has check to see if the server is still available
*
* @return Date of the last ping to the server.
*/
public long getLastPingTime();


/**
* Get the Application Name
*
* @return String of the Application Name
*/
public String getApplicationName();

/**
* Get the unique Teiid session
* within a given Teiid System
*
* @return String of the Session ID
*/
public String getSessionId();

/**
* Get User Name for this Session
* <br>It will not include the Security Domain, see {@link #getSecurityDomain()}
* @return String of UserName
*/
public String getUserName();

/**
* Get the VDB Name for this Session
*
* @return String name of the VDB
*/
public String getVDBName();

/**
* Get the VDB Version for this Session
*
* @return String name/number of the VDB Version
*/
public String getVDBVersion();

/**
* Get the IPAddress for this Session. Note this value is reported from the client.
* @return
*/
public String getIPAddress();


/**
* Get the host name of the machine the client is
* accessing from. Note this value is reported from the client.
* @return
*/
public String getClientHostName();

/**
* Get the client hardware (typically MAC) address. Note this value is reported from the client.
* @return the hardware address as a hex string or null if not available.
*/
public String getClientHardwareAddress();

/**
* Get the time the {@link Session} was created.
* @return
*/
public long getCreatedTime();


/**
* Security Domain user logged into currently
* @return
*/
public String getSecurityDomain();

}

0 comments on commit ae29d65

Please sign in to comment.