Grafana Community MongoDB Plugin

This Open Source Grafana plugin allows for querying a MongoDB database or cluster.

This plugins is still in early development, and experimental. Everything is subject to change. Use at your own risk. Help Wanted.

Building

Tools Needed:

  • Node.js 14+
  • Golang 1.17+
  • Yarn
  • Mage

If you have Docker installed you can use ./build-env.sh to build and run a shell in a container with all necessary tools (or build-env.Dockerfile to build it yourself manually).

yarn install
yarn build
yarn backend

Installation

See integration-tests directory for configuration examples.

Production

Run

yarn make-plugin

Then copy the produced meln5674-mongodb-community.zip file to your artifact repository (e.g. Nexus) or web server (.e.g Nginx) of choice.

Bare Metal

Run

grafana-cli --pluginUrl <your repository url>/meln5674-mongodb-community.zip meln5674-mongodb-community

on your grafana host.

Docker

Set the environment variable

GF_INSTALL_PLUGINS=meln5674-mongodb-community=<your repository url>/meln5674-mongodb-community.zip

Kubernetes

Consult your grafana distribution documentation (e.g. https://github.com/bitnami/charts/tree/master/bitnami/grafana) for how to specify plugins to install

Development

Copy built repository to <grafana plugins dir>/meln5674-mongodb-community

Integration Tests

Tools Needed:

  • Docker
  • KinD
  • Helm
  • Kubectl
yarn integration-test

Live Development Environment

export KUBECONFIG=integration-test/kubeconfig
export INTEGRATION_TEST_NO_CLEANUP=1
export INTEGRATION_TEST_DEV_MODE=1
yarn integration-test

Grafana credentials: admin/admin MongoDD credentials: root/root MongoDB Test dataset: test.weather { “metadata”: { “sensorId”: int, “type”: string }, “timestamp”: ISODate(…), “value”: int }

Cleanup:

export INTEGRATION_TEST_NO_CLEANUP=
export INTEGRATION_TEST_DEV_MODE=
integration-test/run.sh

Help Wanted

Do you know about any of the following topics? If so, I’d love to hear from you!

  • React.js – Making the query editor UI not an eyesore
  • MongodB – Providing representative sample data sets and queries to improve automated tests

GitHub

View Github