diff --git a/VERSION b/VERSION index cd57a8b9..399088bf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.5 +2.1.6 diff --git a/lib/supavisor/monitoring/prom_ex.ex b/lib/supavisor/monitoring/prom_ex.ex index 8a7c50ca..700dffc1 100644 --- a/lib/supavisor/monitoring/prom_ex.ex +++ b/lib/supavisor/monitoring/prom_ex.ex @@ -58,7 +58,7 @@ defmodule Supavisor.Monitoring.PromEx do end end - @spec get_metrics() :: String.t() + @spec get_metrics() :: iodata() def get_metrics do metrics_tags = case Application.fetch_env(:supavisor, :metrics_tags) do @@ -71,7 +71,7 @@ defmodule Supavisor.Monitoring.PromEx do metrics = PromEx.get_metrics(__MODULE__) |> String.split("\n") - |> Enum.map_join("\n", &parse_and_add_tags(&1, def_tags)) + |> Enum.map(&parse_and_add_tags(&1, def_tags)) Supavisor.Monitoring.PromEx.ETSCronFlusher |> PromEx.ETSCronFlusher.defer_ets_flush() @@ -81,7 +81,7 @@ defmodule Supavisor.Monitoring.PromEx do @spec do_cache_tenants_metrics() :: list def do_cache_tenants_metrics do - metrics = get_metrics() |> String.split("\n") + metrics = get_metrics() |> IO.iodata_to_binary() |> String.split("\n") pools = Registry.select(Supavisor.Registry.TenantClients, [{{:"$1", :_, :_}, [], [:"$1"]}]) @@ -109,7 +109,7 @@ defmodule Supavisor.Monitoring.PromEx do end end - @spec parse_and_add_tags(String.t(), String.t()) :: String.t() + @spec parse_and_add_tags(String.t(), String.t()) :: iodata() defp parse_and_add_tags(line, def_tags) do case Regex.run(~r/(?!\#)^(\w+)(?:{(.*?)})?\s*(.+)$/, line) do nil -> @@ -122,10 +122,10 @@ defmodule Supavisor.Monitoring.PromEx do if tags == "" do def_tags else - "#{tags},#{def_tags}" + [tags, ",", def_tags] end - "#{key}{#{tags}} #{value}" + [key, "{", tags, "}", value, "\n"] end end diff --git a/lib/supavisor_web/controllers/metrics_controller.ex b/lib/supavisor_web/controllers/metrics_controller.ex index cd34d67a..2b9f92c6 100644 --- a/lib/supavisor_web/controllers/metrics_controller.ex +++ b/lib/supavisor_web/controllers/metrics_controller.ex @@ -56,6 +56,6 @@ defmodule SupavisorWeb.MetricsController do end def merge_node_metrics({_, {_node, metrics}}, acc) do - [metrics <> "\n" | acc] + [metrics, "\n" | acc] end end