Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: Shared remote storage via Remote Storage API #3835

Closed
4 tasks done
yurishkuro opened this issue Aug 1, 2022 · 0 comments
Closed
4 tasks done

[Feature]: Shared remote storage via Remote Storage API #3835

yurishkuro opened this issue Aug 1, 2022 · 0 comments

Comments

@yurishkuro
Copy link
Member

yurishkuro commented Aug 1, 2022

Requirement

I would like to use in-memory storage (or any other single-node storage) while still running multiple independent Jaeger components like collector/ingester/query.

Problem

Today in-memory storage can only be used in all-in-one, because it cannot be shared between different Jaeger components. This forces us to use expensive (slow to start) storage implementations in various CI pipelines.

Proposal

Since we now have Remote Storage gRPC API (a special mode of grpc-plugin storage type - #3383), a single process can be run as a remote storage backed by any other actual storage, including single-node backends like in-memory or Badger.

Proposal is to build a dedicated binary remote-storage that can be run separately, e.g.:

# run shared storage
$ go run ./cmd/remote-storage
{"level":"info","ts":...,"caller":"app/server.go:141","msg":"Starting GRPC server","addr":":17271"}

# point all-in-one to it as a simple test
$ SPAN_STORAGE_TYPE=grpc-plugin go run -tags ui ./cmd/all-in-one/main.go --grpc-storage.server=localhost:17271

Milestones

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant