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

PostgreSQL gRPC storage plugin #1895

Closed
anayrat opened this issue Nov 3, 2019 · 22 comments
Closed

PostgreSQL gRPC storage plugin #1895

anayrat opened this issue Nov 3, 2019 · 22 comments

Comments

@anayrat
Copy link

anayrat commented Nov 3, 2019

Hello,

Thanks to SQL analytics capabilities, PostgreSQL can be a good candidate as a storage backend. It allows to perform statistics computation, for example, average duration for a given operation, compare it with current day and yesterday...

I didn't start to write code. I just spent some times to study the model and how gRPC works. I first thought to add a storage backend, then I discovered gRPC plugin.

Here is the model I think should be suitable :

image

(Don't pay attention to types, I temporary used text in many place).

What do you think of this idea? Is there other people interested with it?

@anayrat anayrat changed the title PostgreSQL sgRPC torage plugin PostgreSQL gRPC storage plugin Nov 3, 2019
@kkaczkowski
Copy link

Can you tell when this functionality will be ready?

@anayrat
Copy link
Author

anayrat commented Nov 13, 2019

Sure, I did not start to work on this (I do this on my free time).

@jpkrohling
Copy link
Contributor

@anayrat I think it's a great idea. More and more concrete storage providers are compatible with PostgreSQL's wire format, so, adding support for this will automatically add support for a bunch of other solutions, like CockroachDB.

Once you have a proof of concept ready, or even the final code, let us know and we can add a link to it from our documentation.

@jozef-slezak
Copy link

Hello, we have implemented this plugin using the design above.

Can we create pull request to this repository?

@yurishkuro
Copy link
Member

The main idea of grpc storage plugins is that they don’t need to be in this repo, but exist as external extensions. We can simply add a link to external repo from documentation. Can you point to where the plugin is currently implemented?

@anayrat
Copy link
Author

anayrat commented Mar 28, 2020

@jozef-slezak great! Where is the repo?

@jozef-slezak
Copy link

Hello, during this week we are cleaning up the code before open sourcing it. After that we will put link paste here the link to the repo.

@pavolloffay
Copy link
Member

@anayrat I am just curious, are you using the gRPC plugin with all-in-one or with collector and query in separate processes?

@anayrat
Copy link
Author

anayrat commented Mar 30, 2020

@anayrat I am just curious, are you using the gRPC plugin with all-in-one or with collector and query in separate processes?

Hello, I do not use either one. I just thought how we can add postgres support as storage plugin and send the database model. Unfortunately I do not have time to spend on this and I do not use jaeger anymore. I can only help on postgres side.

@albertobeas20
Copy link

Hello, during this week we are cleaning up the code before open sourcing it. After that we will put link paste here the link to the repo.

Hello, it is possible get the code even if this is not cleaning up?? I am working with this integration too and it could be very useful for me to finished and I need to solve it quickly due to it is priority to my architecture. Thank you very much.

@jozef-slezak
Copy link

https://github.com/jozef-slezak/jaeger-postgresql

@Reef3rm4n
Copy link

any updates on this ?

@maxekman
Copy link

maxekman commented Jan 19, 2021

It would be awesome to have a working Postgres storage driver.

@jozef-slezak What is the current status of the driver? Do you think it's usable (-ish) in production?

@deem0n
Copy link

deem0n commented Jan 21, 2021

We just completed the original code by jozef-slezak and made some fixes. We can see Web UI working with spans stored in the PostgreSQL DB. Please check out our fork at https://github.com/luxms/jaeger-postgresql

@anayrat
Copy link
Author

anayrat commented Jan 21, 2021

I can help you by review database schema, query and indexes.

@deem0n
Copy link

deem0n commented Jan 21, 2021

Thanks @anayrat!

Probably we can discuss that on https://github.com/luxms/jaeger-postgresql/discussions ?
BTW, we have plans to use TimescaleDB at some point.

@maxekman
Copy link

Really cool, I'll hopefully be able to test this in our staging env next week.

@JaneJeon
Copy link

Ooh, super cool. Do we know if we use pg>8 features (mainly for RedShift compatibility) in the implementation?

@ankitnayan
Copy link

Has anyone benchmarked the performance with the above schema? Will it be able to handle at least 5K spans/s and handle say, 50 concurrent queries that might fire with alert rules every minute.

@yurishkuro
Copy link
Member

@ringerc
Copy link

ringerc commented Nov 21, 2024

Following up on my comment about PostgreSQL - I'm curious about how this performs and its storage efficiency with nontrivial data sets.

PostgreSQL has very high per-row overheads, and its indexes are not great at append-oriented data with pseudorandom keys.

The only way I can imagine this being of much use would be alongside one of the columnar-store extensions. Even then it's not clear to me that it'd be superior to other backends.

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