Skip to main content

Solution Architecture

PanDev Metrics relies on a modular architecture with a central server that aggregates, processes, and exposes engineering telemetry coming from IDE plugins and external systems.

High-Level Overview

The architecture is organised into several logical blocks connected through REST APIs and direct integrations. The PanDev Metrics Server sits at the centre: it ingests events from plugins (IDE, browser, and other extensions), communicates with systems such as Jira, GitLab, and LDAP/Active Directory, stores the processed data in PostgreSQL, and publishes it for visualisation in Grafana.

Architecture Diagram

┌─────────────────────────────────────────────────────────────────┐
│ LDAP/Active Directory │
│ (Auth) │
└─────────────────────────┬───────────────────────────────────────┘

┌─────────────────────────▼───────────────────────────────────────┐
│ PanDev Metrics Server │
│ (Core) │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Plugin Intake │ │ Aggregation & │ │ Integrations │ │
│ │ │ │ Processing │ │ (Jira/GitLab) │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
└─────────────────────────┬───────────────────────────────────────┘

┌─────────────────────────▼───────────────────────────────────────┐
│ PostgreSQL │
│ (Storage) │
└─────────────────────────┬───────────────────────────────────────┘

┌─────────────────────────▼───────────────────────────────────────┐
│ Grafana │
│ (Visualisation) │
└─────────────────────────────────────────────────────────────────┘

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ VS Code │ │ Chromium │ │ JetBrains │
│ Plugin │ │ Plugin │ │ Plugin │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘

┌─────────────────┐
│ PanDev Metrics │
│ Server │
└─────────────────┘

┌─────────────────┐
│ PostgreSQL │
│ Database │
└─────────────────┘

System Components

1. Plugin Layer (VS Code, Chromium, JetBrains)

These plugins record day-to-day developer activity:

VS Code Plugin for Developers

  • Tracks which files, branches, and repositories were touched in Visual Studio Code
  • Measures time spent editing within the IDE

Chromium Plugin for Developers

  • Captures which web resources developers use during the day: documentation, testing tools, internal services
  • Complements IDE telemetry with browser context

JetBrains IDEs Plugin

  • Collects analogous metrics for the JetBrains suite (IntelliJ IDEA, PyCharm, WebStorm, Android Studio, etc.)
  • Records coding time, project switches, and overall IDE activity

How plugins operate:

  • Accumulate raw events locally
  • Periodically batch and send them to the PanDev Metrics Server
  • Work quietly in the background without disrupting the developer

2. PanDev Metrics Server (Core)

The core service receives data from every plugin and turns it into actionable analytics:

  • Normalises and enriches incoming events
  • Links data to users and projects via company directories (LDAP/AD)
  • Persists everything in PostgreSQL for downstream analysis

The server also hosts the management UI where administrators configure organisations, teams, and integrations.

3. PostgreSQL Storage

All historical telemetry lands in PostgreSQL:

  • Structured tables store time tracking, code activity, review metrics, and more
  • The schema is optimised for analytics queries and reporting
  • Acts as the single source of truth for both Grafana dashboards and API clients

4. Grafana (Dashboards)

Grafana is the primary visual layer for PanDev Metrics:

  • Offers curated dashboards with the most important KPIs
  • Supports ad-hoc exploration, filtering, and time range selection
  • Removes the need for writing SQL to inspect the data

5. Authentication with LDAP/Active Directory

  • PanDev Metrics integrates with corporate directories for SSO
  • User roles and permissions are managed centrally
  • Audit logs cover sign-ins and privileged actions

6. Integration Modules (Jira and GitLab)

Jira Integration Module

  • Pushes processed time-tracking data directly into Jira issues
  • Adds contextual comments with diagnostics from PanDev Metrics
  • Operates one way (server → Jira); the platform does not pull sensitive data back

GitLab Integration Module

  • Sends time-tracking and review statistics into GitLab merge requests
  • Gives engineering managers instant visibility into effort and progress
  • Is also one way (server → GitLab)

Why integrations matter

Integrations augment the native tracking capabilities of Jira and GitLab, aligning planning data with the actual effort captured by PanDev Metrics. Managers see the real time spent, compare it with estimates, and adjust plans accordingly.

Data Flow

  1. Plugin capture – IDE and browser plugins collect granular telemetry.
  2. Server ingestion – the PanDev Metrics Server receives the batches, stores them in PostgreSQL, and publishes enriched metrics to Jira and GitLab.
  3. Storage – PostgreSQL keeps the full history for dashboards and reporting.
  4. Visualisation – Grafana reads the database and turns the metrics into charts and diagnostics views.

Key Architectural Benefits

Scalability

  • Add new plugins or integrations without reworking the core
  • Modular design allows incremental feature growth

Convenience

  • A single server acts as the collection and processing hub
  • No need to maintain multiple disconnected systems

Transparency

  • All metrics live in one database
  • Dashboards can be consumed from Grafana or any BI tool of choice

Security

  • Authentication and authorisation via LDAP/AD
  • Sensitive business logic stays on the server side

Putting It All Together

This architecture enables PanDev Metrics to:

  • Collect objective telemetry through plugins
  • Store and process metrics centrally in PostgreSQL
  • Present clear insight to managers and engineers through Grafana

When someone opens PanDev Metrics they see a consolidated view of time, tasks, branches, reviews, and any other indicators required to plan and assess performance. The interactions between plugins, external services (Jira, GitLab), the PanDev Metrics Server, PostgreSQL, and Grafana deliver accurate, transparent analytics for the entire organisation.