Software Engineer @VictoriaMetrics, building VictoriaLogs

Joined August 2014
Include

Only show posts containing:

Exclude

Hide posts containing:

Time range
-
Minimum likes
Excellent animations AND tech content! #golang
Escape analysis in Go: stack or heap? youtube.com/watch?v=BanG_wLn… Tbh, every second is worth it, even if you don't know Go. I wish someone had taught me this when I was learning Go.
1
6
353
Phuong Le retweeted
Logchef gets a mention! If you’re looking for a really good log explore tool paired with #VictoriaLogs, def check it out!
What’s Changed in VictoriaLogs v1.53.0?
1
1
34
984
Phuong Le retweeted
In 2017, I started learning Go, mostly from curiosity. After working some years for Mattermost, I learnt enough to start sharing that knowledge with the community. Today I’m honored to share that I’ve been recognized as a @GoogleDevExpert in Go. This wouldn’t have happened without a lot of people involved in my own process, from the extremely welcoming Go community, to my companies, @kaleidosnet, @Mattermost, @ona_hq, and now @VictoriaMetrics, that has been always supportive and helping me to contribute back to the community. The GDE program is about sharing knowledge, so, there is not going to change much from my side, except that I'll have even more support to keep sharing with you what I learn in Go. #golang #GoogleDeveloperExpert #GDE #Go
31
27
2
273
5,960
VictoriaMetrics now has a new account just for the technical side. If you're interested in database techniques, observability, and products explained visually, give it a follow:
What’s Changed in VictoriaLogs v1.53.0?
4
7
70
5,500
Very good visualisation on how stack and heap memory works in Go
Escape analysis in Go: stack or heap? youtube.com/watch?v=BanG_wLn… Tbh, every second is worth it, even if you don't know Go. I wish someone had taught me this when I was learning Go.
6
1
65
3,537
Phuong Le retweeted
My article about SIMD and Go is out! In this one I explain how one CPU instruction can work on 8 numbers at once, and how you can now use that from plain Go with the experimental simd/archsimd and simd packages. My intention with this post is to explain in simple terms how SIMD works at CPU level, to give you the mental model on how to use it, and then give you enough information about how you use it from Go to start working with it. You can read it here: internals-for-interns.com/po… #Go #SIMD
1
21
2
140
9,872
If you aren't familiar with VictoriaLogs data model yet, then this clear video explainer from @func25 is for you! youtube.com/watch?v=ZM6rUTJz…
7
49
2,104
VictoriaLogs is a log database that accepts logs in many formats without a schema. If you are new to VictoriaLogs, start here: youtube.com/watch?v=ZM6rUTJz… Logs from many protocols all become the same internal format in VictoriaLogs. Message, time, fields and stream fields.
2
9
621
Escape analysis in Go: stack or heap? youtube.com/watch?v=BanG_wLn… Tbh, every second is worth it, even if you don't know Go. I wish someone had taught me this when I was learning Go.
2
20
2
186
10,170
Phuong Le retweeted
Please welcome to my blog Kemal Akkoyun, who works at Datadog and helps maintain otelc, OpenTelemetry's compile-time instrumentation tool for Go. Today he shows how to take part in a Go build without patching the compiler. The way in is `go build -toolexec`. Every compile, asm and link run goes through a program you pick, which gets the tool's path and arguments. From there, Kemal builds up step by step, first watching, then rewriting, and going down all the rabbit hole until he end up explaining how otelc does it. Read it here: internals-for-interns.com/po… #Golang #OpenTelemetry
1
7
2
84
8,106
Phuong Le retweeted
I want to share something that the @VictoriaMetrics team faced recently that I think it is an interesting case. I'm communicating it, but the heavy lifting of this was done by other members of the team. The Go race detector found a race condition within the http client that catch us by surprise, so the team dig into it, and found two interesting things. If found this race in two places, one of the races, in our case, was not a problem, it could be, but not in our case, so we didn't fixed, but the second one actually was a bug, so we fixed it. If you want to know the details and understand what was happening, why not fixing it was the right choice for us, and why fixing the second one was needed, check out the blog post. victoriametrics.com/blog/htt…
2
9
3
81
9,991
Phuong Le retweeted
#VictoriaTraces now comes with a new built-in UI!
🚀 VictoriaTraces v0.12.0 is here! This release introduces a new built-in UI for exploring #traces. Find a trace, drill into its spans, and see what’s slowing down your application. VictoriaTraces is #OpenSource, so you can try it out yourself in the playground: play-vtraces.victoriametrics… 🔎 Check out the changelog for the full list of updates, including: 🔐 Security ✨ Features 🐛 Bug fixes docs.victoriametrics.com/vic… #Observability #VictoriaMetrics
2
5
19
1,145
Phuong Le retweeted
This is my last article in my series about Kronk. In this one, I'm talking about the API, but more specifically about the streaming API and how it works and handle errors. This one end up being a shortest in the series, but I hope you enjoy it the same. Read it here: internals-for-interns.com/po… #Go
7
38
1,348
Phuong Le retweeted
Just in case you are interested about how read ahead works in linux, I wrote this post: victoriametrics.com/blog/lin… In @VictoriaMetrics we really care about performance, so understanding how Linux is trying to help is important. But also It is important to help it to help us. 🙂
10
49
1,950
Replying to @rommsey
Thank youu!
1
142
How Go maps work internally, explained simply. This time it's a video, not a blog post. youtube.com/watch?v=TdtNViWk… Enjoy, and let me know what you think :)
6
34
2
305
9,523
Replying to @real_redp
Thank you, interesting short read. I believe the stack suggestion is what's called segmented stacks? which is what Go used up to ver 1.2
1
5
370
I've joined the waitlist. @valyala you can see some of the cases Perfloop found for VictoriaMetrics here: app.perfloop.ai/t/oss/fronti…
1
2
132
Some people think we can't learn software design with Go as it has no classes, no inheritance, no method overloading, etc But software design is about how we organize code, manage dependencies, and keep a change in one part from breaking another. E.g., encapsulation, it means controlling how other code can read or change our data. - In Java, we can use classes and private fields. - In Go, we can use packages and unexported names. Of course, they don't work the same way, but both let us choose what other code can access and what we want to keep inside our package or class. Polymorphism means the code can work with different implementations through an interface. Both Java and Go have interfaces but types in Go don't need a shared parent class, if they have the required methods, they satisfy the interface. DI or dependency injection is when we give a component what it needs instead of making it create that dependency itself. Like we can pass a database connection to a service when we create it. If the service accepts an interface, a test can pass a test implementation and we can do this with function parameters, I guess most of us have probably done it without knowing it was called dependency injection. Memory management is a separate (but interesting) topic. Go and Java use garbage collection, so we do not need to free heap objects ourselves. But we still need to understand how much memory our code uses, what happens when code shares data, and how keeping a reference to an object can stop the garbage collector from freeing it. Knowing syntax means we know how to write valid code. But more important is understanding the concept. I mean can we explain what practical problem it solves and when to use it? If we can solve the same problem in 2 different ways, which one is better and why? Actually starting with a complex, feature-rich language can be a good choice. Experience can't be taught, sometimes we need to spend time with that complexity before we can appreciate how simple the next language can be.
3
18
2
171
8,362
I just found an interesting Go repository: github.com/nikolaydubina/go-… If you are learning Go, spend some time here after the syntax tutorials. Learning how to check test coverage, compare benchmark results, and find bugs is also part of learning how to use Go.
3
70
1
579
21,387