Skip to content

oslabs-beta/QueryIQ

Repository files navigation

License: MIT

JavaScript Next.js Express.js Node.js TypeScript Grafana Jest React React Query NextAuth Postgres MySQL TailwindCSS Primsa Cypress Shell Prettier


Table of Contents

  1. About
  2. Key Features
  3. Installation
  4. Contributing
  5. Authors

About

QueryIQ is a developer-friendly application designed to transform the process of analyzing and optimizing PostgreSQL databases. With its features, QueryIQ enables developers to gain valuable insights by creating data visualization dashboards based on database performance and query metrics.

Visit our website: query-iq.com!

Demo


Connecting Query IQ to user database to receive health & performance metrics:
Logo

User inputting an arbitrary query to receive query execution stats:
Logo

Key Features:

➮ PostgresQL Support

Easily manage your postgresQL connection, health, and performance metrics

➮ Grafana Integration

Query IQ simplifies managing your Grafana instance by creating data sources, customizing dashboards, and imbedding graphs within the application. Users also have the option to remove their data sources and dashboards as needed.

➮ Overall metrics on database health including:

  • Queries with the Longest Running Queries
  • Queries with the Highest Average Execution Time
  • Queries with the Highest Memory Usage
  • Row Counts per Table
  • Index Scans by Table
  • Total of Table Size and Index Size
  • Cache-hit Ratio
  • All databases connected to that server by size
  • Open Connections

➮ Overall metrics on multiple arbitrary query inputs including:

  • Query plan by aggregated with actual time, rows, and width
  • Sequence scan with actual time, rows, and width
  • Planning time
  • Execution time

➮ Secured authorization through Google Oauth with required login

Users are required to login with Google Oauth for authorization prior to using the application.

➮ Privacy and Security

Privacy and security within QueryIQ is maintained through running in individual local server along with Grafana's local instance with authorization required. QueryIQ does not store any user data, most importantly including database connection information, usernames, and passwords. Data is maintained within Grafana's local instance with authorization required and access restricted by the client as needed.

Installation

Prerequisites

➮ Go to the following link to download the latest version (10.0.1) of Grafana: https://grafana.com/docs/grafana/latest/setup-grafana/installation/

➮ Go to your grafana.ini configurations file and ensure you have the following configurations. Refer to the the link if you're having trouble locating the grafana.ini: https://grafana.com/docs/grafana/latest/setup-grafana/configure-grafana/

    allow_embedding = true
    auth.anonymous
    enabled = true
    org_name = <<org name>>
    org_role = Viewer

➮ Once you have Grafana installed, run the following command to start your Grafana local instance and ensure you've logged in successfully in the Grafana server

  • On OSX, brew services restart grafana, or by running the Grafana binary

➮ For the PostgreSQL database you connect to, ensure pg_stat_statements is enabled. Refer to the link for further details: https://virtual-dba.com/blog/postgresql-performance-enabling-pg-stat-statements/

Install Query IQ

  1. Clone this repo
  2. cd into project directory
  3. Run npm install
  4. Run npm run npm:fullInstall to install packages nested within the project
  5. Run npm run serve:dev to spin up the Next.js and Express server layers
  6. Start Grafana (please see Prerequisites)

How to Contribute

Authors

Developed By Github LinkedIn
Connor Dillon Github LinkedIn
Khaile Tran Github LinkedIn
Johanna Cameron Github LinkedIn
Dean Biscocho Github LinkedIn
Alan Beck Github LinkedIn

Show Your Support

Please ⭐️ this project if you enjoy our tool, thank you so much!

About

A developer tool displaying visualizations for overall database metrics and query metrics for PostgreSQL databases

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published