NewRelic plugin for monitoring MarkLogic.
- Easy to install
- Configurable selection of metrics to retrieve
- Retrieve summary metrics on local cluster, hosts, servers & forests.
- Retrieve detail metrics on databases, forests, hosts, groups & servers.
- Proxy access to NewRelic api
- Sample monitoring dashboards available at NewRelic plugin central.
Before you start
Require minimally Python 2.7.10 installed.
Requests python package v2.11 or greater.
Require minimally MarkLogic v7.0-6 installed and running.
Require NewRelic account.
Install, configure & run
Install the plugin using any of the following methods.
install from pypi repository
pip install newrelic-marklogic-plugin
install direct from github
pip install https://github.com/marklogic/newrelic-plugin/archive/master.zip
download release (or clone) repository and run the following.
python setup.py install
Next step is to create and edit configuration file.
newrelic_marklogic.confensuring correct MarkLogic connection details and NewRelic license key
Start reporting metrics to NewRelic by running the following.
newrelic_marklogic.py -c newrelic_marklogic.conf
Which samples metrics every period of length duration as set within configuration.
It is recommended to initiate plugin as a background task, run via a scheduler (ex. cron job) or using any other approach appropriate for your environment.
Running with -h flag will emit usage instructions for running plugin.
usage: ./newrelic_marklogic.py [-h] [-c config file] [-l log file] -h print usage instructions (this message) -c config file (default: newrelic_marklogic.conf) -l log file (default: newrelic_marklogic.log)
The configuration file drives all newrelic-marklogic-plugin features and is split into several sections.
The 'marklogic' section contains connection details to MarkLogic server and Management REST API.
[marklogic] # Scheme to use when accessing MarkLogic management REST API (http|https). scheme = http # Host to use when accessing MarkLogic management REST API (FQDN hostname). host = localhost # Port to use when accessing MarkLogic management REST API. port = 8002 # Authentication to use when accessing MarkLogic management REST API (BASIC|DIGEST). auth= DIGEST # Username to use when accessing MarkLogic management REST API. user = admin # Password to use when accessing MarkLogic management REST API. pass = admin
The 'newrelic' section specifies the NewRelic license key. Optionally you may nominate a proxy for accessing the NewRelic Plugin API.
[newrelic] # Your NewRelic license key. key = **************************************** # Proxy (ex. http://10.10.1.10:3128). http_proxy =
The 'plugin' section defines sample period for updating NewRelic, as well as the logging level for emitting messages about plugin operation.
There are a set of configurations for defining which statuses are captured by NewRelic, summarised below.
- summary_status (True|False): retrieve local cluster summary status.
- databases (list of databases): retrieve database detailed status.
- hosts_summary_status (True|False): retrieve summary of all hosts status.
- hosts (list of hosts): retrieve host detailed status.
- forests_summary_status (True|False): retrieve summary of all forests status.
- forests (list of forests): retrieve forest detailed status.
- groups (list of groups): retrieve group detailed status.
- servers_summary_status (True|False): retrieve summary of all servers status.
- servers (list of servers): retrieve server detailed status.
[plugin] # NewRelic plugin display name. name = myMarkLogicServer # Unique NewRelic plugin guid. guid = com.marklogic # Sample period in seconds. duration = 60 # Set logging level (INFO|DEBUG|ERROR). log_level = DEBUG # Local cluster summary. summary_status= False # Database(s) detail status. databases= Documents # Hosts summary. hosts_summary_status= True # Host(s) detail status. hosts= 127.0.0.1 # Forests summary. forests_summary_status= True # Forest(s) detail status. forests= Documents Meters # Group(s) detail status. groups= Default # Servers summary. servers_summary_status= True # Server(s) detail status (must supply group name ex. ServerName:GroupName). servers= Manage:Default
Create pypi distribution
To create an official distribution, first bump version number then test by creating distro on pypitest
python setup.py register -r pypitest
after verifying all is well you may generate distro on pypi:
python setup.py register -r pypi
Issues, feature requests & contributing
Copyright & License
newrelic-marklogic-plugin Copyright 2016 MarkLogic Corporation
newrelic-marklogic-plugin is licensed under the Apache License, Version 2.0 (the "License"), a copy of the license is included within this package.