jaegertracing/jaeger

Add generic caching layer for services and operations

Open

#1743 opened on Aug 19, 2019

View on GitHub
 (5 comments) (0 reactions) (0 assignees)Go (18,974 stars) (2,326 forks)batch import
area/storageenhancementhelp wanted

Description

Requirement - what kind of business use case are you trying to solve?

We are implementing a custom gRPC-based storage plugin as per this doc.

Problem - what in Jaeger blocks you from solving the requirement?

The gRPC storage plugin is currently called upon every single UI interaction. For example refreshing the main page will call GetServices and GetOperations. In majority of cases these operations will involve costly external calls and performing them for every user of Jaeger UI will quickly become a massive bottleneck. This means that implementing a usable plugin currently requires adding a lot of complex caching logic directly into the plugin.

Proposal - what do you suggest to solve the problem or improve the existing situation?

Jaeger already includes several implementations of caching, but they are specific to different storage backends. It would be great if generic caching logic existed in between Jaeger and a storage plugin, so that when implementing a plugin you didn't have to worry about caching the results and could focus on data access.

Any open questions to address

Contributor guide