Neptune Apex

Overview

The Neptune Apex controller family allows an aquarium hobbyist to monitor and control their tanks based on various probes. The data is taken directly from the /cgi-bin/status.xml at the interval specified in the circonus-unified-agent.conf configuration file.

The Neptune Apex input plugin collects real-time data from the Apex’s status.xml page.

Contributing

This plugin is used for mission-critical aquatic life support. A bug could very well result in the death of animals. Neptune does not publish a schema file and as such, we have made this plugin very strict on input with no provisions for automatically adding fields. We are also careful to not add default values when none are presented to prevent automation errors.

When writing unit tests, use actual Apex output to run tests. It’s acceptable to abridge the number of repeated fields but never inner fields or parameters.

Configuration

[[inputs.neptune_apex]]
  ## The Neptune Apex plugin reads the publicly available status.xml data from a local Apex.
  ## Measurements will be logged under "apex".

  ## The base URL of the local Apex(es). If you specify more than one server, they will
  ## be differentiated by the "source" tag.
  servers = [
    "http://apex.local",
  ]

  ## The response_timeout specifies how long to wait for a reply from the Apex.
  #response_timeout = "5s"

Troubleshooting

sendRequest failure

This indicates a problem communicating with the local Apex controller. If on Mac/Linux, try curl:

$ curl apex.local/cgi-bin/status.xml

to isolate the problem.

parseXML errors

Ensure the XML being returned is valid. If you get valid XML back, open a bug request.

Missing fields/data

The neptune_apex plugin is strict on its input to prevent any conversion errors. If you have fields in the status.xml output that are not converted to a metric, open a feature request and paste your whole status.xml