/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at * trunk/opends/resource/legal-notices/OpenDS.LICENSE * or https://OpenDS.dev.java.net/OpenDS.LICENSE. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, * add the following below this CDDL HEADER, with the fields enclosed * by brackets "[]" replaced with your own identifying information: * Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END * * * Copyright 2009 Sun Microsystems, Inc. */ package org.opends.guitools.controlpanel.datamodel; import static org.opends.messages.AdminToolMessages.*; import org.opends.messages.Message; import org.opends.server.monitors.TraditionalWorkQueueMonitor; import org.opends.server.util.ServerConstants; /** * The enumeration containing the different monitoring attributes that can be * displayed in the monitoring panels. */ public enum BasicMonitoringAttributes implements MonitoringAttributes { /** * Start Date. */ START_DATE(Message.EMPTY, ServerConstants.ATTR_START_TIME), /** * Current Date. */ CURRENT_DATE(Message.EMPTY, ServerConstants.ATTR_CURRENT_TIME), /** * Current Connections. */ CURRENT_CONNECTIONS(Message.EMPTY, ServerConstants.ATTR_CURRENT_CONNS), /** * Maximum Connections. */ MAX_CONNECTIONS(Message.EMPTY, ServerConstants.ATTR_MAX_CONNS), /** * Total Connections. */ TOTAL_CONNECTIONS(Message.EMPTY, ServerConstants.ATTR_TOTAL_CONNS), /** * Average Request Backlog. */ AVERAGE_REQUEST_BACKLOG(INFO_CTRL_PANEL_AVERAGE_REQUEST_BACKLOG.get(), TraditionalWorkQueueMonitor.ATTR_AVERAGE_BACKLOG), /** * Max Request Backlog. */ MAX_REQUEST_BACKLOG(INFO_CTRL_PANEL_MAX_REQUEST_BACKLOG.get(), TraditionalWorkQueueMonitor.ATTR_MAX_BACKLOG), /** * Current Request Backlog. */ CURRENT_REQUEST_BACKLOG(INFO_CTRL_PANEL_CURRENT_REQUEST_BACKLOG.get(), TraditionalWorkQueueMonitor.ATTR_CURRENT_BACKLOG), /** * Requests submitted. */ REQUESTS_SUBMITTED(INFO_CTRL_PANEL_REQUESTS_SUBMITTED.get(), TraditionalWorkQueueMonitor.ATTR_OPS_SUBMITTED), /** * Requests rejected. */ REQUESTS_REJECTED(INFO_CTRL_PANEL_REQUESTS_REJECTED.get(), TraditionalWorkQueueMonitor.ATTR_OPS_REJECTED_QUEUE_FULL), /** * Entry cache Hits. */ ENTRY_CACHE_HITS(INFO_CTRL_PANEL_ENTRY_CACHE_HITS.get(), "entryCacheHits"), /** * Current entry cache count. */ CURRENT_ENTRY_CACHE_COUNT(INFO_CTRL_PANEL_CURRENT_ENTRY_CACHE_COUNT.get(), "currentEntryCacheCount"), /** * Entry cache tries. */ ENTRY_CACHE_TRIES(INFO_CTRL_PANEL_ENTRY_CACHE_TRIES.get(), "entryCacheTries"), /** * Entry cache hit ratio. */ ENTRY_CACHE_HIT_RATIO(INFO_CTRL_PANEL_ENTRY_CACHE_HIT_RATIO.get(), "entryCacheHitRatio"), /** * Entry cache current size. */ CURRENT_ENTRY_CACHE_SIZE(INFO_CTRL_PANEL_CURRENT_ENTRY_CACHE_SIZE.get(), "currentEntryCacheSize"), /** * Entry cache max size. */ MAX_ENTRY_CACHE_SIZE(INFO_CTRL_PANEL_MAX_ENTRY_CACHE_SIZE.get(), "maxEntryCacheSize"), /** * Entry cache max count. */ MAX_ENTRY_CACHE_COUNT(INFO_CTRL_PANEL_MAX_ENTRY_CACHE_COUNT.get(), "maxEntryCacheCount"), /** * Available CPUs. */ AVAILABLE_CPUS(INFO_CTRL_PANEL_AVAILABLE_CPUS.get(), "availableCPUs"), /** * System Name. */ SYSTEM_NAME(INFO_CTRL_PANEL_SYSTEM_NAME.get(), "systemName"), /** * Operating System. */ OPERATING_SYSTEM(INFO_CTRL_PANEL_OPERATING_SYSTEM.get(), "operatingSystem"), /** * Free used memory. */ FREE_USED_MEMORY(INFO_CTRL_PANEL_FREE_USED_MEMORY.get(), "freeUsedMemory"), /** * Max memory. */ MAX_MEMORY(INFO_CTRL_PANEL_MAX_MEMORY.get(), "maxMemory"), /** * Used memory. */ USED_MEMORY(INFO_CTRL_PANEL_USED_MEMORY.get(), "usedMemory"), /** * Class path. */ CLASS_PATH(INFO_CTRL_PANEL_CLASS_PATH.get(), "classPath"), /** * Java Vendor. */ JAVA_VENDOR(INFO_CTRL_PANEL_JAVA_VENDOR.get(), "javaVendor"), /** * JVM Vendor. */ JVM_VENDOR(INFO_CTRL_PANEL_JVM_VENDOR.get(), "javaVendor"), /** * Java Version. */ JAVA_VERSION(INFO_CTRL_PANEL_JAVA_VERSION.get(), "javaVersion"), /** * JVM Version. */ JVM_VERSION(INFO_CTRL_PANEL_JVM_VERSION.get(), "jvmVersion"), /** * JVM Architecture. */ JVM_ARCHITECTURE(INFO_CTRL_PANEL_JVM_ARCHITECTURE.get(), "jvmArchitecture"), /** * JVM Arguments. */ JVM_ARGUMENTS(INFO_CTRL_PANEL_JVM_ARGUMENTS.get(), "jvmArguments"), /** * Add Request. */ ADD_REQUESTS(INFO_CTRL_PANEL_ADD_REQUESTS_LABEL.get(), "addRequests"), /** * Add Responses. */ ADD_RESPONSES(INFO_CTRL_PANEL_ADD_RESPONSES_LABEL.get(), "addResponses"), /** * Bind Request. */ BIND_REQUESTS(INFO_CTRL_PANEL_BIND_REQUESTS_LABEL.get(), "bindRequests"), /** * Bind Responses. */ BIND_RESPONSES(INFO_CTRL_PANEL_BIND_RESPONSES_LABEL.get(), "bindResponses"), /** * Compare Requests. */ COMPARE_REQUESTS(INFO_CTRL_PANEL_COMPARE_REQUESTS_LABEL.get(), "compareRequests"), /** * Compare Responses. */ COMPARE_RESPONSES(INFO_CTRL_PANEL_COMPARE_RESPONSES_LABEL.get(), "compareResponses"), /** * Delete Request. */ DELETE_REQUESTS(INFO_CTRL_PANEL_DELETE_REQUESTS_LABEL.get(), "deleteRequests"), /** * Delete Responses. */ DELETE_RESPONSES(INFO_CTRL_PANEL_DELETE_RESPONSES_LABEL.get(), "deleteResponses"), /** * Extended Request. */ EXTENDED_REQUESTS(INFO_CTRL_PANEL_EXTENDED_REQUESTS_LABEL.get(), "extendedRequests"), /** * Extended Responses. */ EXTENDED_RESPONSES(INFO_CTRL_PANEL_EXTENDED_RESPONSES_LABEL.get(), "extendedResponses"), /** * Modify DN Request. */ MOD_DN_REQUESTS(INFO_CTRL_PANEL_MOD_DN_REQUESTS_LABEL.get(), "modifyDNRequests"), /** * Modify DN Responses. */ MOD_DN_RESPONSES(INFO_CTRL_PANEL_MOD_DN_RESPONSES_LABEL.get(), "modifyDNResponses"), /** * Modify Request. */ MOD_REQUESTS(INFO_CTRL_PANEL_MOD_REQUESTS_LABEL.get(), "modifyRequests"), /** * Modify Responses. */ MOD_RESPONSES(INFO_CTRL_PANEL_MOD_RESPONSES_LABEL.get(), "modifyResponses"), /** * Search Request. */ SEARCH_REQUESTS(INFO_CTRL_PANEL_SEARCH_REQUESTS_LABEL.get(), "searchRequests"), /** * Searches Done. */ SEARCH_DONE(INFO_CTRL_PANEL_SEARCH_DONE_LABEL.get(), "searchResultsDone"), /** * Unbind Request. */ UNBIND_REQUESTS(INFO_CTRL_PANEL_UNBIND_REQUESTS_LABEL.get(), "unbindRequests"),; static { // Do this here, since static references do not work if this is done // in the constructor. for (BasicMonitoringAttributes attr : BasicMonitoringAttributes.values()) { attr.calculateProperties(); } } private Message msg; private String attributeName; private boolean isAborted; private boolean isNumeric; private boolean isGMTDate; private boolean isValueInBytes; private boolean canHaveAverage; private boolean isTime; private BasicMonitoringAttributes(Message msg, String attributeName) { this.msg = msg; this.attributeName = attributeName; } /** * {@inheritDoc} */ public Message getMessage() { return msg; } /** * {@inheritDoc} */ public String getAttributeName() { return attributeName; } /** * {@inheritDoc} */ public boolean isAborted() { return isAborted; } /** * {@inheritDoc} */ public boolean isNumeric() { return isNumeric; } /** * {@inheritDoc} */ public boolean isTime() { return isTime; } /** * {@inheritDoc} */ public boolean isGMTDate() { return isGMTDate; } /** * {@inheritDoc} */ public boolean isValueInBytes() { return isValueInBytes; } /** * {@inheritDoc} */ public boolean canHaveAverage() { return canHaveAverage; } /** * {@inheritDoc} */ public boolean isNumericDate() { return false; } private void calculateProperties() { isAborted = attributeName.indexOf("ds-mon-aborted-") == 0; canHaveAverage = attributeName.endsWith("total-count") || attributeName.endsWith("Requests") || attributeName.endsWith("Responses") || this == SEARCH_DONE; isGMTDate = this == START_DATE || this == CURRENT_DATE; isValueInBytes = this == FREE_USED_MEMORY || this == MAX_MEMORY || this == USED_MEMORY; isTime = attributeName.indexOf("time") != -1; isNumeric = !this.isGMTDate() && this != SYSTEM_NAME && this != OPERATING_SYSTEM && this != CLASS_PATH && this != JAVA_VENDOR && this != JVM_VENDOR && this != JAVA_VERSION && this != JVM_VERSION && this != JVM_ARCHITECTURE && this != JVM_ARGUMENTS; } }