Closed stephenjones5543 closed 2 years ago
Hello, Thank you for testing Mirabelle.
The Grafana plugin works with Mirabelle but has been designed for Riemann. Mirabelle and Riemann do not use the same query language for the index (https://www.mirabelle.mcorbin.fr/howto/index/).
For example, I make it work with this configuration:
The query is WzphbHdheXMtdHJ1ZV0=
which is [:always-true]
(match all events) in base64. Ideally, a Mirabelle grafana plugin would automatically convert the query to base64 (the Riemann plugin could be extended).
Hey,
Thanks for the swift response. I feel the error occurred when establishing the web socket connection
{"@timestamp":"2021-08-13T21:46:17.866Z","@version":"1","message":"Error in the websocket handler","logger_name":"mirabelle.transport.websocket","thread_name":"worker-4","level":"ERROR","level_value":40000,
Could it be the handler?
Thanks for the swift response. I feel the error occurred when establishing the web socket connection
Which query do you use in Grafana ?
I'm getting the same Error in the websocket handler
when using the query true
. I realise this isn't a valid query, and when using your example base64 string it works as expected.
Proposed change: maybe send a more intelligible error message back to user, e.g. Parse error in query string "true". Please check the syntax. Docs here : ...
For the record here is the full error message on the server side:
{
"@timestamp": "2021-10-19T09:33:15.237+02:00",
"@version": "1",
"message": "Error in the websocket handler",
"logger_name": "mirabelle.transport.websocket",
"thread_name": "worker-3",
"level": "ERROR",
"level_value": 40000,
"stack_trace": "clojure.lang.ExceptionInfo: Invalid condition
at exoscale.ex$ex_info.invokeStatic(ex.cljc:273)
at exoscale.ex$ex_info.invoke(ex.cljc:253)
at exoscale.ex$ex_incorrect.invokeStatic(ex.cljc:316)
at exoscale.ex$ex_incorrect.invoke(ex.cljc:316)
at exoscale.ex$ex_incorrect_BANG_.invokeStatic(ex.cljc:316)
at exoscale.ex$ex_incorrect_BANG_.invoke(ex.cljc:316)
at mirabelle.action.condition$compile_condition.invokeStatic(condition.clj:48)
at mirabelle.action.condition$compile_condition.invoke(condition.clj:40)
at mirabelle.action.condition$fn__4758.invokeStatic(condition.clj:74)
at mirabelle.action.condition$fn__4758.invoke(condition.clj:57)
at clojure.lang.AFn.applyToHelper(AFn.java:154)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$memoize$fn__6894.doInvoke(core.clj:6342)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at mirabelle.transport.websocket$request__GT_pred.invokeStatic(websocket.clj:36)
at mirabelle.transport.websocket$request__GT_pred.invoke(websocket.clj:33)
at mirabelle.transport.websocket$handler$handle__26079$fn__26080.invoke(websocket.clj:85)
at mirabelle.transport.websocket$handler$handle__26079.invoke(websocket.clj:79)
at org.httpkit.server.HttpHandler.run(RingHandler.java:117)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
"
}
Queries should indeed be in base64 but the query true
also works (I made a special check for it):
I improved the error message. it's still a stack trace but now it says that the websocket query is invalid:
@timestamp":"2021-10-22T21:08:27.471+02:00","@version":"1","message":"Error in the websocket handler","logger_name":"mirabelle.transport.websocket","thread_name":"worker-1","level":"ERROR","level_value":40000,"stack_trace":"clojure.lang.ExceptionInfo: Invalid websocket query azezaea
\tat exoscale.ex$ex_info.invokeStatic(ex.cljc:273)
\tat exoscale.ex$ex_info.invoke(ex.cljc:253)
\tat exoscale.ex$ex_incorrect.invokeStatic(NO_SOURCE_FILE:0)
\tat exoscale.ex$ex_incorrect.invoke(NO_SOURCE_FILE:0)
\tat exoscale.ex$ex_incorrect_BANG_.invokeStatic(NO_SOURCE_FILE:0)
\tat exoscale.ex$ex_incorrect_BANG_.invoke(NO_SOURCE_FILE:0)
\tat mirabelle.transport.websocket$request__GT_pred.invokeStatic(websocket.clj:45)
\tat mirabelle.transport.websocket$request__GT_pred.invoke(websocket.clj:34)
\tat mirabelle.transport.websocket$handler$handle__21578$fn__21579.invoke(websocket.clj:91)
\tat mirabelle.transport.websocket$handler$handle__21578.invoke(websocket.clj:85)
\tat org.httpkit.server.HttpHandler.run(RingHandler.java:117)
\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
\tat java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.Symbol
\tat clojure.lang.RT.seqFrom(RT.java:557)
\tat clojure.lang.RT.seq(RT.java:537)
\tat clojure.lang.RT.first(RT.java:693)
\tat clojure.core$first__5401.invokeStatic(core.clj:55)
\tat clojure.core$first__5401.invoke(core.clj:55)
\tat mirabelle.action.condition$fn__1537.invokeStatic(condition.clj:65)
\tat mirabelle.action.condition$fn__1537.invoke(condition.clj:57)
\tat clojure.lang.AFn.applyToHelper(AFn.java:154)
\tat clojure.lang.AFn.applyTo(AFn.java:144)
\tat clojure.core$apply.invokeStatic(core.clj:667)
\tat clojure.core$memoize$fn__6894.doInvoke(core.clj:6342)
\tat clojure.lang.RestFn.invoke(RestFn.java:408)
\tat mirabelle.transport.websocket$request__GT_pred.invokeStatic(websocket.clj:39)
\t... 9 common frames omitted
Closing this issue (unable to reproduce the original bug), please reopen with more information if needed.
Hello,
I am using a docker image to deploy Mirabelle in a kubernetes cluster, I wrote a custom helm chart to manage my deployment, I was able to set everything up until connecting to Grafana with the
websocket ws://localhost:5556
I am using riemann Grafana plugin Mirabelle version
V0.4.0
Grafana versionv8.1.0
Please see error below.
{"@timestamp":"2021-08-12T18:45:49.927Z","@version":"1","message":"Error in the websocket handler","logger_name":"mirabelle.transport.websocket","thread_name":"worker-3","level":"ERROR","level_value":40000,"stack_trace":"java.lang.NullPointerException: null\n\tat java.base/java.util.regex.Matcher.getTextLength(Matcher.java:1770)\n\tat java.base/java.util.regex.Matcher.reset(Matcher.java:416)\n\tat java.base/java.util.regex.Matcher.<init>(Matcher.java:253)\n\tat java.base/java.util.regex.Pattern.matcher(Pattern.java:1133)\n\tat java.base/java.util.regex.Pattern.split(Pattern.java:1261)\n\tat java.base/java.util.regex.Pattern.split(Pattern.java:1334)\n\tat clojure.string$split.invokeStatic(string.clj:224)\n\tat clojure.string$split.invoke(string.clj:219)\n\tat mirabelle.transport.websocket$http_query_map.invokeStatic(websocket.clj:24)\n\tat mirabelle.transport.websocket$http_query_map.invoke(websocket.clj:18)\n\tat mirabelle.transport.websocket$handler$handle__21125$fn__21126.invoke(websocket.clj:83)\n\tat mirabelle.transport.websocket$handler$handle__21125.invoke(websocket.clj:79)\n\tat org.httpkit.server.HttpHandler.run(RingHandler.java:117)\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat java.base/java.lang.Thread.run(Thread.java:834)\n"
Thanks