Grafana alerting with Prometheus

A practical plan for designing Grafana Alerting on Prometheus metrics, including rules, routing, silences, Alertmanager migration and duplicate-alert control in HA. It also shows what drives effort and what to hand over.

On this page

Grafana alerting with Prometheus: when teams need it and why it is harder than it looks

Teams need Grafana Alerting when alert rules for one Prometheus estate are split between Prometheus rule files and Alertmanager, Grafana-managed rules and their own notification settings, and no one can say which rule notifies which person. Grafana Alerting can evaluate Prometheus-backed rules and route notifications, but the design decides whether it works: who owns each rule, how notification policies route alerts to contact points, where silences and mute timings live, and how the system behaves when more than one Grafana server is running. The tool is rarely the hard part. The decisions around it are.

The first hard part is separating alert rules from notification routing. A rule decides that something is wrong. A notification policy decides who hears about it, through which contact point, at what grouping and repeat interval. Teams that merge these two concerns end up editing rule labels to steer pages, which makes every change risky. Before any build, agree on a label scheme that rule authors use (for example, service, team and severity), and write the routing tree that consumes those labels. Ask who approves changes to each layer, because the rule owner and the on-call owner are often different people. Confirm how your chosen Grafana version handles routing for rules that come from Prometheus data sources, since the exact behavior depends on the rule type you choose.

The second hard part is duplicate notifications. Grafana's high availability guidance uses two or more active-active servers behind a load balancer sharing one MySQL or PostgreSQL database, and it states that alerting needs additional configuration to avoid duplicate notifications. Without that configuration, each server can evaluate the same rule and send the same page, which is the failure on-call teams notice first. Plan the deduplication approach as part of the architecture, not as a later fix, and test it by stopping one node during an active alert and checking how many notifications arrive. Confirm the current deduplication settings in the documentation for your release, because this area changes between versions.

The third hard part is migrating existing Alertmanager rules. Prometheus rule files and Alertmanager routes do not translate one to one into Grafana resources, so a direct copy tends to carry over stale matchers, unused receivers and silences tied to old label sets. Inventory every rule, route, inhibition and silence, then decide which ones are retired, which are rebuilt and which run in parallel for a set period. Run both paths against the same test alerts and compare what each one sends. Silences and mute timings need the same review, since a silence that protected a maintenance window last quarter can hide a real problem today.

Finally, treat the alerting configuration as code from the start. Grafana provisioning loads alerting resources from YAML or JSON files at startup, and Grafana documents further as-code options including Terraform and Git Sync. Keeping rules and policies in a reviewed repository makes ownership visible, makes HA behavior easier to test in a staging environment, and prevents UI edits from quietly diverging from what the team approved. Ask any partner to show how changes are reviewed, promoted between environments and reconciled when someone edits a rule in the interface.

Which Grafana and Prometheus components are involved

Grafana alerting on Prometheus data spans several components that each own part of the alert lifecycle, from evaluating rules to routing notifications and suppressing them. Knowing which component holds which setting tells the team where to make changes, where state lives, and which pieces must be reviewed before an alert reaches an on-call engineer.

Grafana alert rules

Alert rules hold the PromQL query, the evaluation interval, the pending period and the labels that route each alert. Grafana evaluates them against the Prometheus data source, so the query must return the series your team expects in your environment. Check that each rule has an owner, a severity label and a summary annotation, and that queries are tested against real series before the rule is enabled.

Prometheus data source

The Prometheus data source is the connection Grafana uses to run alert queries against your metrics store. Its URL, authentication and timeout settings determine whether rules evaluate at all, so a broken connection can silence alerts without an obvious error. Confirm the data source is provisioned with the correct access method and that evaluation failures are monitored.

Contact points

Contact points define where notifications are delivered, such as email, chat, incident tools or webhooks. The team configures the integration type, endpoint and message templates for each destination. Verify delivery with a test notification from each contact point and confirm that credentials for external services are stored securely and rotated under your normal process.

Notification policies and label matchers

The notification policy tree decides which contact point receives each alert by matching its labels, and it sets grouping, wait and repeat intervals. Matchers are evaluated in order, so a broad rule placed too high can capture alerts meant for a specialist team. Review the tree after each change and test representative labels to confirm the intended route.

Silences and mute timings

Silences suppress notifications for specific matching alerts for a fixed window, typically during planned work or a known incident. Mute timings suppress routes on a recurring schedule, such as off-hours for non-critical services. Decide who may create silences, require an expiry and a reason, and review mute timings for gaps that could hide real outages.

