Introducing Profiles: A better way to manage Alerts and Probes

December 17, 2025

The Engineering Challenge

In distributed monitoring systems, scalability is usually viewed through the lens of data ingestion—how many metrics per second can we ingest? But there is a secondary scalability challenge that often goes unnoticed until it becomes a blocker: Configuration Management.

Recently, the PEM team tackled a significant friction point in our architecture regarding how Probes and Alerts were associated with Agents and Servers.

The "Template" Bottleneck 

Historically, PEM handled Probes and Alerts via two different models:

  1. Probes: Followed an inheritance model (Global Defaults -> Local Overrides).

  2. Alerts: Followed an instantiation model. We had "Alert Templates," but to activate them, an admin had to instantiate a specific alert for a specific server ID.

This created an O(N) complexity problem. To monitor 100 new database servers, the system required 100 individual "create alert" actions (or using the copy alerts feature ). This wasn't just a UI annoyance; it was a data modeling rigidity that coupled the definition of an alert to the identity of a server.

The Architectural Fix: Introducing "Profiles" 

To solve this, we moved away from direct server/agent assignment and introduced an abstraction layer we call Profiles.

Technically, a Profile acts as a configuration container that sits between the Global definitions and the Server/Agent instances.

  • It aggregates Probe Overrides (departing from the strict Global vs. Local dichotomy).

  • It creates a wrapper for Alerts, allowing us to define an alert once within the profile context, rather than instantiating it per server.

Solving the "Drift" 

By shifting the relationship from Alert -> Server/Alert to Alert -> Profile -> Server/Alert Group, we effectively eliminated configuration drift. When a Profile is updated, the changes propagate to all associated servers/agents immediately. This shifts the operational model from managing distinct servers/agents to managing server/agent roles.

Conclusion

While "Profiles" appears as a simple UI dropdown to the end-user, under the hood, it represents a fundamental refactoring of how PEM handles configuration state. It moves us from a linear configuration model to an object-oriented approach, allowing our customers to manage thousands of servers/agents with the same effort required to manage ten.

Share this