04 Apr 2018

restclient.el + elasticsearch

todo: and a screenshot of it in action

restclient.el is an emacs plugin that transforms a buffer into a repl-like curl-backed experience (similar to kibana). It has support for variables set with arbitrary elisp, turning it into a viable postman replacement (with plain text! and versioning!). I find this to be a very nice way to store and execute elasticsearch queries, but unfortunately you lose autocomplete of ES specific items. Alternatively, es-mode exists, which is more ES specific but much more featureful.

Here is a starter point showing some of restclients capabilities and how one might use it with elasticsearch:

;; -*- mode: restclient -*-

# local
:target = http://localhost:9200
:cloud-auth = ""
# Basic http auth example:
cloud-auth := (concat "Basic " (base64-encode-string "username:password"))
:prefix = some_prefix

# multiline variable
:headers = <<
content-type: application/json
Authorization: :cloud-auth
#

# note: there must be a comment to separate request definitions.

# list indices
GET :target/_cat/indices
:headers

# logs sorted by a field
GET :target/:prefix_log/_search
:headers
{
  "sort": [
    {
      "timestamp": {
	"order": "desc"
      }
    }
  ]
}
Other posts