A Grafana Data Source Backend Plugin that enables visualization of telemetry and streaming data from Oracle services inside Grafana dashboards.
This plugin allows users to connect Grafana to Oracle telemetry and streaming infrastructure and build real-time dashboards for monitoring and observability use cases.
This repository contains a Grafana backend data source plugin composed of:
- A frontend component built with Grafana Toolkit (React + TypeScript)
- A backend component written in Go using the Grafana Plugin SDK
The plugin enables secure data retrieval and visualization of Oracle telemetry and streaming data inside Grafana.
- Node.js 16.x (required) (suggested v16.20.2)
- Yarn 1.x (suggested 1.22.11)
- npm 8.x (bundled with Node 16) (suggested 8.19.4) These are fully compatible with @grafana/toolkit v8.5.27 and webpack 4.41.5.
Recommended setup using nvm:
nvm install 16
nvm use 16
nvm alias default 16Verify:
node --version
yarn --version- Go 1.24.0
- Go modules enabled
Verify:
go versiongit clone <repository-url>
cd <repository-folder>Install Dependencies
yarn installDevelopment Mode
yarn devOr watch mode:
yarn watchRun Tests
yarn testProduction Build
yarn buildThis generates optimized frontend assets inside the dist/ directory.
The backend component is implemented in Go using the Grafana Plugin SDK.
go mod tidygo build -o dist/gpx_oracle-telemetry_linux_amd64 ./pkgThis generates the backend plugin binary inside the dist/ directory.
-
Download a stable version of Grafana (recommended: version 8 through 12) from: https://grafana.com/grafana/download
-
Extract Grafana to a directory (e.g.,
<GRAFANA_HOME>). -
Copy the plugin folder into:
<GRAFANA_HOME>/data/plugins/ -
Enable unsigned plugins in:
<GRAFANA_HOME>/conf/defaults.iniAdd or update:
allow_loading_unsigned_plugins = oracle-oracle-telemetry -
Start or restart the Grafana server.
-
Log in to Grafana (default credentials:
admin/admin) and add the data source from the UI.
.
├── .github/ # GitHub workflows and automation
├── img/ # Plugin images and assets
├── pkg/ # Go backend source code
├── src/ # Frontend source (React/TypeScript)
├── docs/ # Detailed plugin architecture and documentation
├── dist/ # Generated build artifacts (not committed)
├── Magefile.go # Mage build targets for backend
├── plugin.json # Grafana plugin definition
├── package.json # Frontend dependencies
├── go.mod / go.sum # Go module definitions
├── tsconfig.json # TypeScript configuration
├── jest.config.js # Frontend test configuration
├── .nvmrc # Node version pin (Node 16)
├── CONTRIBUTING.md # Contribution guidelines
├── SECURITY.md # Security disclosure policy
├── LICENSE # License information
└── README.md
Grafana Backend Plugin Documentation:
- https://grafana.com/docs/grafana/latest/developers/plugins/backend/
- https://grafana.com/docs/grafana/latest/developers/plugins/backend/grafana-plugin-sdk-for-go/
- Additional documentation is available in the
docs/directory:
Contributions are welcome.
To submit improvements or fixes, please follow the steps below:
- Clone the Repository
git clone <REPO_LINK> cd <REPO_NAME> - Create a New Branch
git checkout -b <your-branch-name> - Install Frontend Dependencies, Ensure you are using Node 16.
yarn install - Make Your Changes. Implement your changes in the new branch. Before submitting a pull request, verify that both frontend and backend build successfully.
yarn build
go build -o dist/gpx_oracle-telemetry_linux_amd64 ./pkg
- Commit and Push Your Changes
git add . git commit -m "Describe your changes clearly" git push origin <your-branch-name> - Open a Pull Request
Create a pull request from your branch to the
mainbranch.
Please ensure:
- The project builds successfully
- Add tests whenever possible.
- Tests pass.
- No unintended files (e.g.,
node_modules/,dist/) are committed
This project welcomes contributions from the community. Before submitting a pull request, please review our contribution guide
If you discover a security vulnerability, please follow the responsible disclosure process described in our security guide.
Copyright (c) 2026 Oracle and/or its affiliates.
Released under the Universal Permissive License v1.0
https://oss.oracle.com/licenses/upl/
See LICENSE