Current section

Files

Jump to
new_relic_agent lib new_relic util request_start.ex
Raw

lib/new_relic/util/request_start.ex

defmodule NewRelic.Util.RequestStart do
@moduledoc false
def parse("t=" <> time), do: parse(time)
def parse(time) do
with {time, _} <- Float.parse(time),
:next <- check_time_unit(time / 1000_000),
:next <- check_time_unit(time / 1000),
:next <- check_time_unit(time) do
:error
else
{:ok, queue_start_s} -> {:ok, queue_start_s}
_ -> :error
end
end
@earliest ~N[2000-01-01 00:00:00]
|> DateTime.from_naive!("Etc/UTC")
|> DateTime.to_unix()
defp check_time_unit(time) do
(time > @earliest && {:ok, time}) || :next
end
end