- What Grafana version and what operating system are you using?
- Grafana web version
- Operating system: Ubuntu 24.04.1 LTS
- Browser: Firefox
- Datasource version(s) (prometheus, graphite, etc.): Loki, Prometheus, Tempo
-
What are you trying to achieve?
Creating a geomap with GPS points for Loki logs and the color of the points defined my a Prometheus metric. -
How are you trying to achieve it?
The geomaps used in my dashboard consists of the GPS data from Loki logs and metric data (ex. packet loss) from Prometheus metrics. These are 2 separate queries and each separate timestamps that have to be merged. The GPS data is logged every 1s and metrics scraped every 15s. The GPS data and metrics are put together by averaging the GPS data with 0.1% centered moving mean over the whole time range (only to get correct timestamp) and then picking the matching timestamps of the metrics every 15s. -
What happened?
- The geomaps do not show all the metric data if the time range is too long. I have to zoom in on each seprate day too see the valid data, which is unwanted behavior.
- it can show the exceeded maximum resolution of 11,000 points per timeseries errors (see full error) , while I do not have more than 11,000 metrics in that time range. A reason this error is shown is because in the Query Options the max data points is put on a very high number to make sure the Interval to 15s (the same as the Min interval). A very simple way to solve this is the leave the Max data points on auto, so the interval is set higher. but then the interval is too high, it must be the same as the min interval.
- not all the gps points are showing, even the the max lines are not reached. my GPS points are different if I set the Direction to Backward or Forward. but is contains some data of everyday, not the last or first data? The max lines is 5000, after the queries and transformations the number of lines is long not 5000. -
What did you expect to happen?
to match all the metric data to the GPS points and show up to 5000 points on a map. -
Can you copy/paste the configuration(s) that you are having problems with?
{
"libraryPanel": {
"id": 38,
"orgId": 1,
"folderId": 14,
"folderUid": "cegbo7j0wujuoa",
"uid": "aeu2o2e6cnojke",
"name": "Packet Loss Geomap",
"kind": 1,
"type": "geomap",
"description": "",
"model": {
"datasource": {
"type": "datasource",
"uid": "-- Mixed --"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "dark-green",
"value": null
},
{
"color": "dark-yellow",
"value": 2
},
{
"color": "dark-orange",
"value": 3.5
},
{
"color": "dark-red",
"value": 5
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "packet_loss_mean"
},
"properties": [
{
"id": "unit",
"value": "percent"
}
]
}
]
},
"interval": "15s",
"options": {
"basemap": {
"config": {},
"name": "Layer 0",
"noRepeat": false,
"tooltip": true,
"type": "osm-standard"
},
"controls": {
"mouseWheelZoom": true,
"showAttribution": true,
"showDebug": false,
"showMeasure": false,
"showScale": false,
"showZoom": true
},
"layers": [
{
"config": {
"showLegend": true,
"style": {
"color": {
"field": "packet_loss",
"fixed": "dark-green"
},
"opacity": 1,
"rotation": {
"fixed": 0,
"max": 360,
"min": -360,
"mode": "mod"
},
"size": {
"fixed": 10,
"max": 15,
"min": 2
},
"symbol": {
"fixed": "img/icons/marker/circle.svg",
"mode": "fixed"
},
"symbolAlign": {
"horizontal": "center",
"vertical": "center"
},
"textConfig": {
"fontSize": 12,
"offsetX": 0,
"offsetY": 0,
"textAlign": "center",
"textBaseline": "middle"
}
}
},
"filterData": {
"id": "byRefId",
"options": "joinByField-C-B"
},
"location": {
"mode": "auto"
},
"name": "Packet Loss",
"tooltip": true,
"type": "markers"
}
],
"tooltip": {
"mode": "details"
},
"view": {
"allLayers": true,
"id": "fit",
"lat": 51.055334,
"lon": 3.704568,
"noRepeat": false,
"zoom": 15
}
},
"pluginVersion": "12.2.0-16677249643",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "grafanacloud-logs"
},
"direction": "forward",
"editorMode": "code",
"expr": "${gps_source}",
"hide": false,
"maxLines": 5000,
"queryType": "range",
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "grafanacloud-prom"
},
"editorMode": "code",
"expr": "histogram_quantile(1, sum by(le) (rate(packet_loss_bucket{device_id=~\"$device|$unit\"}[${interval}])))",
"interval": "15s",
"legendFormat": "packet_loss",
"range": true,
"refId": "B"
}
],
"title": "Packet Loss Geomap",
"transformations": [
{
"id": "extractFields",
"options": {
"delimiter": ",",
"format": "json",
"jsonPaths": [
{
"alias": "latitude",
"path": "attributes.latitude"
},
{
"alias": "longitude",
"path": "attributes.longitude"
}
],
"keepTime": true,
"replace": true,
"source": "Line"
}
},
{
"id": "convertFieldType",
"options": {
"conversions": [
{
"destinationType": "number",
"targetField": "latitude"
},
{
"destinationType": "number",
"targetField": "longitude"
}
],
"fields": {}
}
},
{
"id": "joinByField",
"options": {
"mode": "outer"
}
},
{
"disabled": true,
"id": "calculateField",
"options": {
"alias": "packet_loss_mean",
"mode": "windowFunctions",
"reduce": {
"include": [
"packet_loss"
],
"reducer": "last"
},
"replaceFields": false,
"window": {
"field": "packet_loss",
"reducer": "mean",
"windowAlignment": "centered",
"windowSize": 0.001,
"windowSizeMode": "percentage"
}
}
},
{
"disabled": true,
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "isNull",
"options": {}
},
"fieldName": "latitude"
}
],
"match": "any",
"type": "exclude"
}
},
{
"id": "calculateField",
"options": {
"mode": "windowFunctions",
"reduce": {
"reducer": "sum"
},
"window": {
"field": "latitude",
"reducer": "mean",
"windowAlignment": "centered",
"windowSize": 0.001,
"windowSizeMode": "percentage"
}
}
},
{
"id": "calculateField",
"options": {
"mode": "windowFunctions",
"reduce": {
"reducer": "sum"
},
"window": {
"field": "longitude",
"reducer": "mean",
"windowAlignment": "centered",
"windowSize": 0.001,
"windowSizeMode": "percentage"
}
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"latitude": true,
"longitude": true
},
"includeByName": {},
"indexByName": {},
"renameByName": {
"centered moving mean(latitude)": "latitude",
"centered moving mean(longitude)": "longitude"
}
}
},
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "equal",
"options": {
"value": "0"
}
},
"fieldName": "latitude"
},
{
"config": {
"id": "isNull",
"options": {}
},
"fieldName": "packet_loss"
}
],
"match": "any",
"type": "exclude"
}
},
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "between",
"options": {
"from": "${start_date}",
"to": "${end_date}"
}
},
"fieldName": "Time"
}
],
"match": "all",
"type": "include"
}
}
],
"type": "geomap"
},
"version": 9,
"meta": {
"folderName": "V2 analytics",
"folderUid": "cegbo7j0wujuoa",
"connectedDashboards": 2,
"created": "2025-08-05T09:15:06Z",
"updated": "2025-08-06T12:29:48Z",
"createdBy": {
"id": 10,
"name": "tech1e46",
"avatarUrl": "/avatar/38aceb2d2a7e727c104ea16b4546227c"
},
"updatedBy": {
"id": 10,
"name": "tech1e46",
"avatarUrl": "/avatar/38aceb2d2a7e727c104ea16b4546227c"
}
}
},
"id": 59,
"type": "geomap",
"title": "Packet Loss Geomap",
"description": "",
"gridPos": {
"x": 12,
"y": 124,
"h": 11,
"w": 12
},
"fieldConfig": {
"defaults": {
"custom": {
"hideFrom": {
"tooltip": false,
"viz": false,
"legend": false
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "dark-green",
"value": null
},
{
"color": "dark-yellow",
"value": 2
},
{
"color": "dark-orange",
"value": 3.5
},
{
"color": "dark-red",
"value": 5
}
]
},
"color": {
"mode": "thresholds"
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "packet_loss_mean"
},
"properties": [
{
"id": "unit",
"value": "percent"
}
]
}
]
},
"transformations": [
{
"id": "extractFields",
"options": {
"delimiter": ",",
"format": "json",
"jsonPaths": [
{
"alias": "latitude",
"path": "attributes.latitude"
},
{
"alias": "longitude",
"path": "attributes.longitude"
}
],
"keepTime": true,
"replace": true,
"source": "Line"
}
},
{
"id": "convertFieldType",
"options": {
"conversions": [
{
"destinationType": "number",
"targetField": "latitude"
},
{
"destinationType": "number",
"targetField": "longitude"
}
],
"fields": {}
}
},
{
"id": "joinByField",
"options": {
"mode": "outer"
}
},
{
"disabled": true,
"id": "calculateField",
"options": {
"alias": "packet_loss_mean",
"mode": "windowFunctions",
"reduce": {
"include": [
"packet_loss"
],
"reducer": "last"
},
"replaceFields": false,
"window": {
"field": "packet_loss",
"reducer": "mean",
"windowAlignment": "centered",
"windowSize": 0.001,
"windowSizeMode": "percentage"
}
}
},
{
"disabled": true,
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "isNull",
"options": {}
},
"fieldName": "latitude"
}
],
"match": "any",
"type": "exclude"
}
},
{
"id": "calculateField",
"options": {
"mode": "windowFunctions",
"reduce": {
"reducer": "sum"
},
"window": {
"field": "latitude",
"reducer": "mean",
"windowAlignment": "centered",
"windowSize": 0.001,
"windowSizeMode": "percentage"
}
}
},
{
"id": "calculateField",
"options": {
"mode": "windowFunctions",
"reduce": {
"reducer": "sum"
},
"window": {
"field": "longitude",
"reducer": "mean",
"windowAlignment": "centered",
"windowSize": 0.001,
"windowSizeMode": "percentage"
}
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"latitude": true,
"longitude": true
},
"includeByName": {},
"indexByName": {},
"renameByName": {
"centered moving mean(latitude)": "latitude",
"centered moving mean(longitude)": "longitude"
}
}
},
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "equal",
"options": {
"value": "0"
}
},
"fieldName": "latitude"
},
{
"config": {
"id": "isNull",
"options": {}
},
"fieldName": "packet_loss"
}
],
"match": "any",
"type": "exclude"
}
},
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "between",
"options": {
"from": "${start_date}",
"to": "${end_date}"
}
},
"fieldName": "Time"
}
],
"match": "all",
"type": "include"
}
}
],
"pluginVersion": "12.2.0-16677249643",
"targets": [
{
"datasource": {
"type": "loki",
"uid": "grafanacloud-logs"
},
"direction": "forward",
"editorMode": "code",
"expr": "${gps_source}",
"hide": false,
"maxLines": 5000,
"queryType": "range",
"refId": "C"
},
{
"datasource": {
"type": "prometheus",
"uid": "grafanacloud-prom"
},
"editorMode": "code",
"expr": "histogram_quantile(1, sum by(le) (rate(packet_loss_bucket{device_id=~\"$device|$unit\"}[${interval}])))",
"interval": "15s",
"legendFormat": "packet_loss",
"range": true,
"refId": "B"
}
],
"datasource": {
"type": "datasource",
"uid": "-- Mixed --"
},
"interval": "15s",
"options": {
"view": {
"allLayers": true,
"id": "fit",
"lat": 51.055334,
"lon": 3.704568,
"noRepeat": false,
"zoom": 15
},
"controls": {
"showZoom": true,
"mouseWheelZoom": true,
"showAttribution": true,
"showScale": false,
"showMeasure": false,
"showDebug": false
},
"tooltip": {
"mode": "details"
},
"basemap": {
"config": {},
"name": "Layer 0",
"noRepeat": false,
"tooltip": true,
"type": "osm-standard"
},
"layers": [
{
"config": {
"showLegend": true,
"style": {
"color": {
"field": "packet_loss",
"fixed": "dark-green"
},
"opacity": 1,
"rotation": {
"fixed": 0,
"max": 360,
"min": -360,
"mode": "mod"
},
"size": {
"fixed": 10,
"max": 15,
"min": 2
},
"symbol": {
"fixed": "img/icons/marker/circle.svg",
"mode": "fixed"
},
"symbolAlign": {
"horizontal": "center",
"vertical": "center"
},
"textConfig": {
"fontSize": 12,
"offsetX": 0,
"offsetY": 0,
"textAlign": "center",
"textBaseline": "middle"
}
}
},
"filterData": {
"id": "byRefId",
"options": "joinByField-C-B"
},
"location": {
"mode": "auto"
},
"name": "Packet Loss",
"tooltip": true,
"type": "markers"
}
]
}
}
- Did you receive any errors in the Grafana UI or in related logs? If so, please tell us exactly what they were.
bad_data: exceeded maximum resolution of 11,000 points per timeseries. Try decreasing the query resolution (?step=XX)
(Trace ID: 25fb4c53c5fe70b52200731917131f45)
- Did you follow any online instructions? If so, what is the URL?