aboutsummaryrefslogtreecommitdiff
path: root/lib/ex_prometheus_io.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ex_prometheus_io.ex')
-rw-r--r--lib/ex_prometheus_io.ex31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/ex_prometheus_io.ex b/lib/ex_prometheus_io.ex
index e1c9427..cac39a5 100644
--- a/lib/ex_prometheus_io.ex
+++ b/lib/ex_prometheus_io.ex
@@ -1,2 +1,33 @@
defmodule ExPrometheusIo do
+ use Application
+
+ def start(_, _) do
+ ExPrometheusIo.Supervisor.start_link
+ end
+
+ def query(query, _opts \\ []) do
+ query_opts = [query]
+ spawn_query(:fetch_query, query_opts)
+ end
+
+ def range(query, start_ts, end_ts, step, _opts \\ []) do
+ query_opts = [query, start_ts, end_ts, step]
+ spawn_query(:fetch_range, query_opts)
+ end
+
+ def series(matches, _opts \\ []) do
+ spawn_query(:fetch_series, [matches])
+ end
+
+ defp spawn_query(fetch, query_opts, _opts \\ []) do
+ query_ref = make_ref()
+ query_opts = query_opts ++ [query_ref, self()]
+ {:ok, pid} = Task.Supervisor.start_child(
+ ExPrometheusIo.QuerySupervisor,
+ ExPrometheusIo.Query,
+ fetch,
+ query_opts)
+ {pid, query_ref}
+ end
+
end