On This Page

Home / Search/ Visualize/ Dashboards/Migrate Grafana Dashboards

Migrate Grafana Dashboards

Preview Feature

Cribl is still developing this Preview feature. We don’t recommend using it in a production environment, because the feature might not be fully tested or optimized for performance, and related documentation could be incomplete.

Please continue to submit feedback through normal Cribl support channels, but assistance might be limited while the feature remains in Preview.

Assess and import supported Grafana Dashboards into Cribl Search, without rebuilding them by hand.


About Grafana Migration

A migration connects to Grafana, inventories your Grafana Dashboards, alert rules, and their dependencies, and classifies every selected resource before it creates anything in Cribl Search. You review the compatibility results, approve an import plan, and then import what is ready.

This workflow is separate from the two other ways Cribl Search works with Grafana:

What Migrates

A migration imports Grafana Dashboard definitions, not the metrics they chart. Those metrics must already be present in a metrics Dataset. See Before You Begin.

For each Prometheus-backed Dashboard you select, Cribl Search converts the supported Grafana layouts, rows, panels, variables, and code-mode PromQL into a Dashboard, in a Collection you choose.

Grafana resourceWhat Cribl Search does
Prometheus or Mimir DashboardsImports supported content as Dashboards.
Alert rulesImports simple threshold rules as paused Monitors. Assesses the rest, so you know what to rebuild.
Loki, Tempo, SQL, InfluxQL, Elasticsearch, and other non-Prometheus DashboardsDoesn’t migrate.
Contact points, silences, and alert historyDoesn’t migrate.

Anything Cribl Search can’t reproduce, such as an unsupported panel type, a Grafana Macro, or an expression, is reported during review rather than dropped. Imported PromQL stays verbatim in Code mode, so a Dashboard that would silently lose behavior is never classified as Ready.

A migration is a one-time import, not a continuous sync. Start another migration to pick up later Grafana changes.

Before You Begin

Make sure that you have:

  • A metrics Dataset that holds the metrics your Grafana Dashboards query. Only Prometheus-backed and Mimir-backed Dashboards migrate, and assessment classifies queries against this Dataset. If the metrics are not in Cribl Search yet, ingest them first. See Ingest Prometheus Metrics into Cribl Search.
  • Permission to create and update Dashboards and Monitors in Cribl Search, and to create migration runs.
  • A Grafana account that can read the folders, Dashboards, data sources, and alert rules you want to migrate.
  • A Grafana service account token, stored as a Global Secret.

Reading a resource’s raw Grafana export during review requires a separate Permission to read source snapshots. Users with read-only access can see migration runs and non-secret connection details, but can’t create runs, change connections, or import.

For a live connection, Cribl Search must be able to reach your Grafana URL over HTTPS with a valid TLS certificate. Cribl Search doesn’t tunnel into a private network, so if Grafana isn’t reachable, upload a .json export instead. Requests to private, loopback, link-local, and cloud metadata addresses are rejected.

Start a Migration

  1. From the Cribl Search sidebar, select Dashboards > Migrate > New Migration.
  2. Under Choose a source path, select one of the following:
    • Connect to Grafana to discover content over a live connection. This is the default.
    • Upload dashboard JSON when Cribl Search can’t reach Grafana.

A .json export doesn’t carry every resource a Dashboard depends on, so an upload run can leave folders, data sources, or library panels unresolved. Assessment reports those unresolved dependencies.

Each migration is a run that you can leave and return to. To resume, select the run in the Migrations list, then select Resume at the current stage, for example Resume at Connect. Completed runs offer Open.

Connect to Grafana

  1. Under Grafana connection, select an existing connection, or create one and enter your Grafana URL.
  2. Under Global Secret, select the secret that holds your Grafana service account token.
  3. Select Test Connection.
  4. When the test reports Connection test passed., review the detected Grafana version and capabilities, then select Start Discovery.

Cribl Search stores only a reference to the Global Secret. It never returns the token to the browser, includes it in reports, or prefills it in the form. A connection that already has a credential shows Credential configured, and users who can manage connections can select Replace credential to point it at a different secret.

You can’t continue past a connection that hasn’t been tested, or one whose test failed. A failed test names one of these causes:

