NAME

JMX::Jmx4Perl::Agent - JSON-HTTP based acess to a remote JMX agent

SYNOPSIS

my $agent = new JMX::Jmx4Perl(mode=>"agent", url => "http://jeeserver/j4p");
my $answer = $agent->get_attribute("java.lang:type=Memory","HeapMemoryUsage");
print Dumper($answer);

$VAR1 = {
   'value' => {
               'committed' => 18292736,
               'used' => 15348352,
               'max' => 532742144,
               'init' => 0
              },
   'status' => 200,
   'request' => {
                  'attribute' => 'HeapMemoryUsage',
                  'name' => 'java.lang:type=Memory'
                 },
};

DESCRIPTION

This module is not used directly, but via JMX::Jmx4Perl, which acts as a proxy to this module. You can think of JMX::Jmx4Perl as the interface which is backed up by this module. Other implementations (e.g.

METHODS

$jjagent = JMX::Jmx4Perl::Agent->new(url => $url, ....)

Creates a new local agent for a given url

url => <url to JEE server>

The url where the agent is deployed. This is a mandatory parameter. The url must include the context within the server, which is typically based on the name of the war archive. Example: http://localhost:8080/j4p for a drop in deployment of the agent in a standard Tomcat's webapp directory.

timeout => <timeout>

Timeout in seconds after which a request should be stopped if it not suceeds within this time. This parameter is given through directly to the underlying LWP::UserAgent

user => <user>, password => <password>

Credentials to use for the HTTP request

proxy => { http => '<http_proxy>', https => '<https_proxy>', ... }
proxy => <http_proxy>

Optional proxy to use

proxy_user => <user>, proxy_password => <password>

Credentials to use for accessing the proxy

target

Add a target which is used for any request served by this object if not already a target is present in the request. This way you can setup the default target configuration if you are using the agent servlet as a proxy, e.g.

... target => { url => "service:jmx:...", user => "...", password => "..." }
$resp = $agent->request($request)

Implementation of the JMX request as specified in JMX::Jmx4Perl. It uses a HTTP::Request sent via an LWP::UserAgent for posting a JSON representation of the request. This method shouldn't be called directly but via JMX::Jmx4Perl->request().

$url = $agent->request_url($request)

Generate the URL for accessing the java agent based on a given request.

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