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

Talk proposal: Breaking and optimizing the Prometheus parser #300

Open
Maniktherana opened this issue Oct 12, 2024 · 5 comments
Open

Talk proposal: Breaking and optimizing the Prometheus parser #300

Maniktherana opened this issue Oct 12, 2024 · 5 comments
Assignees
Labels
accepted Congratulations, your talk has been accepted! proposal Wish to present at PyDelhi? This label added automatically on choosing the "Talk Proposal" option.

Comments

@Maniktherana
Copy link

Title

Breaking and optimizing the Prometheus parser

Describe your Talk

Hi I'm Manik, Prometheus Contributor

What's covered?

  • I tried to contribute to Prometheus, but it was complex and had a lot of moving parts. It took me a month before I could open my first PR
  • Now I'm optimizing (by 250+%!) the OpenMetrics Parser (a mess I made in the first place)
  • I'll talk about how Prometheus uses Lex to eventually create a high performance parser.
  • I'll cover techniques to navigate complex codebases that helped me become a confident contributor
  • Finally I get into Benchmarking go with the stdlib & benchstat. Possibly covering load testing my work with K6 & showing off flamegraphs

Breaking into mature Go codebases

  • I've navigated large frontend codebases and rest apis with ease, but Prometheus turned out to be a different beast
  • Eventually I learned how to harness a debugger and how to find what im looking for through rigorous testing

Lex & Parsers

  • Prometheus uses Lex which is wrapped by a Parser
  • I cover how this works and why its needed
  • I go over what I worked on and why its used wayyyy too much memory and how I go about optimizing it by over 300%

Benchmarking

  • Cover microbenchmarking, macrobenchmarking and considerations for both
  • A little bit about load testing
  • All this comes together to help identify perfomance bottlenecks and eventually help you optimize your mess of a codebase

Pre-requisites & reading material

Relevant stuff I cover:

Time required for the talk

10min

Link to slides/demos

No response

About you

Primary a web developer
Dabbling with Go and contributing to Prometheus

Availability

19/10/2024

Any comments

My work is about what I did in Go but the techniques I cover should be language agnostic
I'll try to keep it as approachble as possible

I'm strapped for availability so the description I gave is for a longer talk (30-40min) but the scope for this one is much smaller

@Maniktherana Maniktherana added the proposal Wish to present at PyDelhi? This label added automatically on choosing the "Talk Proposal" option. label Oct 12, 2024
@Maniktherana Maniktherana changed the title Breaking and optimizing the Prometheus parser Talk proposal: Breaking and optimizing the Prometheus parser Oct 12, 2024
@Schefflera-Arboricola
Copy link
Collaborator

Thank you for this submission @Maniktherana ! Our audience primarily consists of Python learners, users, and developers. Since your talk focuses heavily on Prometheus(which is largely written in Go), it would be helpful to clearly outline the prerequisites above. Additionally, based on the limited time, highlighting only a few aspects of Prometheus that may intrigue the Python audience could inspire them to explore further on their own.

@Maniktherana
Copy link
Author

Thank you for this submission @Maniktherana ! Our audience primarily consists of Python learners, users, and developers. Since your talk focuses heavily on Prometheus(which is largely written in Go), it would be helpful to clearly outline the prerequisites above. Additionally, based on the limited time, highlighting only a few aspects of Prometheus that may intrigue the Python audience could inspire them to explore further on their own.

Yeah I'm basically resuing a CFP for another talk but I don't plan on diving into Go that much. I'd be covering how i navigated the large repository of Prometheus. I'd explain what Prometheus is, the scope of my work (parsers and what they are how they work) and finally how benchmarking/profiling works to help identify bottlenecks. I hope this clears it up but I'm well aware of the type of audience that may be present.

I can update the prerequisites section soon to reflect this

@pulsar17
Copy link
Member

@Maniktherana the slots for lightning talks are 5 mins, you'll need to squeeze your talk a bit more to fit that slot, but I'm marking this as accepted.

@Schefflera-Arboricola I think it's fine if there are no prerequisites, it's a lightning talk if I am not wrong, and those we usually do on the spot.

@pulsar17 pulsar17 added accepted Congratulations, your talk has been accepted! lightning This proposal is for a lightning talk (5–10 minutes), as opposed to a full-length one labels Oct 14, 2024
@Maniktherana
Copy link
Author

5 min might be pushing it to cover everything ngl

@Schefflera-Arboricola Schefflera-Arboricola removed the lightning This proposal is for a lightning talk (5–10 minutes), as opposed to a full-length one label Oct 22, 2024
@Schefflera-Arboricola
Copy link
Collaborator

5 min might be pushing it to cover everything ngl

considering this as a "no" for a lightning talk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Congratulations, your talk has been accepted! proposal Wish to present at PyDelhi? This label added automatically on choosing the "Talk Proposal" option.
Projects
None yet
Development

No branches or pull requests

4 participants