Lab Exercise #d - Orchestration Engine
Let's solve some more things to better understand the Camunda 8 orchestration engine.
- Note: Use Project Lens UI app for this lab. It provides you ability to launch terminal session with the Pods.
-
Note: For security reasons, Headlamp dashboard has
view-onlyaccess and hence cannot open terminal session with the Pods.
Let's see the configuration of the Zeebe Pods and how they are running. We will check the disk space usage and see how the data directory is mounted to a persistent volume claim (PVC).
# Start a terminal session with one of the Zeebe Pod(s)
# ---
# run this command to see free disk space. Also notice the data directory is mounted to a persistent volume claim (PVC)
df -k
# List the directory structure upto 3 levels
tree -L 3 /usr/local/camunda/data
# See which directories consume space
du -h --max-depth=2 /usr/local/camunda/data | sort -h
Post Command-Set Execution: The data directory should look something like this.
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 98831908 9506612 89308912 10% /
tmpfs 65536 0 65536 0% /dev
/dev/sda1 98831908 9506612 89308912 10% /tmp
/dev/sdb 5074592 407268 4650940 9% /usr/local/camunda/data
Post Command-Set Execution: Click to view screen shot - Directory structure
Click on image to enlarge
We will then resume the exporters, see how the data is exported to Elasticsearch and catching up with things.
- 2a. Pause exporting
- 2b. Use Postman to invoke a bunch of instances - say 100
- 2c. Resume exporting
# 2a - pause exporting
#
# Start a terminal session with Pod nginx-static-web-app
# ---
# Run this command to pause exporting
curl -X POST http://${UNAMESPACE}-zeebe.${UNAMESPACE}:9600/orchestration/actuator/exporting/pause
Post Command-Set Execution: Successful pause command !
{"body":null, "status":204, "contentType":null}
Post Command-Set Execution (a): Exporters paused successfully! Watch the panel: Number of records not exported
Click on image to enlarge
Use Postman to invoke a bunch of process instances.
We'll be using the curl command at section Deploy sample app - step 6-5 to generate equivalent postman script.
Open Postman app.
Create a new Postman collection.
Use the curl command at step 6-5 to generate equivalent PUT operation.
Use Postman runner to run the collection with 100 iterations.
Note you cannot see the instances in Operate dashboard since exporters are paused. You can see the instances reflected in Grafana dashboard (Messaging / Latency).
# 2c - resume exporting
#
# Start a terminal session with Pod nginx-static-web-app
# ---
# Run this command to resume exporting
curl -X POST http://${UNAMESPACE}-zeebe.${UNAMESPACE}:9600/orchestration/actuator/exporting/resume
Post Command-Set Execution: Successful resume command !
{"body":null, "status":204, "contentType":null}
Post Command-Set Execution: Exporters resumed successfully! Watch the panel: Number of records not exported returns to near zero levels
Click on image to enlarge
Post Command-Set Execution: See the Grafana panels - Processing, Messaging, and Latency respectively
Click on image to enlarge
Click on image to enlarge
Click on image to enlarge