aboutsummaryrefslogtreecommitdiff
path: root/test/exdatadog/metrics_test.exs
diff options
context:
space:
mode:
Diffstat (limited to 'test/exdatadog/metrics_test.exs')
-rw-r--r--test/exdatadog/metrics_test.exs85
1 files changed, 85 insertions, 0 deletions
diff --git a/test/exdatadog/metrics_test.exs b/test/exdatadog/metrics_test.exs
new file mode 100644
index 0000000..17f44b4
--- /dev/null
+++ b/test/exdatadog/metrics_test.exs
@@ -0,0 +1,85 @@
+defmodule Exdatadog.Metrics.Test do
+ @moduledoc """
+ Provides testing for Exdatadog.Metrics
+ """
+ use ExUnit.Case
+ use ExVCR.Mock, adapter: ExVCR.Adapter.Hackney
+
+ @cassette_dir "test/fixture/vcr_cassettes/metrics"
+
+ alias Exdatadog.Client
+ import Exdatadog.Metrics
+
+ @lint {Credo.Check.Design.AliasUsage, false}
+ setup_all do
+ ExVCR.Config.cassette_library_dir(@cassette_dir)
+ end
+
+ test "can get list of active metrics" do
+ client = Client.new()
+ expected = {200, %{"metrics" => ["system.load.1",
+ "system.load.15",
+ "system.load.5",
+ "system.load.norm.1",
+ "system.load.norm.15",
+ "system.load.norm.5",
+ "system.mem.buffered",
+ "system.mem.cached",
+ "system.mem.committed",
+ "system.mem.free"],
+ "from" => 1_467_815_773}
+ }
+ use_cassette "metrics" do
+ assert metrics(1_467_815_773, client) == expected
+ end
+ end
+
+ test "can post metrics" do
+ client = Client.new(%{api_key: "1234"})
+ expected = {202, %{"status" => "ok"}}
+ post_body = %{"series" => [%{"metric" => "test_metric",
+ "points" => [[1_430_311_800_000, 20]],
+ "type" => "gauge",
+ "host" => "test.example.com",
+ "tags" => ["environment:test"]}]
+ }
+ use_cassette "post_series" do
+ assert post_series(post_body, client) == expected
+ end
+ end
+
+ test "can query metrics" do
+ client = Client.new()
+ expected = {200,
+ %{"status" => "ok",
+ "res_type" => "time_series",
+ "series" => [%{"metric" =>"system.cpu.idle",
+ "attributes" => %{},
+ "display_name" => "system.cpu.idle",
+ "unit" => nil,
+ "pointlist" => [[1_430_311_800_000,
+ 98.19375610351562],
+ [1_430_312_400_000,
+ 99.85856628417969]],
+ "end" => 1_430_312_999_000,
+ "interval" => 600,
+ "start" => 1_430_311_800_000,
+ "length" => 2,
+ "aggr" => nil,
+ "scope" => "host:vagrant-ubuntu-trusty-64",
+ "expression" => "system.cpu.idle{host:vagrant-ubuntu-trusty-64}"}],
+ "from_date" => 1_430_226_140_000,
+ "group_by" => ["host"],
+ "to_date" => 1_430_312_540_000,
+ "query" => "system.cpu.idle{*}by{host}",
+ "message" => ""}
+ }
+ use_cassette "query" do
+ assert query(1_430_311_800_000,
+ 1_430_312_999_000,
+ "system.cpu.idle{*}by{host}",
+ client) == expected
+ end
+ end
+
+end