Apache Kafka Ideas – Part 1

What Apache Kafka is?

Apache Kafka can be thought of as a message broker. It has the following characteristics:

  • allows sending messages between two parties
  • allows one-to-one (peer to peer, queue) or one-to-many (broadcast, topic) message delivery
  • persists messages

What ideas are behind Kafka and how does it differ from a classical broker? In this series of posts you’ll find out how does Apache Kafka work and be able to run and use Kafka cluster.

Continue reading “Apache Kafka Ideas – Part 1”

Sending Metrics to Datadog with Java

In my previous post I drew an idea of sending PostgreSQL metrics to Datadog using Java code. This post will reveal implementation details of the Send action described previously.

How does Datadog collect metrics?

There are two basic ways of collecting and sending data:

  1. Use Datadog agent
  2. Collect and send manually

Continue reading “Sending Metrics to Datadog with Java”

PostgreSQL Metrics in Datadog

I currently work on a project were AWS RDS PostgreSQL is used as a data storage. Since Postgres is using a mechanism called Multiversion Concurrency Control – MVCC, an UPDATE or DELETE command does not remove old versions of a row immediately. These are left on a disk, waiting to be collected and cleaned by a vacuum process. Vacuum can be automated and autovacuum serves that purpose.

Once autovacuum is configured, how do I know it works as expected? Is it triggered when I expect it to be?

Continue reading “PostgreSQL Metrics in Datadog”