Skip to content

Commit 88a52e9

Browse files
authored
Refresh oct. 2024
* Update links to git submodules * Remove no-cache for default build method * Update README.md
1 parent d018bd4 commit 88a52e9

5 files changed

Lines changed: 108 additions & 55 deletions

File tree

.gitmodules

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[submodule "FlyFast-WebUI"]
22
path = FlyFast-WebUI
33
branch = main
4-
url = https://github.com/Aternity/FlyFast-WebUI.git
4+
url = https://github.com/riverbed/FlyFast-WebUI.git
55
[submodule "FlyFast-FlightSearch"]
66
path = FlyFast-FlightSearch
77
branch = main
8-
url = https://github.com/Aternity/FlyFast-FlightSearch.git
8+
url = https://github.com/riverbed/FlyFast-FlightSearch.git

README.md

Lines changed: 97 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,102 +1,145 @@
11
# FlyFast
22

3-
This cookbook contains the full source code for FlyFast, utilizing both the [FlyFast-WebUI](https://github.com/Aternity/FlyFast-WebUI) and [FlyFast-FlightSearch](https://github.com/Aternity/FlyFast-FlightSearch) to demonstrates how the [ALLUVIO Aternity DEM](https://www.riverbed.com/products/digital-experience-management) solution provides observability of a full-stack application using [OpenTelemetry](https://opentelemetry.io/) auto-instrumentation.
3+
This cookbook contains the full source code for FlyFast, utilizing both the [FlyFast-WebUI](https://github.com/riverbed/FlyFast-WebUI) and [FlyFast-FlightSearch](https://github.com/riverbed/FlyFast-FlightSearch) to demonstrates how works [OpenTelemetry](https://opentelemetry.io/) with [Riverbed APM](https://www.riverbed.com/products/application-performance-monitoring/).
44

5-
To instrument the FlyFast demo app, the OpenTelemetry agent will be containerized with the app and injected in the app at startup. The agent will be configured to export the tracing to the ALLUVIO Aternity APM SaaS backend via the [ALLUVIO Aternity OpenTelemetry Collector](https://hub.docker.com/r/aternity/apm-collector) that will run in an another container.
5+
![diagram](/images/Riverbed-FlyfFast-diagram.png)
66

7-
![diagram](/images/diagram.png)
7+
> [!NOTE]
8+
> The FlyFast demo app is instrumented with OpenTelemetry configured to send the OpenTelemetry traces to the [APM OpenTelemetry Collector](https://hub.docker.com/r/aternity/apm-collector), which in turns exports traces to the Riverbed APM backend (whether APM SaaS or APM Analysis Server).
9+
> In the app, both the WebUI frontend and the FlighSearch API backend are instrumented: the frontend instrumentation uses an experimental OpenTelemetry for Javascript in the browser, and the FlightSearch API uses OpenTelemetry for Python.
810
911
## Prerequisites
1012

11-
1. an account for ALLUVIO Aternity APM (SaaS)
12-
2. optional - an account for ALLUVIO Aternity UJI
13+
1. an APM SaaS account, or an APM Analysis Server
14+
2. *optional* an account for Aternity UJI
1315
3. a Docker host, for example [Docker Desktop](https://www.docker.com/products/docker-desktop)
14-
4. git installed, see [Git](https://git-scm.com/)
16+
4. git ([Git](https://git-scm.com/))
1517

16-
## Step by Step
17-
18-
### 1. Get a local copy
18+
## Step 1. Get a local copy
1919

2020
```shell
21-
git clone --recurse-submodules https://github.com/Aternity/FlyFast.git --depth 1
21+
git clone --recurse-submodules https://github.com/riverbed/FlyFast.git --depth 1
2222
```
2323

24-
### 2. Get your CustomerID & SaaS Analysis Server Host details for APM
24+
## Step 2. Get your information for Riverbed APM
25+
26+
Open the APM web console and navigate to Agents > Install Agents (for example [https://apm.myaccount.aternity.com](https://apm.myaccount.aternity.com))
27+
28+
1. Grab the **Analysis Server Host**, for example *agents.apm.myaccount.aternity.com*
29+
2. Find your **CustomerID**, for example *12341234-12341234-13241234*
2530

26-
Open ALLUVIO Aternity APM (for example [https://apm.myaccount.aternity.com](https://apm.myaccount.aternity.com)) and navigate to Agents > Install Agents
31+
Those information are required to activate the [APM OpenTelemetry Collector](https://hub.docker.com/r/aternity/apm-collector) with an APM account.
32+
The CustomerID is not required when it is not an APM SaaS.
2733

28-
1. Find your **CustomerID**, for example *12341234-12341234-13241234*
29-
2. Grab **SaaS Analysis Server Host**, for example *agents.apm.myaccount.aternity.com*
34+
## Step 3. *optional* Get your information for Aternity UJI
3035

31-
Those information are required to activate the container of the [Aternity APM Collector](https://hub.docker.com/r/aternity/apm-collector)
36+
<details>
37+
<summary>*optional* See details for Aternity UJI</summary>
3238

33-
### 3. Get the UJI Tag Prefix (Optional)
3439

35-
1. Open [ALLUVIO Aternity UJI](https://portals.bluetriangle.com) and navigate to Settings & Administration > Sites
40+
1. Open [Aternity UJI](https://portals.bluetriangle.com) and navigate to Settings & Administration > Sites
3641
2. Find the site configured for FlyFast and get the **UJI Tag Prefix**, for example *my-UJI-Tag-Prefix-FlyFast*
3742

38-
### 4. Start the containers
43+
</details>
44+
45+
## Step 4. Start the containers
46+
47+
Start the containers using the [docker-compose.yaml](docker-compose.yaml), using the snipppet below
48+
and replacing the values with the information collected at step 2. and step 3.
3949

40-
Start the containers using the [docker-compose.yml](docker-compose.yml), for example with Bash:
50+
For example in Bash:
4151

4252
```bash
4353
cd FlyFast
4454

45-
# Configure the ALLUVIO Aternity APM OpenTelemetry Collector
46-
# Replace the value with the information collected at step 2.
47-
export ATERNITY_CUSTOMER_ID="12341234-12341234-13241234"
48-
export ATERNITY_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
55+
# Configure the APM OpenTelemetry Collector
56+
export RIVERBED_APM_SERVER_HOST="agents.apm.myaccount.aternity.com"
57+
export RIVERBED_APM_CUSTOMER_ID="12341234-12341234-13241234"
4958

50-
# Optional - Configure the ALLUVIO Aternity UJI tag
51-
# Replace "my-UJI-Tag-Prefix-FlyFast" with your UJI Tag Prefix collected at step 3.
52-
export ALLUVIO_UJI_TAG='<script id=\"ALLUVIO-Aternity-UJI\" src=\"https:\/\/my-UJI-Tag-Prefix-FlyFast\.btttag\.com\/btt\.js\"><\/script>'
59+
# Start the containers
60+
docker compose up
61+
```
5362

54-
# Build the containers
55-
docker compose build --no-cache
63+
or in PowerShell:
64+
65+
```PowerShell
66+
cd FlyFast
67+
68+
# Configure the APM OpenTelemetry Collector
69+
$env:RIVERBED_APM_SERVER_HOST="agents.apm.myaccount.aternity.com"
70+
$env:RIVERBED_APM_CUSTOMER_ID="12341234-12341234-13241234"
71+
72+
# Start the containers
73+
docker-compose up
74+
```
75+
76+
<details>
77+
<summary>*optional* Add configuration for Aternity UJI</summary>
78+
79+
in Bash:
80+
81+
```bash
82+
cd FlyFast
83+
84+
# Configure the APM OpenTelemetry Collector
85+
export RIVERBED_APM_SERVER_HOST="agents.apm.myaccount.aternity.com"
86+
export RIVERBED_APM_CUSTOMER_ID="12341234-12341234-13241234"
87+
88+
# Optional - Configure the Aternity UJI tag
89+
# Replace "my-UJI-Tag-Prefix-FlyFast" with your UJI Tag Prefix collected at step 3.
90+
export ALLUVIO_UJI_TAG='<script id=\"ALLUVIO-Aternity-UJI\" src=\"https:\/\/your-UJI-Tag-Prefix-FlyFast\.btttag\.com\/btt\.js\"><\/script>'
5691

5792
# Start the containers
5893
docker compose up
5994
```
6095

61-
or with PowerShell:
96+
or in PowerShell
6297

6398
```PowerShell
6499
cd FlyFast
65100
66-
# Configure the ALLUVIO Aternity APM OpenTelemetry Collector
101+
# Configure the APM OpenTelemetry Collector
67102
# Replace the value with your information collected at step 2.
68-
$env:ATERNITY_CUSTOMER_ID="12341234-12341234-13241234"
69-
$env:ATERNITY_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
70-
71-
# Optional - Configure the ALLUVIO Aternity UJI tag
72-
# Replace "my-UJI-Tag-Prefix-FlyFast" with your UJI Tag Prefix collected at step 3.
73-
$env:ALLUVIO_UJI_TAG='<script id=\"ALLUVIO-Aternity-UJI\" src=\"https:\/\/my-UJI-Tag-Prefix-FlyFast\.btttag\.com\/btt\.js\"><\/script>'
103+
$env:RIVERBED_APM_SERVER_HOST="agents.apm.myaccount.aternity.com"
104+
$env:RIVERBED_APM_CUSTOMER_ID="12341234-12341234-13241234"
74105
75-
# Build the containers from scratch
76-
docker-compose build --no-cache
106+
# Optional - Configure the Aternity UJI tag
107+
# Replace "your-UJI-Tag-Prefix-FlyFast" with your UJI Tag Prefix collected at step 3.
108+
$env:ALLUVIO_UJI_TAG='<script id=\"ALLUVIO-Aternity-UJI\" src=\"https:\/\/your-UJI-Tag-Prefix-FlyFast\.btttag\.com\/btt\.js\"><\/script>'
77109
78110
# Start the containers
79111
docker-compose up
80112
```
81113

82-
### 5. Navigate Through The Application And Monitor
114+
</details>
115+
116+
## Step 5. Navigate through The Application And Monitor
83117

84118
The web application should now be available on [http://localhost](http://localhost).
85119

86-
Open the url in your browser and navigate through the application a few times to generate some traffic.
120+
Open the url in your browser and navigate through the application a few times to generate page views and transaction that will be monitored by APM.
87121

88-
### 6. ALLUVIO Aternity APM webconsole
122+
## Step 6. Open Riverbed APM web console
89123

90-
Go to the APM webconsole to monitor the instance and observe every transaction.
124+
Go to the APM web console to monitor the instance and observe every transaction.
91125

92-
![ALLUVIO Aternity APM OpenTelemetry Traces](/images/transaction.png)
126+
![APM OpenTelemetry Traces](/images/transaction.png)
93127

94128
View details of a specific transaction as a waterfall chart:
95129

96-
![ALLUVIO Aternity APM OpenTelemetry Transaction-Detail](/images/transaction-detail.png)
130+
![APM OpenTelemetry Transaction-Detail](/images/transaction-detail.png)
131+
97132

98133
## Notes
99134

135+
<details>
136+
<summary>See Notes</summary>
137+
138+
139+
### Add Synthetic Test
140+
141+
In the [Riverbed Community Toolkit](https://github.com/riverbed/Riverbed-Community-Toolkit), the cookbook [Synthetic-004-Browse-FlyFast](https://github.com/riverbed/Riverbed-Community-Toolkit/tree/master/NetIM/Synthetic-Test/Synthetic-004-Browse-FlyFast) show how to set up a synthetic test for FlyFast on a Windows machine.
142+
100143
### Stop The App and All The Containers
101144

102145
Press `CTRL + C` in the shell where it is running.
@@ -107,6 +150,12 @@ Or in a shell, go to the folder where you keep the [docker-compose.yml](docker-c
107150
docker-compose stop
108151
```
109152

153+
### Rebuild
154+
155+
```shell
156+
docker compose build --no-cache
157+
```
158+
110159
### Updating Based On Future Changes
111160

112161
Stay up to date with the latest changes.
@@ -118,13 +167,15 @@ git submodule update --remote
118167
### Clone FlyFast and update submodules
119168

120169
```shell
121-
git clone https://github.com/Aternity/FlyFast.git
170+
git clone https://github.com/riverbed/FlyFast.git
122171
cd FlyFast
123172
git submodule init
124173
git submodule update
125174
```
126175

176+
</details>
177+
127178
## License
128-
Copyright (c) 2022 Riverbed Technology, Inc.
179+
Copyright (c) 2022 - 2024 Riverbed Technology, Inc.
129180

130181
The contents provided here are licensed under the terms and conditions of the MIT License accompanying the software ("License"). The scripts are distributed "AS IS" as set forth in the License. The script also include certain third party code. All such third party code is also distributed "AS IS" and is licensed by the respective copyright holders under the applicable terms and conditions (including, without limitation, warranty and liability disclaimers) identified in the license notices accompanying the software.
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
# docker-compose.yaml
2+
# version: 24.10.6
3+
#
14
# Usage
25
#
36
# Example in Bash
47
#
58
# # Configuration for APM
6-
# export ATERNITY_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
7-
# export ATERNITY_CUSTOMER_ID="12341234-12341234-13241234"
9+
# export RIVERBED_APM_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
10+
# export RIVERBED_APM_CUSTOMER_ID="12341234-12341234-13241234"
811
#
912
# # Optional configuration for UJI
1013
# export ALLUVIO_UJI_TAG="<script id=ALLUVIO-Aternity-UJI src=http:\/\/my-UJI-tag-prefix-flyfast\.btttag\.com\/btt\.js><\/script>"
@@ -15,30 +18,29 @@
1518
# Example in PowerShell
1619
#
1720
# # Configuration for APM
18-
# $env:ATERNITY_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
19-
# $env:ATERNITY_CUSTOMER_ID="12341234-12341234-13241234"
21+
# $env:RIVERBED_APM_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
22+
# $env:RIVERBED_APM_CUSTOMER_ID="12341234-12341234-13241234"
2023
#
2124
# # Optional configuration for UJI
2225
# $env:ALLUVIO_UJI_TAG="<script id=ALLUVIO-Aternity-UJI src=http:\/\/my-UJI-tag-prefix-flyfast\.btttag\.com\/btt\.js><\/script>"
2326
#
2427
# # Start containers
2528
# docker compose up
2629

27-
version: '3.4'
2830
services:
2931

3032
apm-collector:
3133
image: registry.hub.docker.com/aternity/apm-collector:latest
3234
container_name: apm-collector
3335
environment:
34-
SERVER_URL: "wss://${ATERNITY_SAAS_SERVER_HOST}/?RPM_AGENT_CUSTOMER_ID=${ATERNITY_CUSTOMER_ID}"
36+
SERVER_URL: "wss://${RIVERBED_APM_SERVER_HOST}/?RPM_AGENT_CUSTOMER_ID=${RIVERBED_APM_CUSTOMER_ID}"
3537
ports:
3638
# Uncomment the telemetry protocol used by the application
3739

3840
# OpenTelemetry, https://opentelemetry.io
41+
# - "4317:4317/tcp" # OpenTelemetry OTLP over gRPC
3942
# - "4318:4318/tcp" # OpenTelemetry OTLP JSON/Protobuf over HTTP
4043
- "55681:55681/tcp" # OpenTelemetry OTLP JSON/Protobuf over HTTP
41-
# - "4317:4317/tcp" # OpenTelemetry OTLP over gRPC
4244

4345
# Jaeger, https://www.jaegertracing.io
4446
# - "14268:14268/tcp" # Jaeger Thrift Binary over HTTP
172 KB
Loading

images/diagram.png

-82.5 KB
Binary file not shown.

0 commit comments

Comments
 (0)