XLSMART for BUSINESSis Now Bringing TrueWatch to Indonesia

TrueWatch Workshop: iDURAR Deployment and Instrumentation on AWS EKS

Aug 15, 2025By Jimmy Soh

TrueWatch iDURAR Deployment Cover

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

  1. Deploy iDURAR on EKS
  2. Install Datakit (TrueWatch’s agent)
  3. Add RUM to the React UI
  4. Build live dashboards, pipelines and alerts
  5. Trace a request hop‑by‑hop from the browser to MongoDB

2 Prerequisites

RequirementNotes
TrueWatch Cloud account & workspaceSign up at https://id1-auth.truewatch.com/businessRegister.
AWS account with EKS clusterThe examples use an existing cluster named eks-demo-cluster in ap-southeast-1.
AWS CloudShellAll commands are executed from CloudShell unless noted.
kubectl, git, aws CLIPre‑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.

TrueWatch Step 1 Obtain Dataway Endpoint

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

TrueWatch Step 2 Update Datakit

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.

TrueWatch Step 3 Configure Kube 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.

TrueWatch Step 5 Infrastructure

2. Containers → Pods – Pod‑level metrics.

TrueWatch Step 5 Containers

3. Analysis Dashboard – Host & container widgets.

TrueWatch Step 5 Dashboard

4. Network → Map – Traffic flows.

TrueWatch Step 5 Network Maps

5. Logs – e.g., kube‑proxy and cluster events.

TrueWatch Step 5 Logs

5 Create a RUM Client Application

Step 1 Register the application

  1. TrueWatch → RUM → Application → Create
  2. Choose Web
  3. Name & ID: idurar
  4. Copy the generated clientToken
  5. Click Create

TrueWatch Create RUM Client Application

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.

TrueWatch Inject Token React UI

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

adjust AWS region.png

Step 3 Bootstrap ECR & other resources

./bootstrap.sh

bootstrap.png

Step 4 Build & push images (≈5 min)

./build-and-push.sh

build push images.png

Step 5 Deploy application & refresh Datakit

./deploy.sh
kubectl delete -f datakit.yaml && kubectl apply -f datakit.yaml

deploy application.png

Step 6 Grab the external URL

kubectl get all -n idurar-demo

external URL.png

Step 7 Log in

- Username: [email protected] - Password: admin123

log in.png

7 End‑to‑End Tracing Walk‑Through

1. Create a customer (iDURAR → Customers → Add).

Step 7 Part 1.png

2. TrueWatch → RUM → Session Explorer, open latest session.

Step 7 Part 2.png

3. Fetch/XHR → sort by latency.

Step 7 Part 3.png

4. Click /api/payment/summary → View Related Trace → select MongoDB span.

Step 7 Part 4.png

5. Locate Current Span to zoom in; inspect timing & query.

Step 7 Part 5.png

6. Host tab to correlate with node metrics.

Step 7 Part 6.png

7. Logs tab → host to see correlated logs.

Step 7 Part 7.png

8. Back in the session view, click any Error entry for details.

Step 7 Part 8.png

Step 7 Part 8 2.png

8 Create a Log Pipeline

Step 1 New pipeline

Logs → Pipelines → Create Pipeline

Part 8 Step 1.png

Step 2 Grab sample logs

Fill basic info → Get a Sample.

If empty, click +Add and select idurar-frontend.

Part 8 Step 2.png

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.

Part 8 Step 4.png

9 Create Alert Rules

Step 1 New monitor

Monitoring → Monitors → Create → APM Metric Detection

Part 9 Step 1.png

Part 9 Step 1 2.png

Step 2 Configure & create

Fill in the parameters as shown and click Create.

Part 9 Ste 2.png

Part 9 Step 2 2.png

10 Deployment Architecture

Part 10 Image 1.png

ComponentPurpose
AWS ALBRoutes user traffic to EKS.
iDURAR FrontendReact UI integrated with RUM SDK.
iDURAR BackendNode.js/Express API & business logic.
MongoDBPersistent data store.
DataKitDaemonSet collecting metrics/logs/traces.
TrueWatchSaaS observability backend.
Get in touch background

Go beyond observability with TrueWatch today.