Skip to content

Commit

Permalink
Merge pull request #271 from ddosify/selfhosted-release
Browse files Browse the repository at this point in the history
Selfhosted release
  • Loading branch information
fatihbaltaci committed Mar 18, 2024
2 parents fbebb00 + 79242bd commit c4c6454
Show file tree
Hide file tree
Showing 7 changed files with 129 additions and 23 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ dist/
ddosify
.vscode
.idea/
.DS_Store

12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<a href="https://github.com/ddosify/ddosify/blob/master/LICENSE" target="_blank"><img src="https://img.shields.io/badge/LICENSE-AGPL--3.0-orange?style=for-the-badge&logo=none" alt="ddosify license" /></a>
<a href="https://discord.gg/9KdnrSUZQg" target="_blank"><img src="https://img.shields.io/discord/898523141788287017?style=for-the-badge&logo=discord&label=DISCORD" alt="ddosify discord server" /></a>
<a href="https://hub.docker.com/r/ddosify/ddosify" target="_blank"><img src="https://img.shields.io/docker/v/ddosify/ddosify?style=for-the-badge&logo=docker&label=docker&sort=semver" alt="ddosify docker image" /></a>
<a href="https://landscape.cncf.io/?item=observability-and-analysis--observability--ddosify" target="_blank"><img src="https://img.shields.io/badge/CNCF%20Landscape-5699C6?style=for-the-badge&logo=cncf&label=cncf" alt="cncf landscape" /></a>
</p>

<p align="center">
Expand All @@ -28,16 +29,18 @@

## What is Ddosify?

