The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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>
proxy => { url => <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 => "..." }
$url = $agent->url()

Get the base URL for connecting to the agent. You cannot change the URL via this method, it is immutable for a given agent.

$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