Monitor three layers: JVM / platform, the BAW engine, and the business flow. What matters and where to get it:
| Signal | Why | WAS | CP4BA |
|---|
| Heap after GC, GC pause | leaks, undersized JVM | PMI JVM runtime / verbose GC | Liberty monitor feature metrics scraped by Prometheus (jvm_*) |
| Thread pool usage | saturation | PMI WebContainer pool | threadpool_* metrics |
| JDBC pool wait time / free connections | the classic bottleneck | PMI JDBC provider | connectionpool_* metrics |
| Event Manager backlog (due tasks not executed) | timers / UCAs late | Process Admin Event Manager monitor | same tables, Operations REST |
| Failed instances / tasks in error | integration outages | REST search (instanceStatus=Failed) | Operations REST / BAI |
| BPMDB size and growth | retention | database monitoring | database monitoring |
| Response time of task list / coach | user experience | synthetic probe | synthetic probe |
# CP4BA: Workflow pods expose Liberty metrics; a ServiceMonitor picks them up (OpenShift user workload monitoring must be enabled)
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata: { name: baw-metrics, namespace: cp4ba }
spec:
selector: { matchLabels: { app.kubernetes.io/name: bawfin } } # label of your Workflow service
endpoints: [ { port: https, scheme: https, path: /metrics, tlsConfig: { insecureSkipVerify: true }, basicAuth: { username: {name: baw-metrics-auth, key: user}, password: {name: baw-metrics-auth, key: password} } } ]
# example alert (PromQL) - heap after GC above 85 % for 10 minutes
- alert: BawHeapHigh
expr: base_memory_usedHeap_bytes / base_memory_maxHeap_bytes > 0.85
for: 10m# release-independent engine probes through the REST API (a monitoring user with read access)
PUT /rest/bpm/wle/v1/search/query?organization=byInstance&run=true&size=1&condition=instanceStatus%7CFailed -> data.totalCount = failed instances
GET /rest/bpm/wle/v1/system/details -> version, build, node - a cheap liveness probe
Alerts that matter (in order of how often they precede an incident): JDBC pool wait time above zero for more than a minute; Event Manager backlog growing (timers late); failed instance count rising; heap above 85 % after GC; BPMDB growing faster than the retention job deletes; certificate expiry of Server definitions (external calls start failing at midnight); and the synthetic task-list probe slower than 3 s. On CP4BA add the operator's readiness of the CR (oc get icp4acluster -o jsonpath of the conditions) and pod restarts. Business monitoring (cycle times, SLA breaches) belongs in BAI / the PDW dashboards, not in the infrastructure alerts.
References