How vmstorage Turns Raw Metrics into Organized History
This article walks through how data flows from collection to storage, explaining how vmstorage processes incoming metrics, assigns unique IDs to time series, and organizes everything into different types of storage parts. The whole system is pretty clever - it uses in-memory buffers for speed, smart compression to save space, and has various watchdogs keeping an eye on things like disk space and data retention.
Weak Pointers in Go: Why They Matter Now
Through the weak package, you can create these special pointers that automatically become nil when their target memory gets collected. While they’re a bit trickier to use than regular pointers, they’re super useful for things like canonicalization maps and memory-efficient caching. The implementation is pretty clever too, using an 8-byte indirection object to make garbage collection more efficient.
How vmagent Collects and Ships Metrics Fast with Aggregation, Deduplication, and More
VictoriaMetrics agent, or vmagent, is a lightweight tool designed to gather metrics from a number of different sources. Once it pulls in all those metrics, vmagent lets you ‘design’ them (through ‘relabeling’) or filter them down (doing things like reducing cardinality, stream aggregation, deduplication, and so on) before shipping them off to wherever you want to store them.
VictoriaMetrics Efficiently Simplifies Log Complexity with VictoriaLogs
We’re delighted to announce the GA release of our innovative logging solution: VictoriaLogs. It’s perfect for managing and analyzing large volumes of log data, especially in containerised environments such as Kubernetes.
VictoriaMetrics Anomaly Detection: What's New in Q3 2024?
Explore the latest improvements in VictoriaMetrics Anomaly Detection (vmanomaly), including optimizations, online models, multitenantcy and mTLS support.
Go Runtime Finalizer and Keep Alive
Go’s runtime package provides two intriguing features: Finalizers and KeepAlive, which help manage object lifecycle in unique ways. Finalizers let you attach cleanup functions to objects that run when they’re garbage collected. Meanwhile, KeepAlive serves as a tool to prevent premature object collection, especially when dealing with resources that need to stay alive longer than the compiler might expect.
Go sync.Once is Simple... Does It Really?
The sync.Once is probably the easiest sync primitive to use, but there’s more under the hood than you might think. It’s also a good opportunity to understand how it works by juggling both atomic operations and mutexes.
Meet Our Team at KubeCon North America 2024
Come say hello at booth R17 for KubeCon 2024 in Salt Lake City, meet our team, and find out about the latest updates on our new VictoriaLogs solution, VictoriaMetrics Enterprise, anomaly detection capabilities, and more
Monitoring Azure AKS & Azure Linux with VictoriaMetrics
Learn how to monitor Azure AKS and Azure Linux with VictoriaMetrics. This blog post covers the setup process for environments with high security requirements and how to monitor them with VictoriaMetrics.
Go I/O Closer, Seeker, WriterTo, and ReaderFrom
Still, we haven’t really covered some other important interfaces, like Closer, Seeker, and a few others. And honestly, if you’re learning Go, you probably don’t want to leave those in the blind spot.