Google Firestore Data Source Plugin for Grafana.
Grafana Firestore Data Source Plugin enables integrating data on Firestore into Grafana dashboards.
It uses FireQL to capture user query that translated to issue queries on Firestore and construct results.
FireQL is a Go library to query Google Firestore database using SQL syntax.
- Use Google Firestore as a data source for Grafana dashboards
- Configure Firestore data source with GCP
Project Id
andService Account
for authentication - Store
Service Account
data source configuration in Grafana encrypted storage Secure JSON Data - Query Firestore collections and path to collections
- Auto detect data types:
string
,number
,boolean
,json
,time.Time
- Query selected fields from the collection
- Order query results
- Limit query results
- Query Collection Groups
- Count query results
- Use of Grafafa global variables in queries.
-
Install dependencies
yarn install
-
Build plugin in development mode or run in watch mode
yarn dev # or yarn watch
-
Build plugin in production mode
yarn build
-
Run the tests (using Jest)
# Runs the tests and watches for changes yarn test # Exists after running all the tests yarn lint:ci
-
Spin up a Grafana instance and run the plugin inside it (using Docker)
yarn server
-
Run the E2E tests (using Cypress)
# Spin up a Grafana instance first that we tests against yarn server # Start the tests yarn e2e
-
Run the linter
yarn lint # or yarn lint:fix
-
Update Grafana plugin SDK for Go dependency to the latest minor version:
go get -u github.com/grafana/grafana-plugin-sdk-go go mod tidy
-
Build backend plugin binaries for Linux, Windows and Darwin:
mage -v
-
List all available Mage targets for additional commands:
mage -l
To trigger the workflow we need to push a version tag to github. This can be achieved with the following steps:
- Run
npm version <major|minor|patch>
- Run
git push origin main --follow-tags
Thanks for considering contributing to this project!
Please read the Contributions and Code of conduct.
Feel free to open an issue or submit a pull request!