diff --git a/.docker/rabbitmq/rabbitmq.config b/.docker/rabbitmq/rabbitmq.config index e846da82689d285a4bf997a3877548d1fa6a46b7..b112f2a4771df8c9044b3cbe4680e47aaa80e252 100755 --- a/.docker/rabbitmq/rabbitmq.config +++ b/.docker/rabbitmq/rabbitmq.config @@ -10,5 +10,17 @@ [ { load_definitions, "/etc/rabbitmq/rabbitmq-defs.json" } ] + }, + { + rabbitmq_prometheus, + [ + { + listener, + [ + {port, 15674}, + {path, "/metrics"} + ] + } + ] } ]. \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index d266ae524a6bec16ad835fd6bfe79ccf1d78236c..5142ed0fe13ae91728341ebb3a670e7adb7a4b94 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -10,6 +10,11 @@ services: ports: - "${RABBITMQ_PORT}:5672" - "${RABBITMQ_ADMIN_PORT}:15672" + healthcheck: + test: ["CMD", "rabbitmq-diagnostics", "ping"] + interval: 30s + timeout: 10s + retries: 3 logstash: image: logstash:8.7.1 @@ -44,13 +49,13 @@ services: retries: 50 ports: - "${ELASTICSEARCH_PORT}:9200" - command: [ "elasticsearch", "-Elogger.level=WARN" ] + command: [ "elasticsearch", "-Elogger.level=WARN"] kibana: image: kibana:8.7.1 container_name: ibd-local-stack-kibana ports: - - "${KIBANA_PORT}:5601" + - "${KIBANA_PORT}:5603" environment: - ELASTICSEARCH_HOSTS=http://ibd-local-stack-elasticsearch:9200 - LOGGING_QUIET=false @@ -64,6 +69,40 @@ services: - "${GRAFANA_PORT}:3000" volumes: - grafanadata:/var/lib/grafana + depends_on: + - prometheus + + prometheus: + image: prom/prometheus:v2.41.0 + container_name: ibd-local-stack-prometheus + volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + ports: + - "9090:9090" + + elasticsearch-exporter: + image: prometheuscommunity/elasticsearch-exporter:v1.2.0 + container_name: ibd-local-stack-elasticsearch-exporter + environment: + - ES_URI=http://ibd-local-stack-elasticsearch:9200 + ports: + - "9114:9114" + depends_on: + elasticsearch: + condition: service_healthy + + rabbitmq-exporter: + image: kbudde/rabbitmq-exporter:latest + container_name: ibd-local-stack-rabbitmq-exporter + ports: + - "9419:9419" + environment: + - RABBIT_USER=guest + - RABBIT_PASSWORD=guest + - RABBIT_URL=http://ibd-local-stack-rabbitmq:15672 + depends_on: + - rabbitmq + producer: build: @@ -79,17 +118,16 @@ services: - "8080:8007" volumes: - elasticdata: driver: local - rmqdata: driver: local - + grafana-storage: + driver: local grafanadata: driver: local networks: default: driver: bridge - name: ibd-local-stack + name: ibd-local-stack \ No newline at end of file diff --git a/producer/__pycache__/main.cpython-313.pyc b/producer/__pycache__/main.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..125d97eace83aa3b15b18e910cc927401c9833b4 Binary files /dev/null and b/producer/__pycache__/main.cpython-313.pyc differ diff --git a/producer/main.py b/producer/main.py index e35b2fa37831b0b5040e423934946633aa0b794e..b6a773dd1b48a54efc102789646f53ca609f5758 100644 --- a/producer/main.py +++ b/producer/main.py @@ -1,6 +1,7 @@ from fastapi import FastAPI, BackgroundTasks from fastapi.responses import JSONResponse import asyncio +import datetime from utils.publisher import RabbitMQPublisher diff --git a/producer/utils/__pycache__/__init__.cpython-313.pyc b/producer/utils/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a33201cc52207678fccb5cd06d21ca35c9e84508 Binary files /dev/null and b/producer/utils/__pycache__/__init__.cpython-313.pyc differ diff --git a/producer/utils/__pycache__/logger.cpython-313.pyc b/producer/utils/__pycache__/logger.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..73f3d78dd99488dd1161976de3bb56dc2eece365 Binary files /dev/null and b/producer/utils/__pycache__/logger.cpython-313.pyc differ diff --git a/producer/utils/__pycache__/publisher.cpython-313.pyc b/producer/utils/__pycache__/publisher.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..007f722342f0223176b08fa1b2a762e62f916741 Binary files /dev/null and b/producer/utils/__pycache__/publisher.cpython-313.pyc differ diff --git a/prometheus/prometheus.yml b/prometheus/prometheus.yml new file mode 100644 index 0000000000000000000000000000000000000000..a4596301151d1fe01c2281052100b7a1ea2bd767 --- /dev/null +++ b/prometheus/prometheus.yml @@ -0,0 +1,17 @@ +global: + scrape_interval: 15s + +scrape_configs: + - job_name: 'elasticsearch-exporter' + metrics_path: '/metrics' + static_configs: + - targets: ['ibd-local-stack-elasticsearch-exporter:9114'] + + - job_name: 'rabbitmq' + metrics_path: '/metrics' + static_configs: + - targets: ['ibd-local-stack-rabbitmq:15692'] + + - job_name: 'rabbitmq-exporter' + static_configs: + - targets: ['ibd-local-stack-rabbitmq-exporter:9419']