Codespaces#
This Codespace leverages the Dynatrace Enablement Framework, providing a robust and flexible development environment. Key features include:
- Seamless operation within GitHub Codespaces, as a remote container, or locally via Docker.
- Cross-compilation support for both AMD and ARM architectures, ensuring broad compatibility.
- Adherence to industry standards and best practices to optimize the developer experience.
- Real-time observability of Kubernetes clusters using Dynatrace Full-Stack monitoring.
- Integrated Dynatrace MCP Server to deliver deep, actionable insights across distributed systems.
To learn more about the Dynatrace Enablement Framework and how it can enhance your development workflow, please refer to the official documentation
Create Codespace#
Click to open Codespaces for this workshop repository:
Codespace Configuration
- Branch
- select the main branch
- Dev container configuration
- select Dynatrace Enablement Container
- Machine type
- select 4-core
- Region
- select any region, preferably one closest to your Dynatrace tenant
GitHub Codespaces Alternatives
The simplest approach is using GitHub Codespaces. However, you can alternatively run this workshop on the following:
- Local container on your workstation
- Local container on your cloud virtual machine (AWS EC2, Azure VM, Google GCE)
- Visual Studio Code Dev Container
To learn more, review the quick step-by-step guide of the Dynatrace Enablement Framework.
Make sure your container has sufficient resources (4 CPU Core & 16 GB Memory minimum).
Wait for Codespace#
We know your time is very valuable. This codespace takes around 7-10 minutes to be fully operational. A local Kubernetes (kind) cluster will be configured and in it a sample application, AstroShop, will be deployed. To make your experience better, we are also installing and configuring tools like:
k9s kubectl helm node jq python3 gh
Deploy Demo Applications#
There is an application repository for you to deploy applications easily to your Kubernetes cluster.
Running deployApp without parameters displays an interactive help menu listing all available apps, their aliases, and their compatibility (AMD/ARM). Example output:
To deploy an app#
- Use any of the listed numbers, characters, or names. For example, to deploy
astroshop, you can run:deployApp 2 # or deployApp b # or deployApp astroshop
To undeploy an app#
- Add
-das an extra argument:deployApp 2 -d # or deployApp astroshop -d
Each app folder should contain its own deployment and cleanup scripts or instructions. The deployApp function will call these as needed.
AstroShop (OpenTelemetry Demo App)#
The base configuration of the Codespaces instance will automatically deploy AstroShop using the function below.
deployApp astroshop
AstroShop is required to complete the workshop.
EasyTrade#
EasyTrade is not required to complete the workshop. It is available should you choose to add additional environment complexity and use cases. The hands-on exercises do not reference EasyTrade, however it can be leveraged to "freestyle" additional exercises.
Additional Resources
Deploying additional demo applications will consume significant resources. In order to deploy EasyTrade, make sure you have 8 CPU and 32GB Memory allocated to your Codespaces container.
Deploy EasyTrade using the function below.
deployApp easytrade
HipsterShop#
HipsterShop is not required to complete the workshop. It is available should you choose to add additional environment complexity and use cases. The hands-on exercises do not reference HipsterShop, however it can be leveraged to "freestyle" additional exercises.
Additional Resources
Deploying additional demo applications will consume significant resources. In order to deploy HipsterShop, make sure you have 8 CPU and 32GB Memory allocated to your Codespaces container.
Deploy HipsterShop using the function below.
deployApp hipstershop
Troubleshooting#
AstroShop#
If you encounter problems with the AstroShop app deployed in the astroshop namespace, you can easily recycle the pods.
Recycle pods:
kubectl delete pods --all -n astroshop
But before doing so, if you want to see what is happening we recommend the following:
Verify all astroshop pods
kubectl get pods -n astroshop
Check for events in the astroshop namespace
kubectl get events -n astroshop
Check for system and cluster events
kubectl get events -n kube-system
kubectl get events -n default
The Astroshop application is exposed via NodePort and it's mapping port 8080 to Cluster port 30100.
Verify service:
kubectl get svc astroshop-frontendproxy -n astroshop
Deploy Dynatrace Configurations with Monaco#
This workshop includes multiple Dynatrace configurations, such as Launchpads, Dashboards, and Notebooks. These can be deployed to your Dynatrace tenant automatically, using Monaco.
Start by setting your environment variables for Monaco, these will allow Monaco to authenticate with the Dynatrace Platform Services API.
export DT_PLATFORM_URL=https://{your-environment-id}.apps.dynatrace.com
export DT_PLATFORM_TOKEN=dt0sXX.ABC123XYZ
Deploy the Dynatrace configurations with Monaco using the provided helper function.
deployDynatraceConfig
Review the Monaco logs output in the console and check for any error messages. If the configurations were deployed successfully, you should see Successfully deployed Dynatrace Configurations with Monaco.

In your Dynatrace tenant, open the Notebooks App. Locate the newly uploaded Notebook titled Workshop - Workshop Exercises.

Continue#
In the next section, we'll deploy Dynatrace on Kubernetes for full-stack observability with log analytics.