Current section
Files
Jump to
Current section
Files
lib/utils.ex
defmodule Elixometer.Utils do
@moduledoc false
@behaviour Elixometer.Formatter
# Name may already have been converted elsewhere.
def format(_metric_type, name) when is_list(name) do
name
end
def format(metric_type, name) when is_bitstring(name) do
config = Application.get_all_env(:elixometer)
prefix = config[:metric_prefix] || "elixometer"
base_name =
case env(config[:env]) do
nil -> "#{prefix}.#{metric_type}.#{name}"
:prod -> "#{prefix}.#{metric_type}.#{name}"
env -> "#{prefix}.#{env}.#{metric_type}.#{name}"
end
String.split(base_name, ".")
end
defp env({:system, var}) do
case System.get_env(var) do
nil -> nil
v -> String.to_atom(v)
end
end
defp env(val), do: val
end