Monitor the performance and throughput of your OSID application with JMX.
Kilimanjaro exposes its activity via JMX.
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.ssl=false
Every bean lives under the
net.okapia.osid.kilimanjaro.jmx domain:
| Bean | ObjectName |
|---|---|
| OsidProvider | net.okapia.osid.kilimanjaro.jmx:type=OsidProvider,name=<context>.<index> |
| OsidSession | net.okapia.osid.kilimanjaro.jmx:type=OsidSession,name=<context><index> |
| OsidStats | net.okapia.osid.kilimanjaro.jmx:type=OsidStats,name=<context>.<index> |
<index> is a
monotonically increasing counter, unique per class within the
JVM. Agent, OsidErrorStats, and
OsidTypes are not registered as standalone beans —
they surface as nested composite data on their parent bean's
attributes (getAuthenticatedAgent(),
getErrors(), and so on).
One instance per runtime, service, or provider.
| Attribute | Type | Meaning |
|---|---|---|
getIdentifier() | String (UUID) | unique instance id |
getContext() | String | runtime context name |
getOsidPackage() | String | OSID package, e.g. org.osid |
getImplementationName() | String | implementation class name |
getId(), getName(), getDescription(), getVersion() | String | from the provider's OsidProfile |
getReleaseDate(), getBootTime() | Date | implementation release date / instance boot time |
getUptime() | long (ms) | time since boot |
getServices() | List<OsidProviderMXBean> | child providers/services spawned through this one |
getSessions() | List<OsidSessionMXBean> | active sessions opened on this provider |
getStats() | OsidStatsMXBean | traffic/error stats for this provider only |
getCumulativeStats() | OsidStatsMXBean | stats aggregated across this provider and every descendant |
One instance per open session. Registered
from executor.SessionTerm.createSession().
| Attribute | Type | Meaning |
|---|---|---|
getOsidPackage(), getName(), getImplementationName() | String | session identity |
getLanguageType() / ScriptType() / CalendarType() / TimeType() / CurrencyType() / UnitSystemType() | String | locale facets in effect |
getNumericFormatType() / CalendarFormatType() / TimeFormatType() / CurrencyFormatType() / CoordinateFormatType() | String | locale display-format facets |
getAuthenticatedAgent() | AgentMXBean | authenticated principal, null if none |
getEffectiveAgent() | AgentMXBean | effective (possibly impersonated) principal |
getEffectiveDate() | Date | session's effective date |
getStats() | OsidStatsMXBean | per-session call/error stats |
Traffic and error counters. Session stats roll up into their provider's stats, which roll up into cumulative stats, which roll up the parent provider's cumulative stats.
| Attribute | Type | Meaning |
|---|---|---|
getCallsIn() / getCallsOut() | long | calls from consumers in / calls out to consumers |
getObjectsIn() / getObjectsOut() | long | objects transferred in/out |
getBytesIn() / getBytesOut() | long | bytes transferred in/out |
getContractErrorsIn() / Out() | long | consumer-caused / provider-caused contract violations |
getUserErrors() | long | org.osid.UserException count |
getOperationalErrors() | long | org.osid.OperationalException count |
getSystemErrors() | long | java.lang.Error count |
getUnknownErrors() | long | errors matching no known OSID exception category |
getErrors() | List<OsidErrorStatsMXBean> | breakdown by exception class name (getName(), getErrorCount()) |
AgentMXBean exposes
getId(), getGenusType() (or
agent:unresolved@okapia.net if unresolved),
getName(), and getDescription().
OsidTypesMXBean exposes getId() and
getTypes() — a map of supported OSID types keyed by
category.
Since these are plain MXBeans on the platform MBeanServer, any standard JMX client works — no kilimanjaro-specific tool is required:
service:jmx:rmi:///jndi/rmi://host:port/jmxrmi remotely.jmxterm.In any of these, browse the
net.okapia.osid.kilimanjaro.jmx domain and drill into
the OsidProvider, OsidSession, and
OsidStats instances by name.