Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When having the exporter look at a metric over a large interval, it can take quite some time to fetch all the metrics from StackDriver, due to the large number of data points that need to be fetched. In our particular use case, the fetching takes 3-4mins. With such a long fetch time, its practically not possible to have prometheus not either timeout when scraping or have many time series go stale resulting in instant queries returning no results.
To address this, this PR adds a cache that hold the result of the most recent collection from StackDriver, and this is used to server the metrics endpoint. A new collection will be scheduled and cached once the active one completes.