HN user

petethepig

682 karma

Building Pyroscope — open source continuous profiling platform https://github.com/pyroscope-io/pyroscope

Posts24
Comments128
View on HN
flamegraph.com 2y ago

Show HN: ChatGPT Powered Flamegraph Explainer

petethepig
4pts1
pyroscope.io 2y ago

AI-Powered Flamegraph Interpreter in Grafana Pyroscope

petethepig
3pts0
github.com 3y ago

Decision about public video recordings

petethepig
1pts0
pyroscope.io 3y ago

Go 1.20 Experiment: Memory Arenas vs. Traditional Memory Management

petethepig
4pts0
flamegraph.com 4y ago

Show HN: Upload and Share Interactive Flamegraphs

petethepig
2pts0
www.youtube.com 4y ago

John Carmack: metaverse is a honeypot trap for architecture astronauts [video]

petethepig
3pts0
blog.dfilimonov.com 5y ago

Why Mighty Might Work

petethepig
2pts2
blog.dfilimonov.com 5y ago

Why Mighty Might Work

petethepig
3pts0
github.com 5y ago

Show HN: O(log n) makes continuous profiling possible

petethepig
166pts37
github.com 5y ago

O(log n) makes continuous profiling possible

petethepig
2pts0
gist.github.com 5y ago

Show HN: Alert yourself after a long-running task in terminal

petethepig
86pts50
news.ycombinator.com 5y ago

Launch HN: Pyroscope (YC W21) – Continuous profiling software

petethepig
102pts29
demo.pyroscope.io 5y ago

Show HN: Continuous profiling demo with 1 year of data

petethepig
12pts1
blog.dfilimonov.com 6y ago

Thoughts on Monitoring

petethepig
3pts0
twitter.com 6y ago

Thoughts on Monitoring

petethepig
3pts1
github.com 10y ago

Show HN: Daterangepicker for jQuery and Knockout

petethepig
19pts4
sensortower.com 10y ago

Introducing Ad Intelligence: Pulling Back the Curtain on Mobile Advertising

petethepig
2pts0
gist.github.com 10y ago

Show HN: EC2 Maintenance Notifications in Slack

petethepig
2pts0
github.com 11y ago

Show HN: Statsd Manager

petethepig
5pts0
blog.dfilimonov.com 12y ago

Yesterday I Had An Epiphany

petethepig
4pts0
blog.dfilimonov.com 12y ago

Show HN: Remote Terminal in Chrome Devtools

petethepig
6pts0
github.com 13y ago

Show HN: Marmot — CLI for the Font Squirrel font-face Generator

petethepig
1pts0
1x1px.me 13y ago

Ever needed a transparent 1x1 PNG pixel?

petethepig
2pts0
dfilimonov.com 14y ago

Preview for GitHub Markup - need some feedback

petethepig
4pts8

I got sent to immigration secondary while crossing the border in Amsterdam earlier this week because they were worried I was taking videos of their “military object” with my meta glasses. They told me to take them off while i’m at the airport.

This is so silly — they only record when you press a button, not continuously, and they can only record for like 3 mins max and there’s a light that indicates to everyone around you when they are recording.

Meanwhile there’s a bunch of people in line with their phones out, which do not indicate when the camera is on. But somehow that’s different.

It’s a bummer because they’re great for taking family photos/videos. Also great as an Airpods replacement. A little flimsy but the tech is 90% there.

I wish Apple made them instead of Meta — I think they’d do a better job of bringing them to the market while maintaining public trust.

funny i was recently picking between a glossy and nano texture screen and came to the opposite conclusion — the glossy screen’s image was so much more crisp, and i didn’t really see much difference in terms of reflection

I have terabytes of iphone photos/videos accumulated over the years. Apple Photos app is trash when it comes to handling large libraries so I’ve been splitting them by year which is fine for archiving but horrible for actually browsing photos.

