Skip to content

Commit

Permalink
fix nil bug for summaries
Browse files Browse the repository at this point in the history
  • Loading branch information
jaronoff97 committed Apr 10, 2024
1 parent 369ec05 commit e114326
Show file tree
Hide file tree
Showing 7 changed files with 40 additions and 11 deletions.
3 changes: 3 additions & 0 deletions lib/tails/filters.ex
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,9 @@ defmodule Tails.Filters do
defp normalize(%{"sum" => %{"dataPoints" => data_points}} = data),
do: Map.put(data, "attributes", get_attributes_from_metric(data_points))

defp normalize(%{"summary" => %{"dataPoints" => data_points}} = data),
do: Map.put(data, "attributes", get_attributes_from_metric(data_points))

defp normalize(data), do: data

defp get_attributes_from_metric(data_points) do
Expand Down
4 changes: 3 additions & 1 deletion lib/tails_web/components/otel/data_viewer.ex
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,12 @@ defmodule TailsWeb.Otel.DataViewer do
<div class="relative mt-6 flex-1 px-4 sm:px-6">
<div id="data-viewer" phx-update="ignore"></div>
<textarea id="data_viewer" phx-hook="DataViewer" class="hidden">
<%= Jason.encode!(@data, [{:pretty, true}]) %>
<%= Jason.encode!(without_resource(@data), [{:pretty, true}]) %>
</textarea>
</div>
<% end %>
"""
end

def without_resource(data), do: Map.delete(data, "resource")
end
3 changes: 2 additions & 1 deletion lib/tails_web/live/tail_live/index.ex
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,8 @@ defmodule TailsWeb.TailLive.Index do

{attributes, resource} =
Enum.reduce(records, current_state, fn record, {attributes, resource} ->
{update_kvs(record["attributes"], attributes), update_kvs(record["resource"], resource)}
{update_kvs(Map.get(record, "attributes", []), attributes),
update_kvs(Map.get(record, "resource", []), resource)}
end)

socket
Expand Down
2 changes: 1 addition & 1 deletion lib/tails_web/live/tail_live/index.html.heex
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@
</div>
</Slideover.slideover>
<Slideover.slideover id="row-data">
<div class="flex h-full flex-col overflow-y-scroll bg-zinc-50 dark:bg-gray-700 dark:border-gray-600 dark:text-slate-300 py-6">
<div class="flex h-screen flex-col overflow-y-scroll bg-zinc-50 dark:bg-gray-700 dark:border-gray-600 dark:text-slate-300 py-6">
<div class="relative mt-6 flex-1 px-4 sm:px-6">
<DataViewer.show data={@active_raw_data} modal_type={@modal_type} />
</div>
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ defmodule Tails.MixProject do
# See the documentation for `Mix` for more info on aliases.
defp aliases do
[
setup: ["deps.get", "assets.setup", "assets.build", "npm.setup"],
setup: ["deps.get", "assets.setup", "npm.setup", "assets.build"],
"npm.setup": ["cmd --cd assets npm install"],
"assets.setup": ["tailwind.install --if-missing", "esbuild.install --if-missing"],
"assets.build": ["tailwind default", "esbuild default"],
Expand Down
23 changes: 23 additions & 0 deletions test/support/telemetry_case.ex
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,29 @@ defmodule TailsWeb.TelemetryCase do
"id" => "bbc46112-ba32-4bb7-b990-f67aad4bbfa0",
"name" => "scrape_duration_seconds",
"unit" => "s"
},
%{
"description" =>
"A summary of the pause duration of garbage collection cycles.",
"name" => "go_gc_duration_seconds",
"summary" => %{
"dataPoints" => [
%{
"attributes" => [],
"count" => "85105",
"quantileValues" => [
%{"value" => 2.0759e-5},
%{"quantile" => 0.25, "value" => 2.7411e-5},
%{"quantile" => 0.5, "value" => 3.593e-5},
%{"quantile" => 0.75, "value" => 4.171e-5},
%{"quantile" => 1, "value" => 0.00103362}
],
"startTimeUnixNano" => "1712760565274000000",
"sum" => 3.105338845,
"timeUnixNano" => "1712760805274000000"
}
]
}
}
],
"scope" => %{
Expand Down
14 changes: 7 additions & 7 deletions test/tails/filters_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ defmodule Tails.FiltersTest do

test "get_records metric no filters", %{metric_message: metric_message} do
records = Tails.Filters.get_records(:metrics, metric_message, [], [])
assert length(records) == 3
assert length(records) == 4
end

test "get_records metric include filters keep", %{metric_message: metric_message} do
Expand All @@ -244,14 +244,14 @@ defmodule Tails.FiltersTest do

test "get_records metric exclude filters toss", %{metric_message: metric_message} do
records = Tails.Filters.get_records(:metrics, metric_message, [@exclude_test_filter], [])
assert length(records) == 2
assert length(records) == 3
end

test "get_records metric include no match filters toss", %{metric_message: metric_message} do
records =
Tails.Filters.get_records(:metrics, metric_message, [@nomatch_exclude_test_filter], [])

assert length(records) == 3
assert length(records) == 4
end

test "get_records metric exclude no match filters keep", %{metric_message: metric_message} do
Expand All @@ -263,7 +263,7 @@ defmodule Tails.FiltersTest do

test "get_records metric include resource filters keep", %{metric_message: metric_message} do
records = Tails.Filters.get_records(:metrics, metric_message, [], [@include_test_filter])
assert length(records) == 3
assert length(records) == 4
end

test "get_records metric exclude resource filters toss", %{metric_message: metric_message} do
Expand All @@ -277,7 +277,7 @@ defmodule Tails.FiltersTest do
records =
Tails.Filters.get_records(:metrics, metric_message, [], [@nomatch_exclude_test_filter])

assert length(records) == 3
assert length(records) == 4
end

test "get_records metric exclude no match resource filters toss", %{
Expand Down Expand Up @@ -308,7 +308,7 @@ defmodule Tails.FiltersTest do
@include_test_filter
])

assert length(records) == 3
assert length(records) == 4
end

test "get_records metric multiple filters one exclude one include", %{
Expand All @@ -322,6 +322,6 @@ defmodule Tails.FiltersTest do
[]
)

assert length(records) == 2
assert length(records) == 3
end
end

0 comments on commit e114326

Please sign in to comment.