Troubleshooting with Mesh Doctor

Mesh Doctor is a tool to troubleshoot and debug issues in a Service Mesh setup. Mesh doctor collects required configurations and logs, runs an analysis, and generates reports. The reports summarize the state of your Service Mesh and suggest necessary troubleshooting steps to fix any issues.

Using Mesh Doctor

You can use the Mesh Doctor tool in two ways.

  • OCI CLI: Run Mesh Doctor from the command line with the debug command.
    Note

    To install OCI CLI, see: Install OCI CLI.
  • Console: You can run the Mesh Doctor from the console using the following steps.

    The OCI Console opens the Mesh Doctor command in an OCI Cloud Shell window and runs a command. When the command completes, Mesh Doctor provides the path to the zipped file with the generated reports. To view the reports, unzip the file in Cloud Shell or download the zipped file from Cloud Shell.

Important

Cloud Shell powers the Mesh Doctor user interface. This command only works in public clusters. The command times out in private clusters.

Mesh Doctor Command-Line Options

The following table provides a detailed list of all the Mesh Doctor command line options based on the oci service-mesh debug base command.

Parameter isOptional Value Type Default Example Notes
kubeconfig True FilePath(String) kubeconfig present in ~/.kube/config ~/config Config of the Kubernetes cluster. If the config isn't provided, the default config is used by the command.
resource-id True OCID Null ocid1.mesh.oc1.iad.id Resource to be diagnosed. If the resource isn't provided the command diagnoses the installation.
context True String current-context in kube-config context-aaa The context of the Kubernetes cluster.
thread-pool-size True Int 25 10 Number of threads used to parallelize the processing.

Using Mesh Doctor CLI to Troubleshoot Setup

To troubleshoot an entire service mesh setup in the Kubernetes cluster, run the following command.

oci service-mesh debug report

Using Mesh Doctor CLI to Troubleshoot Mesh Resources

The following Mesh Doctor CLI commands provide example use cases.

Troubleshoot a Mesh:
oci service-mesh debug report --resource-id ocid1.mesh.oc1.iad.aaa...
Running the command produces output similar to the following:
Bundle file path: /my-home/service-mesh-debug-report_07-01-2022_20-00-00
=============================== Mesh Report Analysis ===============================

OLM version: v0.20.0

|    Sidecar Image Versions    |
|    Version     |      Count     |
|    0.1.520     |       13       |
All sidecars are using same version

|  Config Versions   |
| Version   |   Count   |
|    5      |     13    |
All  configs are of the same version

All Operator Services are installed

All Mesh Webhooks are installed

All Mesh Custom Resources are installed
Troubleshoot a Virtual Service:
oci service-mesh mesh-debug report --resource-id ocid1.meshvirtualservice.oc1.iad.aaa...
Troubleshoot a Virtual Deployment:
oci service-mesh mesh-debug report --resource-id ocid1.meshvirtualdeployment.oc1.iad.aaa...
Troubleshoot an Ingress Gateway:
oci service-mesh mesh-debug report --resource-id ocid1.meshingressgateway.oc1.iad.aaa...