spring-actuator.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Thu, 30 Mar 2017 10:56:58 +0300
changeset 1525 192e86762ee5
parent 1506 4f24c53e6e38
permissions -rw-r--r--
Fix: Warning: assignment to free variable js-indent-level.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1483
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     2
(require 'json)
1525
192e86762ee5 Fix: Warning: assignment to free variable js-indent-level.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1506
diff changeset
     3
(require 'js)
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     4
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     5
(defvar spring-actuator-server-history nil)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     6
(defvar spring-actuator-last-server "http://localhost:8080")
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     7
(defvar spring-actuator-path-history nil)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
     8
(defvar spring-actuator-path-completion
1485
ba6632e1f2f8 Remove POST command. Add useful report.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1484
diff changeset
     9
  '("actuator" "auditevents" "autoconfig" "beans" "configprops" "dump" "env" "features" "flyway" "health" "heapdump"
1491
4a9d4d14b87d Fix: delete extra parent.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1487
diff changeset
    10
    "info" "jolokia" "liquibase" "logfile" "loggers" "mappings" "metrics" "trace"))
1483
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
1484
8fe1eaf66e94 Allow autoload. Move cursor to the beginning of buffer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1483
diff changeset
    12
;;;###autoload
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    13
(defun spring-actuator (server path)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    14
  (interactive (list (read-string "Server: " spring-actuator-last-server 'spring-actuator-server-history)
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    15
                     (completing-read "Path: " spring-actuator-path-completion nil nil "" 'spring-actuator-path-history)))
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    16
  (setq spring-actuator-last-server server)
1483
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
  (let ( (bufname (format "actuator: %s" path)) )
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
    (when (get-buffer bufname)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
      (kill-buffer bufname))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
    (switch-to-buffer (url-retrieve-synchronously (format "%s/%s" server path)))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
    (rename-buffer bufname)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    22
    (goto-char (point-min))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
    (re-search-forward "^$" nil 'move)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    24
    (forward-char)
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    25
    (delete-region (point-min) (point))
a25f209ebf15 Library to access Spring Actuator endpoints.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
    (json-pretty-print-buffer)
1484
8fe1eaf66e94 Allow autoload. Move cursor to the beginning of buffer.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1483
diff changeset
    27
    (goto-char (point-min))
1487
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    28
    (if (fboundp 'json-mode)
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    29
        (json-mode)
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    30
      (js-mode))
d22fade5ae5c Detect if json-mode available.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1485
diff changeset
    31
    (setq-local js-indent-level 2)))
1506
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    32
4f24c53e6e38 Strip "my/" prefix. Require 'json' library.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1491
diff changeset
    33
(provide 'spring-actuator)