Grafana database and Prometheus alerting state

The Grafana database stores alert rules, contact points, policies, silences and alert instance state. SQLite is the default, but production and high availability need MySQL or PostgreSQL, so confirm the database choice before rules are migrated. Prometheus holds the metrics that rules evaluate, and any Alertmanager still in use may also hold its own routing and silences, which must be reviewed to avoid double notification.

Which alerting model fits your estate

This table compares the main alerting decisions for Grafana with Prometheus: where rules are evaluated, how notifications are routed, and where contact points and silences are managed. Read each row as a choice with a fit condition and an operational cost you will carry after go-live. Most estates end up with one routing layer and one source of truth, and the rows show which combination is easier to run.

DecisionOptionOperational costWhen it fits
Rule evaluationKeep rules in Prometheus and route through AlertmanagerRule files and Alertmanager config are owned by the platform team, and Grafana only displays the alertsMetrics teams already run Prometheus rule files and want alerts to stay near the data
Rule evaluationMove rule evaluation into Grafana AlertingRules, folders and evaluation groups are managed in Grafana, so you test rule changes against Grafana's own alert stateTeams want one place to author, view and silence alerts across several data sources
Notification routingUse Alertmanager routing treesTwo routing layers exist if Grafana also routes, so each change must be checked in both placesPrometheus is the primary alert source and Alertmanager already sends to your paging tool
Notification routingUse Grafana notification policiesOne routing tree covers Grafana-managed rules, but it does not replace routing for alerts raised by PrometheusMost alerts come from Grafana-managed rules across mixed data sources
Contact points and silencesManage in the Grafana UIEdits made in the UI can drift from files or code, and changes are hard to review or reproduceSmall estates with few owners who accept manual change tracking
Contact points and silencesManage with file provisioning or as codeRepository layout, review workflow and promotion between environments must be built and maintainedSeveral environments or regulated change control that requires reviewed, versioned alert configuration
Testing effortTest rules and routes before cutoverEach rule and route change needs a test path, such as a staging instance with replayed alert conditionsAny estate where a missed page or a duplicate notification has operational or compliance impact

How to build Grafana alerting on Prometheus, step by step

This sequence takes a Prometheus-backed Grafana instance from raw metrics to a tested alerting setup, with named ownership, routed notifications and alert configuration kept in files. Each step ends with a check you can run before moving on.

  1. Confirm the Prometheus data source and labels

    Start by adding or verifying the Prometheus data source in Grafana, using the URL and authentication your Prometheus setup requires. Then agree on the label conventions that alerts will depend on, such as environment, service, team and cluster, and confirm that every scraped target carries them consistently. Run a query in Explore that filters on each label to confirm it returns the expected series. The step is done when the data source test succeeds and a label-filtered query returns series from every environment you plan to alert on. Confirm exact Prometheus and Grafana version compatibility with your vendor documentation before you build.

  2. Define folder and rule ownership

    Decide how alert rules are grouped into folders and which team owns each folder, so that every rule has a clear maintainer and a clear place to be reviewed. Map folder permissions to those teams so that only owners can edit their rules, while others can view them. Record the owner, escalation contact and on-call team in a rule annotation convention you will reuse in the next step. The step is done when each folder has a named owner group in the permissions view and a short written ownership table that your platform and security leads have reviewed. Your identity integration determines how these groups are sourced, so confirm that mapping early.

  3. Create alert rules with severity and summary labels

    Write alert rules in Grafana Alerting using PromQL expressions that match your label conventions. Give each rule a severity label with a small, fixed set of values, plus a summary annotation that states what is wrong in plain language and a runbook link if one exists. Set the evaluation group interval and pending period deliberately, since they control how quickly a rule fires and how much noise it creates. Use the rule preview to confirm that the expression returns the series you expect, then check that a deliberately triggered test condition moves the rule into a firing state. The step is done when a test rule fires in preview and its labels appear as you specified.

  4. Configure contact points and test delivery

    Create contact points for each destination your teams use, such as email, chat, incident management or webhooks. Store integration secrets in the way your environment requires, and restrict who can view or edit them. Send a test notification from each contact point and confirm that the message arrives in the intended channel with the expected title and labels. Repeat the test for any contact point that a sensitive team depends on, because a broken destination is often discovered only during an incident. The step is done when every contact point delivers a test notification to its target and nobody without a documented need can read its credentials.

  5. Build the notification policy tree

    Build the notification policy tree from a default root that routes unmatched alerts to a catch-all contact point, then add child policies that match on the severity and team labels from your rules. Set grouping labels, group wait, group interval and repeat interval for each branch so that related alerts are batched and not re-sent constantly. Decide which branches stop matching so that an alert is not routed to two teams by accident. Use the policy preview with a test label set, such as one matching a critical label for a given team, to confirm it reaches the correct contact point. The step is done when a test label set routes to the expected contact point and the catch-all branch receives only unmatched alerts.

  6. Add mute timings and a silence procedure

    Define mute timings for recurring windows such as planned maintenance, change freezes or non-business hours for non-critical services, and attach them to the policy branches where they apply. Write a short silence procedure that states who may create a silence, the maximum scope they should use, the required comment or ticket reference, and who reviews silences that expire unexpectedly. Test the mute timing by previewing its schedule against a sample time and by creating a temporary silence on a test alert. The step is done when a mute timing suppresses a test notification inside its window, a silence matches only the intended label set, and the procedure is approved by the on-call owners.

  7. Provision the alerting resources as files

    Export the data sources, folders, alert rules, contact points, notification policies and mute timings into provisioning files, then store them in version control and review changes through the same process as application code. Load the files at startup or through your configuration management workflow, and confirm that Grafana reports the provisioned resources as read-only in the UI, which prevents silent drift. Compare the running configuration with the files after a restart to confirm nothing was lost or duplicated. The step is done when a clean instance started from the files reproduces the rules, routes and contact points you tested in the earlier steps. Confirm how your team will handle secrets and environment promotion before you use this in production.

