Skip to content

Commit 70c0271

Browse files
committed
Webdash
1 parent 061e77b commit 70c0271

File tree

5 files changed

+14
-118
lines changed

5 files changed

+14
-118
lines changed

doc/Web.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
:titlesonly:
66
77
webdashboard/Web-Dashboard
8-
webdashboard/PVWS
98
webdashboard/ISIS-Info-Slack
109
webdashboard/MCR-News-in-Teams
1110
```

doc/conf.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
"client/coding/Migrating-or-adding-a-button-to-the-E4-perspective-switcher": "Perspectives.html", # noqa E501
101101
"client/coding/Adding-a-Button-to-the-Perspective-Switcher": "Perspectives.html",
102102
"client/testing/Using-Mockito-for-Testing-in-the-GUI": "Mockito.html",
103+
"webdashboard/PVWS": "Web-Dashboard.html",
103104
}
104105

105106
intersphinx_mapping = {

doc/systems/Webserver.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ If a new server is setup, then ciphers and old TLS versions may need to be disab
1818

1919
## NDAEXTWEB4
2020

21-
NDAEXTWEB4 is similar in that it also runs on the Hyper-V cluster. This currently hosts the [PVWS](/webdashboard/PVWS) which is a PVWS instance for the IBEX web dashboard.
21+
NDAEXTWEB4 is similar in that it also runs on the Hyper-V cluster. This currently hosts the [PVWS](#pvws) which is a PVWS instance for the IBEX web dashboard.
2222

2323
## Shadow
2424

25-
Some web services run on Shadow - see [here](/systems/Shadow) for more information.
25+
Some web services run on Shadow - see [here](Shadow) for more information.

doc/webdashboard/PVWS.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

doc/webdashboard/Web-Dashboard.md

Lines changed: 11 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,24 @@
11
# Web Dashboard
22

33
```{important}
4-
This page documents the old web dashboard, also known as `JSON_Bourne`. The [new one](https://github.com/ISISComputingGroup/webdashboard) should have its architecture and how it's run explained in the README of its repository.
4+
The previous web dashboard, which used to be available under `https://dataweb.isis.rl.ac.uk`, is being switched off as of October 2025.
55
```
66

7-
The dataweb service allows some information about each instrument to be viewed in a webpage from both inside and outside the ISIS network.
7+
## Frontend
88

9-
## The Overall Architecture
9+
The web dashboard's front-end is deployed [on github pages](https://isiscomputinggroup.github.io/WebDashboard/). Deployment is done automatically via continuous deployment when a new change is pushed to the main branch.
1010

11-
![Architecture](dataweb_architecture.png)
11+
Documentation for the setup, including local developer setup instructions, are available [in the README of its repository](https://github.com/ISISComputingGroup/WebDashboard/blob/main/README.md).
1212

13-
The dataweb system consists of a number of parts running on each instrument:
13+
{#pvws}
14+
## Backend (`pvws`)
1415

15-
---
16+
PVWS is a tool which lets you get EPICS PV information and expose it via a websocket. This is used as the backend for the web dashboard.
1617

17-
### The Archive Engine
18+
Information on how we run this can be found [in the README of the `pvws-config` repository](https://github.com/ISISComputingGroup/pvws-config/blob/main/README.md).
1819

19-
The archive engine shown in the [high level design](/overview/High-Level-Architectural-Design) produces internal webpages that provides live data on various PVs in HTML format:
20+
See also {doc}`webserver systems documentation </systems/Webserver>` for the computer on which `pvws` is hosted.
2021

21-
* INST (located at http://localhost:4812/group?name=INST&format=json) gives data on the PVs associated with the DAE etc.
22-
* BLOCKS (located at http://localhost:4813/group?name=BLOCKS&format=json) gives data on the current status of all block PVs
23-
* DATAWEB (located at http://localhost:4813/group?name=DATAWEB&format=json) gives data on hidden blocks
22+
## Grafana and Journals Setup
2423

25-
### The WebServer
26-
27-
The webserver is run as part of the BlockServer and provides all of the data on the current configuration in JSON format. This is the exact same data that is served on the GET_CURR_CONFIG_DETAILS PV. The webserver is currently serving the data on localhost:8008. Note that the fortinet VPN uses 8008 for internal configuration and so you cannot access this address through the fortinet VPN.
28-
29-
---
30-
31-
### On the Dataweb Server
32-
33-
There are also parts of the system running on a central [webserver](/systems/Webserver), which provides external access.
34-
35-
### JSON Bourne
36-
37-
The program collates all the data from the other sources, on all the EPICS instruments, such as putting the blocks and their values into the relevant groups as given by the configuration. This information is served as JSON to localhost:60000. This runs as a service on the central server and lives in C:\JSON_Bourne.
38-
39-
### The Website
40-
41-
Currently a simple JS script takes the JSON created by JSON Bourne and provides a simple webpage for an external client to view. This can be accessed from http://dataweb.isis.rl.ac.uk/. The code for the website, both the html and javascript are located in the central server at `C:\inetpub\wwwroot\DataWeb\IbexDataweb`.
42-
43-
### Grafana and Journals Setup
44-
45-
Docs can be found on the shares at `shares\isis_experiment_controls\web_dashboard_history.docx`
46-
47-
## Deployment
48-
49-
To update the production version of the dashboard:
50-
* Remote desktop into external webserver (for username and password see password page)
51-
* Open a git bash terminal in C:\JSON_Bourne and switch to the [release branch](/deployment/Creating-a-release)
52-
* Run the deploy batch script as admin
53-
* Restart JSON_bourne (see [here](#webdashboard_restart_dataweb))
54-
* Go to (for example) http://dataweb.isis.rl.ac.uk/IbexDataweb/default.html?Instrument=zoom and confirm the webpage is live
55-
56-
## Development/Testing
57-
58-
Clone the repository at https://github.com/ISISComputingGroup/JSON_bourne
59-
60-
To test the blockserver webserver:
61-
* Start your instrument
62-
* Navigate to `localhost:8008` in a browser
63-
64-
To test JSON_Bourne:
65-
* Run webserver.py
66-
* Navigate in a browser to http://localhost:60000/?callback=parseObject&Instrument=[Instrument-Name]&.
67-
Where [Instrument-Name] is replaced by the desired instrument (i.e., ZOOM&) in all capitals.
68-
69-
To test the front end on a developer machine:
70-
* Open default.html with the variable of ?Instrument=instrument-name e.g. go to `file:///C:/Instrument/Dev/JSON_bourne/front_end/default.html?Instrument=larmor` in a browser to view Larmor's dashboard. Note that the path is dependant on where you have created the local JSON_bourne repository. This will use the JSON bourne instance running on NDAEXTWEB!
71-
72-
To test the front end and JSON bourne on a developer machine:
73-
* Run `webserver.py`
74-
* Edit display\_blocks.js to look at http://localhost rather than http://dataweb.isis.rl.ac.uk
75-
* Open default.html as above
76-
77-
To be able to see your instrument as well:
78-
* Add your instrument to the `local_inst_list` dictionary in the `webserver.py` e.g. `local_inst_list = {"LOCALHOST": ("localhost")}`
79-
* Run your instrument
80-
* Run JSON Bourne up as above
81-
82-
If you need to update the archive engine then you will need to:
83-
84-
1. Run create_icp_binaries.bat
85-
1. `make clean uninstall install` in `..\EPICS\CSS\master`
86-
87-
{#webdashboard_troubleshooting}
88-
## Troubleshooting
89-
90-
### General Investigation
91-
92-
First look at the log to ensure that there are no issues. The log is held in `C:\JSON_Bourne\log`. Issues may be in the front end, in which case error logs are in the web browser, visit the webpage in a browser and open up the web console.
93-
If there are a number of `HTTP Error 503. The service is unavailable` errors, restarting the server completely may be required, but simply restarting the Dataweb should be the first thing to try.
94-
95-
{#webdashboard_restart_dataweb}
96-
### Restart the Dataweb
97-
98-
As admin open the "Task Scheduler" (there is a shortcut for this on the desktop) and end and run the "JSON Bourne" task (in task scheduler library). Make sure that ending the task has killed the Python webserver process.
99-
100-
### New Instrument with No Details
101-
102-
If the instrument archive has never been restarted then the dataweb will fail to show any information and claim that the server hasn't been started. To fix this simple restart the instrument archive.
103-
104-
{#webdashboard_troubleshooting_instrument_page_not_working}
105-
### Instrument Page not Working on Web Dashboard
106-
107-
Several causes
108-
109-
1. Check that the instrument is in the list of Instruments in https://github.com/ISISComputingGroup/JSON_bourne/blob/master/webserver.py and that the version on web server is up-to-date.
110-
111-
1. Issues with MySQL in the moment the IBEX server was started (this seems to affect the archiver start up). Check logs of the MySQL service in the `var` area, fix any issues so that MySQL is running correctly again, then restart the IBEX server.
112-
113-
1. If it works in your browser but not he users they may have a old cached copy (this shouldn't happen but we have seen it in Safari). Clear their browser cache and reload.
114-
115-
1. Try restarting `ARINST` on the instrument. It can happen that the archiver does not pick up all PVs to be archived on server startup. A symptom of this is that the configuration file under `EPICS\CSS\master\ArchiveEngine\inst_config.xml` is very short compared to other machines.
116-
117-
## Future Development Ideas
118-
119-
* We need to improve the unit test coverage of this project. It would be worth looking into the [requests-mock](https://pypi.python.org/pypi/requests-mock) library as this would make it very easy to test server code which makes HTTP requests.
120-
121-
## Overview page
122-
123-
http://dataweb.isis.rl.ac.uk/IbexDataweb/Overview/ibexOverview.html
24+
Documentation can be found on the shares at `shares\isis_experiment_controls\web_dashboard_history.docx`

0 commit comments

Comments
 (0)