pq - parse and query log files as time series
Introducing pq, a Rust-based tool for parsing and querying log files as time series data with PromQL-like syntax.
Ivan Velichko — Experienced software engineer and educator focused on server-side, infrastructure, and Cloud Native technologies, known for making complex systems approachable through clear explanations and hands-on learning.
81 articles from this blog
Introducing pq, a Rust-based tool for parsing and querying log files as time series data with PromQL-like syntax.
A guide to Prometheus's aggregation functions like avg_over_time and sum_over_time for analyzing time series data, with pseudocode examples.
A visual guide to understanding PromQL vector matching rules in Prometheus, covering one-to-one, one-to-many, and many-to-one operations.
Discusses the importance of using smaller, secure container images, analyzing vulnerability scans and trade-offs between Alpine and Debian-based images.
Explains Rust's module system, focusing on privacy rules and visibility modifiers for functions and nested modules.
Explores the technical differences between network bridges and switches, based on insights from a data center tour and networking fundamentals.
An illustrated guide to Ethernet and IP networking fundamentals, covering LANs, network segments, and physical layer evolution for developers and engineers.
A developer shares a frustrating experience and solution for loading locally built Docker images into a KiND Kubernetes cluster for local testing.
Explores a subtle Go bug where recovering from a panic in an HTTP handler can leave a mutex locked, causing deadlocks.
A deep dive into the Kubernetes Operator pattern, explaining how it extends Kubernetes using custom controllers and the API.
A technical guide on building a basic web server in Python using low-level socket programming and understanding network I/O.
Analyzes the Cloud Native ecosystem, arguing many tools solve technical problems created by adopting microservices, which primarily address organizational challenges.
Explores service discovery in Kubernetes, comparing server-side and client-side approaches and how Kubernetes combines them.
A technical overview comparing REST, RPC, and GraphQL API design approaches, their strengths, weaknesses, and practical considerations.
A technical tutorial explaining how container networking works by building a single-host bridge network from scratch using Linux tools like network namespaces and veth.
A technical guide on implementing canary deployments using Traefik's weighted load balancing feature for Docker containers.
Explains how sidecar proxies in containerized environments handle cross-cutting concerns like retries and tracing, reducing code complexity.
Debunks the common belief that images come before containers, explaining how containers are actually used to build Docker images.
Explains how to run containers without using Docker images by directly configuring runc and creating a minimal root filesystem.
Explains that containers don't require a full OS inside, clarifying the roles of the kernel, OS, and distributions in containerization.