Fork me on GitHub
#off-topic
<
2018-12-13
>
danieltdt13:12:29

Hello! How do you guys measure your clojure production apps? I've reading about riemann[1] and metrics[2] but I would like to hear about pros and cons if someone have already tested these libs 1 https://github.com/riemann/riemann 2 https://github.com/metrics-clojure/metrics-clojure

chrisblom14:12:51

i didn't find riemann very useful (as it does not store data, and you can't query stuff ad hoc)

👍 4
chrisblom14:12:25

metrics-clojure is ok, it is just a thin wrapper around io.dropwizard,metrics

👍 8
danielstockton14:12:51

If you're on AWS, Cloudwatch can do the job. I know the other solutions are probably more powerful, but they also require more setup.

👍 4
3Jane14:12:19

is riemann more or less logstash?

✔️ 4
3Jane14:12:13

then graylog might be useful as a rolling storage

👍 4
danieltdt15:12:20

there is a plugin for logstash & riemann https://www.elastic.co/guide/en/logstash/current/plugins-outputs-riemann.html From the description: > Riemann is a network event stream processing system. > >While Riemann is very similar conceptually to Logstash, it has much more in terms of being a monitoring system replacement. > >Riemann is used in Logstash much like statsd or other metric-related outputs

orestis16:12:13

I’ve been eyeing http://honeycomb.io lately, I like the idea of wide “events” and observability instead of metrics and logs.

👍 4
kulminaator17:12:41

Anyone here running clojure app on core async on 24+ cores? Do channels scale nicely there?

alexmiller17:12:49

“channels” don’t really have a thing to scale

alexmiller17:12:14

go blocks use a fixed size thread pool for compute, which defaults to 8 thread, so if you’re using those, you would probably want to increase

didibus18:12:40

Oh, I always assumed it was 2 times num of cores + 2. Is that only the agent pool then?

alexmiller18:12:48

different pools

alexmiller18:12:27

and there are two agents pools - the compute one is 2n+2, the io one is a caching thread pool without a fixed size

didibus05:12:05

I see, any reason why the core.async one isn't 2n+2 also ?

alexmiller13:12:59

There is no “right” answer - that’s why it’s configurable

alexmiller17:12:47

system property = clojure.core.async.pool-size

alexmiller17:12:35

channels are just queues, and entirely dependent on how you use them architecturally whether they “scale”

emccue19:12:25

I've noticed that alot of the trending Java libraries on github are written in what i think is chinese

emccue19:12:08

Wonder what kind of cool tools and libraries I am missing out on because of the language barrier

andy.fingerhut19:12:45

There is a different kind of software "porting" that could be done 🙂

andy.fingerhut19:12:03

Or one could even imagine a refactoring tool that replaced all identifiers X with Y in another language, plus comments, but of course the input to such a refactoring tool would need to be manually created (you could try Google translate or similar on the comments, but good luck what comes out).

emccue19:12:05

its not so much about reading code i have in hand

emccue19:12:11

google translate works well enough

emccue19:12:17

its about discovery

emccue19:12:11

like, how do I know what that side of the world is working on right now?

emccue19:12:12

It might be (is) arrogrant, but I feel like i could successfully use a tool even with foreign language docs or even identifiers

dpsutton19:12:31

that sounds like something a haskeller could pull off but not a dynamic language

dpsutton19:12:08

there is some truth to look at the types. but i can't imagine trying to use async, aleph, or some react wrapper if the identifiers, doc strings, and docs were unintelliglbe to me

dpsutton19:12:00

i can barely use the english versions 🙂

4
emccue19:12:10

Well java doesnt have that dork google that haskellers have, but its not as bad as clojure would be

dpsutton19:12:44

i'm super jealous of hoogle

Chris23:12:58

Wouldn’t any custom types also be in the foreign language too? A signature like 下载照片 :: URL -> 照片 wouldn’t tell me enough to use the function

Chris23:12:59

much less anything simpler like String -> String

dpsutton23:12:45

i was just thinking they have the best chance. there's no way i could do it ¯\(ツ)

Chris23:12:10

Hehe, me neither 🙂