Client for AppOptics API
If available in Hex, the package can be installed
by adding app_optex
to your list of dependencies in mix.exs
:
def deps do
[
{:app_optex, "~> 0.1.0"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/app_optex.
Uses the APPOPTICS_TOKEN
environment variable.
iex> AppOptex.measurement("my.mertic", 10, %{my_tag: "value"})
:ok
iex> AppOptex.measurement(%{name: "my.mertic", value: 10}, %{my_tag: "value"})
:ok
iex> AppOptex.measurements([%{name: "my.mertic", value: 1}, %{name: "my.other_mertic", value: 5}], %{my_tag: "value"})
:ok
iex> AppOptex.read_measurements("my.mertic", 60, %{duration: 86400})
%{
"attributes" => %{"created_by_ua" => "hackney/1.15.1"},
"links" => [],
"name" => "my.mertic",
"resolution" => 60,
"series" => [
%{
"measurements" => [%{"time" => 1554720060, "value" => 10.0}],
"tags" => %{"my_tag" => "value"}
}
]
}
These tags will be applied to every sent measurement.
iex> AppOptex.put_global_tags(%{my: "tag"})
:ok
iex> AppOptex.get_global_tags()
%{my: "tag"}
iex> AppOptex.push_to_queue([%{name: "my.metric.1", value: 1}], %{test: true})
:ok
iex> AppOptex.push_to_queue([%{name: "my.metric.2", value: 1}], %{test: true})
:ok
iex> AppOptex.push_to_queue([%{name: "my.metric.3", value: 1}], %{test: true})
:ok
iex> AppOptex.flush_queue()
:ok