Packages

Primitives for emitting and linting Datadog query syntax.

Current section

Files

Jump to
datadog_query src datadog_query@monitor.erl
Raw

src/datadog_query@monitor.erl

-module(datadog_query@monitor).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/datadog_query/monitor.gleam").
-export([comparator_to_string/1, window_to_string/1, to_string/1]).
-export_type([evaluation_window/0, comparator/0, monitor/0]).
-type evaluation_window() :: last1m |
last5m |
last10m |
last15m |
last30m |
last1h |
last2h |
last4h |
last1d.
-type comparator() :: gt | gte | lt | lte.
-type monitor() :: {monitor,
datadog_query@query:aggregator(),
evaluation_window(),
datadog_query@query:'query'(),
comparator(),
float()}.
-file("src/datadog_query/monitor.gleam", 73).
-spec format_threshold(float()) -> binary().
format_threshold(F) ->
Truncated = erlang:trunc(F),
case erlang:float(Truncated) =:= F of
true ->
erlang:integer_to_binary(Truncated);
false ->
gleam_stdlib:float_to_string(F)
end.
-file("src/datadog_query/monitor.gleam", 64).
-spec comparator_to_string(comparator()) -> binary().
comparator_to_string(Comparator) ->
case Comparator of
gt ->
<<">"/utf8>>;
gte ->
<<">="/utf8>>;
lt ->
<<"<"/utf8>>;
lte ->
<<"<="/utf8>>
end.
-file("src/datadog_query/monitor.gleam", 50).
-spec window_to_string(evaluation_window()) -> binary().
window_to_string(Window) ->
case Window of
last1m ->
<<"last_1m"/utf8>>;
last5m ->
<<"last_5m"/utf8>>;
last10m ->
<<"last_10m"/utf8>>;
last15m ->
<<"last_15m"/utf8>>;
last30m ->
<<"last_30m"/utf8>>;
last1h ->
<<"last_1h"/utf8>>;
last2h ->
<<"last_2h"/utf8>>;
last4h ->
<<"last_4h"/utf8>>;
last1d ->
<<"last_1d"/utf8>>
end.
-file("src/datadog_query/monitor.gleam", 38).
-spec to_string(monitor()) -> binary().
to_string(Monitor) ->
<<<<<<<<<<<<<<<<(datadog_query@query:aggregator_to_string(
erlang:element(2, Monitor)
))/binary,
"("/utf8>>/binary,
(window_to_string(erlang:element(3, Monitor)))/binary>>/binary,
"):"/utf8>>/binary,
(datadog_query@query:to_string(
erlang:element(4, Monitor)
))/binary>>/binary,
" "/utf8>>/binary,
(comparator_to_string(erlang:element(5, Monitor)))/binary>>/binary,
" "/utf8>>/binary,
(format_threshold(erlang:element(6, Monitor)))/binary>>.