diff --git a/assets/service/compose.yml b/assets/service/compose.yml index 38b4ec2..619254d 100644 --- a/assets/service/compose.yml +++ b/assets/service/compose.yml @@ -2,14 +2,40 @@ name: lec_app services: price-predict: - image: estate_model:0 + image: estate_model:1 ports: - "8001:8000" volumes: - ./models:/models + requests: - image: test_requests:2 + image: request_service:3 + deploy: + replicas: 2 + restart_policy: + condition: always + delay: 5s + + prometheus: + image: prom/prometheus + ports: + - "9090:9090" + command: + - '--config.file=/etc/prometheus/prometheus.yml' + volumes: + - "./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml" + hostname: prometheus + + + graphana: + image: grafana/grafana + ports: + - "3000:3000" + environment: + - GF_SECURITY_ADMIN_USER=admin + - GF_SECURITY_ADMIN_PASSWORD=admin + \ No newline at end of file diff --git a/assets/service/prometheus/prometheus.yml b/assets/service/prometheus/prometheus.yml new file mode 100644 index 0000000..5e0df06 --- /dev/null +++ b/assets/service/prometheus/prometheus.yml @@ -0,0 +1,15 @@ +global: + scrape_interval: 15s + scrape_timeout: 10s + # Каждые 15 секунд будет метрики. Если в течение 10с у него не получится их собрать, то будет прерывание + # по таймауту +scrape_configs: + # имя сборщика + - job_name: 'scrapping-main-app' + # Сбор будет вестись с сервиса price-predict:8000, страница с метриками, доступ по http. + metrics_path: /metrics + scheme: http + + static_configs: + - targets: + - price-predict:8000 \ No newline at end of file diff --git a/assets/service/requests/req.py b/assets/service/requests/req.py index 53b5bfe..209a52d 100644 --- a/assets/service/requests/req.py +++ b/assets/service/requests/req.py @@ -2,7 +2,6 @@ import requests import time import random -time.sleep(3) for i in range(50): params = {'flat_id': i} data = { @@ -18,6 +17,6 @@ for i in range(50): "object_type": 1, "floor_level": "mid" } - response = requests.post('http://localhost:8000/api/prediction', params=params, json=data) - time.sleep(4) + response = requests.post('http://price-predict:8000/api/prediction', params=params, json=data) + time.sleep(random.randint(1,5)) print(response.json()) \ No newline at end of file diff --git a/lectures/lec10-monitoring.pptx b/lectures/lec10-monitoring.pptx new file mode 100644 index 0000000..9f9905b Binary files /dev/null and b/lectures/lec10-monitoring.pptx differ