Skip to content

Commit c92b6d1

Browse files
committed
More OTel decorators for Device related tracing
1 parent 3817ca5 commit c92b6d1

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

lib/nerves_hub/deployments/calculator.ex

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
defmodule NervesHub.Deployments.Calculator do
22
use GenServer
3+
use OpenTelemetryDecorator
34

45
import Ecto.Query
56

@@ -12,6 +13,7 @@ defmodule NervesHub.Deployments.Calculator do
1213
alias Phoenix.PubSub
1314
alias Phoenix.Socket.Broadcast
1415

16+
@decorate with_span("Deployments.Calculator.process_next_device")
1517
def process_next_device(deployment) do
1618
result =
1719
Repo.transaction(fn ->
@@ -83,6 +85,7 @@ defmodule NervesHub.Deployments.Calculator do
8385
{:ok, deployment, {:continue, :boot}}
8486
end
8587

88+
@decorate with_span("Deployments.Calculator.boot")
8689
def handle_continue(:boot, deployment) do
8790
send(self(), :process_next_device)
8891

@@ -98,6 +101,7 @@ defmodule NervesHub.Deployments.Calculator do
98101
{:noreply, state}
99102
end
100103

104+
@decorate with_span("Deployments.Calculator.handle_info:process_next_device")
101105
def handle_info(:process_next_device, state) do
102106
Logger.debug("[InflightDeploymentCheck] checking next device")
103107

@@ -114,6 +118,7 @@ defmodule NervesHub.Deployments.Calculator do
114118
end
115119
end
116120

121+
@decorate with_span("Deployments.Calculator.handle_info:deployments/update")
117122
def handle_info(%Broadcast{event: "deployments/update"}, state) do
118123
deployment =
119124
state.deployment

lib/nerves_hub/deployments/orchestrator.ex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ defmodule NervesHub.Deployments.Orchestrator do
108108
{:ok, deployment, {:continue, :boot}}
109109
end
110110

111+
@decorate with_span("Deployments.Orchestrator.boot")
111112
def handle_continue(:boot, deployment) do
112113
_ = PubSub.subscribe(NervesHub.PubSub, "deployment:#{deployment.id}")
113114

@@ -127,6 +128,7 @@ defmodule NervesHub.Deployments.Orchestrator do
127128
{:noreply, deployment}
128129
end
129130

131+
@decorate with_span("Deployments.Orchestrator.handle_info:deployments/update")
130132
def handle_info(%Broadcast{event: "deployments/update"}, deployment) do
131133
deployment =
132134
deployment

lib/nerves_hub_web/channels/device_channel.ex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ defmodule NervesHubWeb.DeviceChannel do
107107

108108
# We can save a fairly expensive query by checking the incoming deployment's payload
109109
# If it matches, we can set the deployment directly and only do 3 queries (update, two preloads)
110+
@decorate with_span("Channels.DeviceChannel.handle_info:deployments/changed,deployment:none")
110111
def handle_info(
111112
%Broadcast{event: "deployments/changed", topic: "deployment:none", payload: payload},
112113
%{assigns: %{device: device}} = socket
@@ -130,6 +131,7 @@ defmodule NervesHubWeb.DeviceChannel do
130131
{:noreply, assign_deployment(socket, payload)}
131132
end
132133

134+
@decorate with_span("Channels.DeviceChannel.handle_info:deployments/changed")
133135
def handle_info(
134136
%Broadcast{event: "deployments/changed", payload: payload},
135137
%{assigns: %{device: device}} = socket
@@ -147,6 +149,7 @@ defmodule NervesHubWeb.DeviceChannel do
147149
end
148150
end
149151

152+
@decorate with_span("Channels.DeviceChannel.handle_info:resolve_changed_deployment")
150153
def handle_info(:resolve_changed_deployment, %{assigns: %{device: device}} = socket) do
151154
:telemetry.execute([:nerves_hub, :devices, :deployment, :changed], %{count: 1})
152155

@@ -180,6 +183,7 @@ defmodule NervesHubWeb.DeviceChannel do
180183
{:noreply, socket}
181184
end
182185

186+
@decorate with_span("Channels.DeviceChannel.handle_info:deployments/update")
183187
def handle_info({"deployments/update", inflight_update}, %{assigns: %{device: device}} = socket) do
184188
device = deployment_preload(device)
185189

@@ -365,6 +369,7 @@ defmodule NervesHubWeb.DeviceChannel do
365369
end
366370
end
367371

372+
@decorate with_span("Channels.DeviceChannel.handle_in:location:update")
368373
def handle_in("location:update", location, %{assigns: %{device: device}} = socket) do
369374
metadata = Map.put(device.connection_metadata, "location", location)
370375

@@ -413,6 +418,7 @@ defmodule NervesHubWeb.DeviceChannel do
413418
{:noreply, socket}
414419
end
415420

421+
@decorate with_span("Channels.DeviceChannel.handle_in:health_check_report")
416422
def handle_in("health_check_report", %{"value" => device_status}, socket) do
417423
device_meta =
418424
for {key, val} <- Map.from_struct(socket.assigns.device.firmware_metadata),

0 commit comments

Comments
 (0)