Cloud Pak for Watson AIOps: Event Dashboard not working

Across several recent Cloud Pak for Watson AIOps (CP4WAIOps) installs I’ve noted a consistent issue where the Event Dashboard does not render correctly. Initially it looks like no filters have been assigned to the dashboard. Unfortunately, opening the Event Dashboard Editor highlights a similar issue where the Dashboard Layout section is blank.

Event Dashboard not working

 

The root cause of the issues is the default modes for the Event Dashboard and Event Dashboard Editor in CP4WAIOps v3.1.1 are both “applet”, i.e. Java mode. For some years now, most legacy WebGUI Java widgets have had an alternative “lightweight” mode, i.e. a JavaScript mode. So a fix in this case is simply to ensue those widgets start in lightweight mode.

Those familiar with a classic local installation of Web GUI will know such updates are made using properties in the file “$WEBGUIHOME/etc/server.init”. The option is to set the individual “dashboard.*.mode” properties to “lightweight”, or remove those properties altogether and set the property “plugin.enabled” to “false”. The latter will prevent the Java applet modes for all widgets. But how is this done in an OpenShift installation?

With CP4WAIOps, Web GUI is a container, and containers should not be updated directly, only via the image, which in this case is managed by IBM. Any changes made within a container are lost on restart.

“ConfigMaps” to the rescue! Within an OpenShift cluster, the “ConfigMap” resource can be used to manage such runtime properties. In this instance, as part of the move to containers, the “server.init” configuration options are set in the “ConfigMap” instance labelled “evtmanager-webgui-init-config” (within the project created for the CP4WAIOps  instance). As an OpenShift resource, the “ConfigMap” is stored in the “etcd” database on the Master Nodes (Control Plane), and hence configuration changes persist the restart of a container.

The update to the “ConfigMap” can be completed either from the OpenShift UI or using the OpenShift command line interface, “oc”. Both options are explained below.

Update from the OpenShift UI

From the OpenShift UI:

  • Navigate to Workloads > ConfigMaps
  • Select the project used for the CP4WAIOps installation
  • Search and select the “ConfigMap” named “evtmanager-webgui-init-config”
  • From the “YAML” tab, add/remove the relevant properties and click “Save”

Update the ConfigMap

For the updated settings to apply, the Pod “evtmanager-webgui-0” needs to be deleted. This will obviously mean that users cannot access the Web GUI until it is automatically re-started. That process takes 5-10 minutes on my test environment.

  • Select Workloads > Pods
  • Check the project selected is the one used for the CP4WAIOps installation
  • Search for the pod “evtmanager-webgui-0”
  • Select “Delete Pod” from the ellipse at the end of the row

Delete the Web GUI Pod

Update from the OpenShift CLI

The same process can be completed from the CLI. The CLI may offer a more repeatable method for updating the settings. In the following example the existing properties “dashboard.*.mode” are updated:

#Export the current ConfigMap:
oc get configmap -n orb-cp4waiops evtmanager-webgui-init-config -o yaml | tee oc-get-configmap.orb-cp4waiops.evtmanager-webgui-init-config.yaml
#Update the properties:
sed -i.bak "s/\(dashboard\..\+\.mode:\)applet/\1lightweight/" oc-get-configmap.orb-cp4waiops.evtmanager-webgui-init-config.yaml
#Verify the changes
diff oc-get-configmap.orb-cp4waiops.evtmanager-webgui-init-config.yaml oc-get-configmap.orb-cp4waiops.evtmanager-webgui-init-config.yaml.bak
8,9c8,9
< dashboard.edit.render.mode:lightweight
< dashboard.render.mode:lightweight
---
> dashboard.edit.render.mode:applet
> dashboard.render.mode:applet
#Update the ConfigMap
oc apply -f oc-get-configmap.orb-cp4waiops.evtmanager-webgui-init-config.yaml
#Delete the pod and monitor for restart
oc delete pod -n orb-cp4waiops evtmanager-webgui-0 | tee oc-delete-pod.orb-cp4waiops.evtmanager-webgui-0.txt
oc get pod -n orb-cp4waiops evtmanager-webgui-0
NAME READY STATUS RESTARTS AGE
evtmanager-webgui-0 0/2 Init:0/2 0 6s
oc get pod -n orb-cp4waiops evtmanager-webgui-0
NAME READY STATUS RESTARTS AGE
evtmanager-webgui-0 0/2 Running 0 6m4s
oc get pod -n orb-cp4waiops evtmanager-webgui-0
NAME READY STATUS RESTARTS AGE
evtmanager-webgui-0 2/2 Running 0 11m

Event Dashboard fixed

Conclusion

IBM have said this specific issue will be fixed in the next release of CP4WAIOps. However, these “ConfigMap” update methods can be used for setting any of the properties historically in the file “server.init”. That file was self-describing, with many useful comments, however, that information is also available in the standard IBM documentation for OMNIbus. Check-out the section Reference > Web GUI Reference > Initialization File Properties. You will find “ConfigMaps” replacing configuration files for the various NOI components including the ObjectServer, bi-directional ObjectServer gateway and Impact. All that knowledge from the past 20 years can be applied to the new solution using “ConfigMaps”!

 

Hits: 34

Comments are closed.