mirror of
https://github.com/Unleash/unleash.git
synced 2025-07-26 13:48:33 +02:00
Update network view docs with Connected Edges (#9436)
This commit is contained in:
parent
8629cda4d7
commit
7b62e5978b
@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Network View
|
||||
title: Network
|
||||
---
|
||||
|
||||
:::note Availability
|
||||
@ -8,76 +8,61 @@ title: Network View
|
||||
|
||||
:::
|
||||
|
||||
The Unleash admin UI contains a **network view** as part of the admin configuration pages. This network view was designed to give you an overview and understanding of incoming requests to your Unleash instance. It makes it possible to pinpoint sources of sudden request surges, and can therefore also help you identify issues with SDK setups[^1].
|
||||
The **Network** dashboards in the Unleash Admin UI are designed to give you an overview of incoming requests to your Unleash instance. This includes requests from [Unleash SDKs](./sdks), [Unleash Edge](./unleash-edge), the [Unleash proxy](./unleash-proxy) or the Unleash Admin UI.
|
||||
|
||||
The network view offers two different visualizations of the same data, known as the [network overview](#network-overview) and the [network traffic](#network-traffic) views.
|
||||
To use these dashboards, you must configure an [external data source](#configure-a-data-source).
|
||||
|
||||
Because Unleash doesn't store this kind of data itself, the network view requires you to configure an [external data source](#data-source) for the network overview to work. The network view is only available if you tell Unleash where it can find the data (refer to the [data source section](#data-source)).
|
||||
Requests from Unleash SDKs and other official Unleash applications include an application name. Requests that don't include an application name header (`UNLEASH_APPNAME`) are marked and aggregated as *unknown*.
|
||||
|
||||
The network view is intended to provide a simple and Unleash-centric overview that serves basic use cases. If you need detailed metrics and connection graphs, you may be better off using specialized network monitoring tools.
|
||||
You can access the **Network** dashboards in **Admin > Network** in the Unleash Admin UI.
|
||||
|
||||
## Applications
|
||||
## Overview
|
||||
|
||||
Both the network overview and the network traffic diagrams show you **applications** that have made requests to the Unleash instance. An **application** is defined as anything that sends requests to the [Unleash client API](./api/unleash/client), the [Unleash front-end API](front-end-api), the Unleash admin API, or any other API that Unleash exposes. This includes [Unleash SDKs](./sdks), [Unleash Edge](./unleash-edge), the [Unleash proxy](./unleash-proxy), and even the admin UI.
|
||||
The **Overview** section displays the Unleash instance and applications that have connected to it within the last five minutes. Unknown applications are excluded from this view.
|
||||
|
||||
### "unknown" applications
|
||||
Each application in the diagram includes its name and the average number of requests per second over the last five minutes.
|
||||
|
||||
Requests that come from Unleash SDKs and other official Unleash applications will always have an application name defined. But you might sometimes see some applications listed as "unknown" in the diagrams.
|
||||
## Traffic
|
||||
|
||||
This happens when Unleash receives requests that don't contain an application name header (`UNLEASH_APPNAME`). This can happen, for instance, if you make HTTP requests from the command line to test Unleash connections or if you write your own HTTP client for Unleash that doesn't provide an application name.
|
||||
The **Traffic** section presents the requests that have consumed the most network traffic in the last six hours. These requests are grouped by client and base URL, with up to ten groups displayed.
|
||||
|
||||
Because Unleash can't separate these based on their application names, all "unknown" clients will get lumped together as one application in the overview.
|
||||
Unleash aggregates requests by application name and base URL. Base URLs are batched using the first two path segments after `/api`. This means that Admin API requests are separate from Client API requests.
|
||||
|
||||
## Network overview
|
||||
## Connected Edges
|
||||
|
||||
The network overview is a diagram that shows the Unleash instance and known [applications](#applications) that have connected to it within the last five minutes. [Unknown applications](#unknown-applications) are not shown.
|
||||
:::note Availability
|
||||
|
||||
Each application shown on the diagram has:
|
||||
- An application name
|
||||
- the average number of requests per second (_req/s_) that we have registered over the last five minutes.
|
||||
**Plan**: [Enterprise](https://www.getunleash.io/pricing)
|
||||
|
||||

|
||||
|
||||
## Network traffic
|
||||
|
||||
The network traffic diagram is a line chart that presents requests that have used the most network traffic over the last six hours, grouped by client and base URL for the request. For legibility, this chart only shows the ten groups that have caused the most traffic over the last six hours.
|
||||
|
||||
Unleash aggregates requests by **client** (using application name) and **base URL**. Base URLs are batched together using the **first two** path segments following the `/api` part of the URL. In essence, that means:
|
||||
|
||||
1. Separate requests by API: Admin API requests are separate from client API requests.
|
||||
2. Within each of these groups, group all requests by their next URL path segment. For instance: `/client/features` and `/client/features/feature-a` are grouped together, while `/client/register` and `/admin/features` are separate groups.
|
||||
|
||||
|
||||

|
||||
|
||||
## Data source
|
||||
|
||||
:::info Prometheus and other sources
|
||||
|
||||
The network view was written to be used with [Prometheus](https://prometheus.io/) and is therefore compatible with Prometheus' API.
|
||||
|
||||
Other services that offer the same capabilities and the same API may work as substitutes, but we make no guarantees.
|
||||
|
||||
This section will refer to the external source as Prometheus for simplicity.
|
||||
**Unleash version**: `6.8+` | **Unleash Edge version**: `19.7+`
|
||||
|
||||
:::
|
||||
|
||||
The network view uses an external Prometheus-like API to create diagrams. Because of this, Unleash will not enable the network view feature unless you set the `PROMETHEUS_API` environment variable.
|
||||
The **Connected Edges** dashboard provides detailed observability metrics for Unleash Edge, helping teams efficiently manage all their connected Edge instances.
|
||||
The dashboard offers a high-level view of all hosted Edge instances, with deeper insights into instance ID, region, CPU and memory usage, and upstream/downstream latency.
|
||||
|
||||
The `PROMETHEUS_API` environment variable should point to the base path of the Prometheus installation, and Prometheus should be configured to get its data from Unleash's [internal backstage API](api/legacy/unleash/internal/prometheus). This can for example be done via a scraping job[^2]:
|
||||
This data helps you ensure that all instances are operational and quickly identify potential issues.
|
||||
|
||||
```yaml title="Scraping job for Unleash metrics"
|
||||
## Data Usage
|
||||
|
||||
The **Data Usage** dashboard provides an overview of your requests to Unleash within a specific month, along with aggregated data over the last 3, 6, or 12 months. This allows you to track and assess your data usage over time.
|
||||
You can also compare your usage in previous months with the current month.
|
||||
|
||||
## Configure a data source
|
||||
|
||||
To populate the **Network** dashboard with data, you can integrate with [Prometheus](https://prometheus.io/), or similar tools.
|
||||
|
||||
The network view relies on an external Prometheus-compatible API for generating diagrams. You must set the `PROMETHEUS_API` environment variable to the base path of the Prometheus installation.
|
||||
|
||||
```yaml
|
||||
- job_name: unleash_internal_metrics
|
||||
metrics_path: /internal-backstage/prometheus
|
||||
static_configs:
|
||||
- targets: ['unleash-url']
|
||||
```
|
||||
|
||||
This setup means that there is a mutual dependency between Unleash and Prometheus, where Prometheus regularly fetches data from Unleash's backstage API and Unleash fetches and displays this data when you use the network view. This diagram provides a visual representation of that.
|
||||
You can configure Prometheus to retrieve data from the Unleash [internal backstage API](api/legacy/unleash/internal/prometheus), such as through a scraping job.
|
||||
|
||||

|
||||
This setup creates a mutual dependency where Prometheus fetches data from Unleash's backstage API, and Unleash retrieves the data from Prometheus and displays it in the **Network** dashboards.
|
||||
|
||||
|
||||
[^1]: For instance: when using Unleash in an API setting, a common mistake is to instantiate a new SDK for every request instead of sharing a single instance across requests. This would be visible in the network overview graph as a large number of requests from the same app.
|
||||
|
||||
[^2]: How to set up Prometheus to collect metrics from that API is outside of the scope of this document.
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 42 KiB |
Binary file not shown.
Before Width: | Height: | Size: 91 KiB |
Binary file not shown.
Before Width: | Height: | Size: 120 KiB |
Loading…
Reference in New Issue
Block a user