Immich has been absolutely awesome for this — I can finally look at all my pictures from any year from anywhere in the world. I’m very happy and hope the creators find a way to sustainably finance the project.

The upload feature in the mobile app is not a 1 to 1 replacement of apple photos import so i still do that via apple photos, but that’s something I can live with.

Many jobs aim to solve problems so well that there’s nothing left to fix — doctors curing illnesses, firefighters preventing fires, police reducing crime, pest control eliminating infestations, or electricians making lasting repairs. And that’s totally fine — people still have jobs, and when it works, it’s actually great for everyone.

Hi all, wanted to share what we've been working on at Pyroscope.

This is a ChatGPT based Flamegraph explainer. Analyzing flamegraphs can be challenging and we often get questions from users about the best techniques for finding insights from flamegraphs.

We thought maybe we could teach an LLM do this task and turns out it ChatGPT does it pretty well.

You can check out a blog post [0] for a longer explanation for how it all works, or you can upload your own profiles and get insights quickly by going to flamegraph.com [1]

[0] https://pyroscope.io/blog/ai-powered-flamegraph-interpreter/

[1] flamegraph.com

I did consider it, and I think you're exactly right RE the direction I would go into (colored wire, larger pieces, etc). But then I had a bunch of other things happen in life and so I had to put it all on pause.

The world of art (and especially commercial / corporate art) is very foreign to me, but I bet exploring it would be a fun challenge, so I am planning to do that in a few years.

Dmitry here (Pyroscope cofounder)

This sounds about right.

My favorite little anecdote that I like to tell is that the first thing people often see when they add Pyroscope to their apps is that it takes way less CPU than other signals like tracing or logging. It's pretty common to see logging taking 5-10% of overall CPU utilization.

The other 90% is usually spent doing serialization / deserialization (half-joking).

This would be my guess as well.

I work on Pyroscope, which is a continuous profiling platform and so I see a lot of profiles from various organizations.

If you want to save the world some CPU cycles I would look into optimizing deserialization. And it’s not just JSON, binary formats like protobuf are not much better.

It comes down to the overhead associated with allocation and tracking (GC) of many many small objects which is unfortunately very common in modern systems.

Blending Modes 4 years ago

Great article and all but there's no way I'm going to remember any of it. I think I'm going to stick to "click different blending modes until it sort of looks right".

"Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things)."

https://www.cs.cmu.edu/~awb/linux.history.html

There's not much about it online. They do mention it in the docs, they call this "prefix compression" [0], so you can search for that. This article describes it [1], although it is somewhat high level.