How to test that Grafana alerting works and fails safely

Verification should prove three things before an alert is trusted: each notification path delivers, each rule fires on known input, and the system alerts someone when the monitoring itself is broken. Treat these as acceptance tests for the Grafana Alerting configuration, not as a one-off check after go-live. Work through them in the order below, record the results, and keep the records with the provisioned configuration so a later change can be retested against the same cases. Start with each contact point. In Grafana, use the test notification action on every contact point (email, chat, paging or webhook) and confirm the message arrives at the intended destination, with a readable title and the labels that routing depends on. Then confirm alert rules behave as designed. For each critical rule, feed known input through the data source, for example by temporarily lowering a threshold in a non-production copy or by using a controlled test series in Prometheus, and check that the rule moves from normal to pending to firing after the configured evaluation window. Verify the recovery notification as well, because a firing alert that never resolves creates its own noise. Next, test notification policy matching with representative labels. Build a short table of label sets that mirror real services, severities and teams, then check which policy branch and contact point each set reaches, including the default route for labels nobody anticipated. Mute timings and silences need the same care. Confirm that a mute timing suppresses only the routes and time windows it was written for, and that a silence matches only the intended label set. A silence that is too broad is a common cause of missed pages, so test one that should not match and confirm it still notifies. The most important drill is a controlled outage of Prometheus or the Grafana server itself. Stop the data source or block its endpoint in a test environment, then confirm that a dependency or no-data alert reaches a human through a path that does not depend on the failed component. If the only alert channel runs through the same host or the same Prometheus, the team learns about the failure too late. Record how long the team takes to notice and what they do next. Finally, check for duplicate notifications when two or more Grafana nodes run in high availability. The Grafana high availability documentation says alerting needs additional configuration to avoid duplicate notifications, so confirm the exact settings for the version you run in the Grafana documentation for that release before testing. Then fire one test alert and count the deliveries across all contact points. Ask your implementation partner or platform team to document the expected count and to repeat this test after every upgrade.

Access control and secrets for alerting

Alerting is where a Grafana mistake reaches people and systems outside the team, so access and secret handling need the same attention as the dashboards. The cards below cover who can change rules, routes and silences, how folders limit ownership, how credentials are stored and rotated, and what the audit trail must show.

Editing rights for rules and routes

Decide who may create or edit alert rules, contact points and notification policies, and keep that list short. A rule that pages on-call or a policy that routes to the wrong receiver can cause real outages, so review changes before they reach production. Check that viewers cannot edit alerting resources and that editor roles are assigned by team rather than by individual. Confirm the exact role names and permissions in the Grafana version you run, because alerting permissions have changed across releases.

Folder permissions and alert ownership

In Grafana Alerting, alert rules are stored in folders, and folder permissions decide which teams can manage the rules inside them. Map one folder or small set of folders to each owning team so a team can change its own alerts without touching another team's rules. Check that shared folders used for cross-team rules have a named owner. Review folder permissions when teams are reorganized, since stale grants are a common source of unexpected rule edits.

