Disclaimer: I'm not the expert for remote-write/-read, and only do a
little with the protobuf stuff. But since you didn't get an answer
in a week, I'm trying now.

On 29.02.24 20:38, Clément Jean wrote:
> 
> 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.

Thank you. This looks very unconventional with separate patch
files. Wouldn't it be more straight forward to just fork
prometheus/prometheus and work in the normal git style in that fork?

> 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?

That sounds like the way to go.

> - Is `make bench_tsdb` enough or should I run other benchmarks?

`make bench_tsdb` is a rather special benchmark for certain TSDB
aspects. I doubt it touches protobuf at all.

We usually use the benchmarking framework as built into the Go
toolchain, i.e. you run `go test -bench NameOfBenchmarkToRun`, usually
also using the `-benchmem` flag to see memary allocation stats.

Bryan referred to
https://github.com/prometheus/prometheus/blob/122f9506e9c6/storage/remote/queue_manager_test.go#L872
previously. You would run that benchmark in the storage/remote
directory by typing `go test -bench BenchmarkSampleSend -benchmem`

> - For forward/backward compat, I'm not sure how I should go about it. Could 
> you clarify a little bit?

It's important that the protobuf messages on the wire are still
encodable and decodable by older and newer versions of the code. So I
believe what Brian was referring to is that you set up a Prometheus
server with and without your changes and let them send remote write
and remote read to each other.

In different news: On this same mailing list, somebody else
([email protected]) is also working on the same topic, see thread
titled "Migrating away from github.com/gogo/protobuf". They have run a
bunch of benchmarks already, and their approach to replace
gogo-protobuf has run into some issues. I suggest you two join forces
and exchange your experiences. If you want a chat-like medium to
discuss things, you should know that most of the dev conversation
happens on the CNCF Slack these days (channel #prometheus-dev). (There
is also a #prometheus-dev on IRC, but I'm afraid Slack has
successfully sucked most devs into its black hole.)

Hope that helps a bit.
-- 
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/ZehYOmNqb7R%2BsNFb%40mail.rabenste.in.

Reply via email to