class Kibana::Rack::Web

Rack application that serves Kibana and proxies requests to Elasticsearch

Public Instance Methods

proxy() click to toggle source
# File lib/kibana/rack/web.rb, line 22
def proxy
  es_host = settings.elasticsearch_host
  es_port = settings.elasticsearch_port
  @proxy ||= Faraday.new(url: "http://#{es_host}:#{es_port}")
end
proxy_es_request() click to toggle source
# File lib/kibana/rack/web.rb, line 28
def proxy_es_request
  request.body.rewind

  proxy_method = request.request_method.downcase.to_sym
  proxy_response = proxy.send(proxy_method) do |proxy_request|
    proxy_request.url(request.path_info)
    proxy_request.headers['Content-Type'] = 'application/json'
    proxy_request.params = env['rack.request.query_hash']
    proxy_request.body = request.body.read if [:post, :put].include?(proxy_method)
  end

  [proxy_response.status, proxy_response.headers, proxy_response.body]
end
render_not_found() click to toggle source
# File lib/kibana/rack/web.rb, line 42
def render_not_found
  halt(404, '<h1>Not Found</h1>')
end
validate_kibana_index_name() click to toggle source
# File lib/kibana/rack/web.rb, line 18
def validate_kibana_index_name
  render_not_found unless params[:index] == settings.kibana_index
end