Communicating with Elasticsearch

edit

Communicating with Elasticsearch

edit

Kibana exposes two clients on the server and browser for communicating with elasticsearch. There is an admin client which is used for managing Kibana’s state, and a data client for all other requests. The clients use the elasticsearch.js library.

Server clients

edit

Server clients are exposed through the elasticsearch plugin.

  const adminCluster = server.plugins.elasticsearch.getCluster('admin');
  const dataCluster = server.plugins.elasticsearch.getCluster('data');

  //ping as the configured elasticsearch.user in kibana.yml
  adminCluster.callWithInternalUser('ping');

  //ping as the user specified in the current requests header
  adminCluster.callWithRequest(req, 'ping');

Browser clients

edit

Browser clients are exposed through AngularJS services.

uiModules.get('kibana')
.run(function (es) {
  es.ping()
  .catch(err => {
    console.log('error pinging servers');
  });
});