Update default Mongo credentials and documentation for GUI

Signed-off-by: colramos-amd <colramos@amd.com>


[ROCm/rocprofiler-compute commit: 45fb0b3a6f]
Šī revīzija ir iekļauta:
colramos-amd
2022-11-10 11:55:04 -06:00
vecāks f0e1370d6c
revīzija 642ec541a1
13 mainīti faili ar 519 papildinājumiem un 423 dzēšanām
@@ -24,8 +24,8 @@ services:
image: mongo
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: amd
MONGO_INITDB_ROOT_PASSWORD: amd123
MONGO_INITDB_ROOT_USERNAME: temp
MONGO_INITDB_ROOT_PASSWORD: temp123
volumes:
- grafana-mongo-db:/data/db
ports:
Bināro failu nav iespējams attēlot.

Pēc

Platums:  |  Augstums:  |  Izmērs: 47 KiB

Bināro failu nav iespējams attēlot.

Pēc

Platums:  |  Augstums:  |  Izmērs: 113 KiB

Bināro failu nav iespējams attēlot.

Pēc

Platums:  |  Augstums:  |  Izmērs: 272 KiB

Bināro failu nav iespējams attēlot.

Pēc

Platums:  |  Augstums:  |  Izmērs: 57 KiB

Bināro failu nav iespējams attēlot.

Pēc

Platums:  |  Augstums:  |  Izmērs: 253 KiB