They only use this for indexes. It works really well for internal mongo ids (they all start with timestamps if I remember correctly). It also works well for compound indexes. Pro tip: for compound indexes always go from low-cardinality attribute to high-cardinality attribute to get the best results from prefix compression (it's also good for speed of queries).

[0] https://www.mongodb.com/docs/manual/reference/glossary/#std-...

[1] https://medium.com/swlh/mongodb-indexes-deep-dive-understand...

Tries (or prefix trees).

We use them a lot at Pyroscope for compressing strings that have common prefixes. They are also used in databases (e.g indexes in Mongo) or file formats (e.g debug symbols in macOS/iOS Mach-O format are compressed using tries).

We have an article with some animations that illustrate the concept in case anyone's interested [0].

[0] https://github.com/pyroscope-io/pyroscope/blob/main/docs/sto...

* With larger lambdas you get more predictable performance, 2GB RAM lambdas should get you ~ 90MB/s [0]

* Assuming you can parse faster than you read from S3 (true for most workloads?) that read throughput is your bottleneck.

* Set target query time, e.g 1s. That means for queries to finish in 1s each record on S3 has to be 90MB or smaller.

* Partition your data in such a way that each record on S3 is smaller than 90 MBs.

* Forgot to mention, you can also do parallel reads from S3, depending on your data format / parsing speed might be something to look into as well.

This is somewhat of a simplified guide (e.g for some workloads merging data takes time and we're not including that here) but should be good enough to start with.

[0] https://bryson3gps.wordpress.com/2021/04/01/a-quick-look-at-...

Pyroscope (YC W21) | REMOTE | Full-time / Contract

Pyroscope is open source performance monitoring software, with a focus on Continuous Profiling. Pyroscope was founded at the beginning of 2021 and we've seen a lot of rapid growth / community adoption as well as feedback for what features developers are excited for us to build.

We're looking for Backend Software Engineers (Golang). Our custom storage engine is written in Go (with agents for many other languages as well).

---

Roles:

Senior Software Engineer - Golang: https://apply.workable.com/pyroscope/j/28E1725C98/

Questions?: hn@pyroscope.io

I set up a similar system in the past with redis replicas — it was about 200 MBs of data that I needed to have on quick access to on ~ 300 servers around the world — it was easy to set up and worked really well.

Pyroscope (YC W21) | REMOTE | Full-time / Contract

Pyroscope is open source performance monitoring software, with a focus on Continuous Profiling. Pyroscope was founded at the beginning of 2021 and we've seen a lot of rapid growth / community adoption as well as feedback for what features developers are excited for us to build.

We're looking for Backend Software Engineers (Golang or Java). Our custom storage engine is written in Golang (with agents for many other languages as well). While we support 8 language integrations, one of our most popular is our Java Integration and we're looking for an engineer (either full time or contract) to help us improve this integration.

---

Roles:

Senior Software Engineer - Java: https://apply.workable.com/pyroscope/j/34D132806F/

Senior Software Engineer - Golang: https://apply.workable.com/pyroscope/j/28E1725C98/

Questions?: hn@pyroscope.io

Pyroscope (YC W21) | REMOTE | Full-time / Contract

Pyroscope is open source performance monitoring software, with a focus on Continuous Profiling. Pyroscope was founded at the beginning of 2021 and we've seen a lot of rapid growth / community adoption as well as feedback for what features developers are excited for us to build.

We're looking for Backend Software Engineers (Golang or Java). Our custom storage engine is written in Golang (with agents for many other languages as well). While we support 8 language integrations, one of our most popular is our Java Integration and we're looking for an engineer (either full time or contract) to help us improve this integration.

---

Roles:

Senior Software Engineer - Java: https://apply.workable.com/pyroscope/j/34D132806F/

Senior Software Engineer - Golang: https://apply.workable.com/pyroscope/j/28E1725C98/

Questions?: hn@pyroscope.io

Pyroscope (YC W21) | REMOTE | Full-time / Contract

Pyroscope is open source performance monitoring software, with a focus on Continuous Profiling. Pyroscope was founded at the beginning of 2021 and we've seen a lot of rapid growth / community adoption as well as feedback for what features developers are excited for us to build.

We're looking for Software Engineers for both frontend and backend. Our frontend is React and Redux and our custom storage engine is written in Golang (with agents for many other languages as well). We also have a few components written in Rust and we're currently experimenting with WASM for offloading some logic from the backend to the frontend.

---

Roles:

Junior Software Engineer (Frontend): https://apply.workable.com/pyroscope/j/CCF934937E/

Senior Software Engineer (Backend): https://apply.workable.com/pyroscope/j/28E1725C98/

Questions?: hn@pyroscope.io

Keep a Changelog 5 years ago

Semantic pull requests [0] + conventional-changelog [1] + squashing PRs and you get almost the same results (and more) with great automation and self-documentation for the whole process:

* you'll never forget to add something to changelog

* you get links to PRs in your changelog

* it's much faster to make edits to PR messages compared to editing files

* outside contributors get familiarized with the practice much faster (imagine getting new contributors to update changelogs)

We recently adopted this practice at Pyroscope and it's been working out pretty well for us [2], I can certainly recommend it.

[0] https://github.com/apps/semantic-pull-requests

[1] https://github.com/conventional-changelog/conventional-chang...

[2] https://github.com/pyroscope-io/pyroscope/blob/main/CHANGELO...