VictoriaMetrics: Recording rules for AWS Load Balancer logs

6 December 2025
 

 Continuing the topic of AWS Load Balancer logs: in the previous post, Golang: recording AWS Load Balancer logs to VictoriaLogs, we collected logs using our own logs collector in Golang. Now we need to get something useful out of these logs. Previously, when I had Loki on my project, we used its RecordingRules to create… Read More »

Golang: writing an AWS Load Balancer logs collector for VictoriaLogs

6 December 2025
 

  The next task I want to do with Golang is building a custom log collector that retrieves AWS Application Load Balancer logs from S3 and sends them to VictoriaLogs. Sure, we could simply use Vector.dev, like what I did for AWS VPC Flow Logs (see: Vector.dev introduction, logs from AWS S3, and VictoriaLogs integration).… Read More »

Golang: interfaces – the “magic” of calling methods through interface

29 November 2025
 

 Interfaces in Go allow you to describe access to data or behavior without providing concrete implementations inside the interface itself. In this way, we create a “common bus” that we can then use to “connect” external “systems.” In other words, an interface is an abstraction that defines a contract. The contract describes what can be… Read More »

VictoriaMetrics: Churn Rate, High cardinality, metrics, and IndexDB

3 November 2025
 

 One day I received one of the default VictoriaMetrics alerts that are generated during the deployment of the Helm chart victoria-metrics-k8s-stack: I thought about writing a short post like “What is Churn Rate and how to fix it,” but in the end, I ended up diving deep into how VictoriaMetrics works with data in general… Read More »

Kubernetes: monitoring processes with process-exporter

1 November 2025
 

 We are debugging one issue with memory usage in Kubernetes Pods, and decided to look at the memory and number of processes on the nodes. The problem is that a Kubernetes Pod with Livekit usually consumes about 2 gigabytes of memory, but sometimes there are spikes of up to 10-11 gigabytes, which causes the Pod… Read More »

AWS: Monitoring AWS OpenSearch Service cluster with CloudWatch

1 November 2025
 

 Let’s continue our journey with AWS OpenSearch Service. What we have is a small AWS OpenSearch Service cluster with three data nodes, used as a vector store for AWS Bedrock Knowledge Bases. Previous parts: AWS: Introduction to OpenSearch Service as a vector store AWS: Creating an OpenSearch Service cluster and configuring authentication and authorization Terraform:… Read More »

Terraform: creating an AWS OpenSearch Service cluster and users

18 September 2025
 

  In the first part, we covered the basics of AWS OpenSearch Service in general and the types of instances for Data Nodes – AWS: Getting Started with OpenSearch Service as a Vector Store. In the second part, we covered access, AWS: Creating an OpenSearch Service Cluster and Configuring Authentication and Authorization. Now let’s write… Read More »

Terraform: using Ephemeral Resources and Write-Only Attributes

16 September 2025
 

 Ephemeral resources and write-only arguments appeared in Terraform a long time ago, back in version 1.10, but there was no opportunity to write about them in detail. The main idea behind them is not to leave “traces” in the state file, which is especially useful for passwords or tokens, because the data only exists during… Read More »