{"id":39468782,"url":"https://github.com/wbrefvem/python-jolokia","last_synced_at":"2026-01-18T04:52:41.433Z","repository":{"id":20952242,"uuid":"90432228","full_name":"wbrefvem/python-jolokia","owner":"wbrefvem","description":"Python client for Jolokia, an HTTP-JMX bridge","archived":false,"fork":false,"pushed_at":"2024-08-07T19:45:00.000Z","size":314,"stargazers_count":10,"open_issues_count":7,"forks_count":8,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-03T14:45:29.025Z","etag":null,"topics":["enterprise-java","http-bridge","java","jmx","jolokia","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wbrefvem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-06T02:36:55.000Z","updated_at":"2021-12-07T15:50:16.000Z","dependencies_parsed_at":"2022-07-23T15:32:12.403Z","dependency_job_id":null,"html_url":"https://github.com/wbrefvem/python-jolokia","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/wbrefvem/python-jolokia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbrefvem%2Fpython-jolokia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbrefvem%2Fpython-jolokia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbrefvem%2Fpython-jolokia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbrefvem%2Fpython-jolokia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wbrefvem","download_url":"https://codeload.github.com/wbrefvem/python-jolokia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wbrefvem%2Fpython-jolokia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28530388,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["enterprise-java","http-bridge","java","jmx","jolokia","python"],"created_at":"2026-01-18T04:52:41.343Z","updated_at":"2026-01-18T04:52:41.412Z","avatar_url":"https://github.com/wbrefvem.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# python-jolokia [![Build Status](https://travis-ci.org/wbrefvem/python-jolokia.svg?branch=master)](https://travis-ci.org/wbrefvem/python-jolokia)  [![Coverage Status](https://coveralls.io/repos/github/wbrefvem/python-jolokia/badge.svg?branch=master)](https://coveralls.io/github/wbrefvem/python-jolokia?branch=master) [![Maintainability](https://api.codeclimate.com/v1/badges/7922b69c7f2b37a88fe3/maintainability)](https://codeclimate.com/github/wbrefvem/python-jolokia/maintainability)\nThis is a python client library for [Jolokia](https://jolokia.org/).\n\n### Motivation\nJolokia provides a JMX to HTTP bridge, which opens up many possibilities for managing JMX-enabled applications outside conventional enterprise Java workflows. At present, backend libraries are only available for Java and Perl, and there's also a browser-side JavaScript library. While Python is generally more convenient for dealing with HTTP resources than Java or Perl, a client library for Jolokia is optimal.\n\nJMX is not a platform-agnostic tech. This means that management applications for Java EE apps are almost always written in Java, which is unfortunate, as it prevents a more flexible, polyglot architecture. Enter Jolokia. By bridging JMX to HTTP, Jolokia brings Java application management into the broader world of the web, so that they can be orchestrated and managed by tools outside the stodgy, if stable, world of enterprise Java.\n\n### Goals\nCreate a Python client for Jolokia that makes JMX data available both through simple abstractions aimed at the non-Java developer as well as through a full-featured API that gives the seasoned Java developer the flexibility she craves.\n\n### Requirements\n\n* Support all Python versions supported by Python maintainers (currently \u003e=3.5)\n* `python-jolokia` should be transparent to different versions of the Jolokia protocol.\n\n### Installation\nFor regular usage, the recommended (but not required) installation method is pipenv:\n\n```\npipenv install jolokia\n```\n\nFor hacking on `python-jolokia`, [pipenv](https://docs.pipenv.org/) is required. Fork the repo, clone it, and install dev dependencies:\n\n```\ngit clone https://github.com/\u003cuser|org\u003e/python-jolokia.git\npipenv install --dev\n```\n\n### Usage\n\nFor HTTP authentication you can pass a in username and password\n\n```python\nfrom jolokia import JolokiaClient\n\n\njc = JolokiaClient('http://my-jolokia-enabled-server.com/jolokia', 'my_login', 'my_password')\n``` \n\nTo get a single attribute of an MBean:\n\n```python\nfrom jolokia import JolokiaClient\n\n\njc = JolokiaClient('http://my-jolokia-enabled-server.com/jolokia')\n\nresp = jc.get_attribute(mbean='java.lang:type=Memory', attribute='HeapMemoryUsage')\n\nprint(resp)\n\n{\n    'request': {\n        'attribute': 'HeapMemoryUsage', \n        'mbean': 'java.lang:type=Memory', \n        'type': 'read'\n    }, \n    'timestamp': 1496174821, \n    'value': {\n        'used': 288902152, \n        'committed': 1310720000, \n        'max': 1310720000, \n        'init': 1367343104\n    }, \n    'status': 200\n}\n\n```\n\nOr to retrieve multiple attributes, pass a list as the ```attribute``` parameter:\n\n```python\nresp = jc.get_attribute(\n    mbean='java.lang:type=Memory', \n    attribute=['HeapMemoryUsage', 'NonHeapMemoryUsage']\n)\n\nprint(resp)\n\n{\n    'request': {\n        'type': 'read', \n        'attribute': ['HeapMemoryUsage', 'NonHeapMemoryUsage'], \n        'mbean': 'java.lang:type=Memory'\n    }, \n    'value': {\n        'NonHeapMemoryUsage': {\n            'init': 2555904, \n            'max': 1593835520, \n            'used': 77620176, \n            'committed': 87556096\n        }, \n        'HeapMemoryUsage': {\n            'init': 1367343104, \n            'max': 1310720000, \n            'used': 367638816, \n            'committed': 1310720000\n        }\n    }, \n    'timestamp': 1496175578, \n    'status': 200\n}\n```\n\nSetting attributes works the same way, except that the ```value``` parameter is also required:\n\n```python\n\nresp = jc.set_attribute(\n    mbean='java.lang:type=ClassLoading',\n    attribute='Verbose',\n    value=True\n)\n\nprint(resp)\n\n{\n    'request': {\n        'type': 'write', \n        'attribute': 'Verbose', \n        'mbean': 'java.lang:type=ClassLoading', \n        'value': True\n    }, \n    'value': False, \n    'timestamp': 1496175995, \n    'status': 200\n}\n\n```\n\nNote that the top-level ```value``` key in the response refers to the initial value, and we can run ```get_attribute``` to verify that the value is now set to our specified value:\n\n```python\nresp = jc.get_attribute(mbean='java.lang:type=ClassLoading', attribute='Verbose')\n\nprint(resp)\n\n{\n    'request': {\n        'type': 'read', \n        'attribute': 'Verbose', \n        'mbean': 'java.lang:type=ClassLoading'\n    }, \n    'value': True, \n    'timestamp': 1496176091, \n    'status': 200\n}\n``` \n\n### Contributing\nComing soon...","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwbrefvem%2Fpython-jolokia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwbrefvem%2Fpython-jolokia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwbrefvem%2Fpython-jolokia/lists"}