Have trouble in reading PromQL written by your colleagues or SRE team? promql-prettier to the rescue!
Thanks for WebAssembly, you can try it in your browser!
You can also download it from releases and integrate with your favorite editors.
Original:
go_goroutines{instance!="localhost:9090", job!~"prometheus.*"}
Pretty print:
go_goroutines{instance!="localhost:9090", job!~"prometheus.*"}
Original:
{__name__="go_goroutines",instance="localhost:9090",job="prometheus"}
Pretty print:
go_goroutines{instance="localhost:9090", job="prometheus"}
Original:
(((metric_name_long)))
Pretty print:
metric_name_long
Original:
histogram_quantile(0.9, rate(instance_cpu_time_seconds{app="lion", proc="web",job="cluster-manager"}[5m]))
Pretty print:
histogram_quantile (
0.9,
rate (
instance_cpu_time_seconds{app="lion", proc="web", job="cluster-manager"}[5m:]
)
)
Original:
topk(5, (sum without(env) (instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"})))
Pretty print:
topk (
5,
sum without (env) (
instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"}
)
)
Original:
sum (instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"}) without (label)
Pretty print:
sum without (label) (
instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"}
)
Original:
sum (instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"} + http_request_total{job="apiserver", handler="/api/comments"}) without (label)
Pretty print:
sum without (label) (
instance_cpu_time_ns{app="lion", proc="web", rev="34d0f99", env="prod", job="cluster-manager"}
+
http_request_total{job="apiserver", handler="/api/comments"}
)
Original:
first_long{foo="bar", hello="world"} + second{foo="bar"} + third{foo="bar", localhost="9090"} + forth
Pretty print:
(
(
first_long{foo="bar", hello="world"}
+
second{foo="bar"}
)
+
third{foo="bar", localhost="9090"}
)
+
forth
(defun my/format-promql (s e)
(interactive "r")
(shell-command-on-region s e "promql-prettier"
:replace t))Copyright (c) 2022 Jiacai Liu <[email protected]>
PromQL Prettier is distributed under GPL-3.0 license.