Kibana 4 and 5: sensible URL parameters

A typical URL in Kibana > 3 has a lot of rison in it. This isn't easily human-readable or constructable (see Kibana 4.x Discover URL Parameters Documentation). I need to be able to provide an entry point to Kibana for my users that is reachable from a URL like this that they can edit themselves easily:

http://kibana.mydomain.com/app/kibana/index.html#/logs?parameterName=parameterValue

My current strategy (on a fork) is probably to create a proxy in front of Kibana providing the /logs entry point, which will then redirect the user to the long Kibana URL.

Can anyone think of a better way of doing this, or is there some setting I've missed?

Is this (closed) issue a relevant answer? https://github.com/elastic/kibana/issues/2502

I'm not clear on why a user would want to edit a URL instead of entering their parameterName:parameterValue in the search bar in Kibana.

It's not necessarily for end user use - it's rather that we need to generate links to dashboards dynamically based on a few parameters. The URLs should be both human-readable and machine-generateable, which is why my example used a query string.

I'm not sure the issue quite addresses my problem - wouldn't the strategy detailed there require us to create one dashboard per 'customer' manually?

Update on this: I'm now hooking into the saved dashboard functionality to load dashboard templates from JSON files. So for example if you go to http://localhost:5601/app/kibana#/dashboard/foo it will check first whether there exists a static JSON template foo and if not, will default to the usual saved dashboard functionality.

This has a number of advantages for us:

  1. We can check our dashboard templates into version control, with obvious benefits.
  2. Since the saved dashboards are no longer stored in Elasticsearch, there is no need to recreate them when connecting to a new ES.

Hi Katy,

Does this solution allow you to pass in parameters to Kibana through the URL?
From what I understand from your comment, you are allowing the user to enter the name of the dashboard - how does this translate to parameters or search queries?

Can you please explain or link me to some info on how this is done / works?

Cheers