Looks like the exception is thrown during config parsing. You probably
need to enclose the email addresses in a vector [] rather than a list
().

Ray.

On 8 May 2015 at 08:01, Alexey Astafyev <av.astaf...@gmail.com> wrote:
> I'm new to Riemann and Clojure. All I want to do is to send email
> notifications to three email groups when some service's TTL is expired. I
> created some sort of config file where I store a list of emails:
>
> {
>   :email_group_1 (
>                   "fi...@example.com"
>                   "sec...@example.ru"
>                  )
>   :email_group_2 (
>                   "th...@example.com"
>                  )
> }
>
>
> My riemann config looks like this:
>
> (logging/init {:console true})
> (import org.apache.log4j.Level)
> (logging/set-level Level/DEBUG)
>
> (require '[clojure.java.io :as io])
> (import '[java.io PushbackReader])
>
> (let [host "0.0.0.0"]
>   (tcp-server {:host host :port 60001})
>   (udp-server {:host host})
>   (ws-server  {:host host :port 60003}))
> (repl-server  {:host "127.0.0.1"})
>
> (def cwd (System/getProperty "user.dir"))
>
> (def emails
>   (with-open [r (io/reader (str cwd "/etc/emails.clj"))]
>              (read (PushbackReader. r))))
>
> (periodically-expire 5)
>
> (def email (mailer))
>
> (defn notify [& egroups]
>   (for [egroup egroups]
>     (rollup 1 60 (apply email (emails egroup)))))
>
> (let [index (index)]
>   (streams
>     (default :ttl 60
>       index
>
>       (expired
>           (where (service "service_connect_active")
>                     #(info "expired" %)
>                     (notify :email_group_1 :email_group_2))))))
>
>
> Code looks good (for me), but when this service is expired I get the
> following error:
>
> 09:45:39 riemann.1      | INFO [2015-05-08 10:45:39,313] Thread-5 -
> riemann.config - expired {:ttl 60, :time 357766884827/250, :state expired,
> :service service_connect_active, :host ava.local}
> 09:45:39 riemann.1      | WARN [2015-05-08 10:45:39,319] Thread-5 -
> riemann.config - clojure.lang.LazySeq@841649b8 threw
> 09:45:39 riemann.1      | java.lang.ClassCastException: clojure.lang.LazySeq
> cannot be cast to clojure.lang.IFn
> 09:45:39 riemann.1      |   at
> riemann.config$eval66$stream__70$fn__75.invoke(riemann.development.config:34)
> 09:45:39 riemann.1      |   at
> riemann.config$eval66$stream__70.invoke(riemann.development.config:45)
> 09:45:39 riemann.1      |   at
> riemann.streams$match$stream__3514$fn__3525.invoke(streams.clj:1209)
> 09:45:39 riemann.1      |   at
> riemann.streams$match$stream__3514.invoke(streams.clj:1209)
> 09:45:39 riemann.1      |   at
> riemann.streams$default$stream__3731$fn__3742.invoke(streams.clj:1328)
> 09:45:39 riemann.1      |   at
> riemann.streams$default$stream__3731.invoke(streams.clj:1328)
> 09:45:39 riemann.1      |   at
> riemann.core$stream_BANG_$fn__4415.invoke(core.clj:19)
> 09:45:39 riemann.1      |   at riemann.core$stream_BANG_.invoke(core.clj:18)
> 09:45:39 riemann.1      |   at
> riemann.core$reaper$worker__4529$fn__4539.invoke(core.clj:303)
> 09:45:39 riemann.1      |   at
> riemann.core$reaper$worker__4529.invoke(core.clj:297)
> 09:45:39 riemann.1      |   at
> riemann.service.ThreadService$thread_service_runner__1973$fn__1974.invoke(service.clj:71)
> 09:45:39 riemann.1      |   at
> riemann.service.ThreadService$thread_service_runner__1973.invoke(service.clj:70)
> 09:45:39 riemann.1      |   at clojure.lang.AFn.run(AFn.java:22)
> 09:45:39 riemann.1      |   at java.lang.Thread.run(Thread.java:745)
>
>
> Could someone please help me? Thanks.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to