TechStats — микросервисная платформа для анализа вакансий HH.ru с прогрессом в realtime, отслеживанием KPI, runtime-настройками лимитов и наблюдаемостью.
- Поиск вакансий и загрузка деталей через API Gateway
- Поиск технологии в заголовке, сниппете и полном описании
- Вывод KPI:
tech_percentageиtech_vacancies/total_vacancies - Realtime-пайплайн анализа через WebSocket + синхронный REST fallback
- Ролевой доступ:
guest/user/admin - Админ-интерфейс для runtime-настроек (лимиты, задержки, batch, дефолты форм)
- Стек мониторинга Prometheus + Grafana
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d --buildОстановка:
docker compose -f docker-compose.yml -f docker-compose.dev.yml downProduction-like запуск использует отдельный override и требует секреты в локальном .env:
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build- Nginx edge / Frontend:
http://localhost:8080 - API Gateway:
http://localhost:8000 - Vacancy Service:
http://localhost:8001 - Analyzer Service:
http://localhost:8002 - Cache Service:
http://localhost:8003 - WebSocket Service:
http://localhost:8004 - Prometheus:
http://localhost:9090 - Grafana:
http://localhost:3000
admin / adminuser / user- без входа (
guest) для read-only/public сценариев
nginx(:8080) — HTTP edge proxy без TLS для локального запускаfrontend— SPA-интерфейс за Nginx edge proxyapi-gateway(:8000) — входная точка, proxy, auth, aggregationvacancy-service(:8001) — поиск и детали вакансий через HH APIanalyzer-service(:8002) — анализ технологий и статистикаcache-service(:8003) — API кэша, админ и cluster-операцииwebsocket-service(:8004) — realtime-сессии и стримы анализа
- Gateway:
http://localhost:8080/docs - Vacancy:
http://localhost:8080/services/vacancy/docs - Analyzer:
http://localhost:8080/services/analyzer/docs - Cache:
http://localhost:8080/services/cache/docs - WebSocket Service:
http://localhost:8080/services/websocket/docs
Полная документация проекта доступна прямо в интерфейсе сайта:
- Откройте
http://localhost:8080 - Перейдите в раздел
Documentationв левом меню
Запуск тестов по сервисам:
pytest -q shared/tests
pytest -q api-gateway/tests
pytest -q vacancy-service/tests
pytest -q analyzer-service/tests
pytest -q websocket-service/tests
pytest -q tests/integration/test_gateway_rbac_runtime_integration.pyТолько интеграционные:
pytest -q -m integration