7 Viewing the Service Mesh

This chapter describes methods to view service mesh information.

Viewing Service Mesh Status for a Cluster Node

This section provides instructions for obtaining Service Mesh status information about a node in an Oracle Linux Automation Manager cluster, such as:
  • Node ID: The node ID must be the IP address of the host.
  • System Information: Such as CPU count and system memory.
  • Connections: A list of IP address or host names that the node is connected with and the number of hops required to reach them, listed as the cost. Cost is defined by each customer.
  • Known Node and Known Node Connections: A list of all known nodes in the cluster and the further connections known to each node listed.
  • Route: This parameter list the route by which a node connects to another node. If the node is the same, then node is directly connected. If the nodes are different, then there is one or more hop or execution plane nodes between the nodes.
  • Node Service: The Control Service run on every node in the cluster. It reports node status and monitors work being performed on the node.
  • Node Work Types: The work types are Local for control plane nodes and ansible-runner for execution plane nodes.

To view service mesh status, from any host in the cluster, do the following:

  1. Run the following command to obtain status information about the service mesh:
    sudo receptorctl  --socket /var/run/receptor/receptor.sock status
    
    For example, the following command shows the status for a four host cluster where peer relationships have been established:
    sudo receptorctl  --socket /var/run/receptor/receptor.sock status
    Node ID: 192.0.121.28
    Version: +g
    System CPU Count: 4
    System Memory MiB: 15583
    
    Connection         Cost
    192.0.113.178    1
    192.0.127.70     1
    
    Known Node         Known Connections
    192.0.113.178    {'192.0.121.28': 1, '192.0.126.172': 1}
    192.0.121.28     {'192.0.113.178': 1, '192.0.127.70': 1}
    192.0.126.172    {'192.0.113.178': 1, '192.0.127.70': 1}
    192.0.127.70     {'192.0.121.28': 1, '192.0.126.172': 1}
    
    Route              Via
    192.0.113.178    192.0.113.178
    192.0.126.172    192.0.113.178
    192.0.127.70     192.0.127.70
    
    Node               Service   Type       Last Seen             Tags
    192.0.113.178    control   Stream     2022-09-02 18:06:14   {'type': 'Control Service'}
    192.0.121.28     control   Stream     2022-09-02 18:06:33   {'type': 'Control Service'}
    192.0.126.172    control   Stream     2022-09-02 18:06:20   {'type': 'Control Service'}
    192.0.127.70     control   Stream     2022-09-02 18:06:25   {'type': 'Control Service'}
    
    Node               Work Types
    192.0.113.178    ansible-runner
    192.0.121.28     local
    192.0.126.172    local
    192.0.127.70     ansible-runner
    

Viewing Service Mesh Cluster Status

Using the api/v2/mesh_visualizer/ API call, you can view status information about each node in your service mesh cluster and details about available links setup between each node from the perspective of Oracle Linux Automation Manager.

To get cluster node and link details, do the following:
  1. Log in to your Oracle Linux Automation Manager server with a user account.
     https://<hostname or IP address>/api/login/

    Note:

    In the previous example, <hostname or ip address> is the hostname or IP address of the system running Oracle Linux Automation Manager . If hostname is used, the host must be resolvable.
  2. In the response area, click one of the /api/v2 links. This performs a get request that lists all available resources.
  3. Click the /api/v2/mesh_visualizer/ link.
    The Mesh Visualizer get response appears. For example:
    HTTP 200 OK
    Allow: GET, HEAD, OPTIONS
    Content-Type: application/json
    Vary: Accept
    X-API-Node: 192.0.121.28
    X-API-Product-Name: AWX
    X-API-Product-Version: 19.5.1
    X-API-Time: 0.019s
    
    {
        "nodes": [
            {
                "id": 1,
                "hostname": "192.0.121.28",
                "node_type": "control",
                "node_state": "healthy"
            },
            {
                "id": 2,
                "hostname": "192.0.127.70",
                "node_type": "execution",
                "node_state": "healthy"
            },
            {
                "id": 3,
                "hostname": "192.0.126.172",
                "node_type": "hop",
                "node_state": "healthy"
            }
        ],
        "links": [
            {
                "source": "192.0.127.70",
                "target": "192.0.121.28"
            },
            {
                "source": "192.0.126.172",
                "target": "192.0.121.28"
            },
            {
                "source": "192.0.127.70",
                "target": "192.0.126.172"
            }
        ]
    }