Silence permissions and audit trail

A silence suppresses notifications, so it can hide a live incident for hours. Confirm who may create, edit and expire silences and mute timings, and require a comment that names the reason and the owner. Keep an audit trail of silence creation and changes, and review it after incidents to see whether a silence hid an alert that should have fired. Confirm where Grafana records these events in your version and whether they are forwarded to your central log platform.

Storing webhook URLs and API keys

Contact points often hold webhook URLs, API keys and tokens for chat, paging and ticketing tools. Treat each of these as a secret: do not paste them into dashboards, shared notes or rule annotations. Use Grafana's secure settings for contact point credentials and confirm that the values are encrypted at rest in your database and hidden in the UI after saving. If you provision alerting as files, keep the secret values in your secret manager and inject them at deploy time instead of committing them to Git.

SMTP and chat credentials

Email and chat integrations use SMTP accounts, bot tokens and service identities that often outlive the people who created them. Use a dedicated sending account or bot for Grafana, with only the permissions it needs to post messages or send mail. Confirm how Grafana's SMTP settings store the password and whether the server configuration file is readable by users who should not see it. Limit who can view the Grafana server configuration on the host.

Rotating credentials without missed alerts

Plan rotation for every notification secret before the first rollout, including the owner, the rotation interval and the steps to update Grafana and the target system. Rotate in an order that avoids a gap: create the new credential, update the contact point, send a test notification, then revoke the old credential. Confirm how your Grafana version handles credential updates for provisioned contact points, since a file-based change may need a restart or a reload.

Hardening the alerting UI and API

The Grafana security hardening guidance applies to the alerting UI and API as well as to dashboards. Review its recommendations for cookies, Content Security Policy, hiding the version from unauthenticated users, requiring authentication for the metrics endpoint and domain verification against DNS rebinding, and test each one against the alerting pages and API paths. Disable anonymous access if it is enabled, because an unauthenticated viewer should not see rule definitions, receiver names or silences.

How the design changes between single node, HA and Kubernetes

A single Grafana server is the simplest model for alerting on Prometheus metrics. One process evaluates alert rules, routes notifications through contact points and notification policies, and stores its configuration and state on one host. Because only one instance evaluates rules, duplicate notifications are not a design concern. The main constraint is that Grafana's default SQLite 3 store does not scale for production, so teams planning anything beyond a small deployment should confirm the database choice early.

What to decide for this model:

  • Database: SQLite is the default, but the installation docs say it does not scale for production. Plan MySQL 8.0 or later or PostgreSQL 12 or later if the server is production-facing.
  • Sizing: The docs size small deployments under 25 concurrent users at 2 cores and 2 to 4 GB of RAM. Confirm your own user count and query load before accepting that figure.
  • Single notifier: Every contact point is sent from one place, so verify outbound paths from that host to each receiver.
  • Backups: Back up the database and provisioning files together, since the server is a single point of failure.
  • Recovery: Document how to rebuild the server from installation packages or a container image and reload alerting resources.

Before go-live, confirm that the Prometheus data source, every notification endpoint and any mute timings are tested end to end from this host.

What drives the effort and cost of alerting work

This table lists the factors that most change the size of a Grafana Alerting on Prometheus project, with a practical way to keep each one under control. Use it to see which drivers apply to your environment before you ask for a quote. The main takeaway is that standardization in labels, templates and provisioning usually lowers effort more than any single tool choice.

DriverWhy it changes effortHow to keep it down
Number of Prometheus data sourcesEach data source adds rule groups to review, query access to validate and alerts to test against real metric namesConsolidate sources where possible and confirm which Prometheus instances hold the metrics each alert depends on
Number of rule groups and alert rulesEvery rule needs a threshold, a for duration, labels and runbook links that must be reviewed and testedGroup rules by service or domain, and generate similar rules from shared templates instead of copying them
Teams and notification routesEach team needs contact points and a notification policy branch, plus routing tests for overlap and gapsStandardize a small set of team labels and reuse one routing tree pattern across teams
Existing Alertmanager configuration to migrateLegacy routes, inhibition rules and silences must be translated and checked for equivalent behaviorExport and inventory the current configuration first, then migrate one route group at a time with side-by-side notification tests
High availability requirementsMultiple Grafana instances need shared database settings and alert deduplication, and failover must be testedDecide the target topology early, then verify duplicate suppression with a controlled test alert on each node
Compliance evidence for alert history and change controlAssessors may ask how alert rules were approved, changed and kept, which adds record keeping and review stepsStore rules in version control with review, and keep provisioning files as the change record rather than UI edits
Paging and ticketing integrationsEach integration needs credentials, payload mapping, escalation tests and handling for failed deliveriesUse one standard payload format and a shared test alert that every receiver is checked against before cutover
Label and naming standardsInconsistent labels break routing, silences and dashboards, and fixing them later touches many rules at onceAgree a short label schema up front and enforce it in review and provisioning templates

