keroro520
keroro520

Reputation: 469

How can I use clj-http in riemann.config

I use riemann and now I write my riemann.config.

I want to use clj-http post all events from riemann stream to my web server. But I don't know how to import clj-http from riemann.jar.

I code (:use clj-http.client) or (:require [clj-http.client :as client]) in riemann.config but got error:

java.lang.ClassNotFoundException: clj-http.client

Could anyone help me ?

Upvotes: 0

Views: 289

Answers (1)

Viktor K.
Viktor K.

Reputation: 2740

I did something similar few months ago and this was working for me. I was using http-kit :

(require '[org.httpkit.client :as http])

Since both http-kit and cli-http are available in riemann ( see https://github.com/aphyr/riemann/blob/master/project.clj ) You should be able to require cli-http the same way :

(require '[clj-http.client :as client])

Problem in your configuration is that you are using (:use ... an (:require .... which is supposed to be used within the namespace declaration. Since riemann.config doesn't contain namespace declaration you can't use these forms. When calling

(:use clj-http.client)

you get ClassNotFoundException because clojure is trying to invoke function :use on clj-http.client , which can't be found. Outside the namespace declaration :use is just a standard keyword with no special meaning.

Upvotes: 1

Related Questions