Lewati ke konten utama
eBPF Based Zero-Instrumentation Fullstack Observability dengan Deepflow
  1. Semua Artikel/

eBPF Based Zero-Instrumentation Fullstack Observability dengan Deepflow

 Author
Penulis
Hasbi Mizan Azzami
DevOps Enthusiast

Deepflow adalah zero-instrumentation fullstack observability tools berbasis eBPF.

Zero-instrumentation artinya tools ini dapat diimplementasikan tanpa menyentuh source code aplikasi sama sekali.

Fullstack artinya tools ini dapat melakukan Application Performance Monitoring, Distributed Tracing, Continuous Profiling, sekaligus Host Metrics Monitoring. Singkatnya, Deepflow bisa memantau performa aplikasi sekaligus servernya.

Deepflow memanfaatkan teknologi eBPF, yaitu sebuah teknologi untuk menjalankan program di kernel Linux. Sehingga, tools ini dapat mencatat aktivitas aplikasi dari level kernel, melalui network packet, request log, system call, function call, dll.

Group 5(1).png

Fitur Host Metrics Monitoring Deepflow hanya tersedia di Enterprise Edition pada saat dokumentasi ini ditulis.

Untungnya, Deepflow memiliki ekosistem yang sangat luas. Deepflow dapat diintegrasikan dengan perangkat open-source lainnya, seperti OpenTelemetry, Pyroscope, Prometheus, Telegraf, dan masih banyak lagi.

Untuk use case Host Metrics monitoring, Telegraf menjadi pilihan utama karena simplicitynya.

Untitled.svg

Prasyarat Hardware
#

Deepflow Server
#

Spesifikasi minimum : 2 vCPU 4GB RAM

Spesifikasi rekomendasi : 4 vCPU 8GB RAM

Spesifikasi penyimpanan default database Deepflow:

Tipe DataUkuran/BarisRetensi
Layer 7 Call Logs~14 B3 Hari
Layer 4 Flow Logs~30 B3 Hari
App Metrics~3,4 B7 Hari
Network Metrics~11 B7 Hari
File Events~16 B7 Hari
Profiling~7 B3 Hari

Retensi penyimpanan dapat dikonfigurasi sesuai dengan kebutuhan.

Dengan menggunakan konfigurasi di atas, maka dapat diperoleh hitungan kasar untuk kebutuhan penyimpanan skala kecil sebagai berikut:

Tipe DataBaris/HariUkuran/BarisRetensiTotal
Layer 7 Call Logs5.000.000~70 B3 Hari~200 MB
Layer 4 Flow Logs500.000~150 B3 Hari~43 MB
App Metrics3.050.000~17 B7 Hari~69 MB
Network Metrics3.050.000~55 B7 Hari~224 MB
File Events15.000~80 B7 Hari~1,6 MB
Profiling15.000~35 B3 Hari~0,3 MB
~538 MB

Pada kasus tersebut, storage minimum yang diperlukan untuk menyimpan isi database Deepflow server adalah 538 MB

Maka, secara keseluruhan, storage minimum yang dibutuhkan oleh Deepflow server adalah:

KomponenUkuran
Deepflow Server1.42 GB
Deepflow App530 MB
Clickhouse Server408 MB
Grafana1.45 GB
MySQL Server785 MB
Stella Agent (Opsional)431 MB
Penyimpanan Data538 MB
Total5.08 GB

Deepflow Agent
#

Idle Usage : 0.15vCPU 400 MB RAM

Default limit : 1vCPU 768 MB RAM

Panduan Instalasi
#

Deepflow Server
#

  1. Clone repositori Deepflow server dari Gitlab
git clone https://gitlab.skwn.dev/hasbi-personal/deepflow-server
  1. Pindah ke dalam direktori Deepflow server
cd deepflow-server
  1. Sesuaikan .env
nano .env
DEEPFLOW_VERSION=v7.1
NODE_IP_FOR_DEEPFLOW=#IP address host yang bisa diakses oleh Deepflow agent
  1. (Opsional) Jika ingin menggunakan fitur AI, tambahkan API key dan API base url di dalam konfigurasi
nano common/config/stella-agent/df-llm-agent.yaml
...

ai:
  enable: False # Ubah menjadi True
  platforms:
  
		  # Jika menggunakan openai
    - platform: "openai"
      enable: False # Ubah menjadi True
      model: "openai"
      api_key: '' # Tambahkan API Key di sini
      engine_name:
        - '' # Tambahkan nama model AI di sini

			# Jika menggunakan azure
    - platform: 'azure'
      enable: False # Ubah menjadi True
      model: 'gpt'
      api_type: 'azure'
      api_key: '' # Tambahkan API Key di sini
      api_base: '' # Tambahkan API base url di sini
      api_version: ''
      engine_name:
        - '' # Tambahkan nama model AI di sini

			# Jika menggunakan alibaba cloud model studio international (free)
    - platform: 'aliyun'
      enable: False # Ubah menjadi True
      model: 'dashscope'
      api_key: '' # Tambahkan API Key di sini
      api_base: '' # Tambahkan API base url di sini
      engine_name:
        - 'qwen-max'
        - 'qwen-plus-latest'
  
  1. Jalankan docker-compose up -d untuk menjalankan semua service Deepflow server
docker compose up -d
  1. Tunggu 5 - 10 menit hingga server ready, lalu jalankan script setup untuk menambahkan konfigurasi agent
chmod +x common/scripts/setup.sh
./common/scripts/setup.sh

Deepflow Agent
#

  1. Clone repositori Deepflow agent dari Gitlab
git clone https://gitlab.skwn.dev/hasbi-personal/deepflow-agent
  1. Pindah ke dalam direktori Deepflow agent
cd deepflow-agent
  1. Sesuaikan konfigurasi agent
nano common/config/agent-config.yaml
controller-ips:
  - 127.0.0.1 #IP address Deepflow server
vtap-group-id-request: 'g-deepflow12'
  1. Jalankan docker-compose up -d
docker compose up -d

Agent akan tersambung ke server dalam 5 - 10 menit setelah diaktifkan.