Reported causeWhat to do
The source is unreachableCheck the URL, DNS, TLS certificate, and network path.
Credentials were rejectedConfirm that the token is valid and hasn’t expired, then replace the credential.
Permissions are missingGrant the service account read access to the resources you want to migrate.
The version is unsupportedUpgrade Grafana, or use the upload path.
A required API is missingConfirm that the Grafana instance exposes the Dashboard and folder APIs.
The request was blockedThe destination is disallowed by egress policy. Use a reachable public URL, or upload a .json export.
Connection testing is unavailableConnection testing isn’t enabled on the node serving the request. Contact Cribl Support.

Discover and Select Dashboards

Discovery inventories what your connection can read, and shows its progress by resource type. It resumes where it left off if you navigate away, and you can cancel it at any time.

If Grafana denies access to some resources, discovery shows a partial-permission warning rather than reporting a complete inventory. Grant the missing Grafana permissions and run discovery again if you expect those resources.

When discovery finishes, choose what to migrate:

  1. Use Search folders and dashboards to filter the tree.
  2. Under Select Dashboards, expand a folder in Dashboards by folder to see its Dashboards, each with a panel and data source count.
  3. Select the Dashboards you want. Selecting a folder selects everything in it, and a partly selected folder shows an indeterminate check box.
  4. Under Select Alert Rules, select the rules you want to assess.
  5. Expand Dependency summary for selection to see what your selection references, including anything unresolved.
  6. Select Continue to Mapping.

A resource you clear never appears in the assessment, the import plan, or the results.

Map Data Sources and Folders

Under Map Data Sources & Folders:

  1. Map each supported Prometheus or Mimir data source to the metrics Dataset that holds its metrics.
  2. Set the Default Dataset, which Cribl Search uses for queries whose data source is unmapped or absent.
  3. Map each Grafana folder to an existing Collection, or type a name to create one.
  4. Select Run Assessment.

Assessment can take a while, because it validates every selected Dashboard’s queries against your metrics. While assessment is in progress, the page stays on screen and the button reads Assessing…, or Retrying… with an attempt count. Select Cancel to stop the pass and return to editable mapping. You can reload the page or come back later without losing progress.

If a pass fails, the page reports Assessment failed and keeps your mapping. The two common causes are missing Dataset-read Permission, and repeated internal failures. Fix the cause, then run the assessment again.

Review Compatibility

When assessment completes, Cribl Search opens Review Compatibility with a summary card for each status. Select a card to filter the table, and select Inspect on a row to open its details.

Every selected resource, and every nested panel, query, and variable, receives one of these statuses:

StatusMeaning
ReadyCribl Search can import the resource with no known change in behavior.
Ready with changesCribl Search can import the resource, but something about it will change. The row states what.
Action requiredYou must resolve or explicitly skip the item before you can create an import plan.
UnsupportedCribl Search can’t import the resource. Import a placeholder, or skip it.
ErrorAssessment couldn’t classify or validate the resource.
SkippedYou excluded the resource, so it won’t be imported.

Every result that isn’t Ready includes a reason code, the effect, and a next action.

Inspect a Dashboard

The inspection drawer breaks a Dashboard down into Panels, Variables, and Dependencies, and shows each query’s PromQL alongside its validation verdict. If you have Permission to read source snapshots, the inspection drawer includes the Source JSON tab.

Query validation distinguishes these outcomes, so an unavailable catalog never looks like a missing metric:

  • The metric is absent from a complete catalog.
  • The catalog couldn’t be listed in full, so the result is inconclusive.
  • The query ran, but returned no data in the validation window.
  • The query can’t run in Cribl Search.
  • Validation timed out.
  • Ingest renamed the metric, which is common for classic histogram metrics. Cribl Search validates the renamed form and reports the change.
  • The query returns more series than a Dashboard panel displays.

Each verdict records the Cribl Search job ID, so you can correlate a result with Cribl Support.

To test against a different time range, select a Validation window and then Re-run validation. A panel with a no-data verdict also offers its own window and a validation rerun, so you can check one panel without reassessing the run.

Review Alert Rules

Use the Dashboards and Alert rules tabs to switch between resource types. The Alert rules table lists every selected rule with its folder, class, status, and reason.

Cribl Search imports the rules it can translate exactly, and assesses the rest:

ClassStatusWhat Cribl Search does
Simple thresholdReady, or Ready with changesImports the rule as a paused Monitor.
Multi-queryAction requiredDoesn’t import the rule. Rebuild it as a Monitor by hand.
Classic conditionsUnsupportedDoesn’t import the rule.
Other expression rules, and recording rulesUnsupportedDoesn’t import the rule.

