A New Relic plugin for monitoring MarkLogic
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
etc
newrelic_marklogic_plugin
scripts
tests
.gitignore
LICENSE
MANIFEST.in
README.rst
setup.cfg
setup.py

README.rst

newrelic-marklogic-plugin

NewRelic plugin for monitoring MarkLogic.

Features

  • 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.

Docs

newrelic-marklogic-plugin docs on github

newrelic-marklogic-plugin docs on pypi

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.

  1. Copy etc/newrelic_marklogic.conf.sample and to newrelic_marklogic.conf
  2. Edit newrelic_marklogic.conf ensuring 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.

newrelic_marklogic.py -h
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)

Usage

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

Please file bug reports, feature requests, and contribute with pull requests through GitHub.

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.

Apache License v2.0