go-profiler-notes
thanos
go-profiler-notes | thanos | |
---|---|---|
14 | 66 | |
3,483 | 12,599 | |
0.4% | 0.4% | |
1.5 | 9.6 | |
about 2 months ago | 1 day ago | |
Jupyter Notebook | Go | |
Creative Commons Attribution Share Alike 4.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-profiler-notes
- The Busy Developer's Guide to Go Profiling, Tracing and Observability
-
Dwarf-Based Stack Walking Using eBPF
Thanks!
As @brancz mentioned, Delve uses DWARF unwind information to produce backtraces (they are stored in the .debug_frame section for Go).
You are right, Go enabled frame pointers for all architectures as of 1.17 [0]. This is enabled to allow profilers to work well, without having to use to techniques such as the one we describe in our post.
When it gets funny is that there's `gopclntab`, a 3rd option in Go to unwind stacks, used by `panic` and I believe other parts of the runtime. If you are interested in more details, Felix Geisendörfer's repo contains way more details [1]
[0]: https://go.dev/doc/go1.17
[1]: https://github.com/DataDog/go-profiler-notes/blob/main/stack...
- Resources to Learn Profiling and Benchmarking
- go-profiler-notes/README.md at main · DataDog/go-profiler-notes
- Fantastic Symbols and Where to Find Them - Part 1
-
Share your must-know Go development tips
this is a good read about pprof https://github.com/DataDog/go-profiler-notes/blob/main/guide/README.md
- The Busy Developers's Guide to Go Profiling, Tracing and Observability
thanos
-
Looking for a way to remote in to K's of raspberry pi's...
Monitoring = netdata on each RPi https://www.netdata.cloud/ binded to the vpn interface being scraped into a prometeus thaons https://thanos.io/ setup with grafana to give management the Green all is good screens (very important).
-
thanos VS openobserve - a user suggested alternative
2 projects | 30 Aug 2023
- FLaNK Stack Weekly for 24 July 2023
- FLaNK Stack Weekly for 10 July 2023
-
Monitoring multiple kubernetes cluster with single Prometheus operator
Sounds like you want something like Thanos
-
Is anyone frustrated with anything about Prometheus?
Yes, but also no. The Prometheus ecosystem already has two FOSS time-series databases that are complementary to Prometheus itself. Thanos and Mimir. Not to mention M3db, developed at Uber, and Cortex, then ancestor of Mimir. There's a bunch of others I won't mention as it would take too long.
-
Thousandeyes Pricing Model
Long term storage all depends on your needs and sophistication. I use Thanos for our system since it has an extremely flexible scaling system. But there is also Grafana Mimir. They're both similar in that they use Prometheus TSDB format as part of the underlying storage. One nice Thanos advantage is that it does do downsampling in addition to being able to store raw metric data for a long time. It will auto-select downsampled data to make requests faster.
-
Monitoring many cluster k8s
You can aggregate all your clusters Prometheus metrics together with a wonderful tool called Thanos. This will allow you to use just a single Grafana instance against Thanos and using a label select which cluster you wish to see metrics from. The downside of this, is that none of the Grafana dashboards from the internet will work as-is. You'll need to customize all of them for Thanos support. The other downside is, you have a single point of failure, and (see next item) you can't customize who can access what in regards to your dev vs production data/metrics/access.
-
Best unicorn monitoring system?
Depending on how you want to set things up, you can use Thanos or Mimir to create the single-pane-of-glass view of your data.
-
Prometheus vs EFS: I don't know who to believe
You could look at something like Thanos and store your data in S3: https://thanos.io/
What are some alternatives?
fgprof - 🚀 fgprof is a sampling Go profiler that allows you to analyze On-CPU as well as Off-CPU (e.g. I/O) time together.
mimir - Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.
parca - Continuous profiling for analysis of CPU and memory usage, down to the line number and throughout time. Saving infrastructure cost, improving performance, and increasing reliability.
VictoriaMetrics - VictoriaMetrics: fast, cost-effective monitoring solution and time series database
parca-agent - eBPF based always-on profiler auto-discovering targets in Kubernetes and systemd, zero code changes or restarts needed!
cortex - A horizontally scalable, highly available, multi-tenant, long term Prometheus.
goimpl.nvim - Generate stub for interface on a type
promscale - [DEPRECATED] Promscale is a unified metric and trace observability backend for Prometheus, Jaeger and OpenTelemetry built on PostgreSQL and TimescaleDB.
gotests - Automatically generate Go test boilerplate from your source code.
Telegraf - The plugin-driven server agent for collecting & reporting metrics.
nvim
istio - Connect, secure, control, and observe services.