Kibana Geohash Zoom Errors Past Precision Level 12


(Seth S) #1

Kibana 5.4.1
ES: 5.4.1
x-pack installed

This issue has persisted through about four different 5.x versions;

Without even using a tilemap -- a data table with the aggregation on the geohash: nginxgeo1 field fails when the precision is greater than 12, as seen in the data table below. This occurs regardless of the geocentroid option and regardless of the type of visualization (tilemap, data table..).

image

the full error message:

Error: [parsing_exception] [geohash_grid] failed to parse field [precision], with { line=1 & col=286 }
    at respond (http://elastic-monitor/bundles/kibana.bundle.js?v=15122:12:2730)
    at checkRespForFailure (http://elastic-monitor/bundles/kibana.bundle.js?v=15122:12:1959)
    at http://elastic-monitor/bundles/kibana.bundle.js?v=15122:1:9824
    at processQueue (http://elastic-monitor/bundles/commons.bundle.js?v=15122:38:23621)
    at http://elastic-monitor/bundles/commons.bundle.js?v=15122:38:23888
    at Scope.$eval (http://elastic-monitor/bundles/commons.bundle.js?v=15122:39:4619)
    at Scope.$digest (http://elastic-monitor/bundles/commons.bundle.js?v=15122:39:2359)
    at Scope.$apply (http://elastic-monitor/bundles/commons.bundle.js?v=15122:39:5037)
    at done (http://elastic-monitor/bundles/commons.bundle.js?v=15122:37:25027)
    at completeRequest (http://elastic-monitor/bundles/commons.bundle.js?v=15122:37:28702)
    at XMLHttpRequest.xhr.onload (http://elastic-monitor/bundles/commons.bundle.js?v=15122:37:29634)

Elasticsearch request body:

{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "*",
            "analyze_wildcard": true
          }
        },
        {
          "range": {
            "@timestamp": {
              "gte": 1501189138294,
              "lte": 1501275538294,
              "format": "epoch_millis"
            }
          }
        }
      ],
      "must_not": []
    }
  },
  "size": 0,
  "_source": {
    "excludes": []
  },
  "aggs": {
    "2": {
      "geohash_grid": {
        "field": "nginxgeo1",
        "precision": 14
      }
    }
  }
}

However, a request of precision: 12 always yields valid results:
image

There is nothing in the mapping template that should be causing this:
GET _template/nginx/

{
  "nginx": {
    "order": 0,
    "template": "nginx-*",
    "settings": {
      "index": {
        "number_of_shards": "3",
        "number_of_replicas": "1",
        "routing": {
          "allocation": {
            "require": {
              "box_type": "hot"
            }
          }
        }
      }
    },
    "mappings": {
      "nginx-access": {
        "properties": {
          "nginxgeolocation": {
            "type": "geo_point"
          },
          "nginxgeo1": {
            "type": "geo_point"
          }
        }
      }
    },
    "aliases": {}
  }
}

The x-pack license is also valid:

curl -XGET 'http://localhost:9200/_xpack/license'
{
  "license" : {
    "status" : "active",
    "uid" : "my-lic-uid",
    "type" : "basic",
    "issue_date" : "2017-05-04T00:00:00.000Z",
    "issue_date_in_millis" : 1493856000000,
    "expiry_date" : "2018-05-04T23:59:59.999Z",
    "expiry_date_in_millis" : 1525478399999,
    "max_nodes" : 100,
    "issued_to" : "Seth",
    "issuer" : "Web Form",
    "start_date_in_millis" : 1493856000000
  }
}

The only possible issue I'd found when trying to diagnose this is a Kibana config I put into place a while ago:
tilemap.options.maxZoom: 14, however that is not actually being implemented it would appear.


(Seth S) #2

UPDATE: I did a curl request and received the following response:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "parsing_exception",
        "reason" : "[geohash_grid] failed to parse field [precision]",
        "line" : 33,
        "col" : 22
      }
    ],
    "type" : "parsing_exception",
    "reason" : "[geohash_grid] failed to parse field [precision]",
    "line" : 33,
    "col" : 22,
    "caused_by" : {
      "type" : "illegal_argument_exception",
      "reason" : "Invalid geohash aggregation precision of 14. Must be between 1 and 12."
    }
  },
  "status" : 400
}

Searching for the reason led me to this page explaining that this is a reasonable cutoff point:
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-geohashgrid-aggregation.html

Which leads me to my next question:

why the heck does Kibana have options for precision: 13-18 if neither ES, nor Kibana actually supports it?

Is there any way to override this default behavior?

I understand it'll be costly in terms of RAM, but it's a valid business justification and we likely have the hardware necessary to perform this.


(Felix Stürmer) #3

Hi @seth.yes,

could you please check whether the advanced setting visualization:tileMap:maxPrecision has been manually increased to 18?


(Seth S) #4

@weltenwort you're correct, it was manually set in the advanced settings.


(system) #5

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.