Phuong Le
Prometheus Alerting 101: Rules, Recording Rules, and Alertmanager
Recording rules can transform complex PromQL queries into pre-computed metrics, eliminating repeated calculation overhead. When organized in groups, these alerting and recording rules can be precisely scheduled to run at specific times like 01:30, 02:30, and even execute in parallel for maximum efficiency.
Inside vmselect: The Query Processing Engine of VictoriaMetrics
The article explains vmselect’s core functionalities: concurrent request processing, query parsing and validation, data fetching and merging from vmstorage nodes, and memory-efficient result caching.
Practical Protobuf - From Basic to Best Practices
Different Protobuf types dramatically impact your binary size—sint32 encoding needs just 1 byte for negative numbers while int32 wastes 10 bytes, repeated fields can balloon with large tag numbers, and poor type choices can triple your network traffic. Learn the exact patterns to optimize your Protobuf messages for production.
Prometheus Monitoring: Instant Queries and Range Queries Explained
When evaluating, instant vectors provide current snapshots, while range vectors give you multiple values over a period of time. But how do they work?
Prometheus Metrics Explained: Counters, Gauges, Histograms & Summaries
Metrics come in different types: counters that only increase, gauges that fluctuate, histograms that show value distributions, and summaries that pre-calculate statistics.
How Protobuf Works—The Art of Data Encoding
Protocol Buffers is faster and smaller than JSON, but the interesting part is understanding why. This article breaks down the encoding techniques that make Protobuf efficient, backed by benchmark results and practical examples
How vmstorage Handles Query Requests From vmselect
When vmselect asks vmstorage for data, there’s actually quite a bit happening behind the scenes. This article breaks down the process of how vmstorage locates and retrieves your metrics, from finding the right TSIDs to sending back the actual data points.
How vmstorage's IndexDB Works
IndexDB acts as vmstorage’s memory - it remembers which numbers (TSIDs) belong to which metrics, making sure your queries get answered fast. This article walks through how this system works, from the way it organizes data to how it keeps track of millions of timeseries.
How HTTP/2 Works and How to Enable It in Go
HTTP/2 solves head-of-line blocking at the application layer by multiplexing multiple streams over a single TCP connection. While HTTP/1.1 requires requests to be processed sequentially, HTTP/2 allows parallel processing through independent streams, each with its own ID. The Go standard library supports HTTP/2 out of the box when using HTTPS, and with some configuration, it can work over plain HTTP too
How vmstorage Processes Data: Retention, Merging, Deduplication,...
vmstorage takes data from vminsert through a concurrency limiter, creates TSIDs for each row, and puts them in memory buffers. Every few seconds, it moves data to storage parts on disk. The system merges parts, removes duplicates, and cleans old data. This turns raw metrics into data users can search.