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.

Reply via email to