Troubleshooting Kubernetes ETL


Make sure that the configuration of the datasources and the ETL connector is correct. Most of the issues occur due to wrong configuration or due to lack of ETL data load.

To collect ETL logs at log level 10

To add detailed activity logs to the log file:

  1. In the BMC Helix Capacity Optimization console, navigate to Administration > ETL & system tasks > ETL tasks and select the configured Kubernetes ETL.
  2. In the Run configurations section, click edit_simulation_icon.png.
  3. Make a note of the current value of the Log level setting. 
  4. Change the log level to 10 - Verbose and save the run configuration.
    Kubernetes_ETL.png
  5. After you run the ETL and the collect the logs, set the log level back to the previous value to avoid filesystem space issues.

To determine the Kubernetes ETL package version

  1. In the BMC Helix Capacity Optimizationconsole, navigate to the Administration > System > Maintenance.
  2. In the Additional Packages tab, search for the Kubernetes ETL and make a note of the Execution dateComponent versionInstalled version, and Status.
    This information will help you in troubleshooting issues with Kubernetes ETL.

Kubernetes_status.png

Resolutions for common issues

Symptom

Cause

Resolution

The following message is reported in the Kubernetes ETL log:

WARN [service-###-1]- No batch processed since last save.

There is no communication between the ETL Engine and the Heapster on the defined connector port.

To validate the connection, run the following command on the ETL Engine Server where the Kubernetes ETL is scheduled:

sink=opentsdb:http://<Helix_Capacity_Optimization_Server_Hostname>:<Helix_Capacity_Optimization_Kubernetes_Connector_Port?cluster=<Name_of_the_Kubernetes_Cluster>

where,

Helix_Capacity_Optimization_Server_Hostname is the hostname (or IP address) of the Helix Capacity Optimization application server (or ETL engine) where the Kubernetes connector is deployed.

Helix_Capacity_Optimization_Kubernetes_Connector_Port is the TCP port on which the Kubernetes connector is listening. This must be set to the same value as the TSCO listening port in the ETL configuration page.

Name_of_the_Kubernetes_Cluster is the string representing the cluster name.

The following message is reported in the Kubernetes ETL log:

BCO_TASK_FAIL005: Critical error detected during task 74 execution: java.lang.OutOfMemoryError: GC overhead limit exceeded

The Kubernetes ETL is not collecting data and the execution is interrupted because the ETL Java heap size is insufficient.

Increase the ETL Java heap size.

For details, see the following knowledge articles:

  • Article number 000349484 (Support logon ID required).
  • Article number 000302834 (Support logon ID required).

The Kubernetes ETL is not collecting data and the execution ends in ERROR.

Unable to start server. Permission denied

The configuration parameter that the Helix Capacity Optimization Installation Owner can bind to as a LISTEN port must be the same value as TSCO listening port (since only the root user can bind to ports lower than 1024).

In the ETL configuration page, change the value of TSCO listening port from a reserved port (1024 or lower) to an arbitrary port number that is greater than 1024 and is not currently in use on the Helix Capacity Optimization ETL Engine.

The following message is reported in the Kubernetes ETL log:

ERROR [service-393-1]- Unable to start serverAddress already in use

 

There is already a service or process (or another Kubernetes ETL) using the LISTEN port (default is 4242).

On the ETL Engine Server where the Kubernetes ETL is scheduled, run the following command:

netstat -an | grep <listening_port>

where, <listening_port> is the port of the Kubernetes ETL configuration.

This will confirm that the port is already in use. Request your server administrator for a new port.

The following message is reported in the Kubernetes ETL log:

INFO  [service-115-1]- User username cannot list nodes at the cluster scope: User username cannot list all nodes in the cluster

The account added in the ETL configuration does not have access to obtain necessary data from the Kubernetes API.

To configure the account, follow the steps listed in the Kubernetes API section in the Moviri-Integrator-for-BMC-Helix-Capacity-Optimization-k8s-Heapster topic.


 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*