Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 37 additions & 61 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,80 +1,56 @@
# CHANGELOG (v0.1.X)
# CHANGELOG (v0.2.X)

## 0.1.13 ()
## 0.2.0 (:soon:)

### Backwards incompatible changes for 0.1.12
* None

### Bug fixes
* None

### Enhancements
* [[`PR-30`](https://github.com/thiagoesteves/observer_web/pull/30)] Adding configurable timeout for fetching specific states.
* [[`PR-31`](https://github.com/thiagoesteves/observer_web/pull/31)] Adding process dictionary information.
* [[`PR-32`](https://github.com/thiagoesteves/observer_web/pull/32)] Adding port/process actions.

## 0.1.12 🚀 (2025-10-12)

### Backwards incompatible changes for 0.1.11
* None

### Bug fixes
* None

### Enhancements
* [[`PR-27`](https://github.com/thiagoesteves/observer_web/pull/27)] Adding Igniter.
* [[`PR-28`](https://github.com/thiagoesteves/observer_web/pull/28)] Updating Tailwind.
* [[`PR-28`](https://github.com/thiagoesteves/observer_web/pull/28)] Adding theme support.
* [[`PR-28`](https://github.com/thiagoesteves/observer_web/pull/28)] Assets organization.

## 0.1.11 🚀 (2025-08-29)

### Backwards incompatible changes for 0.1.10
* None
### ⚠️ Backwards incompatible changes for 0.1.12

### Bug fixes
* None

### Enhancements
* [[`ISSUE-19`](https://github.com/thiagoesteves/observer_web/issues/19)] Adding copy to clipboard button to copy tracing text.
* [[`ISSUE-21`](https://github.com/thiagoesteves/observer_web/issues/21)] Add non case sensitive search for modules and functions for tracing.

## 0.1.10 🚀 (2025-05-26)

### Backwards incompatible changes for 0.1.9
* None

### Bug fixes
* None
#### Memory Monitoring GenServer
A new GenServer has been added to handle Process and Port memory monitoring, which is utilized by the OTP distribution layer. **All applications must be updated to this version to maintain memory monitoring capabilities.**

### Enhancements
* [[`PR-18`](https://github.com/thiagoesteves/observer_web/pull/18)] Normalizing functions and adding highlight to nodes that are current online for metrics

## 0.1.9 🚀 (2025-05-07)
#### Configuration Restructuring
The following configuration variables have been moved from module-specific configuration to the root `:observer_web` configuration:

### Backwards incompatible changes for 0.1.8
* None
- `data_retention_period`
- `mode`
- `phx_lv_sckt_poller_interval_ms`
- `beam_vm_poller_interval_ms`

### Bug fixes
* None
**Migration Guide:**

### Enhancements
* [[`PR-16`](https://github.com/thiagoesteves/observer_web/pull/16)] Adding Beam VM statistics (ports, atoms and processes)
You may not need to update if you are relying on default values.

## 0.1.8 🚀 (2025-04-03)
```elixir
# Before (v0.1.12)
config :observer_web, ObserverWeb.Telemetry,
mode: :observer,
data_retention_period: :timer.minutes(30),
phx_lv_sckt_poller_interval_ms: 5_000,
beam_vm_poller_interval_ms: 1_000

### Backwards incompatible changes for 0.1.7
* None
# After (v0.2.0)
config :observer_web,
mode: :observer,
data_retention_period: :timer.minutes(30),
phx_lv_sckt_poller_interval_ms: 5_000,
beam_vm_poller_interval_ms: 1_000
```

### Bug fixes
* None

### Enhancements
* [[`PR-13`](https://github.com/thiagoesteves/observer_web/pull/13)] Fixed dialyzer configuration
* [[`PR-14`](https://github.com/thiagoesteves/observer_web/pull/14)] Improvements from code review
and integration
* [[`PR-30`](https://github.com/thiagoesteves/observer_web/pull/30)] Adding configurable timeout for fetching specific states.
* [[`PR-31`](https://github.com/thiagoesteves/observer_web/pull/31)] Adding process dictionary information.
* [[`PR-32`](https://github.com/thiagoesteves/observer_web/pull/32)] Adding port/process actions.
* [[`PR-33`](https://github.com/thiagoesteves/observer_web/pull/33)] Adding port/process memory monitor.
* [[`PR-34`](https://github.com/thiagoesteves/observer_web/pull/34)] Changing config variable definitions from ObserverWeb.Telemetry to root of observer_web

# 🚀 Previous Releases
* [0.1.12 (2025-10-12)](https://github.com/thiagoesteves/observer_web/blob/v0.1.12/CHANGELOG.md)
* [0.1.11 (2025-08-29)](https://github.com/thiagoesteves/observer_web/blob/v0.1.11/CHANGELOG.md)
* [0.1.10 (2025-05-26)](https://github.com/thiagoesteves/observer_web/blob/v0.1.10/CHANGELOG.md)
* [0.1.9 (2025-05-07)](https://github.com/thiagoesteves/observer_web/blob/v0.1.9/CHANGELOG.md)
* [0.1.8 (2025-04-03)](https://github.com/thiagoesteves/observer_web/blob/v0.1.8/CHANGELOG.md)
* [0.1.7 (2025-03-21)](https://github.com/thiagoesteves/observer_web/blob/v0.1.7/CHANGELOG.md)
* [0.1.6 (2025-03-21)](https://github.com/thiagoesteves/observer_web/blob/v0.1.6/CHANGELOG.md)
* [0.1.5 (2025-02-26)](https://github.com/thiagoesteves/observer_web/blob/v0.1.5/CHANGELOG.md)
Expand Down
18 changes: 10 additions & 8 deletions guides/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ You can use the `observer_web.install` task without the `igniter.install` escrip
First, add `observer_web` and `igniter` to your deps in `mix.exs`:

```elixir
{:observer_web, "~> 0.1.0"},
{:observer_web, "~> 0.2.0"},
{:igniter, "~> 0.5", only: [:dev]},
```

Expand Down Expand Up @@ -49,7 +49,7 @@ Before installing Observer Web, ensure you have:
Add `observer_web` as a dependency for your application. Open `mix.exs` and add the following line:

```elixir
{:observer_web, "~> 0.1.0"}
{:observer_web, "~> 0.2.0"}
```

Now fetch your dependencies:
Expand Down Expand Up @@ -186,7 +186,7 @@ a retention time.
To configure the retention period, use the following optional setting:

```elixir
config :observer_web, ObserverWeb.Telemetry,
config :observer_web,
data_retention_period: :timer.minutes(30)
```

Expand Down Expand Up @@ -224,7 +224,7 @@ are retained even if any of the monitored applications restart.
To configure applications to broadcast their metrics, use the following setting:

```elixir
config :observer_web, ObserverWeb.Telemetry,
config :observer_web,
mode: :broadcast
```

Expand All @@ -238,7 +238,7 @@ config :observer_web, ObserverWeb.Telemetry,
To designate an application as the **central observer (hub)**, use the following setting:

```elixir
config :observer_web, ObserverWeb.Telemetry,
config :observer_web,
mode: :observer,
data_retention_period: :timer.minutes(30)
```
Expand All @@ -248,14 +248,16 @@ aggregating metrics from other applications.

#### 3. Metrics Polling Interval

Observer Web allows configuration of two polling intervals:
Observer Web allows configuration of some polling intervals:
* Phoenix Liveview sockets - Default: `5_000` ms
* Beam VM statistics - Default: `1_000` ms
* Beam VM statistics (total memory, queues, etc) - Default: `1_000` ms
* Beam VM Process/Port memory statistics (total, stack, heap, etc) - Default: `1_000` ms

```elixir
config :observer_web, ObserverWeb.Telemetry,
config :observer_web,
phx_lv_sckt_poller_interval_ms: 5_000,
beam_vm_poller_interval_ms: 1_000
beam_vm_process_port_poller_interval_ms: 1_000
```

> #### For applications running by [DeployEx][dye] {: .attention}
Expand Down
2 changes: 1 addition & 1 deletion lib/mix/tasks/observer_web.install.ex
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ if Code.ensure_loaded?(Igniter) do
def info(_argv, _composing_task) do
%Igniter.Mix.Task.Info{
group: :observer_web,
installs: [{:observer_web, "~> 0.1.0"}],
installs: [{:observer_web, "~> 0.2.0"}],
example: __MODULE__.Docs.example()
}
end
Expand Down
5 changes: 2 additions & 3 deletions lib/observer_web/application.ex
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,8 @@ defmodule ObserverWeb.Application do

defp telemetry_server_config do
[
mode: Application.get_env(:observer_web, ObserverWeb.Telemetry)[:mode] || :local,
data_retention_period:
Application.get_env(:observer_web, ObserverWeb.Telemetry)[:data_retention_period]
mode: Application.get_env(:observer_web, :mode) || :local,
data_retention_period: Application.get_env(:observer_web, :data_retention_period)
]
end
else
Expand Down
3 changes: 2 additions & 1 deletion lib/observer_web/monitor/process_port.ex
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ defmodule ObserverWeb.Monitor.ProcessPort do
@impl true
def init(_args) do
poll_interval =
Application.get_env(:observer_web, :beam_vm_poller_interval_ms) || @default_poll_interval
Application.get_env(:observer_web, :beam_vm_process_port_poller_interval_ms) ||
@default_poll_interval

:timer.send_interval(poll_interval, :refresh_metrics)

Expand Down
9 changes: 2 additions & 7 deletions lib/web/telemetry.ex
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,11 @@ defmodule Observer.Web.Telemetry do
{:telemetry_poller,
name: :observer_web_phoenix_liveview_sockets,
measurements: [{PhxLvSocket, :process, []}],
period:
Application.get_env(:observer_web, ObserverWeb.Telemetry)[
:phx_lv_sckt_poller_interval_ms
] || 5_000},
period: Application.get_env(:observer_web, :phx_lv_sckt_poller_interval_ms) || 5_000},
{:telemetry_poller,
name: :observer_web_beam_vm,
measurements: [{BeamVm, :process, []}],
period:
Application.get_env(:observer_web, ObserverWeb.Telemetry)[:beam_vm_poller_interval_ms] ||
1_000}
period: Application.get_env(:observer_web, :beam_vm_poller_interval_ms) || 1_000}
]
else
defp add_telemetry_poller, do: []
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ defmodule ObserverWeb.MixProject do
use Mix.Project

@source_url "https://github.com/thiagoesteves/observer_web"
@version "0.1.13"
@version "0.2.0"

def project do
[
Expand Down