From 09977eccf07d6c75c0fcf933c02c009b0afa8541 Mon Sep 17 00:00:00 2001 From: kballou Date: Fri, 25 Mar 2016 15:52:55 -0600 Subject: Refactor `Query` to use a pluggable http library * Refactor `lib/ex_prometheus_io/query.ex` use a pluggable client module * Add stub environment configs, setup `test.exs` to use a test support module --- config/config.exs | 2 ++ config/dev.exs | 1 + config/prod.exs | 1 + config/test.exs | 3 +++ lib/ex_prometheus_io/query.ex | 3 ++- 5 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 config/dev.exs create mode 100644 config/prod.exs create mode 100644 config/test.exs diff --git a/config/config.exs b/config/config.exs index eecc967..f3049ea 100644 --- a/config/config.exs +++ b/config/config.exs @@ -1,3 +1,5 @@ use Mix.Config config :ex_prometheus_io, hostname: "prometheus:9090" + +import_config "#{Mix.env}.exs" diff --git a/config/dev.exs b/config/dev.exs new file mode 100644 index 0000000..d2d855e --- /dev/null +++ b/config/dev.exs @@ -0,0 +1 @@ +use Mix.Config diff --git a/config/prod.exs b/config/prod.exs new file mode 100644 index 0000000..d2d855e --- /dev/null +++ b/config/prod.exs @@ -0,0 +1 @@ +use Mix.Config diff --git a/config/test.exs b/config/test.exs new file mode 100644 index 0000000..b43419c --- /dev/null +++ b/config/test.exs @@ -0,0 +1,3 @@ +use Mix.Config + +config :ex_prometheus_io, http_client: ExPrometheusIo.Test.HTTPClient diff --git a/lib/ex_prometheus_io/query.ex b/lib/ex_prometheus_io/query.ex index 20b01a9..0c346b5 100644 --- a/lib/ex_prometheus_io/query.ex +++ b/lib/ex_prometheus_io/query.ex @@ -7,8 +7,9 @@ defmodule ExPrometheusIo.Query do |> send_results(query_ref, owner) end + @http Application.get_env(:ex_prometheus_io, :http_client) || :httpc defp fetch_json(uri) do - {:ok, {_, _, body}} = :httpc.request(uri |> String.to_char_list()) + {:ok, {_, _, body}} = @http.request(uri |> String.to_char_list()) body end -- cgit v1.2.1