зеркало из https://github.com/microsoft/statsd.git
40 строки
1.1 KiB
Julia
40 строки
1.1 KiB
Julia
module StatsdClient
|
|
# A simple statsd client written in Julia
|
|
# Usage:
|
|
# > using StatsdClient
|
|
# > increment("example.increment")
|
|
# > decrement("example.decrement")
|
|
# > count("example.count",8)
|
|
# > timing("example.timing",1)
|
|
# > gauge("example.gauge",123)
|
|
# > set("example.set","7623")
|
|
# Note: Requires Julia 0.3 with commit sha 6585e3de1b or later.
|
|
|
|
# Configure these to your liking
|
|
global server_config = {"server_address" => IPv4(127,0,0,1),
|
|
"server_port" => 8125}
|
|
|
|
function _make_send(ip,port)
|
|
sock = UdpSocket()
|
|
Base.bind(sock,ip,0)
|
|
Base.setopt(sock,enable_broadcast=1)
|
|
(data)->send(sock,ip,port,data)
|
|
end
|
|
|
|
send_msg = _make_send(server_config["server_address"],
|
|
server_config["server_port"])
|
|
|
|
increment(metric) = count(metric,1)
|
|
|
|
decrement(metric) = count(metric,-1)
|
|
|
|
count(metric,value) = send_msg(string(metric,":",value,"|c"))
|
|
|
|
timing(metric,value) = send_msg(string(metric,":",value,"|ms"))
|
|
|
|
gauge(metric,value) = send_msg(string(metric,":",value,"|g"))
|
|
|
|
set(metric,value) = send_msg(string(metric,":",value,"|s"))
|
|
|
|
end
|