Skip to content
Draft
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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions content/posts/2025-08-27-cli_ui_refactor/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
---
layout: :theme/post
title: "Network Observability On Demand UI Refactor"
description: Enhanced command-line interface in NetObserv 1.10
tags: CLI,Monitoring,Troubleshooting
authors: [jpinsonneau]
---

The NetObserv 1.10 release introduces a sleek, interactive command-line interface powered by the excellent [tview library](https://github.com/rivo/tview) and one of its extension [tvxwidgets](https://github.com/navidys/tvxwidgets).

These open-source Go packages bring a rich set of UI components such as buttons, dropdowns, popups and tables, all seamlessly integrated into your terminal.

![tview](tview.gif)<br>
Figure 1: Tview examples

# Key Capabilities

## Table View Enhancements

The flow and packet capture keeps the same abilities, showing the flow table, cycling between `displays` and `enrichments` and applying `live filters`.

![table](table.png)<br>
Figure 2: Flow table view

New in 1.10:
- *Customizable Columns*: Click the `Manage Columns` button to select which columns to display and tailor the table to your needs.<br><br>
![manage columns](columns.png)<br>
Figure 3: Column selection popup

- *Smart Filtering*: Live filters now include auto-suggestions, making it easier to select the right keys and values.<br><br>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a small detail, but the bullet is aligned left and the text seems to be aligned to the center. I think would be nicer for the text to be right after the bullet.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's related to the blog itself, not this article. I can take a look at the stylings in parallel 😉

Thanks for the feedback !

![live filters](filters.png)<br>
Figure 4: Live filters suggestions

- *Packet Preview*: When capturing packets, simply click a row to inspect the pcap content directly.<br><br>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't see the use of displaying pcap content on terminal, it's in encoded format anyway.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just click on a row and you will see the content. If you try to read http packets you can read clear text 😸

![packet content](packet.png)<br>
Figure 5: Packet content display

## Terminal-Based Line Charts

Metrics visualization takes a leap forward with real-time graphs rendered directly in the CLI.
![graphs](graphs.png)<br>
Figure 6: Metrics graphs
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how do I get graphs on terminal? I tried oc netobserv metrics command but it just pointed me to OCP dashboard?

That's also the general comment I have - to have a command as precursor to the images of the views that's on the blog.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You command is right, however, you need that PR for metrics: netobserv/network-observability-cli#333

The editors team is suggesting to do a video instead of a blog ... Or at least put videos instead of screens so I will probably change everything here 😿

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, okay!


Features include:
- *Panel Selection*: Choose from predefined views or build your own dashboard via the `Manage Panels` popup.
- *Time Range Control*: Use the dropdown to select a time window up to the last 6 hours of data.

![panels](panels.png)<br>
Figure 7: Panel management popup

And of course, the full `NetObserv / On Demand` dashboard remains available in the OpenShift Console for deeper insights.

# UI Gallery

A visual tour of the new CLI experience:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you think gifs would be nice as opposed to static images?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


![gallery 1](gallery1.png)<br><br>
![gallery 2](gallery2.png)<br><br>
![gallery 3](gallery3.png)<br><br>
![gallery 4](gallery4.png)<br><br>
![gallery 5](gallery5.png)<br><br>
![gallery 6](gallery6.png)<br><br>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.