What to monitor, back up, upgrade and document after go-live

The first thing to set up after go-live is monitoring of the alerting pipeline itself. A Grafana alert rule that fails to evaluate, or a notification that never reaches a contact point, produces silence, and silence is the failure your on-call team will not see. Assign the platform or observability team to watch rule evaluation errors and notification delivery failures in the Grafana alerting state and in Grafana's own logs, and to route those errors to a channel that someone reads. Ask your Prometheus owner which data source health checks and scrape failures should also page, because a rule that evaluates against stale or missing series can look healthy while reporting nothing. Confirm the exact metric names and alert states in your installed version before writing the dashboard or the watchdog rule, since they change between releases.

Backups have two parts that must stay in step. The first is the Grafana database, which holds alert rule state, contact points, notification policies, silences and mute timings when they are managed through the UI or API. The second is the provisioning files, which define the same resources as code if you followed a provisioned approach. Whoever runs the database (often the DBA or the platform team) owns scheduled backups of MySQL or PostgreSQL and a tested restore. The alerting owner owns the provisioning repository and confirms that a restore plus a provisioning reload reproduces the live routing tree. Ask for a restore test into a non-production instance at least once after go-live, and record how long it took, since that number matters during an outage.

Upgrades need a standing owner and a calendar. Grafana's upgrade guidance describes major releases once a year, minor releases roughly every other month and patch releases at least monthly, with each minor release supported for 9 months and the last minor release of a major version for 15 months. Assign a named owner to read the release notes for each minor and patch release, decide the target version, and schedule the change window. Security patches should move faster than feature upgrades. Confirm which of your installed plugins and data sources are compatible with the target version before you start, because plugin compatibility is a common reason an upgrade slips.

After every upgrade, retest contact points rather than assuming they still work. Send a test notification from each contact point to its real destination, including the paging tool, chat channel and email relay, and confirm that the receiving system shows the expected labels and grouping. Review silences and mute timings on a fixed schedule, such as a monthly review by the on-call lead, to remove expired or forgotten silences and to confirm that maintenance windows match current change calendars.

Finally, document the things that only exist in people's heads. The routing tree, with each notification policy, its matchers, grouping and timing settings, should be written down and kept in the same repository as the provisioning files. Record ownership for each alert rule group and each contact point, meaning the team that answers when it fires. Write an on-call runbook for each high-severity rule that states what the alert means, the first checks to run, the escalation path and the decision to silence or fix. Review these documents at each quarterly on-call rotation change, and treat any alert without a runbook or owner as a defect to fix before the next release.

Questions buyers ask before hiring help with Grafana alerting

What drives the cost of a Grafana alerting project on Prometheus?

The cost is driven mainly by how many alert rules, contact points and notification policies need to be designed, how many teams and environments are involved, and how much of the existing alerting must be reviewed before anything is rebuilt. Scope that includes multiple Prometheus instances, recording rules that alerts depend on, or several on-call rotations takes more design and testing time than a single-team setup. Other inputs include whether alerts are provisioned as code or built by hand, and whether high availability is in scope. Most engagements are fixed-scope, so the quote follows from a written list of deliverables. Ask the provider to separate one-time work (design, build, testing, handover) from recurring work (rule tuning, Grafana upgrades, on-call changes) and to state what is excluded.

How long does Grafana alerting work take to complete?

Timelines are set in the written scope, not by a generic figure, because duration depends on the number of rules, data sources, teams and environments and on how quickly the client can review and test. A narrow scope covering one Prometheus source and a small set of critical alerts is shorter than a scope covering several clusters, multiple contact points and a test window in production-like conditions. Ask for milestones with named deliverables and client review points, and check which steps depend on client availability, such as access approvals or on-call sign-off. A quote should show when the test window begins and what happens if testing finds gaps.

What does the client team need to provide for alerting work?

