Problem Analysis

Trento Server

There are two tools you can use to collect information and data that can be useful when troubleshooting and analyzing issues with Trento Server.

Trento support plugin

The Trento support plugin consists of the trento-support.sh script and the support plugin itself. The tool automates the collection of logs and relevant runtime information on the server side. It can be used in two different scenarios:

  • A deployment on K3s

  • A systemd deployment

Using the Trento support plugin with a K3s deployment

Using the plugin with a K3s deployment requires a SUSE Linux Enterprise Server for SAP applications 15 SP3 or higher host with the following setup:

  • Packages jq and yq are installed

  • Helm is installed

  • kubectl is installed and connected to the Kubernetes cluster where Trento Server is running

To use the plugin, proceed as follows:

  1. Install the Trento support plugin:

    # zypper ref
    # zypper install supportutils-plugin-trento
  2. Run the trento-support.sh script:

    # trento-support.sh --output file-tgz --collect all
  3. Send the generated archive file to support for analysis.

The script accepts the following options:

  • -o, --output Output type (stdout, file, file-tgz)

  • -c, --collect Collection options (configuration, base, kubernetes, all)

  • -r, --release-name Release name to use for the chart installation. Default is trento-server

  • -n, --namespace Kubernetes namespace used when installing the chart.Default is default

  • --help Shows help messages

Using the Trento support plugin with a systemd deployment

To use the plugin in this scenario, proceed as follows:

  1. Install the Trento support plugin:

    # zypper ref
    # zypper install supportutils-plugin-trento
  2. Execute supportconfig as described in https://documentation.suse.com/sles/html/SLES-all/cha-adm-support.html\#sec-admsupport-cli. The supportconfig tool will call the Trento support plugin.

  3. Send the generated output to support for analysis.

Scenario dump script

A scenario dump is a dump of the Trento database. It helps the Trento team to recreate the scenario to test it.

A script is available in the Trento upstream project. The script helps generate a scenario dump when the server is running on a Kubernetes cluster. Using this script requires a host with the following setup:

  • kubectl is installed and connected to the Kubernetes cluster where Trento Server is running.

To generate the dump, proceed as follows:

  1. Download the latest version of the dump script:

    > wget https://raw.githubusercontent.com/trento-project/web/main/hack/dump_scenario_from_k8.sh
  2. Make the script executable:

    > chmod +x dump_scenario_from_k8.sh
  3. Make sure that kubectl is connected to the Kubernetes cluster where Trento Server is running and run the script:

    > ./dump_scenario_from_k8.sh -n SCENARIO_NAME -p PATH
  4. Go to PATH/scenarios/SCENARIO_NAME, package all the generated JSON files, and send the package to support for analysis.

Pods descriptions and logs

In case of a deployment on K3s, the descriptions and logs of the Trento Server pods can be useful for analysis and troubleshooting purposes (in addition to the output of the trento-support.sh script and the dump scenario script). These descriptions and logs can be obtained with the kubectl command. For this to work, you need a host with kubectl is installed and connected to the K3s cluster running Trento Server.

  1. List the pods running in Kubernetes cluster and their statuses. Run the command below to view Trento Server pods:

    > kubectl get pods
    
    NAME                                               READY   STATUS    RESTARTS   AGE
    trento-server-postgresql-0                         1/1     Running   0          87m
    trento-server-prometheus-server-7b5c9474bc-wmv8s   2/2     Running   0          87m
    trento-server-rabbitmq-0                           1/1     Running   0          87m
    trento-server-wanda-67ffbb79dc-7t6xw               1/1     Running   0          87m
    trento-server-web-7df8f65794-vdbhs                 1/1     Running   0          87m
  2. Retrieve the description of a pod as follows:

    > kubectl describe pod POD_NAME
  3. Retrieve the log of a pod as follows:

    > kubectl logs POD_NAME
  4. Monitor the log of a pod as follows:

    > kubectl logs POD_NAME --follow