Reports
You get the platform’s reports as dashboards in Apache Superset. People who use the portal see
twelve of them on the portal’s System reports pages. Administrators open all of them in
Superset itself, at https://<SUPERSET_DOMAIN>:8094.
What you do here
This section lists what the reports give you, and the tasks on this page.
What you get:
-
21 dashboards, with 50 charts, installed by default. See The dashboards, installed by default.
-
Twelve of them shown inside the portal, on the System reports pages.
-
Scheduled reports and alerts, sent by Superset.
What you do here:
-
Add Superset to an installation.
-
Tell Superset which databases to read.
-
Open Superset and sign in.
-
Fix a report that does not show.
Apache Superset draws the platform’s dashboards. Deployment Manager installs it as the
reporting preset. The preset is six containers on one host. That host can be any host of the
installation. The containers read the FTACS database and ClickHouse. Of the six, only
superset-nginx publishes ports. It publishes them on every network interface of its server, so
the firewall decides who can reach them.
To add reports to an installation:
-
When you build the topology, choose the
reportingpreset under Presets. See Step 1. Choose a topology. -
Fill in the database connections, or leave them empty. See The databases it reads.
-
Deploy the installation.
-
Open
https://<SUPERSET_DOMAIN>:8094and sign in withSUPERSET_USERNAMEandSUPERSET_PASSWORD. See Signing in.
What gets installed
This section lists the containers of the preset and what each one does.
| Container | What it does |
|---|---|
|
The web application. It reads the reports and renders them. It is the only container an operator ever opens. |
|
Runs the scheduled reports and alerts. It also runs the asynchronous SQL Lab queries. |
|
The clock that puts scheduled reports on the queue. Exactly one runs. Two would put every report on the queue twice. The recipient would then get each report twice, with nothing to explain it. |
|
Superset’s own PostgreSQL. It holds dashboards, users, saved queries and alert state. It is not the product database. It is not shared with the Postgres of any other service. |
|
The queue between the application and the worker. It holds nothing durable. |
|
The only one of the six that is published. It serves the admin port. It also serves the port the portal servers use to reach Superset. Everything else is reached only inside the installation. |
All six run on ONE host. They find each other by name on a Docker bridge network. A bridge network does not cross machines. For this reason the topology builder keeps them together and does not let you split them.
A seventh container, superset-embed-proxy, runs on every server that runs
the portal. Nobody adds it. The installation places it there whenever
Superset is installed. The topology builder does not offer it.
Reaching it
This section explains who opens Superset, on which address, and through which containers.
The installation deploys everything below. You do not install nginx on either
server. You do not copy a certificate. You edit nothing in /etc. It does not
matter which server runs Superset’s six containers. It can be a server of
their own, or the same server as the portal.
| Who | Opens | Goes through |
|---|---|---|
People using the portal (embedded dashboards) |
|
|
UI Backend itself (sign-in and guest tokens) |
|
|
Administrators |
|
<portal name> is the name the browser uses for the portal. It is
FT_UI_HOST if that was set. Otherwise it is the load balancer in front of
the portal servers. Otherwise it is the portal server’s own name. DM fills in
SUPERSET_URL with that address on port 4443. UI Backend gives this address
to the browser.
UI Backend does not use that address for its own calls to Superset. There are
two reasons. First, a container often cannot reach the public name of its own
server. The firewall or NAT does not route a server back to itself. Second,
the container would have to trust the portal’s certificate. So DM sets
SUPERSET_INTERNAL_URL in UI Backend’s compose file, per server:
-
http://superset-nginx:80when Superset runs on that server. -
http://superset-embed-proxy:8080when only the portal runs there. This is an internal port of the proxy. It is not published. It forwards to Superset’s server over the same pinned TLS as the browser’s traffic. -
On a server with neither, the variable is left unset. UI Backend then uses
SUPERSET_URL.
A value set in the server’s .env wins. UI Backend images from before
SUPERSET_INTERNAL_URL support ignore it. They keep calling SUPERSET_URL.
If the installation has no portal, there is no proxy. SUPERSET_URL is then
Superset’s own name on the admin port. The customer may publish the route
under other names. In that case you can still type both SUPERSET_URL and
SUPERSET_EMBED_ORIGINS on the Superset card.
The two hops
This section explains how traffic goes from the portal server to Superset.
superset-embed-proxy serves port 4443 with the portal’s own certificate.
These are the files in portals/ssl, the same ones the portal uses for its
HTTPS port. So a browser that accepted the portal also accepts the dashboards.
From there:
| Portal server is | The proxy reaches Superset on |
|---|---|
Superset’s server |
|
Another machine |
|
Portals behind a load balancer get one proxy on each portal server.
Superset’s server name must resolve from the portal server by DNS. It can also
be an IP address. The reason: the proxy asks Docker’s resolver, and Docker’s
resolver does not read the host’s /etc/hosts.
|
Do not replace |
Firewall
This section lists the ports to open on each server.
| Server | Inbound port | Allow |
|---|---|---|
Superset’s server |
8094 ( |
Administrators' addresses only |
Superset’s server |
8096 ( |
The portal servers ONLY. Published only when they are other machines |
Portal servers |
4443 ( |
The people who use the portal |
Superset, its database and Redis are never published. Users never reach Superset’s server directly. That is the purpose of the second hop.
|
The installation guide serves administrators on 8090. This installation
uses 8094. The reason: |
|
Do not apply the |
The databases it reads
This section describes the two database connections Superset uses.
Superset does not own the product data. It queries it. There are two connections. You answer both at install time.
| Variable | Meaning |
|---|---|
|
|
|
Where the FTACS database is, as Superset’s server reaches it. Leave them empty when the database is part of this installation. This is true whether the database runs on Superset’s server or on another one. Superset then uses that database and the reporting account it creates. Fill them in only for a database the customer runs. |
|
ClickHouse, for the QoE dashboards. Empty means this installation’s
ClickHouse, wherever it runs. Superset reads it as |
The passwords for both are asked once. They are asked on the database’s own
screen, not on Superset’s screen, because the database creates those
accounts. The passwords are SUPERSET_MYSQL_PASSWORD (or
SUPERSET_ORACLE_PASSWORD) and SUPERSET_CH_PASSWORD. Both accounts are
read-only. The FTACS account has SELECT on the FTACS schema and nothing
else. The ClickHouse account, superset_read, uses ClickHouse’s read-only
profile: it can read, but it cannot write. A
reporting tool that can write can also lose the data it reports on. For a
database the customer runs, the same passwords are asked on Superset’s screen
instead. This happens once the host is filled in.
Superset on a server of its own
This section explains what happens when Superset and the databases are on different servers of one installation.
You fill in nothing extra when the database or ClickHouse is on another server of the same installation. The bundle for Superset’s server carries:
-
the database server’s name and its published port. This is
DB_PORTfor the database (3306 for MySQL, 1501 for Oracle unless changed) andCH_HTTP_PORTfor ClickHouse (8123). On one server, Superset uses the container names and their own ports instead (mysql:3306,oracle:1521,clickhouse:8123). -
the FTACS schema (MySQL) or service name (Oracle), and the ClickHouse database, as those services are configured.
-
the names of the reporting accounts.
-
the reporting passwords. The Deploy form asks for them once and writes them on both servers.
These values arrive under their own names (SUPERSET_MYSQL_ADDRESS,
SUPERSET_ORACLE_ADDRESS, SUPERSET_CH_ADDRESS and similar). The wizard does
not show them. If you fill in the fields above, the fields win over these
values.
The route itself is the customer’s network. Superset’s server must reach the
database server on that published port. It must reach ClickHouse on 8123.
The install does not detect a firewall that closes either port. The
connection is created anyway. The charts of those dashboards then show a
database error instead of data. The connection ready line in the superset
log shows the address each connection got (password masked).
|
The accounts are created when the database is deployed. Every later deploy checks them again. This matters when you add Superset to an existing installation. A database runs its initialisation scripts only once, against an empty data directory. So an account added later would never appear. For this reason the deploy runs the one script that creates the account again. That script is safe to run any number of times. |
Embedding dashboards in the portal
This section explains how Superset dashboards appear inside the portal.
UI Backend can show Superset dashboards inside the portal. When Superset is installed together with UI Backend, you fill in nothing. The address, the account and its password come from the Superset installation itself. UI Backend’s own three fields are not asked. They appear again if Superset is not part of the installation. You can still point the portal at a Superset that runs somewhere else.
The browser allows the embedding only for the origins in
SUPERSET_EMBED_ORIGINS. DM fills it in from the portal with two addresses.
The first is the portal’s HTTPS address
(https://<portal name>:<FT_UI_HTTPS_PORT>). The second is its address on the
embed port (https://<portal name>:4443). Add any other address people use to
open the portal. Give scheme, host and port, separated by commas. If the
installation has no portal, the variable stays empty, and no site may embed.
The dashboards, installed by default
This section explains how the shipped dashboards get into Superset.
You do not import anything by hand. The superset container does it every
time it starts, after its own setup. It installs the dashboards that ship in
the bundle (superset/dashboards/ft-dashboards.zip). It also prepares the
portal’s System reports pages. The container log shows this in
[dashboards] lines. One line says how many dashboards are in Superset
(in_superset=). The last line says how many reports are embedded
(embedded reports=).
What it does, in order:
-
Creates the two database connections the dashboards read,
FTACSandClickHouse. It uses the installation’s variables (see the table above). Superset stores the reporting passwords in its metadata, encrypted withSUPERSET_SECRET_KEY. They are never in the connection address. A later deploy with different variables updates a connection, but only while the connection is still as the installation created it. Once someone edits it in Superset, it belongs to them. No restart or deploy changes it again. -
Imports the dashboards that are not there yet. It never overwrites a dashboard that is already in Superset. So a layout someone changed survives every upgrade. If an administrator deleted a shipped dashboard, it does not come back.
-
Embeds the twelve System reports dashboards for the portal. Each one gets a fixed identifier: the dashboard’s own UUID from the bundle. Each one is allowed for the origins in
SUPERSET_EMBED_ORIGINS. Because the identifier is fixed, UI Backend’s System reports settings can use it as their default. IfSUPERSET_EMBED_ORIGINSis empty, nothing is embedded. The reason: an empty list would let any site embed.
If a step fails, the log says [init] ERROR the dashboards are not fully
installed. Superset starts anyway, so you can fix the connection in its
screens. The next restart tries again.
| System reports page | Dashboard |
|---|---|
Devices distribution |
Devices distribution report |
Devices registration |
Devices registration report |
Deleted devices |
Deleted devices |
Online devices |
Onlne devices |
Offline devices |
Offline devices |
Automation |
Automations |
User activity |
User activity |
Group update |
Group update |
Inventory |
Inventory |
Firmware versions |
Firmware versions report |
Software modules |
Software modules |
FCC |
FCC diagnostic |
The Support Center’s Sessions page has no dashboard in the bundle. It says "The identifier is not set" until someone chooses one in its settings.
You can apply a changed dashboard from a newer bundle over an existing one. To do that:
-
Delete that dashboard in Superset.
-
Remove its UUID from
importedinsuperset/data/ft-dashboards-state.jsonon the server. -
Restart
superset.
The mapping itself is in one file, superset/dashboards/EMBEDDED.txt.
|
The deploy writes the identifiers. After the services are up, |
What the dashboards need, and what is not shipped
This section lists what the bundle contains and which dashboards it leaves out.
The bundle carries 21 dashboards, 50 charts and 90 datasets.
Seven dashboards from the source export are not installed: Current Inventory Status, Device performance, Network Performance, Speed & Latency Analysis, User Experience, User Experience User Analysis and Wi-Fi client analysis. 31 of their charts arrived without a dataset. Superset refuses a bundle that contains even one such chart. Without those charts, the dashboards would show empty tiles. They come back when someone supplies a corrected export. None of them is used by a System reports page.
One dashboard from the source export, WI-FI Access Point Overview, is not
installed on purpose. Its three Wi-Fi charts read database views
(wifi_band_view, wifi_standard_view, wifi_security_view). No
installation creates these views. Someone made them by hand on the machine
the export came from. If the dashboard were shipped, it would show a database
error instead of a chart. The dashboard comes back when those views become
part of the product.
On Oracle, everything else works. The dialect differences are handled. The product’s own migrations create the tables the dashboards read, on Oracle as on MySQL.
Signing in
This section explains the Superset administrator account.
The administrator account is created on first start from
SUPERSET_USERNAME and SUPERSET_PASSWORD. If you later change the password
in the installation’s variables, it does not change in Superset. By then
the account already exists. To change the password, change it inside
Superset. This also means a restart does not silently undo a password that
was changed in Superset.
When something is wrong
This section lists common symptoms and what they mean.
| What you see | What it means |
|---|---|
Three containers restart forever, the other three are up |
|
A chart shows a database error instead of data |
The account Superset reads with cannot see that table. Check that the
reporting account exists in the product database. Check that
|
The portal’s System reports page says "The identifier is not set" |
UI Backend has no dashboard identifier for that page. If UI Backend on this
installation started before this release, enter the identifier from
|
Dashboards load, scheduled reports never arrive |
The problem is the worker and beat, not the application. Both must be running. Beat puts reports on the queue. The worker delivers them. |
The portal shows an empty frame where a dashboard should be |
The browser refused the embedding. The portal’s origin must be listed in
|
The frame says the address cannot be reached, or |
|
The smoke check reports that the proxy answered 502 |
The proxy is up, but |
The smoke check reports the portal certificate does not name the host in |
The certificate in |
The smoke check reports UI Backend does not trust the certificate served there |
UI Backend trusts the portal certificate of the bundle
( |