type=page
status=published
title=enable-monitoring
next=enable-secure-admin.html
prev=enable-http-lb-server.html
~~~~~~
enable-monitoring
=================

[[enable-monitoring-1]][[GSRFM00128]][[enable-monitoring]]

enable-monitoring
-----------------

enables monitoring for the server or for specific monitorable modules

[[sthref1119]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] enable-monitoring [--help] 
[--target target] 
[--mbean={false|true}] 
[--dtrace={true|false}] 
[--modules modules[=level][:module[=level]]* 
[--pid pid] 
[--options options]]
----

[[sthref1120]]

Description

The `enable-monitoring` subcommand is used to turn on monitoring for
\{product---name} or for particular modules during runtime. Changes are
dynamic, that is, server restart is not required.

By default, the monitoring service is enabled, that is, the
`monitoring-enabled` attribute of the `monitoring-service` element is
`true`. However, the default monitoring level for individual modules is
`OFF`. This subcommand used with the `--modules` option can enable
monitoring for a given module by setting the monitoring level to HIGH or
LOW. If level is not specified when running the subcommand, the level
defaults to HIGH.

The specific meanings of HIGH or LOW are determined by the individual
containers. For a list of monitorable modules, see the `--modules`
option in this help page.

An alternative method for enabling monitoring is to use the `set`
subcommand. In this case, the server must be restarted for changes to
take effect.

This subcommand is supported in remote mode only.

[[sthref1121]]

Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--target`::
  Specifies the target on which to enabling monitoring. Valid values are
  as follows: +
  `server`;;
    Enables monitoring for the default server instance `server` and is
    the default value.
  configuration-name;;
    Enables monitoring for the named configuration.
  cluster-name;;
    Enables monitoring for every server instance in the cluster.
  instance-name;;
    Enables monitoring for a particular server instance.
`--mbean`::
  Enables Mbean monitoring. Default value is false.
`--dtrace`::
  Only usable if the DTrace Monitoring module is present. Enables Oracle
  Solaris DTrace monitoring. Default value is false.
`--modules`::
  Enables specified module or modules by indicating monitoring level.
  Valid levels are OFF, HIGH, LOW. If level is not specified, the
  default setting is HIGH. Multiple modules are separated by : (colon).
  Monitorable modules include `connector-connection-pool`,
  `connector-service`, `ejb-container`, `http-service`,
  `jdbc-connection-pool`, `jersey`, `jpa`, `jms-service`, `jvm`,
  `security`, `thread-pool`, `transaction-service`, `web-container`, and
  `web-services-container`. Additional modules can be listed by using
  the `get` subcommand.
`--pid`::
  Specifies the \{product---name} JVM process identifier (PID). When
  monitoring is enabled, the `btrace-agent` is attached, based on the
  specified PID. Need to specify only in exceptional cases when the
  system cannot determine the PID. In this situation, the subcommand
  prompts for the PID of the corresponding \{product---name}process.
`--options`::
  Sets the following `btrace-agent` options: +
  `debug`;;
    Enables debugging for BTrace. Default value is false.

[[sthref1122]]

Examples

[[GSRFM603]][[sthref1123]]

Example 1   Enabling the Monitoring Service for \{product---name}

This example enables monitoring for \{product---name} in general by
setting the `enable-monitoring` flag to `true` (default is `true`).

[source,oac_no_warn]
----
asadmin> enable-monitoring
Command enable-monitoring executed successfully
----

[[GSRFM604]][[sthref1124]]

Example 2   Enabling Monitoring for the Web and EJB Containers

This example enables monitoring for specific containers by setting their
monitoring levels.

[source,oac_no_warn]
----
asadmin> enable-monitoring --modules web-container=LOW:ejb-container=HIGH
Command enable-monitoring executed successfully
----

[[GSRFM605]][[sthref1125]]

Example 3   Turning on Debugging for Monitoring

This example turns on debugging.

[source,oac_no_warn]
----
asadmin> enable-monitoring --options debug=true
Command enable-monitoring executed successfully
----

[[sthref1126]]

Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1127]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:disable-monitoring.html#disable-monitoring-1[`disable-monitoring`(1)],
link:get.html#get-1[`get`(1)], link:list.html#list-1[`list`(1)],
link:monitor.html#monitor-1[`monitor`(1)], link:set.html#set-1[`set`(1)]

link:monitoring.html#monitoring-5asc[`monitoring`(5ASC)]

"link:../administration-guide/monitoring.html#GSADG00011[Administering the Monitoring Service]" in GlassFish
Server Open Source Edition Administration Guide


