• GET /healthz or /health

curl localhost:5558/healthz



  • GET /metrics

Mirabelle metrics are returned as Prometheus format.


Add a stream

  • POST api/v1/stream/

The body is a json string like {"config": "<stream-config>"}.

should be the stream EDN configuration as base64. For example {:actions {:action :info}} as base64 would be ezphY3Rpb25zIHs6YWN0aW9uIDppbmZvfX0=.

You can also pass the :default option, like in the configuration, in order to specify if you want your stream to be used by default.

curl -H "Content-Type: application/json" -X POST --data  '{"config": "ezphY3Rpb25zIHs6YWN0aW9uIDppbmZvfX0="}'

{"message":"stream added"}

List streams

  • GET api/v1/stream/

List all streams configured in Mirabelle.

 curl localhost:5558/api/v1/stream

Get a stream

  • GET api/v1/stream/

Get a stream configuration and the time of its index.

curl localhost:5558/api/v1/stream/trololo


Remove a stream

  • DELETE api/v1/stream/

Delete a stream by name.

curl -X DELETE localhost:5558/api/v1/stream/trololo

{"message":"stream removed"}

Push an event

  • PUT api/v1/stream/

Push an event to the specified stream.

curl -H "Content-Type: application/json" -X PUT --data '{"event": {"service": "foo", "metric": 10}}'


Query the index

  • GET api/v1/index//search

Returns events matching the query for the index of the stream <stream-name>. The query passed in the body should be a where query.

curl -H "Content-Type: application/json" -X POST --data '{"query": "Wzo9IDpzZXJ2aWNlICJmb28iXQ=="}'


Get the default index current time

get the current time for the default index

curl localhost:5558/api/v1/current-time