{"id":18064322,"url":"https://github.com/levvolkov/load_testing_stand","last_synced_at":"2026-05-18T03:31:08.281Z","repository":{"id":276947311,"uuid":"881386337","full_name":"levvolkov/load_testing_stand","owner":"levvolkov","description":"2. «Подготовка стенда нагрузочного тестирования»","archived":false,"fork":false,"pushed_at":"2024-10-31T13:25:43.000Z","size":1128,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T14:13:32.724Z","etag":null,"topics":["docker","grafana","grafana-dashboard","grafana-influxdb","grafana-prometheus","performance-testing"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/levvolkov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-31T13:24:41.000Z","updated_at":"2025-01-29T15:23:04.000Z","dependencies_parsed_at":"2025-02-11T10:26:36.674Z","dependency_job_id":"7ccb7e03-1d64-4b2d-94aa-16cc10e5dd1b","html_url":"https://github.com/levvolkov/load_testing_stand","commit_stats":null,"previous_names":["levvolkov/load_testing_stand"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/levvolkov/load_testing_stand","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2Fload_testing_stand","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2Fload_testing_stand/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2Fload_testing_stand/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2Fload_testing_stand/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/levvolkov","download_url":"https://codeload.github.com/levvolkov/load_testing_stand/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/levvolkov%2Fload_testing_stand/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275805517,"owners_count":25531907,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","grafana","grafana-dashboard","grafana-influxdb","grafana-prometheus","performance-testing"],"created_at":"2024-10-31T06:05:29.025Z","updated_at":"2025-09-18T17:40:55.208Z","avatar_url":"https://github.com/levvolkov.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Домашнее задание к лекции 2 «Подготовка стенда нагрузочного тестирования»\n\n## Отчет о развертывании системы мониторинга на основе telegraf и influxDB\n\n\u003e * Агенты Telegraf самостоятельно записывают данные в базу.\n\n### Сделано:\n\n**1. Клонирование проекта:**\n  * Склонирован [проект](https://github.com/netology-code/loadqa-homeworks/tree/main/2.Load%20environment/samples) и открыта папка `telegraf` в VSCode.\n  * В файл `docker-compose.yml` добавлена строка `platform: linux/x86_64`, чтобы указать Docker создавать образы для архитектуры x86_64 (необходимо для работы на Apple M1 с архитектурой ARM).\n  * Появлявшееся предупреждение о версии в `docker-compose.yml` удалось устранить путем удаления строки `version: '3.8'`, благодаря чему установлена более новая версия Docker Compose.  \n    * В версиях Docker Compose 2.0 и выше больше не требуется указывать версию файла, так как композитор теперь автоматически обрабатывает данные. Это упрощает работу и делает файлы конфигурации более понятными.\n\n**2. Запуск контейнеров:**\n  * Запущен Docker-контейнер в фоне:\n```bash\n   docker compose up -d\n```\n  * Проверены запущенные контейнеры:\n```bash\n   docker ps\n```\n\n**3. Настройка Grafana:**\n  * В браузере по адресу `localhost:3000` введены логин и пароль от Grafana, указанные в `docker-compose.yml`.\n  * Соединена Grafana с базой данных:\n    * Путь: Configuration =\u003e Data sources =\u003e Add data source =\u003e InfluxDB.\n    * В настройках InfluxDB указано `URL: http://influxdb:8086`, который взят из блоков `links` и `ports` в `docker-compose.yml`.\n    * Проверка соединения с помощью кнопки `Test`.\n\n**4. Импорт Dashboard:**\n  * Использован готовый Dashboard для анализа данных, найденный по запросу [telegraf dashboard grafana](https://grafana.com/grafana/dashboards/928-telegraf-system-dashboard/).\n  * Скопирован ID дашборда и импортирован в Grafana:\n    * Путь: Dashboards =\u003e Browse =\u003e Import =\u003e Скопированный ID =\u003e Load.\n\n**5. Настройка метрик:**\n  * Настроен мониторинг аппаратных метрик: оперативной памяти, swap, жесткого диска и сети.\n  * В конфигурационном файле `telegraf.conf` в блоке `[inputs]` добавлен синтаксис для метрик `mem`, `swap`, `disk`, `net` с официального [GitHub Telegraf](https://github.com/influxdata/telegraf/tree/master/plugins/inputs).\n  * Установлен интервал отправки метрик в 60 секунд:\n```ini\n   [agent]\n   interval = \"60s\"\n```\n\n**6. Перезапуск контейнеров:**\n  * Для применения настроек Telegraf выполнен перезапуск контейнеров:\n```bash\n   docker restart \u003cназвание_контейнера_или_ID\u003e\n```\n\n**7. Изменения в файле  docker-compose.yml:**\n   * Для упрощения управления контейнерами добавлен параметр `container_name` в файл `docker-compose.yml`, что позволяет задавать собственные имена контейнеров.\n   * Важно: После внесения изменений в файл docker-compose.yml, необходимо удалить существующие контейнеры и осуществить перезапуск, выполнив следующие команды:\n```bash\n   docker compose down\n   docker compose up -d\n```\n \n**8. Скриншот состояния метрик:**\n  * Сделаны [скриншоты](pictures) интерфейса Grafana, отображающего состояние метрик системы в покое длительностью 15 минут.\n\n\u003cimg src=\"pictures/Quick-overview.png\"/\u003e\n\n**9. Завершение работы и удаление контейнеров:**\n  * Контейнеры остановлены и удалены с помощью команды:\n```bash\n   docker compose down\n```\n\n\u003cbr\u003e\n\n------\n\n\u003cbr\u003e\n\n## Отчет о развертывании системы мониторинга на основе node-exporter и Prometheus.\n\n\u003e * Этот проект включает в себя интеграцию базы данных и агента для сбора метрик, использующими технологии node-exporter и Prometheus. Prometheus непосредственно инициирует запросы к node-exporter, который по умолчанию хранит метрики без необходимости дополнительной настройки, как это требуется в Telegraf. Основные настройки проводятся в конфигурационном файле prometheus.yml, где указываются интервалы опроса и список агентов для мониторинга.\n\n### Сделано:\n\n**1. Клонирование проекта:**\n  * Открыта папка `prometheus` в VSCode из склонированного [проекта](https://github.com/netology-code/loadqa-homeworks/tree/main/2.Load%20environment/samples).\n  * В файл `docker-compose.yml` добавлена строка `platform: linux/x86_64`, чтобы указать Docker создавать образы для архитектуры x86_64 (необходимо для работы на Apple M1 с архитектурой ARM).\n  * Для упрощения управления добавлен параметр `container_name:` в `docker-compose.yml` для задавания собственных имен контейнеров.\n  * Чтобы избежать предупреждение при запуске контейнеров о версии в `docker-compose.yml`  удалена строка `version: '3.8'`.  \n    * В версиях Docker Compose 2.0 и выше больше не требуется указывать версию файла, так как композитор теперь автоматически обрабатывает данные. Это упрощает работу и делает файлы конфигурации более понятными.\n\n**2. Установлен интервал отправки метрик:**\n  * В файле `prometheus.uml` прописан интервал в 36 секунд:\n```yaml\n   global:\n     scrape_interval:     36s\n```\n\n**3. Запуск контейнеров:**\n  * Запущен Docker-контейнер в фоне:\n```bash\n   docker compose up -d\n```\n  * Проверены запущенные контейнеры:\n```bash\n   docker ps\n```\n\n**4. Настройка Grafana:**\n  * В браузере по адресу `localhost:3000` введены логин и пароль от Grafana, указанные в `docker-compose.yml`.\n  * Соединена Grafana с базой данных:\n    * Путь: Configuration =\u003e Data sources =\u003e Add data source =\u003e Prometheus.\n    * В настройках Prometheus указано `URL: http://prometheus:9090`, который взят из блоков `links` и `ports` в `docker-compose.yml`.\n    * Проверка соединения с помощью кнопки `Save \u0026 test`.\n\n**5. Импорт Dashboard:**\n  * Использован готовый Dashboard для анализа данных, взятый с официального на сайта [Grafana Labs](https://grafana.com/grafana/dashboards/?search=Node+Exporter+Full).\n  * Скопирован ID дашборда и импортирован в Grafana:\n    * Путь: Dashboards =\u003e Browse =\u003e Import =\u003e Скопированный ID =\u003e Load.\n  \n**6. Скриншот состояния метрики:**\n  * Сделан скриншот интерфейса Grafana, отображающего состояние метрик системы в покое длительностью 15 минут.\n\n\u003cimg src=\"pictures/prometheus.png\"/\u003e\n\n\u003cbr\u003e\n\n------\n\n\u003cbr\u003e\n\n### Дополнительная информация\n1. [Инструкция по работе систем мониторинга с `grafana`](https://grafana.com/docs/grafana/latest/getting-started/).\n2. [Описание методологии сбора метрик](https://habr.com/ru/company/itsumma/blog/596845/).\n3. [Описание моделей мониторинга](https://habr.com/ru/post/551264/).\n4. [Описание подходов к логированию](https://habr.com/ru/post/551264/).\n5. [Описание конфигурации тестового стенда](http://www.protesting.ru/automation/practice/test_stand_configuration.html).\n6. [Подход к созданию тестового стенда](https://habr.com/ru/company/rtlabs/blog/577580/).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevvolkov%2Fload_testing_stand","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flevvolkov%2Fload_testing_stand","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flevvolkov%2Fload_testing_stand/lists"}