PostQL
PostQL is a web application that specializes in providing metrics for your GraphQL endpoint and then utilizing that data further to provide detailed, historic analytical data. We help you implement structured automatic testing on your GraphQL endpoint as well as giving you all the data you need to make your application more performant.
Try it live on our website: https://postql.io
How to use:
- After logging in or registering, you'll be brought to a GraphQL Playground page. You can enter in your specific GraphQL endpoint URL to begin writing queries.
For any valid query written, Playground will display detailed resolver data on the specific timings of each relevant subquery. These metrics are then logged for future use.
Note: for metrics to appear, your GraphQL implementation will need to have Apollo tracing enabled.
-
Click on the
Analytics
tab on the top. This screen will show you all previous queries you've run organized by the last runtime. The searchbar gives you a quick way to navigate through your queries. -
Click on
More Details
to see all the details about every time you've ran this particular query.
4. On this page, you'll see time stamps for every query runtime along with total duration. This lets you see how well you've optimized this query over time.
5. Click on Resolver Breakdown
to see a Gantt Chart showing time in nanoseconds for each subresolver request.
Upcoming functionality
-
Automated testing: PostQL has the functionality of automatically sending a query that includes all non-parameterized query types. This will populate the
Analytics
page with all the relevant information to see the performance of your GraphQL endpoint at a glance. Coming soon. -
Automated querying for parameterized queries. These query types will be first displayed to the user in our GUI so they can enter in a valid parameter.
-
CRUD functionality test: PostQL will ask what order your mutations should run in order to test full CRUD functionality. Any necessary parameters will be requested from the user.
Installation
To run this locally, pull down from this repo and you can run in development mode.
npm install
- After installing dependencies, make sure Docker is running.
- For the local server to work, you'll need your own .env file and plug in the following variables:
USER_DATABASE="PostgreSQL URI"
JWT_SECRET="JWT secret"
LOGS_DATABASE="MongoDB URI"
- Project will run on your localhost/Docker IP.
Note: testing will automatically install an instance of MongoDB for mock DB testing purposes.
Credits
Jason H. @jason-heinowitz, Lisa H.@hjjinnie, David Z. @davidzhang8828, Mario D.@mariodandrea, Joshua P.@paganjoshua