Details
| Title | Разработка инструмента мониторинга производительности приложений: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Development of an application performance monitoring tool |
|---|---|
| Creators | Попов Елисей |
| Scientific adviser | Коликова Татьяна Всеволодовна |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | мониторинг производительности приложений ; программные системы ; системные метрики ; сбор данных ; визуализация данных ; Go ; анализ производительности ; APM-система ; application performance monitoring ; software systems ; system metrics ; data collection ; data visualization ; performance analysis ; APM system |
| Document type | Bachelor graduation qualification work |
| Language | Russian |
| Level of education | Bachelor |
| Speciality code (FGOS) | 09.03.04 |
| Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-2734 |
| Rights | Доступ по паролю из сети Интернет (чтение) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\42620 |
| Record create date | 8/21/2026 |
Allowed Actions
–
Action 'Read' will be available if you login or access site from another network
| Group | Anonymous |
|---|---|
| Network | Internet |
Данная работа посвящена разработке прототипа инструмента мониторинга производительности приложений, предназначенного для сбора, обработки и визуализации системных метрик процессов операционной системы, а также выявления критических изменений в работе приложений. Целью работы является разработка программного прототипа инструмента мониторинга производительности приложений, обеспечивающего получение ключевых показателей состояния процессов, их отображение в удобном виде и базовый анализ возникающих проблем. Задачи, которые решались в ходе исследования: 1. Проведение анализа предметной области мониторинга производительности программных систем. 2. Исследование существующих решений мониторинга и APM-платформ. 3. Определение основных групп метрик производительности приложений. 4. Проектирование архитектуры инструмента мониторинга с использованием агентного подхода. 5. Разработка программного прототипа на языке программирования Go. 6. Реализация сбора системных метрик процессов операционной системы. 7. Разработка пользовательского интерфейса для отображения состояния процессов и изменения показателей во времени. 8. Реализация механизма выявления критических состояний на основе заданных правил. 9. Проведение тестирования разработанного прототипа на различных типах приложений. В ходе выполнения работы были рассмотрены основные принципы мониторинга производительности приложений, различия между системным и прикладным мониторингом, а также основные показатели оценки состояния программных систем: загрузка процессора, использование оперативной памяти, дисковая активность, сетевые характеристики, время ответа, количество запросов и количество ошибок. Был проведён анализ существующих систем мониторинга, включая Prometheus, Grafana, Zabbix, Datadog, New Relic и OpenTelemetry. На основе проведённого исследования были определены преимущества и ограничения существующих решений. Установлено, что многие современные платформы ориентированы на крупные инфраструктуры и требуют дополнительной настройки, что делает актуальной разработку лёгкого локального инструмента для анализа отдельных приложений. В результате работы был разработан программный прототип инструмента мониторинга производительности приложений. Система реализована на языке Go с использованием библиотеки gopsutil для получения информации о процессах и системных ресурсах, а также библиотеки Fyne для разработки графического интерфейса пользователя. Разработанное приложение позволяет получать список процессов операционной системы, выбирать отдельное приложение для анализа, отображать загрузку CPU, использование оперативной памяти, показатели дисковой активности, сетевые соединения и текущее состояние процесса. Для анализа изменения показателей реализовано хранение временных значений и построение графиков динамики метрик. Также реализован механизм формирования предупреждений при превышении установленных пороговых значений. Разработанная архитектура предусматривает дальнейшее развитие системы: выделение агента мониторинга в отдельный сервис, создание серверного компонента обработки данных, подключение специализированного хранилища временных рядов, добавление прикладных метрик Response Time, RPS и Error Rate, а также внедрение более развитых методов обнаружения аномалий. Для достижения поставленных результатов были использованы следующие информационные технологии: язык программирования Go, библиотека gopsutil для получения системных характеристик, графический фреймворк Fyne для разработки интерфейса, инструменты разработки JetBrains GoLand/Visual Studio Code, а также средства контроля версий Git.
The given work is devoted to the development of a prototype tool for universal application performance monitoring, designed for collecting, processing and visualizing system metrics of operating system processes, as well as detecting critical changes in application behavior. The purpose of the work is to develop a software prototype of an application performance monitoring tool that provides collection of key process performance indicators, their visualization and basic analysis of critical states. The following tasks were completed during the research: 1. Analysis of the application performance monitoring domain. 2. Research of existing monitoring systems and APM platforms. 3. Identification of the main groups of application performance metrics. 4. Design of the monitoring tool architecture based on an agent approach. 5. Development of a software prototype using the Go programming language. 6. Implementation of system metric collection for operating system processes. 7. Development of a graphical user interface for displaying process states and metric changes over time. 8. Implementation of a basic critical state detection mechanism. 9. Testing of the developed prototype on different types of applications. The work examines the principles of application performance monitoring, the differences between system-level and application-level monitoring, and the main performance indicators of software systems: CPU utilization, memory consumption, disk activity, network characteristics, response time, request rate and error rate. Existing monitoring solutions, including Prometheus, Grafana, Zabbix, Datadog, New Relic and OpenTelemetry, were analyzed. Based on this analysis, the advantages and limitations of existing monitoring platforms were identified. It was determined that many modern solutions are focused on large-scale infrastructures and require additional configuration, which makes the development of a lightweight local monitoring tool relevant. As a result of the work, a software prototype of an application performance monitoring tool was developed. The system was implemented in Go using the gopsutil library for collecting process and system information and the Fyne framework for creating the graphical user interface. The developed application allows users to obtain a list of operating system processes, select a specific application for analysis, and display CPU usage, memory consumption, disk activity, network connections and current process state. Time-series data storage and metric visualization were implemented to analyze changes in performance indicators. The system also provides warnings when predefined threshold values are exceeded. The proposed architecture allows further development of the system, including separating the monitoring agent into an independent service, creating a server-side processing component, connecting a time-series database, adding application-level metrics such as Response Time, RPS and Error Rate, and implementing more advanced anomaly detection methods. The following information technologies were used to achieve the results: Go programming language, gopsutil library for obtaining system characteristics, Fyne graphical framework for interface development, development environments JetBrains GoLand/Visual Studio Code, and Git version control system.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|