Ddosify is an [open-source](https://github.com/ddosify/ddosify) **Kubernetes Monitoring** and **Performance Testing** platform.
Ddosify is an [open-source](https://github.com/ddosify/ddosify), eBPF-based **Kubernetes Monitoring** and **Performance Testing** platform.


### 🔎 Kubernetes Monitoring

- **Automatic Service Map Creation:** Ddosify automatically creates a **service map** of your cluster without code instrumentation or sidecars. So you can easily find the bottlenecks in your system.
- **Performance Insights:** It helps you spot issues like services taking too long to respond or slow SQL queries.
- **Real-Time Metrics:** The platform tracks and displays live data on your cluster instances CPU, memory, disk, and network usage.
- **Ease of Use:** You don't need to change any code, restart services, or add extra components (like sidecars) to get these insights, thanks to the eBPF technology.
- **Ease of Use:** You don't need to change any code, restart services, or add extra components (like sidecars) to get these insights, thanks to the [eBPF based agent (Alaz)](https://github.com/ddosify/alaz).
- **Alerts for Anomalies:** If something unusual, like a sudden increase in CPU usage, happens in your Kubernetes (K8s) cluster, Ddosify immediately sends alerts to your Slack.
- **Seamless Integration with Performance Testing:** Performance testing is natively integrated with Kubernetes monitoring for a unified experience.
- **Distributed Tracing:** Ddosify automatically collects traces from your Kubernetes cluster and generates context propagation without changing a single line of code.

<p align="center">
<img src="assets/ddosify_metrics.png" alt="Ddosify Kubernetes Monitoring Metrics" />
Expand Down Expand Up @@ -150,6 +153,11 @@ You will see the incoming requests to your K8s cluster, service-to-service traff
<img src="assets/ddosify_load_test_monitoring.png" alt="Ddosify - Find Bottlenecks Feature" />
</p>

#### ✅ Distributed Tracing

Ddosify automatically collects traces from your Kubernetes cluster and generates context propagation without changing a single line of code. <a href="https://docs.ddosify.com/ddosify/kubernetes-monitoring/distributed-tracing" target="_blank">More →</a>


## Performance Testing Features
#### ✅ Parametrization
Use built-in random data generators. <a href="https://docs.ddosify.com/ddosify/performance-testing/parametrization" target="_blank">More →</a>
Expand Down
2 changes: 1 addition & 1 deletion selfhosted/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.5.5
1.6.0
117 changes: 99 additions & 18 deletions selfhosted/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: '3.8'

services:
nginx:
image: nginx:1.25.3-alpine
image: nginx:1.25.4-alpine
ports:
- '8014:80'
volumes:
Expand All @@ -15,7 +15,7 @@ services:
- ddosify

frontend:
image: ddosify/selfhosted_frontend:2.5.2
image: ddosify/selfhosted_frontend:2.7.3
depends_on:
- backend
restart: always
Expand All @@ -24,11 +24,11 @@ services:
- ddosify

backend:
image: ddosify/selfhosted_backend:2.4.4
image: ddosify/selfhosted_backend:2.6.5
depends_on:
- postgres
- influxdb
- redis
- redis-backend
- seaweedfs
env_file:
- .env
Expand All @@ -39,11 +39,11 @@ services:
command: /workspace/start_scripts/start_app_onprem.sh

backend-celery-worker:
image: ddosify/selfhosted_backend:2.4.4
image: ddosify/selfhosted_backend:2.6.5
depends_on:
- postgres
- influxdb
- redis
- redis-backend
- seaweedfs
- backend
- rabbitmq-celery-backend
Expand All @@ -56,11 +56,11 @@ services:
command: /workspace/start_scripts/start_celery_worker.sh

backend-celery-beat:
image: ddosify/selfhosted_backend:2.4.4
image: ddosify/selfhosted_backend:2.6.5
depends_on:
- postgres
- influxdb
- redis
- redis-backend
- seaweedfs
- backend
- rabbitmq-celery-backend
Expand All @@ -72,10 +72,76 @@ services:
pull_policy: always
command: /workspace/start_scripts/start_celery_beat.sh

alaz-backend:
image: ddosify/selfhosted_alaz_backend:1.0.3
depends_on:
- postgres
- influxdb
- redis-backend
- backend
env_file:
- .env
networks:
- ddosify
restart: always
pull_policy: always
command: /workspace/start_scripts/start_app_onprem.sh

alaz-backend-celery-worker-1:
image: ddosify/selfhosted_alaz_backend:1.0.3
depends_on:
- postgres
- influxdb
- redis-alaz-backend
- alaz-backend
- rabbitmq-celery-backend
- backend
env_file:
- .env
networks:
- ddosify
restart: always
pull_policy: always
command: /workspace/start_scripts/start_celery_worker.sh

alaz-backend-celery-worker-2:
image: ddosify/selfhosted_alaz_backend:1.0.3
depends_on:
- postgres
- influxdb
- redis-alaz-backend
- alaz-backend
- rabbitmq-celery-backend
- backend
env_file:
- .env
networks:
- ddosify
restart: always
pull_policy: always
command: /workspace/start_scripts/start_celery_worker.sh

alaz-backend-celery-beat:
image: ddosify/selfhosted_alaz_backend:1.0.3
depends_on:
- postgres
- influxdb
- redis-alaz-backend
- alaz-backend
- rabbitmq-celery-backend
- backend
env_file:
- .env
networks:
- ddosify
restart: always
pull_policy: always
command: /workspace/start_scripts/start_celery_beat.sh

hammermanager:
ports:
- "9901:8001"
image: ddosify/selfhosted_hammermanager:1.2.3
image: ddosify/selfhosted_hammermanager:1.2.4
depends_on:
- postgres
- rabbitmq-job
Expand All @@ -89,7 +155,7 @@ services:
command: /workspace/start_scripts/start_app.sh

hammermanager-celery-worker:
image: ddosify/selfhosted_hammermanager:1.2.3
image: ddosify/selfhosted_hammermanager:1.2.4
depends_on:
- postgres
- rabbitmq-job
Expand All @@ -104,7 +170,7 @@ services:
command: /workspace/start_scripts/start_celery_worker.sh

hammermanager-celery-beat:
image: ddosify/selfhosted_hammermanager:1.2.3
image: ddosify/selfhosted_hammermanager:1.2.4
depends_on:
- postgres
- rabbitmq-job
Expand Down Expand Up @@ -163,21 +229,27 @@ services:
restart: always

rabbitmq-celery:
image: "rabbitmq:3.9.4"
image: "rabbitmq:3.13.0"
networks:
- ddosify
restart: always

rabbitmq-celery-backend:
image: "rabbitmq:3.9.4"
image: "rabbitmq:3.13.0"
networks:
- ddosify
restart: always

rabbitmq-celery-alaz-backend:
image: "rabbitmq:3.13.0"
networks:
- ddosify
restart: always

rabbitmq-job:
ports:
- "6672:5672"
image: "rabbitmq:3.9.4"
image: "rabbitmq:3.13.0"
networks:
- ddosify
restart: always
Expand All @@ -199,10 +271,18 @@ services:
- ddosify
restart: always

redis:
image: "redis:6.2.6"
redis-backend:
image: "redis:7.2.4"
volumes:
- redis_backend_data:/data
networks:
- ddosify
restart: always

redis-alaz-backend:
image: "redis:7.2.4"
volumes:
- redis_data:/data
- redis_alaz_backend_data:/data
networks:
- ddosify
restart: always
Expand Down Expand Up @@ -233,7 +313,8 @@ services:
volumes:
postgres_data:
influxdb_data:
redis_data:
redis_backend_data:
redis_alaz_backend_data:
seaweedfs_data:
hammer_id:
hammerdebug_id:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
CREATE DATABASE backend;
CREATE DATABASE alazbackend;
CREATE DATABASE hammermanager;
7 changes: 5 additions & 2 deletions selfhosted/init_scripts/prometheus/prometheus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ rule_files:

scrape_configs:
- job_name: "backend"
metrics_path: '/alaz/metrics/scrape'
metrics_path: '/metrics/scrape'
static_configs:
- targets: ["backend:8008"]
- targets: ["alaz-backend:8008"]
basic_auth:
username: alaz-backend
password: jRTyHAbUHYE37hRBgEz
12 changes: 12 additions & 0 deletions selfhosted/nginx/default_reverseproxy.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ upstream backend {
server backend:8008;
}

upstream alaz-backend {
server alaz-backend:8008;
}

server {
listen 80;
client_max_body_size 96M;
Expand All @@ -25,4 +29,12 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location /api-alaz/ {
proxy_pass http://alaz-backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

0 comments on commit c4c6454

Please sign in to comment.