This cookbook contains the full source code for FlyFast, utilizing both the FlyFast-WebUI and FlyFast-FlightSearch to demonstrates how the Alluvio Aternity DEM solution provides observability of a full-stack application using OpenTelemetry auto-instrumentation.
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 that will run in an another container.
- Git (Optional)
- an Aternity APM account (SaaS)
- an Aternity UJI account (Optional)
- a Docker host, for example Docker Desktop
git clone --recurse-submodules https://github.com/Aternity/FlyFast.git
Or
git clone https://github.com/Aternity/FlyFast.git
cd FlyFast
git submodule init
git submodule update
Navigate to Aternity APM (for example https://apm.myaccount.aternity.com) > Agents > Install Agents:
- Find your CustomerID, for example 12341234-12341234-13241234
- Grab SaaS Analysis Server Host, for example agents.apm.myaccount.aternity.com
Those information are required to activate the Aternity OpenTelemetry Collector container, passing via the environment variable SERVER_URL
.
Navigate to Aternity UJI (for example https://portals.bluetriangle.com) > Sites > Select Site > JS Source:
- Find your JS Source, for example <script id="ALLUVIO-Aternity-UJI" src="https://{{my-UJI-site-id}}.btttag.com/btt.js"></script>
Additional Information can be found here.
Start the containers using the docker-compose.yml, for example with Bash:
cd FlyFast
# Configure the environment variables for the Aternity OpenTelemetry Collector
export ATERNITY_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
export ATERNITY_CUSTOMER_ID="12341234-12341234-13241234"
# Configure the environment variables for Aternity UJI (Optional)
# Replace {{my-UJI-tagid}} with the UJI site id
export ALLUVIO_UJI_TAG='<script id=\"ALLUVIO-Aternity-UJI\" src=\"https:\/\/{{my-UJI-site-id}}\.btttag\.com\/btt\.js\"><\/script>'
# Build our docker with no cache
docker-compose build --no-cache
# Start the service
docker-compose up
or with PowerShell:
cd FlyFast
# Configure the environement variable for the Aternity OpenTelemetry Collector
$env:ATERNITY_SAAS_SERVER_HOST="agents.apm.myaccount.aternity.com"
$env:ATERNITY_CUSTOMER_ID="12341234-12341234-13241234"
# Configure the environment variables for Aternity UJI (Optional)
# Replace {{my-UJI-tagid}} with the UJI site id
$env:ALLUVIO_UJI_TAG='<script id=\"ALLUVIO-Aternity-UJI\" src=\"https:\/\/{{my-UJI-site-id}}\.btttag\.com\/btt\.js\"><\/script>'
# Build our docker with no cache
docker-compose build --no-cache
# Start the service
docker-compose up
The web application should now be available on http://localhost.
Open the url in your browser and navigate through the application a few times to generate some traffic.
Go to the APM webconsole to monitor the instance and observe every transaction.
View details of a specific transaction as a waterfall chart:
Press CTRL + C
in the shell where it is running.
Or in a shell, go to the folder where you keep the docker-compose.yml and run:
docker-compose stop
Stay up to date with the latest changes.
git submodule update --remote
Copyright (c) 2022 Riverbed Technology, Inc.
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.