API

Route: /summary

Method: GET

Returns an object summarizing all known zones and related metadata.

Response 200 (application/json)

{
  "zones": {
    "default-zone": {
      "clusters": {
        "example": {
          "clusterName": "example",
          "zoneName": "default-zone",
          "name": "Example Service",
          "version": "1.0",
          "owner": "Demo",
          "capability": "Demo",
          "runtime": "GO",
          "documentation": "/services/example/1.0",
          "prometheusJob": "example",
          "minInstances": 1,
          "maxInstances": 1,
          "authorized": true,
          "clusterID": "example",
          "meshID": "default-zone",
          "enableInstanceMetrics": true,
          "enableHistoricalMetrics": true,
          "instances": [
            {
              "name": "dca79626b6a99f6783f490556e4a5062",
              "startTime": 1569247575966
            }
          ],
          "metricsTemplate": "",
          "metricsPort": 8081
        },
        "fibonacci": {
          "clusterName": "fibonacci",
          "zoneName": "default-zone",
          "name": "Fibonacci",
          "version": "1.0.0",
          "owner": "Demo",
          "capability": "Demo",
          "runtime": "GO",
          "documentation": "/services/fibonacci/1.0/",
          "prometheusJob": "fibonacci",
          "minInstances": 1,
          "maxInstances": 1,
          "authorized": true,
          "clusterID": "fibonacci",
          "meshID": "default-zone",
          "enableInstanceMetrics": true,
          "enableHistoricalMetrics": true,
          "instances": [
            {
              "name": "7795eabdbaf06bb83b2947f74e5d0143",
              "startTime": 1570807423191
            }
          ],
          "metricsTemplate": "",
          "metricsPort": 8081
        }
      },
      "metadata": {
        "zoneName": "default-zone",
        "owners": [
          "Demo",
          "Decipher"
        ],
        "capabilities": [
          "Demo",
          "Grey Matter"
        ],
        "clusterCount": 22,
        "clusterStableCount": 17,
        "clusterWarningCount": 3,
        "clusterDownCount": 2,
        "instanceCount": 1
      }
    }
  },
  "metadata": {
    "zoneCount": 1,
    "owners": [
      "Demo",
      "Decipher"
    ],
    "capabilities": [
      "Grey Matter",
      "Demo"
    ],
    "clusterCount": 22,
    "clusterStableCount": 17,
    "clusterWarningCount": 3,
    "clusterDownCount": 2,
    "instanceCount": 30
  },
  "meshes": {
    "default-zone": {
      "clusters": {
        "example": {
          "clusterName": "example",
          "zoneName": "default-zone",
          "name": "Example Service",
          "version": "1.0",
          "owner": "Demo",
          "capability": "Demo",
          "runtime": "GO",
          "documentation": "/services/example/1.0",
          "prometheusJob": "example",
          "minInstances": 1,
          "maxInstances": 1,
          "authorized": true,
          "clusterID": "example",
          "meshID": "default-zone",
          "enableInstanceMetrics": true,
          "enableHistoricalMetrics": true,
          "instances": [
            {
              "name": "dca79626b6a99f6783f490556e4a5062",
              "startTime": 1569247575966
            }
          ],
          "metricsTemplate": "",
          "metricsPort": 8081
        },
        "fibonacci": {
          "clusterName": "fibonacci",
          "zoneName": "default-zone",
          "name": "Fibonacci",
          "version": "1.0.0",
          "owner": "Demo",
          "capability": "Demo",
          "runtime": "GO",
          "documentation": "/services/fibonacci/1.0/",
          "prometheusJob": "fibonacci",
          "minInstances": 1,
          "maxInstances": 1,
          "authorized": true,
          "clusterID": "fibonacci",
          "meshID": "default-zone",
          "enableInstanceMetrics": true,
          "enableHistoricalMetrics": true,
          "instances": [
            {
              "name": "7795eabdbaf06bb83b2947f74e5d0143",
              "startTime": 1570807423191
            }
          ],
          "metricsTemplate": "",
          "metricsPort": 8081
        }
      },
      "metadata": {
        "zoneName": "default-zone",
        "owners": [
          "Demo",
          "Decipher"
        ],
        "capabilities": [
          "Demo",
          "Grey Matter"
        ],
        "clusterCount": 22,
        "clusterStableCount": 17,
        "clusterWarningCount": 3,
        "clusterDownCount": 2,
        "instanceCount": 1
      }
    }
  }
}

Route: /clusters

Method: GET

Returns a list of service clusters, including running instances and start times.

Multiple query parameters may be used:

  • status: accepts stable, warning, and down

  • clusterName

  • zoneName

  • name

  • version

  • owner

  • capability

  • prometheusJob

  • authorized

  • enableInstanceMetrics

  • enableHistoricalMetrics

ex: GET /clusters?name=Example%20Service&owner=Decipher

Response 200 (application/json)

Method: POST

Adds a new service cluster.

ex: POST /clusters with the following request body:

Request (application/json)

Response 200 (application/json)

Route: /clusters/<clusterName>

Method: GET

Returns a list of matching service clusters, including running instances and starttimes.

A query parameter may be used to specify a zoneName.

ex: GET /clusters/example-service?zoneName=us-east-2

Response 200 (application/json)

Method: PUT

Replaces an existing service cluster within a mesh (specified in the request body object).

ex: PUT /clusters/example-service with the following request body:

Request (application/json)

Response 200 (application/json)

Method: DELETE

Deletes an existing service cluster within a mesh. Note that a zoneName must be specified via query parameter:

ex: DELETE /clusters/example-service?zoneName=us-east-2

Response 200 (application/json)

Route: /metrics/<clusterName>/<instance>

Method: GET

ex: /metrics/isprime-cluster-1/96cf8008461085dc439e495d7adabd21

Response 200 (application/json)

Route: /zones

Method: GET

Returns a list of metadata objects related to each known mesh.

Response 200 (application/json)

Method: POST

Adds a new mesh (i.e. registers a new gm-xds instance with Catalog).

Request (application/json)

Response 200 (application/json)

Route: /zones/<zoneName>

Method: GET

Returns a metadata object for a specified mesh.

A query parameter may be used to specify a zoneName.

ex: GET /zones/us-east-2

Response 200 (application/json)

Method: DELETE

Deletes an existing mesh AND its service clusters from the Catalog.

ex: DELETE /zones/north-region

Response 200 (application/json)

Route: /services (Deprecated)

Method: GET

The response contains the entire listing of services that should be present in the mesh, as well as running instances and starttimes.

Response 200 (application/json)

Route: /metrics/<service name>/<version>/<instance> (Deprecated)

Method: GET

ex: /metrics/isPrime%20Service/1.0/96cf8008461085dc439e495d7adabd21

Response 200 (application/json)

Last updated

Was this helpful?