diff --git a/.github/workflows/elixir.yml b/.github/workflows/elixir.yml index c18f663d..17211268 100644 --- a/.github/workflows/elixir.yml +++ b/.github/workflows/elixir.yml @@ -19,14 +19,14 @@ jobs: strategy: matrix: include: - - elixir: '1.18' - otp: '27' - - elixir: '1.17' - otp: '27' - - elixir: '1.16' - otp: '26' - - elixir: '1.15' - otp: '26' + - elixir: "1.19" + otp: "28" + - elixir: "1.18" + otp: "27" + - elixir: "1.17" + otp: "26" + - elixir: "1.16" + otp: "26" steps: - name: Checkout diff --git a/examples/mix.lock b/examples/mix.lock index f9a47ce9..e0768731 100644 --- a/examples/mix.lock +++ b/examples/mix.lock @@ -1,5 +1,5 @@ %{ - "absinthe": {:hex, :absinthe, "1.6.4", "d2958908b72ce146698de8ccbc03622630471eb0e354e06823aaef183e5067bd", [:mix], [{:dataloader, "~> 1.0.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6e9c1cf36d86c704cb9a9c78db62d1c2676b03e0f61a28a23fc42749e8cd41ae"}, + "absinthe": {:hex, :absinthe, "1.7.10", "b33471b593260f148d05e4d771d1857e07b70a680f89cfa75184098bef4ec893", [:mix], [{:dataloader, "~> 1.0.0 or ~> 2.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ffda95735364c041a65a4b0e02ffb04eabb1e52ab664fa7eeecefb341449e8c2"}, "absinthe_plug": {:hex, :absinthe_plug, "1.5.8", "38d230641ba9dca8f72f1fed2dfc8abd53b3907d1996363da32434ab6ee5d6ab", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "bbb04176647b735828861e7b2705465e53e2cf54ccf5a73ddd1ebd855f996e5a"}, "bandit": {:hex, :bandit, "1.5.7", "6856b1e1df4f2b0cb3df1377eab7891bec2da6a7fd69dc78594ad3e152363a50", [:mix], [{:hpax, "~> 1.0.0", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "f2dd92ae87d2cbea2fa9aa1652db157b6cba6c405cb44d4f6dd87abba41371cd"}, "castore": {:hex, :castore, "0.1.9", "eb08a94c12ebff92a92d844c6ccd90728dc7662aab9bdc8b3b785ba653c499d5", [:mix], [], "hexpm", "99c3a38ad9c0bab03fee1418c98390da1a31f3b85e317db5840d51a1443d26c8"}, @@ -9,7 +9,7 @@ "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.3.1", "ebd1a1d7aff97f27c66654e78ece187abdc646992714164380d8a041eda16754", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "3a6efd3366130eab84ca372cbd4a7d3c3a97bdfcfb4911233b035d117063f0af"}, "cowlib": {:hex, :cowlib, "2.12.1", "a9fa9a625f1d2025fe6b462cb865881329b5caff8f1854d1cbc9f9533f00e1e1", [:make, :rebar3], [], "hexpm", "163b73f6367a7341b33c794c4e88e7dbfe6498ac42dcd69ef44c5bc5507c8db0"}, "db_connection": {:hex, :db_connection, "2.6.0", "77d835c472b5b67fc4f29556dee74bf511bbafecdcaf98c27d27fa5918152086", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c2f992d15725e721ec7fbc1189d4ecdb8afef76648c746a8e1cad35e3b8a35f3"}, - "decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"}, + "decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"}, "ecto": {:hex, :ecto, "3.11.1", "4b4972b717e7ca83d30121b12998f5fcdc62ba0ed4f20fd390f16f3270d85c3e", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ebd3d3772cd0dfcd8d772659e41ed527c28b2a8bde4b00fe03e0463da0f1983b"}, "ecto_sql": {:hex, :ecto_sql, "3.11.1", "e9abf28ae27ef3916b43545f9578b4750956ccea444853606472089e7d169470", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:myxql, "~> 0.6.0", [hex: :myxql, repo: "hexpm", optional: true]}, {:postgrex, "~> 0.16.0 or ~> 0.17.0 or ~> 1.0", [hex: :postgrex, repo: "hexpm", optional: true]}, {:tds, "~> 2.1.1 or ~> 2.2", [hex: :tds, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ce14063ab3514424276e7e360108ad6c2308f6d88164a076aac8a387e1fea634"}, "ecto_sqlite3": {:hex, :ecto_sqlite3, "0.14.0", "8710aa6de137a9c428fc86306b574777e9d545534b0259030a325948d43fc740", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:ecto, "~> 3.11", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.11", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:exqlite, "~> 0.9", [hex: :exqlite, repo: "hexpm", optional: false]}], "hexpm", "4f69e5df5bdf8b98d80797b1a88b1d24b13ad9f187a553241c2aa6cb7447a672"}, @@ -25,7 +25,7 @@ "mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"}, "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, "myxql": {:hex, :myxql, "0.6.4", "1502ea37ee23c31b79725b95d4cc3553693c2bda7421b1febc50722fd988c918", [:mix], [{:db_connection, "~> 2.4.1 or ~> 2.5", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:geo, "~> 3.4", [hex: :geo, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "a3307f4671f3009d3708283649adf205bfe280f7e036fc8ef7f16dbf821ab8e9"}, - "nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"}, + "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"}, "oban": {:hex, :oban, "2.18.3", "1608c04f8856c108555c379f2f56bc0759149d35fa9d3b825cb8a6769f8ae926", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "36ca6ca84ef6518f9c2c759ea88efd438a3c81d667ba23b02b062a0aa785475e"}, "parse_trans": {:hex, :parse_trans, "3.3.1", "16328ab840cc09919bd10dab29e431da3af9e9e7e7e6f0089dd5a2d2820011d8", [:rebar3], [], "hexpm", "07cd9577885f56362d414e8c4c4e6bdf10d43a8767abb92d24cbe8b24c54888b"}, "phoenix": {:hex, :phoenix, "1.7.10", "02189140a61b2ce85bb633a9b6fd02dff705a5f1596869547aeb2b2b95edd729", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "cf784932e010fd736d656d7fead6a584a4498efefe5b8227e9f383bf15bb79d0"}, diff --git a/lib/new_relic/distributed_trace/w3c_trace_context/trace_state.ex b/lib/new_relic/distributed_trace/w3c_trace_context/trace_state.ex index b43f3f74..df571ea0 100644 --- a/lib/new_relic/distributed_trace/w3c_trace_context/trace_state.ex +++ b/lib/new_relic/distributed_trace/w3c_trace_context/trace_state.ex @@ -91,12 +91,13 @@ defmodule NewRelic.DistributedTrace.W3CTraceContext.TraceState do length(members) <= 32 end - @key_wo_vendor ~r/^[0-9a-z][_0-9a-z\-\*\/]{0,255}$/ - @key_with_vendor ~r/^[0-9a-z][_0-9a-z\-\*\/]{0,240}@[0-9a-z][_0-9a-z\-\*\/]{0,13}$/ - @value ~r/^([\x20-\x2b\x2d-\x3c\x3e-\x7e]{0,255}[\x21-\x2b\x2d-\x3c\x3e-\x7e])$/ + defp key_wo_vendor, do: ~r/^[0-9a-z][_0-9a-z\-\*\/]{0,255}$/ + defp key_with_vendor, do: ~r/^[0-9a-z][_0-9a-z\-\*\/]{0,240}@[0-9a-z][_0-9a-z\-\*\/]{0,13}$/ + defp valid_value, do: ~r/^([\x20-\x2b\x2d-\x3c\x3e-\x7e]{0,255}[\x21-\x2b\x2d-\x3c\x3e-\x7e])$/ + defp valid_member?([key, value]) do - valid_key? = Regex.match?(@key_wo_vendor, key) || Regex.match?(@key_with_vendor, key) - valid_value? = Regex.match?(@value, value) + valid_key? = Regex.match?(key_wo_vendor(), key) || Regex.match?(key_with_vendor(), key) + valid_value? = Regex.match?(valid_value(), value) valid_key? && valid_value? end diff --git a/lib/new_relic/harvest/telemetry_sdk/config.ex b/lib/new_relic/harvest/telemetry_sdk/config.ex index 85b5f53e..2c294acb 100644 --- a/lib/new_relic/harvest/telemetry_sdk/config.ex +++ b/lib/new_relic/harvest/telemetry_sdk/config.ex @@ -10,12 +10,13 @@ defmodule NewRelic.Harvest.TelemetrySdk.Config do Application.get_env(:new_relic_agent, key, @default[key]) end - @region_matcher ~r/^(?\D+)/ - @env_matcher ~r/^(?.+)-collector/ + defp region_matcher, do: ~r/^(?\D+)/ + defp env_matcher, do: ~r/^(?.+)-collector/ + def determine_hosts(host, region) do - env = host && Regex.named_captures(@env_matcher, host)["env"] + env = host && Regex.named_captures(env_matcher(), host)["env"] env = env && env <> "-" - region = region && Regex.named_captures(@region_matcher, region)["region"] <> "." + region = region && Regex.named_captures(region_matcher(), region)["region"] <> "." %{ log: "https://#{env}log-api.#{region}newrelic.com/log/v1", diff --git a/lib/new_relic/init.ex b/lib/new_relic/init.ex index 2b2acc52..dcea7bf3 100644 --- a/lib/new_relic/init.ex +++ b/lib/new_relic/init.ex @@ -46,11 +46,12 @@ defmodule NewRelic.Init do }) end - @region_matcher ~r/^(?.+?)x/ + defp region_matcher, do: ~r/^(?.+?)x/ + def determine_region(nil), do: nil def determine_region(license_key) do - case Regex.named_captures(@region_matcher, license_key) do + case Regex.named_captures(region_matcher(), license_key) do %{"prefix" => prefix} -> String.trim_trailing(prefix, "x") _ -> nil end @@ -191,11 +192,12 @@ defmodule NewRelic.Init do def parse_labels(nil), do: [] - @label_splitter ~r/;|:/ def parse_labels(label_string) do label_string - |> String.split(@label_splitter, trim: true) + |> String.split(label_splitter(), trim: true) |> Enum.map(&String.trim/1) |> Enum.chunk_every(2, 2, :discard) end + + defp label_splitter, do: ~r/;|:/ end diff --git a/lib/new_relic/telemetry/ecto/metadata.ex b/lib/new_relic/telemetry/ecto/metadata.ex index 5eafb3ed..6815a05a 100644 --- a/lib/new_relic/telemetry/ecto/metadata.ex +++ b/lib/new_relic/telemetry/ecto/metadata.ex @@ -43,17 +43,16 @@ defmodule NewRelic.Telemetry.Ecto.Metadata do # Exqlite: table @esc ~w(" ` [ ]) - @capture %{ - select: ~r/FROM (?\S+)/, - insert: ~r/INSERT INTO (?
\S+)/, - update: ~r/UPDATE (?
\S+)/, - delete: ~r/FROM (?
\S+)/, - create: ~r/CREATE TABLE( IF NOT EXISTS)? (?
\S+)/ - } def parse_query(operation, query) do - case Regex.named_captures(@capture[operation], query) do + case Regex.named_captures(capture(operation), query) do %{"table" => table} -> {operation, String.replace(table, @esc, "")} _ -> {operation, :other} end end + + defp capture(:select), do: ~r/FROM (?
\S+)/ + defp capture(:insert), do: ~r/INSERT INTO (?
\S+)/ + defp capture(:update), do: ~r/UPDATE (?
\S+)/ + defp capture(:delete), do: ~r/FROM (?
\S+)/ + defp capture(:create), do: ~r/CREATE TABLE( IF NOT EXISTS)? (?
\S+)/ end diff --git a/lib/new_relic/util/vendor.ex b/lib/new_relic/util/vendor.ex index f80bad5c..36c7e2df 100644 --- a/lib/new_relic/util/vendor.ex +++ b/lib/new_relic/util/vendor.ex @@ -40,14 +40,15 @@ defmodule NewRelic.Util.Vendor do end end - @cgroup_matcher ~r/\d+:.*cpu[,:].*(?[0-9a-f]{64}).*/ + defp cgroup_matcher, do: ~r/\d+:.*cpu[,:].*(?[0-9a-f]{64}).*/ + defp docker_vendor_map(cgroup_filename) do File.read(cgroup_filename) |> case do {:ok, cgroup_file} -> cgroup_file |> String.split("\n", trim: true) - |> Enum.find_value(&Regex.named_captures(@cgroup_matcher, &1)) + |> Enum.find_value(&Regex.named_captures(cgroup_matcher(), &1)) _ -> nil diff --git a/mix.exs b/mix.exs index 92cd1b39..b5b4c3e6 100644 --- a/mix.exs +++ b/mix.exs @@ -55,7 +55,7 @@ defmodule NewRelic.Mixfile do {:redix, ">= 0.11.0", optional: true}, {:oban, ">= 2.0.0", optional: true}, {:finch, ">= 0.18.0", optional: true}, - {:absinthe, ">= 1.6.0", optional: true} + {:absinthe, ">= 1.7.10", optional: true} ] end diff --git a/mix.lock b/mix.lock index bf71bb2e..c1f4b62f 100644 --- a/mix.lock +++ b/mix.lock @@ -1,5 +1,5 @@ %{ - "absinthe": {:hex, :absinthe, "1.7.8", "43443d12ad2b4fcce60e257ac71caf3081f3d5c4ddd5eac63a02628bcaf5b556", [:mix], [{:dataloader, "~> 1.0.0 or ~> 2.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "c4085df201892a498384f997649aedb37a4ce8a726c170d5b5617ed3bf45d40b"}, + "absinthe": {:hex, :absinthe, "1.7.10", "b33471b593260f148d05e4d771d1857e07b70a680f89cfa75184098bef4ec893", [:mix], [{:dataloader, "~> 1.0.0 or ~> 2.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:opentelemetry_process_propagator, "~> 0.2.1 or ~> 0.3", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "ffda95735364c041a65a4b0e02ffb04eabb1e52ab664fa7eeecefb341449e8c2"}, "bandit": {:hex, :bandit, "1.6.4", "59cbc8e02f84fcad967bfed6b8a8261821c93a7ec4f835b46d1846b1120a91ec", [:mix], [{:hpax, "~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "8e156c009a77bb100fd78d5408684d01df1526f549c42614f8f9f27f44f1f7a7"}, "castore": {:hex, :castore, "1.0.11", "4bbd584741601eb658007339ea730b082cc61f3554cf2e8f39bf693a11b49073", [:mix], [], "hexpm", "e03990b4db988df56262852f20de0f659871c35154691427a5047f4967a16a62"}, "cowboy": {:hex, :cowboy, "2.12.0", "f276d521a1ff88b2b9b4c54d0e753da6c66dd7be6c9fca3d9418b561828a3731", [:make, :rebar3], [{:cowlib, "2.13.0", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "8a7abe6d183372ceb21caa2709bec928ab2b72e18a3911aa1771639bef82651e"}, @@ -20,7 +20,7 @@ "mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"}, "mint": {:hex, :mint, "1.6.2", "af6d97a4051eee4f05b5500671d47c3a67dac7386045d87a904126fd4bbcea2e", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "5ee441dffc1892f1ae59127f74afe8fd82fda6587794278d924e4d90ea3d63f9"}, "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, - "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, + "nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"}, "nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"}, "oban": {:hex, :oban, "2.18.3", "1608c04f8856c108555c379f2f56bc0759149d35fa9d3b825cb8a6769f8ae926", [:mix], [{:ecto_sql, "~> 3.10", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:ecto_sqlite3, "~> 0.9", [hex: :ecto_sqlite3, repo: "hexpm", optional: true]}, {:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.16", [hex: :postgrex, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "36ca6ca84ef6518f9c2c759ea88efd438a3c81d667ba23b02b062a0aa785475e"}, "phoenix": {:hex, :phoenix, "1.7.18", "5310c21443514be44ed93c422e15870aef254cf1b3619e4f91538e7529d2b2e4", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.7", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "1797fcc82108442a66f2c77a643a62980f342bfeb63d6c9a515ab8294870004e"}, diff --git a/test/telemetry/finch_test.exs b/test/telemetry/finch_test.exs index f047ca1d..e04921d3 100644 --- a/test/telemetry/finch_test.exs +++ b/test/telemetry/finch_test.exs @@ -11,27 +11,27 @@ defmodule NewRelic.Telemetry.FinchTest do end test "finch external metrics" do - request("https://httpstat.us/200") + request("https://httpbin.org/status/200") metrics = TestHelper.gather_harvest(Collector.Metric.Harvester) - assert TestHelper.find_metric(metrics, "External/httpstat.us/Finch/GET", 1) - assert TestHelper.find_metric(metrics, "External/httpstat.us/all", 1) + assert TestHelper.find_metric(metrics, "External/httpbin.org/Finch/GET", 1) + assert TestHelper.find_metric(metrics, "External/httpbin.org/all", 1) assert TestHelper.find_metric(metrics, "External/all", 1) end test "[:finch, :request, :stop] - 200" do Task.async(fn -> NewRelic.start_transaction("FinchTest", "200") - request("https://httpstat.us/200") + request("https://httpbin.org/status/200") end) |> Task.await() span_events = TestHelper.gather_harvest(Collector.SpanEvent.Harvester) - external_span = TestHelper.find_event(span_events, "External/httpstat.us/Finch/GET") + external_span = TestHelper.find_event(span_events, "External/httpbin.org/Finch/GET") - assert external_span[:"http.url"] == "https://httpstat.us/200" + assert external_span[:"http.url"] == "https://httpbin.org/status/200" assert external_span[:"http.method"] == "GET" assert external_span[:component] == "Finch" assert external_span[:"response.status"] == 200 @@ -40,15 +40,15 @@ defmodule NewRelic.Telemetry.FinchTest do test "[:finch, :request, :stop] - 500" do Task.async(fn -> NewRelic.start_transaction("FinchTest", "500") - request("https://httpstat.us/500") + request("https://httpbin.org/status/500") end) |> Task.await() span_events = TestHelper.gather_harvest(Collector.SpanEvent.Harvester) - external_span = TestHelper.find_event(span_events, "External/httpstat.us/Finch/GET") + external_span = TestHelper.find_event(span_events, "External/httpbin.org/Finch/GET") - assert external_span[:"http.url"] == "https://httpstat.us/500" + assert external_span[:"http.url"] == "https://httpbin.org/status/500" assert external_span[:"response.status"] == 500 end @@ -73,17 +73,17 @@ defmodule NewRelic.Telemetry.FinchTest do {:ok, pid} = Task.start(fn -> NewRelic.start_transaction("FinchTest", "Exception") - request("https://httpstat.us/200", :exception) + request("https://httpbin.org/status/200", :exception) end) Process.monitor(pid) - assert_receive {:DOWN, _ref, :process, ^pid, _reason}, 1_000 + assert_receive {:DOWN, _ref, :process, ^pid, _reason}, 5_000 span_events = TestHelper.gather_harvest(Collector.SpanEvent.Harvester) - external_span = TestHelper.find_event(span_events, "External/httpstat.us/Finch/GET") + external_span = TestHelper.find_event(span_events, "External/httpbin.org/Finch/GET") - assert external_span[:"http.url"] == "https://httpstat.us/200" + assert external_span[:"http.url"] == "https://httpbin.org/status/200" assert external_span[:error] == true assert external_span[:"error.message"] =~ "Oops" end