Troubleshooting
Use this page when a connection test fails, a panel returns no data, or values land in unexpected buckets. For query editor reference, see building queries.
Save & test fails
If settings fail to load, the test reports "Unable to load settings: …". If a required field is empty, the test names it — for example "API key is missing". Once API Key, Project ID, and Site ID are set, the test calls GET /v1/devices. Failures there report "Unable to connect, see Grafana server log for details". A working configuration reports "Successfully connected to Foxglove API".
| Cause | Fix |
|---|---|
| Unable to load settings | Check the data source JSON and Grafana server log for the underlying parse error |
| Required field is empty | Fill in API Key, Project ID, and Site ID. The test message names which one is missing |
API key is missing devices.list | Add devices.list on the API keys settings page |
| API key was disabled or deleted | Generate a replacement and paste it into the data source settings |
| Wrong API Base URL | Leave it empty unless you use a non-default Foxglove API host |
| Network egress to the API host blocked | Grafana must reach api.foxglove.dev (or your API Base URL) over HTTPS. The health check does not contact your site's query endpoint |
The plugin honors Grafana's proxy and TLS settings, so a corporate proxy configured for Grafana applies here too.
Save & test succeeds, but panels fail
Query failures surface in the panel prefixed with query failed:. Open the panel's Query inspector to see the full error.
| Symptom | Likely cause |
|---|---|
| Panels error; connection test was green | API key has devices.list but not data.search, or the "search" capability group wasn't available when you created the key. Add data.search on the API keys settings page. If the search group isn't offered, the Grafana integration isn't enabled — contact us |
| Panels return no data; connection test was green | Wrong Project ID, wrong Site ID, or an Edge Site ID. Confirm both IDs on the Projects and Sites settings pages. The Site ID must be a Primary Site |
| Panels error or return no data; API host is reachable | Grafana can reach api.foxglove.dev but not your site's query endpoint. Allow HTTPS egress to that host |
A panel returns no data
Work through these in order:
- Check the time range. Queries only return data for windows where the device was recording. Widen the dashboard range to a period you know has recordings.
- Check the message path. It must resolve to a numeric leaf. Confirm the same path returns values on the Search page for the same devices and time range.
- Check filter values. A device condition on
namematches the device's name, not its ID. Copy the name from the Devices page. - Check filter message paths. Filter paths are not validated as you type. A typo is sent as an empty topic and matches nothing.
- Remove blank filter rows. Once any condition has a value, blank sibling rows are still sent. In an AND group (the default), a blank sibling empties the result; in an OR group it contributes nothing. Delete unused rows with the × on each row. See empty conditions.
- Check the Site ID. The data source queries one Primary Site. Data on a different site — or an Edge Site — won't appear.
- Check the Project ID. Queries are scoped to a single project.
Paths that use FoxQL functions (.@rpy, .@degrees, and similar) produce an editor error and a query failed: … panel error, not an empty panel.
Values look wrong or land in unexpected buckets
Almost always this is Granularity or Interval.
Interval sets the bin width for the values you're charting. Granularity sets the bin width for evaluating filter conditions. Leaving both empty makes each follow the dashboard time range divided by Max data points (under Query options), which is usually what you want. A large explicit interval, such as 24h, produces wide bins whose timestamps may not line up with the range you selected.
See building queries for the difference between the two.
An interval or granularity is rejected
Durations accept the suffixes ms, s, m, h, d, w, M, and y. A bare number is seconds (30 means 30s). Fractional values such as 1.5h are accepted; compound forms such as 1h30m and spelled-out forms such as 5min or 1hr are not. The value must be greater than zero.
Query editor fields are missing after an upgrade
Grafana caches plugin frontend assets. Restart Grafana and hard-refresh the browser so it loads the updated plugin bundle. Confirm the running version under Administration → Plugins and data → Plugins → Foxglove.
Queries time out
Long time ranges and high-rate topics scan a lot of data. To speed a query up:
- Narrow the dashboard time range.
- Add a device filter so fewer recordings are scanned.
- Set an aggregation interval coarser than the default (roughly one bin per pixel of Max data points).
The Query Timeout (seconds) data source setting caps each HTTP request. Raise it, or leave it empty (or 0) to use Grafana's own timeout.
Turn on plugin logging
The data source reports connection problems generically in the UI and writes details to the Grafana server log. Start Grafana with these environment variables:
GF_LOG_LEVEL=debug
GF_LOG_FILTERS=plugin.foxglovedev-foxglove-datasource:debug
On Grafana Cloud you can't set server environment variables — ask your Grafana administrator or Grafana support for the plugin's server-side logs.