@@ -11,6 +11,7 @@
installation
getting_started
performance_analysis
standalone_gui_analyzer
grafana_analyzer
faq
```
@@ -157,10 +157,10 @@ use the provided Docker file to build the Grafana and MongoDB
instance.
### Install MongoDB Utils
Omniperf uses [mongoimport](https://www.mongodb.com/docs/database-tools/mongoimport/) to upload data to Grafana's backend database
Omniperf uses [mongoimport](https://www.mongodb.com/docs/database-tools/mongoimport/) to upload data to Grafana's backend database. Install for Ubuntu 20.04 is as follows:
```bash
$ wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-ubuntu2004-x86_64-100.6.1.deb
$ sudo apt intall ./mongodb-database-tools-ubuntu2004-x86_64-100.6.1.deb
$ sudo apt install ./mongodb-database-tools-ubuntu2004-x86_64-100.6.1.deb
```
> Find install for alternative distros [here](https://www.mongodb.com/download-center/database-tools/releases/archive)
@@ -177,3 +177,38 @@ $ sudo docker volume create --driver local --opt type=none --opt device=/usr/loc
$ sudo docker-compose build
$ sudo docker-compose up -d
```
> Note that TCP ports for Grafana (4000) and MongoDB (27017) in the docker container are mapped to 14000 and 27018, respectively, on the host side.
### Setup Grafana Instance
Once you've launced your docker container you should be able to reach Grafana at **http://\<host-ip>:1400**. The default login credentials for the first-time Grafana setup are:
- Username: **admin**
- Password: **admin**
![Grafana Welcome Page](images/grafana_welcome.png)
MongoDB Datasource Configuration
The MongoDB Datasource shall be configured prior to the first-time use. Navigate to Grafana's Configuration page (shown below) to add the **Omniperf Data** connection.
![Omniperf Datasource Config](images/datasource_config.png)
Configure the following fields in the datasource:
- HTTP URL: set to *http://localhost:3333*
- MongoDB URL: set to *mongodb://temp:temp123@\<host-ip>:27018/admin?authSource=admin*
- Database Name: set to *admin*
After properly configuring these fields click **Save & Test** to make sure your connection is successful.
> Note to avoid potential DNS issue, one may need to use the actual IP address for the host node in the MongoDB URL.
![Datasource Settings](images/datasource_settings.png)
Omniperf Dashboard Import
From *Create* → *Import*, (as seen below) upload the dashboard file, `/dashboards/Omniperf_v{__VERSION__}_pub.json`, from the Omniperf tarball.
Edit both the Dashboard Name and the Unique Identifier (UID) to uniquely identify the dashboard he/she will use. Click Import to finish the process.
![Import Dashboard](images/import_dashboard.png)
@@ -374,9 +374,9 @@ omniperf database <interaction type> [connection options]
Examples:
omniperf database --import -H pavii1 -u amd -t asw -w workloads/vcopy/mi200/
omniperf database --import -H pavii1 -u temp -t asw -w workloads/vcopy/mi200/
omniperf database --remove -H pavii1 -u amd -w omniperf_asw_sample_mi200
omniperf database --remove -H pavii1 -u temp -w omniperf_asw_sample_mi200
-------------------------------------------------------------------------------
@@ -406,7 +406,7 @@ Connection Options:
**omniperf import for vcopy:**
```shell
$ omniperf database --import -H pavii1 -u amd -t asw -w workloads/vcopy/mi200/
$ omniperf database --import -H pavii1 -u temp -t asw -w workloads/vcopy/mi200/
ROC Profiler: /usr/bin/rocprof
--------
@@ -0,0 +1,60 @@
# Standalone GUI Analyzer
```eval_rst
.. toctree::
:glob:
:maxdepth: 4
```
## Features
Omniperf's standalone GUI analyzer is a lightweight web page that can be generated straight from the command-line. This option is great for users who want immediate access to graphical results without the server-side overhead of the Omniperf's detailed [Grafana interface](https://amdresearch.github.io/omniperf/grafana_analyzer.html#)
The standalone GUI analyzer is a simple Flask web application that uses port forwarding (DEFAULT: 8050) to allow users to view results from their web browser.
> Because the standalone GUI analyzer uses port forwarding we reccomend users who profile on shared clusters **scp** their results to their personal workstation for analysis.
## Useage
To launch the standalone GUI, users will include the `--gui` flag in their analysis command.
```{tip}
To launch the web application on a port other than 8050 (default)
use --gui <desired port>
```
```bash
$ omniperf analyze -p workloads/vcopy/mi200/ --gui
--------
Analyze
--------
Dash is running on http://0.0.0.0:8050/
* Serving Flask app 'omniperf_cli.omniperf_cli' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on all addresses (0.0.0.0)
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://127.0.0.1:8050
* Running on http://10.228.32.139:8050 (Press CTRL+C to quit)
```
Users can then lauch their web browser of choice and go to http://localhost:8050/ (substituting port if overridden).
![Standalone GUI Homepage](images/standalone_gui.png)
When no filters are applied users will see 5 basic section derived from their application's profiling data:
1. Memory Chart Analysis
2. Empirical Roofline Analysis
3. Top Stats (Top Kernal Statistics)
4. System Info
5. System Speed-of-Light
To dive deeper, use the top drop down menus to isolate a particular kernel(s) or dispatch(s). You'll then see the webpage updates with metrics specific to the filter you've applied.
Once you've applied a filter you'll also see several additional sections become availible with detailed metrics specific to that area of AMD hardware. These detailed sections mirror the data we display in Omniperf's [Grafana interface](https://amdresearch.github.io/omniperf/grafana_analyzer.html#)
@@ -211,8 +211,8 @@ def parse(my_parser):
\n\n-------------------------------------------------------------------------------
\nExamples:
\n\tomniperf database --import -H pavii1 -u amd -t asw -w workloads/vcopy/mi200/
\n\tomniperf database --remove -H pavii1 -u amd -w omniperf_asw_sample_mi200
\n\tomniperf database --import -H pavii1 -u temp -t asw -w workloads/vcopy/mi200/
\n\tomniperf database --remove -H pavii1 -u temp -w omniperf_asw_sample_mi200
\n-------------------------------------------------------------------------------\n
""",
prog="tool",
@@ -35,7 +35,7 @@ if __name__ == "__main__":
test = (
"\n\ndef test_import_"
+ workload_name
+ "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', 'amd', '-p', 'amd123', '-t', 'asw', '-w', '"
+ "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', 'temp', '-p', 'temp123', '-t', 'asw', '-w', '"
+ workload
+ "/mi100']): omniperf.main()"
)
@@ -65,7 +65,7 @@ if __name__ == "__main__":
test = (
"\n\ndef test_"
+ workload_name
+ "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', '-p', 'amd123', 'amd', '-t', 'asw', '-w', '"
+ "_mi100():\n with patch('sys.argv',['omniperf', 'database', '--import', '-H', 'localhost', '-u', 'temp', '-p', 'temp123', '-t', 'asw', '-w', '"
+ workload
+ "/mi100']): omniperf.main()"
)
Failā izmaiņas netiks attēlotas, jo tās ir par lielu Ielādēt izmaiņas