Сбор данных с IDE
PanDev Metrics собирает данные о активности разработчиков в интегрированных средах разработки (IDE) через специальные плагины, обеспечивая точное отслеживание работы с корпоративными проектами.
⚠️ Безопасность и приватность
Собираются исключительно рабочие данные, без вторжения в личную жизнь программиста.
- ❌ Никаких скриншотов - система не делает снимки экрана
- ❌ Никакого вторжения в личную жизнь - отслеживается только рабочая активность
- ❌ Никаких личных проектов - только корпоративные Git-репозитории
- ✅ Только активность в IDE - никаких других приложений
- ✅ Прозрачность - пользователь может видеть, какие данные собираются
Обзор плагинов
Подробная информация о каждом поддерживаемом плагине IDE доступна в разделе Плагины, где описаны:
- IntelliJ IDEA Plugin - полная интеграция с Java/Kotlin проектами
- VS Code Plugin - поддержка множества языков программирования
- Другие IDE - расширяемая архитектура для новых инструментов
Структура данных IDE
Пример JSON события
[
{
"timestamp": 1742567259.3460,
"project": "pandev-metrics-partners-service",
"module": "merchant-service",
"language": "JAVA",
"gitPath": "pandev/metrics/services/pandev-metrics-partners-service",
"gitBranch": "hotfix/PDM-418",
"fileName": "CompanyRepository.java",
"ide": "IntelliJ IDEA 2024.1.3",
"lineCount": 189,
"lineNumber": 153,
"cursorPosition": 52
},
{
"timestamp": 1742567261.7030,
"project": "pandev-metrics-partners-service",
"module": "merchant-service",
"language": "JAVA",
"gitPath": "pandev/metrics/services/pandev-metrics-partners-service",
"gitBranch": "hotfix/PDM-418",
"fileName": "CompanyRepository.java",
"ide": "IntelliJ IDEA 2024.1.3",
"lineCount": 189,
"lineNumber": 139,
"cursorPosition": 56
}
]
Описание полей
| Поле | Тип | Описание |
|---|---|---|
timestamp | Float | Точное время события в Unix timestamp |
project | String | Название корпоративного проекта |
module | String | Модуль в проекте (для мультимодульных проектов) |
language | String | Язык программирования (JAVA, PYTHON, JAVASCRIPT, etc.) |
gitPath | String | Полный путь в корпоративном Git репозитории |
gitBranch | String | Текущая ветка Git |
fileName | String | Имя файла, с которым работает разработчик |
ide | String | Версия используемой IDE |
lineCount | Integer | Общее количество строк в файле |
lineNumber | Integer | Номер строки, где находится курсор |
cursorPosition | Integer | Позиция курсора в строке |
Связь активности с задачами
Автоматический матчинг задач
Плагин IDE автоматически связывает активность разработчика с конкретными задачами в таск-трекере (например, Jira) через анализ названий Git-веток.
Как это работает:
- Анализ названия ветки - плагин отслеживает текущую активную ветку Git
- Паттерн-матчинг - если ветка называется по определенному паттерну (например,
TASK-23,feature/PDM-1052,bugfix/JIRA-456) - Интеграция с таск-трекером - при включенной интеграции с Jira/GitLab система автоматически находит соответствующую задачу
- Автоматическое соотношение - вся активность в этой ветке автоматически привязывается к найденной задаче
Примеры матчинга:
Ветка: TASK-23
↓
Задача в Jira: TASK-23 "Реализовать авторизацию пользователей"
↓
Вся активность в этой ветке → привязывается к задаче TASK-23
Ветка: feature/PDM-1052
↓
Задача в Jira: PDM-1052 "Добавить поддержку темной темы"
↓
Вся активность в этой ветке → привязывается к задаче PDM-1052
Преимущества:
- Автоматическая привязка - не нужно вручную указывать задачу
- Точная аналитика - видно, сколько времени потрачено на конкретную задачу
- Прозрачность - руководители видят прогресс по каждой задаче
- Планирование - можно точнее оценивать время выполнения похожих задач
Офлайн-режим и надежность доставки
Гарантированная доставка данных
Плагины IDE работают в офлайн-режиме и обеспечивают почти 100% доставку данных на сервер PanDev Metrics.
Как это работает:
Непрерывный сбор данных
- Работа без интернета - плагины продолжают собирать данные даже при отсутствии подключения
- Локальное хранение - все события сохраняются в локальном кэше на компьютере разработчика
- Фоновый режим - сбор данных происходит незаметно для пользователя
Автоматическая синхронизация
- Мониторинг соединения - плагин постоянно проверяет доступность сервера
- Автоматическая отправка - при появлении интернета все накопленные данные автоматически отправляются на сервер
- Пакетная передача - данные передаются эффективными пакетами для минимизации нагрузки
Надежность системы
- Локальный кэш - данные хранятся локально до успешной отправки
- Повторные попытки - при неудачной отправке система автоматически повторяет попытку
- Проверка целостности - система проверяет, что все данные успешно доставлены
- Уведомления - пользователь может видеть статус синхронизации данных
Пример работы:
День 1: Разработчик работает без интернета
├── 09:00 - Открыл файл UserService.java
├── 10:30 - Работал с веткой feature/auth
├── 12:00 - Сделал коммит
└── Все данные сохраняются локально
День 2: Интернет появился
├── 09:00 - Плагин обнаружил соединение
├── 09:01 - Автоматически отправил все данные за вчера
├── 09:02 - Подтвердил успешную доставку
└── Продолжает работу в обычном режиме
Преимущества:
- Никаких потерь данных - вся активность фиксируется
- Работа в любых условиях - не зависит от качества интернета
- Прозрачность - пользователь может видеть статус синхронизации
- Надежность - система гарантирует доставку всех данных