December 8, 2016

Fine-grained time filters and query variables in Apollo Optics

Danielle Man

Danielle Man

Update: There is a new version of Optics! Apollo Engine has everything Optics does plus error tracking, query caching, and more. Engine is free for 1 million requests a month and it’s easy to switch from Optics to Engine using our migration guide.

Over the last few weeks we’ve been working on some new features for Apollo Optics, our GraphQL performance insights tool. We’re excited to announce that two of the most requested features are now available: fine-grained time filters and query variables.These should give users even more information about what’s causing performance issues in their GraphQL API.

Fast, fine-grained time filters

It’s really valuable to be able to compare data from arbitrary, fine-grained time periods. For example, you might want to review the effect of adding a new field to a query by comparing yesterday and today’s versions of that query’s latency histogram.

You can now apply these fine grained time filters to any data available in Optics. You can compare query performance histograms from different time periods in the last day, dig into specific traces from a particular time range, and review field-by-field analytics (including a report of unused fields) for any desired time range. Take a look:

Adding time filters that were arbitrary, fine-grained and fast was a fun challenge that forced us to be smart about precomputing and aggregating data in a way that kept costs manageable. We ultimately landed on an interesting solution to this in our GCP-based data platform (more on that later!).

Query variables

One thing we’ve heard repeatedly from our users is that they’d like to understand the variables associated with a query request. We’ve added this as a new section below the graphical trace view:

Try it out for free!

You can get a free trial of Optics and see performance insights about your GraphQL server in minutes.

Written by

Danielle Man

Danielle Man

Read more by Danielle Man