The work needs read access to the Prometheus servers or the query endpoints Grafana will use, plus the ability to confirm which metrics and labels are authoritative. It also needs a label convention that identifies service, environment, team and severity, because routing and silencing depend on consistent labels. Named on-call contacts, escalation paths and the channels they use (email, chat, paging tool) are required before contact points can be set up. Finally, the team must allocate a test window in which alerts can fire safely, with someone available to acknowledge test notifications. Confirm these inputs in the scoping call, since missing labels or contacts are a common cause of delay.

Can our own engineers build Grafana alerting without outside help?

Yes, a team with Prometheus and Grafana experience can build alerting in-house, and many do. The questions to answer honestly are whether the team has time to design routing and silencing, whether it can test alerts without paging people unnecessarily, and whether it will maintain the rules after the first release. Outside help is most useful when the existing alerting is large or inconsistent, when a migration must be completed on a fixed date, or when the internal team needs a documented build it can run later. DeployOpen plans, implements and documents self-hosted Grafana inside the client's own infrastructure, so the client keeps ownership of the result.

How does migrating existing Prometheus Alertmanager rules differ from a new build?

Migration starts from rules that already run and people who already receive their notifications, so the work is mostly about preserving behavior while changing where alerts are defined and routed. Each existing rule must be mapped to a Grafana alert rule, its labels checked, and its routing reproduced in notification policies and contact points. A new build starts from requirements and can be designed cleanly, but it has no baseline to compare against. Migration also needs a parallel run, in which both systems are compared, so duplicate or missing notifications are caught before cutover. Ask the provider how it will compare old and new firing behavior and who signs off on the cutover.

What should we check about duplicate alerts in a high availability setup?

Duplicate notifications are a known concern when two or more Grafana servers evaluate and send alerts against a shared database. Grafana's high availability guidance states that alerting needs additional configuration to avoid duplicate notifications, so this must be designed and tested rather than assumed. Check how alert evaluation and notification are distributed across nodes, how silences are shared, and what happens during a node failure. Also confirm the database that backs Grafana is MySQL or PostgreSQL, since SQLite is not suited to production or high availability. A test should deliberately stop a node and confirm that one notification is sent per alert.

Which Grafana edition do we need for alerting on Prometheus?

Core Grafana alerting on Prometheus metrics is available in the open-source edition, so the edition choice does not block alert rules, contact points or notification policies. Enterprise features such as SAML, team sync and SCIM are relevant to identity, not to basic alert design. Confirm which edition your organization runs before scoping, because the upgrade path, support window and identity options differ. Grafana publishes its editions and tiers on its licensing and pricing pages, and those pages should be checked for current terms before a decision is made.

How DeployOpen works on this

DeployOpen scopes Grafana alerting with Prometheus in writing before work starts, then builds alert rules, contact points and notification policies inside your own infrastructure. Engagements are fixed-scope, and each one ends with documented, handed-over alerting that your team can run and change.

How we scope

  • The written scope lists which Prometheus servers and alert rules are covered and which teams receive notifications
  • Scope records the contact points, such as email, chat or paging tools, that your on-call process requires
  • Scope states whether existing Prometheus Alertmanager rules are migrated, rebuilt or retired during the project
  • Scope confirms the Grafana database choice, since production and high availability need MySQL or PostgreSQL rather than SQLite

How we build

  • Alert rules are written against your Prometheus metrics and reviewed with the owners of each service before rollout
  • Notification policies are built to route alerts by label, with mute timings and silences defined for planned maintenance windows
  • Duplicate notifications are tested in a multi-node Grafana setup, including the alerting configuration the Grafana high availability docs require
  • Alerting resources are defined as provisioned files so the configuration can be reviewed, versioned and reloaded at startup

How we hand over

  • Handover includes the alert rule inventory, routing tree, contact point list and the owner for each rule group
  • Runbooks describe how to add a rule, change a silence, test a contact point and roll back a provisioning change
  • Your team receives a verification record showing which test alerts fired, to which receivers, and on which nodes
  • Knowledge transfer sessions cover the provisioning workflow and the steps to confirm your team can operate alerting alone

How we support

  • Ongoing support can be taken as a retainer to review alert noise, tune thresholds and update routing as services change
  • Retainers can cover Grafana upgrades, since minor releases arrive every other month and patch releases at least monthly
  • Changes to alert rules and notification policies are handled through the agreed change process rather than ad hoc edits in the UI
  • Ask in your quote which Grafana versions, plugins and Prometheus versions the support covers and how security patches are applied

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.