Overview & Scope
This guide shows you how to deploy the open‑source iDURAR CRM on AWS EKS and instrument it end‑to‑end with TrueWatch for metrics, logs, real‑user monitoring (RUM) and distributed tracing.
1 Introduction
TrueWatch is a full‑stack observability platform that unifies metrics, logs, traces, real‑user monitoring and synthetic testing behind a single pane of glass.
iDURAR is a MERN‑stack CRM with:
- React frontend
- Node.js + Express backend
- MongoDB persistence
- Container‑friendly design (Helm charts & manifests)
Throughout this workwshop you will
- Deploy iDURAR on EKS
- Install Datakit (TrueWatch’s agent)
- Add RUM to the React UI
- Build live dashboards, pipelines and alerts
- Trace a request hop‑by‑hop from the browser to MongoDB
2 Prerequisites
Requirement | Notes |
---|---|
TrueWatch Cloud account & workspace | Sign up at https://id1-auth.truewatch.com/businessRegister. |
AWS account with EKS cluster | The examples use an existing cluster named eks-demo-cluster in ap-southeast-1. |
AWS CloudShell | All commands are executed from CloudShell unless noted. |
kubectl, git, aws CLI | Pre‑installed in CloudShell. |
3 Environment Setup
On AWS CloudShell, clone the workshop repository and change into it:
git clone https://github.com/TrueWatchTech/idurar-demo-workshop
cd idurar-demo-workshop/workshop
4 Configure Datakit on AWS EKS
Step 1 Obtain Dataway endpoint
From TrueWatch → Integrations → Datakit → Kubernetes copy the ENV_DATAWAY value.
Step 2 Update datakit.yaml
Open the manifest and replace YOUR-ENV-DATAWAY (line 133) with the value copied above:
vim datakit.yaml # use ":set nu" for line numbers
Step 3 Configure your Kube‑context
aws eks --region ap-southeast-1 update-kubeconfig --name eks-demo-cluster
Remember to update the region and cluster name to your environment's context.
Step 4 Deploy Datakit
kubectl apply -f datakit.yaml
kubectl get pods -n datakit
Step 5 Verify in the UI
1. Infrastructure – EKS nodes should appear.
2. Containers → Pods – Pod‑level metrics.
3. Analysis Dashboard – Host & container widgets.
4. Network → Map – Traffic flows.
5. Logs – e.g., kube‑proxy and cluster events.
5 Create a RUM Client Application
Step 1 Register the application
- TrueWatch → RUM → Application → Create
- Choose Web
- Name & ID: idurar
- Copy the generated clientToken
- Click Create
Step 2 Inject the token in the React UI
vim ../frontend/src/main.jsx # edit line 10
Replace the placeholder token with the one you just copied.
6 Deploy the Demo Application
Step 1 Make helper scripts executable
chmod +x bootstrap.sh build-and-push.sh deploy.sh
Step 2 Confirm/adjust AWS Region
vim values.env # edit line 6 if necessary
Step 3 Bootstrap ECR & other resources
./bootstrap.sh
Step 4 Build & push images (≈5 min)
./build-and-push.sh
Step 5 Deploy application & refresh Datakit
./deploy.sh
kubectl delete -f datakit.yaml && kubectl apply -f datakit.yaml
Step 6 Grab the external URL
kubectl get all -n idurar-demo
Step 7 Log in
- Username: [email protected] - Password: admin123
7 End‑to‑End Tracing Walk‑Through
1. Create a customer (iDURAR → Customers → Add).
2. TrueWatch → RUM → Session Explorer, open latest session.
3. Fetch/XHR → sort by latency.
4. Click /api/payment/summary → View Related Trace → select MongoDB span.
5. Locate Current Span to zoom in; inspect timing & query.
6. Host tab to correlate with node metrics.
7. Logs tab → host to see correlated logs.
8. Back in the session view, click any Error entry for details.
8 Create a Log Pipeline
Step 1 New pipeline
Logs → Pipelines → Create Pipeline
Step 2 Grab sample logs
Fill basic info → Get a Sample.
If empty, click +Add and select idurar-frontend.
Step 3 Define parsing rules (Grok)
Choose Manual and paste:
# Extract the 'message' field from the log
json(_, message)
# Replace new lines
replace(message, "\n", " ")
# Grok patterns
grok(message, "> vite --host %{IP:host_ip}")
grok(message, "VITE v%{GREEDYDATA:version} ready in %{NUMBER:ready_time} ms")
grok(message, "➜ Local: %{URI:local_url}")
grok(message, "➜ Network: %{URI:network_url}")
Click Test.
Step 4 Save
Verify extracted fields and Save the pipeline. Future logs will be parsed automatically.
9 Create Alert Rules
Step 1 New monitor
Monitoring → Monitors → Create → APM Metric Detection
Step 2 Configure & create
Fill in the parameters as shown and click Create.
10 Deployment Architecture
Component | Purpose |
---|---|
AWS ALB | Routes user traffic to EKS. |
iDURAR Frontend | React UI integrated with RUM SDK. |
iDURAR Backend | Node.js/Express API & business logic. |
MongoDB | Persistent data store. |
DataKit | DaemonSet collecting metrics/logs/traces. |
TrueWatch | SaaS observability backend. |