Hey, I finally go around to do this and the unit tests seem to be passing. You can find what I did here: https://github.com/Clement-Jean/prometheus-move-to-proto.
I still have few questions: - For the benchmarking, should I try running the benchmark on the current version of prometheus and then run it on my version, or is there a better way to do this? - Is `make bench_tsdb` enough or should I run other benchmarks? - For forward/backward compat, I'm not sure how I should go about it. Could you clarify a little bit? Thank you On Sunday, October 22, 2023 at 11:34:38 PM UTC+8 Bryan Boreham wrote: > > - why not moving to the official generated code? It seems it's the only > stable one on the long term > > At least because nobody has put the work in to do the conversion and > demonstrate it is no worse than today. > I don't like the extra fields in generated structs, but I didn't measure > the impact. > > > - Is there a benchmark that I could run for prometheus using different > plugins? > > Yes, here for instance: > https://github.com/prometheus/prometheus/blob/122f9506e9c6/storage/remote/queue_manager_test.go#L872 > > For completeness one should check the 4 combinations: remote-read > sender/receiver and remote-write sender/receiver. > > There are some unit tests but I don't think they will help to check > forwards/backwards compatibility. > You could set up another Prometheus and have them to talk to each other. > Some discussion about how to check at > https://github.com/prometheus/prometheus/pull/9991 > > Bryan > > On Friday, 20 October 2023 at 03:36:13 UTC+1 Clément Jean wrote: > >> That actually sounds interesting to me! I have few questions though: >> >> - why not moving to the official generated code? It seems it's the only >> stable one on the long term >> - Is there a benchmark that I could run for prometheus using different >> plugins? >> - How can I test if my code changes didn't break the project? go test >> ./... ? >> - Are there some platform specific tests? >> >> Hope we can work on that >> >> On Wednesday, October 18, 2023 at 8:42:21 PM UTC+8 Bjoern Rabenstein >> wrote: >> >>> On 05.10.23 17:48, Clément Jean wrote: >>> > I'm not entirely sure yet because I'm new to contributing to >>> prometheus. If >>> > there is any use cases that you guys already discussed around >>> Protobuf, I'd >>> > be happy to help. >>> >>> If you are really deep into protobuf, there is definitely one big and >>> fat issue to solve: We are still using gogo-protobuf in >>> prometheus/prometheus, which has good performance properties, but is >>> unmaintained. The plan has been for a while to migrate to another >>> protobuf implementation that performs similarly well. Here is the >>> discussion on this mailing list: >>> >>> https://groups.google.com/g/prometheus-developers/c/uFWRyqZaQis/m/1OOGT7s5AwAJ >>> >>> >>> And here is a branch that contains a PoC of migrating to the vitess >>> protoc plugin: >>> https://github.com/austince/prometheus/tree/feat/drop-gogo >>> (Note that it is more than two years old, and I'm not sure if the >>> vitess plugin performs well enough. But it could be a starting point.) >>> >>> -- >>> Björn Rabenstein >>> [PGP-ID] 0x851C3DA17D748D03 >>> [email] [email protected] >>> >> -- You received this message because you are subscribed to the Google Groups "Prometheus Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/prometheus-developers/6d2cc6c3-9c40-42f7-be0a-77660aa9082en%40googlegroups.com.

