Datagen: Data Stream Generator by SPITHA

Victor Park
SPITHA Blog
Published in
4 min readApr 2, 2024

SPITHA는 Apache Kafka의 관리, 운영, 모니터링 솔루션인 Felice를 개발하고 있어요. SPITHA에서는 Kafka의 정상적인 작동 여부를 확인하고, Kafka의 부하를 테스트할 때 Datagen(Data Generator)을 만들어서 활용하고 있어요.

General

Datagen은 SPITHA에서 만든 Kafka용 Open-Source data stream generator입니다. Kafka를 테스트하기 위해서는 데이터 스트림을 Kafka로 보내줄 수 있는 도구가 필요했어요. 이 도구가 실제 Kafka 사용 환경에서 발생할 수 있는 시나리오를 모방할 수 있다면, Kafka의 정상 작동 여부를 상세히 판단하고, 또 부하 테스트를 수행하여 시스템을 최적화하는데 도움이 될 것이라 예상했습니다.

그래서 하나 만들었습니다.

Datagen: Data Stream Generator

SPITHA의 Datagen은 Open-Source입니다. Apache 2.0 라이선스에 기반하여 아래 링크에서 누구든 활용할 수 있어요.

GitHub — spithainc/Kafka-Datagen: Kafka producer client for data generation

Datagen이 가지고 있는 몇 가지 기능들을 설명해 드릴께요.

메시지 타입

  • datagen.quickstart
    - Kafka로 랜덤 메시지를 보내는 옵션입니다.
    - 상세 옵션에서 보낼 메시지 내용의 종류를 선택할 수 있어요.(user, book, car, address, contact, movie, job)
  • datagen.message-byte
    - Kafka로 byte 사이즈에 맞추어 랜덤 메시지를 보내는 옵션입니다.
    - 만약 100으로 값을 설정한다면 100 byte의 메시지가 전송되게 됩니다.

두 옵션 중 하나의 옵션만 선택해서 사용할 수 있어요.

프로듀스 타입

  • datagen.limit-data-amount-per-second
    - 초당 몇 byte 정도의 메시지를 전송할 것인지 선택하는 옵션입니다.
    - 만약 1,000으로 값을 설정한다면 초당 1,000byte의 메시지가 전송되게 됩니다.
  • datagen.interval
    - 하나의 메시지를 보내고 그다음 메시지를 보낼 때까지의 기간(ms단위)을 선택하는 옵션입니다.
    - 만약 10으로 값을 설정한다면 메시지 간의 인터벌은 10ms 간격을 두게 됩니다.
  • datagen.rate-per-second
    - 초당 몇 개의 메시지를 보낼지 선택하는 옵션입니다.
    - 만약 100으로 값을 설정한다면 초당 100개의 메시지가 전송되게 됩니다.

세 옵션 중 하나의 옵션만 선택해서 사용할 수 있어요.

설명드린 옵션만 선택하시면 Datagen을 Kafka와 연결하는 작업은 일반적인 Producer를 구성해서 Kafka와 연결하는 작업과 다르지 않아요.

사용하시다가 궁금하신 점이 있으시면 아래 메일로 문의주세요.

support@spitha.io

--

--