NAME
JMX::Jmx4Perl::Request - A jmx4perl request
SYNOPSIS
$req = JMX::Jmx4Perl::Request->new(READ,$mbean,$attribute);
DESCRIPTION
A JMX::Jmx4Perl::Request encapsulates a request for various operational types.
The following attributes are available:
- mbean
-
Name of the targetted mbean in its canonical format.
- type
-
Type of request, which should be one of the constants
- READ
-
Get the value of a attribute
- WRITE
-
Write an attribute
- EXEC
-
Execute an JMX operation
- LIST
-
List all MBeans available
- SEARCH
-
Search for MBeans
- REGISTER_NOTIFICATION
-
Register for a JMX notification (not supported yet)
- REMOVE_NOTIFICATION
-
Remove a JMX notification (not supported yet)
- attribute
-
If type is
READ
orWRITE
this specifies the requested attribute - value
-
For
WRITE
this specifies the value to set - arguments
-
List of arguments of
EXEC
operations - path
-
This optional parameter can be used to specify a nested value in an complex mbean attribute or nested return value from a JMX operation. For example, the MBean
java.lang:type=Memory
's attributeHeapMemoryUsage
is a complex value, which looks in the JSON representation like"value":{"init":0,"max":518979584,"committed":41381888,"used":33442568}
So, to fetch the
"used"
value only, specifyused
as path within the request. You can access deeper nested values by building up a path with "/" as separator. This looks a bit like a simplified form of XPath. - max_depth, max_objects, max_list_size
-
With these number you can restrict the size of the JSON structure returned.
max_depth
gives the maximum nesting level of the JSON object,max_objects
returns the maximum number of objects to be returned in total andmax_list_size
restrict the number of all arrays and collections (maps, lists) in the answer. Note, that you should use this restrictions if you are doing massive bulk operations. - target
-
If given, the request is processed by the agent in proxy mode, i.e. it will proxy to another server exposing via a JSR-160 connector.
target
is a hash which contains information how to reach the target service via the proxy. This hash knows the following keys:- url
-
JMX service URL as specified in JSR-160 pointing to the target server.
- env
-
Further context information which is another hash.
METHODS
- $req = new JMX::Jmx4Perl::Request(....);
-
$req = new JMX::Jmx4Perl::Request(READ,$mbean,$attribute,$path, { ... options ... } ); $req = new JMX::Jmx4Perl::Request(READ,{ mbean => $mbean,... }); $req = new JMX::Jmx4Perl::Request({type => READ, mbean => $mbean, ... });
The constructor can be used in various way. In the simplest form, you provide the type as first argument and depending on the type one or more additional attributes which specify the request. The second form uses the type as first parameter and a hashref containing named parameter for the request parameters (for the names, see above). Finally you can specify the arguments completely as a hashref, using 'type' for the entry specifying the request type.
For the options
max_depth
,max_objects
andmax_list_size
, you can mix them in into the hashref if using the hashed argument format. For the first format, these options are given as a final hashref.If the request should be proxied through this request, a target configuration needs to be given as optional parameter. The target configuration consists of a JMX service
url
and a optional environment, which is given as a key-value map. For example$req = new JMX::Jmx4Perl::Request(..., { target => { url => "", env => { ..... } } } );
Note, depending on the type, some parameters are mandatory. The mandatory parameters and the order of the arguments for the constructor variant without named parameters are:
READ
-
Order : $mbean, $attribute, $path Mandatory: $mbean, $attribute
WRITE
-
Order : $mbean, $attribute, $value, $path Mandatory: $mbean, $attribute, $value
EXEC
-
Order : $mbean, $operation, $arg1, $arg2, ... Mandatory: $mbean, $operation
LIST
-
Order : $path
SEARCH
-
Order : $pattern Mandatory: $pattern
- $request->get("type")
-
Get a request parameter
LICENSE
This file is part of jmx4perl.
Jmx4perl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
jmx4perl is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with jmx4perl. If not, see <http://www.gnu.org/licenses/>.
A commercial license is available as well. Please contact roland@cpan.org for further details.
AUTHOR
roland@cpan.org