A simple threshold rule has one PromQL query, an optional last reducer, and one threshold condition. Any other shape would change what the alert fires on, so Cribl Search reports it instead of translating it.

Select Inspect on a rule to open its details. The drawer tags a rule that Imports as paused Monitor, and shows the query’s validation verdict. Extracted alert semantics lists the comparator, the threshold, the For duration, the no-data behavior, and the execution-error behavior. The drawer also calls out the semantics that can’t carry over, such as recovery behavior and contact point routing, and links the Dashboard that the rule came from.

Cribl Search creates migrated Monitors through the same Permission and validation checks as a Monitor you build by hand.

Create and Run the Import Plan

Resolve or explicitly skip every Action required item, then:

  1. Select Create import plan….
  2. In Confirm import plan, review the plan revision, the Collection, Dashboard, and panel counts, and the warning that the import isn’t atomic.
  3. Select Start Import.

The import starts only from this confirmation. Opening Import directly reports that the import hasn’t started.

Changing your selection or mapping produces a new plan revision.

Cribl Search writes Dashboards one at a time, so an import can partially succeed. Canceling stops further writes at the next safe point, and it doesn’t undo Dashboards that were already created or updated. When the run finishes, Cribl Search opens Results.

Review the Results

Results reports the run as Completed or Completed with warnings, with a count for each outcome and a row per item that shows its source and its target ID:

OutcomeMeaning
CreatedCribl Search created a new Dashboard.
UpdatedCribl Search updated an existing Dashboard.
Up to dateNothing changed, so Cribl Search wrote nothing.
PlaceholderCribl Search imported a placeholder in place of unsupported content.
SkippedYou excluded the item.
BlockedA conflict or a failed dependency prevented the write.
FailedThe write failed. The row states whether a retry is safe.

Imported Dashboards are available immediately in Cribl Search, in the Collections you mapped.

Alert rules appear in their own section, with the class and status from the assessment and the outcome of the write. A rule that produced a Monitor offers an Open Monitor link. A rule that Cribl Search didn’t import states its reason instead, and never reports success.

Every migrated Monitor arrives paused, so it can’t fire until you review it. To start alerting on one, open the Monitor and turn on Enabled. See Monitors.

You can export a redacted .json report of the run for support or automation. The report carries stable reason codes and no credentials.

Deleting a run removes the run record and its stored snapshots, but not the Dashboards it imported. Deleting a run that’s still discovering or importing cancels it first, and you might need to delete it again after the run is canceled.

Rerun a Migration

Cribl Search matches previously imported Dashboards by their Grafana identity rather than their name, so renaming a Dashboard in either system doesn’t create a duplicate. On a later run:

  • A Dashboard that hasn’t changed on either side is Up to date, and Cribl Search writes nothing.
  • A Dashboard that changed in Grafana updates its existing target, as long as no one edited that target in Cribl Search.
  • A Dashboard you edited in Cribl Search is reported as a conflict, with the reason target-modified.
  • An unrelated Dashboard that already owns the target ID blocks the write.
  • Cribl Search never deletes a target automatically, even when the Grafana Dashboard is gone.

To replace your edits in Cribl Search with the Grafana version, select Overwrite <target> on import during review. The row is tagged Will overwrite, and the import replaces the edited Dashboard. Leave the option clear to keep your Cribl Search edits.

Alert rules reconcile the same way. A rule that hasn’t changed writes nothing, and a Monitor that someone edited in Cribl Search is reported as a conflict that you can keep or overwrite.

Enable Migration Mode

After an import, Results can offer Migration mode for each Dataset you mapped. When local storage doesn’t cover a query, Cribl Search sends the whole query to a Prometheus Dataset Provider. It never merges local and remote results.

Migration mode is off by default. To turn it on for a Dataset:

  1. In the Migration mode section, find the Dataset’s row.
  2. Under Source provider for metrics, select a Prometheus Dataset Provider. Until you do, the Enable migration mode for metrics toggle stays inactive.
  3. Turn on Enable migration mode for metrics.

The change applies right away, with no separate save. The row’s status becomes Migration mode enabled, and Source provider for metrics locks. Turn the toggle off to restore local-only queries and unlock the Dataset Provider.

If your Organization has no Prometheus Dataset Provider, the section reports No Prometheus Dataset Providers available. Create one, or ask an administrator for access to one, and then return here. If a change can’t be saved, the row shows an error and the toggle returns to its previous state.

You can also configure migration mode later, on the metrics Dataset itself.

Next Steps