Packages

curltime is an Elixir package that allows you to easily get website response times.

Current section

Files

Jump to
curltime lib curltime.ex
Raw

lib/curltime.ex

defmodule Curltime do
def time_namelookup(url) do
command(url, "time_namelookup")
end
def time_connect(url) do
command(url, "time_connect")
end
def time_appconnect(url) do
command(url, "time_appconnect")
end
def time_pretransfer(url) do
command(url, "time_pretransfer")
end
def time_redirect(url) do
command(url, "time_redirect")
end
def time_starttransfer(url) do
command(url, "time_starttransfer")
end
def time_total(url) do
command(url, "time_total")
end
def command(url, measurement) do
args = ["-w", "%{time_namelookup}, %{time_connect}, %{time_appconnect}, %{time_pretransfer}, %{time_redirect}, %{time_starttransfer}, %{time_total}", "-o", "/dev/null", "-s", url]
{result, _} = System.cmd("curl", args, [])
values = result |> String.split(",")
case measurement do
"time_namelookup" -> Enum.at(values, 0)
"time_connect" -> Enum.at(values, 1)
"time_appconnect" -> Enum.at(values, 2)
"time_pretransfer" -> Enum.at(values, 3)
"time_redirect" -> Enum.at(values, 4)
"time_starttransfer" -> Enum.at(values, 5)
"time_total" -> Enum.at(values, 6)
_ -> -1
end
end
end