Analytics Administration REST APIs

    +

    Overview

    The Analytics Administration REST APIs are provided by the Analytics service. These APIs enables you to manage and monitor the Analytics service.

    The API schemes and host URLs are as follows:

    • http://node:8095/

    • https://node:18095/ (for secure access)

    where node is the host name or IP address of a node running the Analytics service.

    Version information

    Version : 7.1

    Consumes

    • application/x-www-form-urlencoded

    Produces

    • application/json

    Paths

    This section describes the operations available with these REST APIs.

    Request Cancellation

    DELETE /analytics/admin/active_requests

    Description

    Cancels an active request.

    Parameters

    Type Name Description Schema

    FormData

    client_context_id
    required

    Identifier passed by the client that is used to identify an active request to be cancelled.

    string

    Responses

    HTTP Code Description Schema

    200

    The operation was successful.

    No Content

    400

    Bad request. Incorrect parameter or missing value.

    No Content

    401

    Unauthorized. The user name or password may be incorrect.

    Returns an object containing an error message. Refer to Error Codes.

    object

    404

    Not found. The path may be incorrect, or there is no active request with the specified identifier.

    No Content

    Security

    Type Name

    basic

    Analytics Manage / Analytics Select

    Example HTTP request

    The example below uses the client_context_id used in the Query Service example to identify the request.

    Curl request

    curl -v -u Administrator:password -X DELETE \
         http://localhost:8095/analytics/admin/active_requests \
         -d client_context_id=xyz

    Cluster Status

    GET /analytics/cluster

    Description

    Shows various details about the current status of the Analytics Service, such as the service state, the state of each node partition, and the replicas of each partition.

    Responses

    HTTP Code Description Schema

    200

    Success. Returns an object giving the current status of the Analytics Service.

    Status

    401

    Unauthorized. The user name or password may be incorrect.

    Returns an object containing an error message. Refer to Error Codes.

    object

    404

    Not found. The path may be incorrect.

    No Content

    Security

    Type Name

    basic

    Cluster Read / Pools Read

    Example HTTP request

    Curl request

    curl -v -u Administrator:password http://localhost:8095/analytics/cluster

    Example HTTP response

    Response 200

    {
      "authorizedNodes": [
        "86586a966202b5aa4aed31633f330aba",
        "948fb3af810a9b7bc6c76e2a69ba35d9"
      ],
      "ccNodeId": "86586a966202b5aa4aed31633f330aba",
      "nodeConfigUri": "/analytics/config/node",
      "nodeDiagnosticsUri": "/analytics/node/diagnostics",
      "nodeRestartUri": "/analytics/node/restart",
      "nodeServiceUri": "/analytics/service",
      "nodes": [
        {
          "apiBase": "http://192.168.8.101:8095",
          "apiBaseHttps": "https://192.168.8.101:18095",
          "nodeId": "86586a966202b5aa4aed31633f330aba",
          "nodeName": "192.168.8.101:8091"
        },
        {
          "apiBase": "http://192.168.8.102:8095",
          "apiBaseHttps": "https://192.168.8.102:18095",
          "nodeId": "948fb3af810a9b7bc6c76e2a69ba35d9",
          "nodeName": "192.168.8.102:8091"
        }
      ],
      "partitions": [
        {
          "active": true,
          "activeNodeId": "86586a966202b5aa4aed31633f330aba",
          "iodeviceNum": 0,
          "nodeId": "86586a966202b5aa4aed31633f330aba",
          "partitionId": 0,
          "path": "/data/@analytics/v_iodevice_0",
          "pendingActivation": false
        },
        {
          "active": true,
          "activeNodeId": "948fb3af810a9b7bc6c76e2a69ba35d9",
          "iodeviceNum": 0,
          "nodeId": "948fb3af810a9b7bc6c76e2a69ba35d9",
          "partitionId": 1,
          "path": "/data/@analytics/v_iodevice_0",
          "pendingActivation": false
        }
      ],
      "partitionsTopology": {
        "balanced": true,
        "ccNodeId": "86586a966202b5aa4aed31633f330aba",
        "metadataPartition": -1,
        "numReplicas": 1,
        "partitions": [
          {
            "id": "0",
            "master": "86586a966202b5aa4aed31633f330aba",
            "origin": "86586a966202b5aa4aed31633f330aba",
            "replicas": [
              {
                "location": "192.168.8.102:9120",
                "nodeId": "948fb3af810a9b7bc6c76e2a69ba35d9",
                "status": "IN_SYNC",
                "syncProgress": "1"
              }
            ]
          },
          {
            "id": "1",
            "master": "948fb3af810a9b7bc6c76e2a69ba35d9",
            "origin": "948fb3af810a9b7bc6c76e2a69ba35d9",
            "replicas": [
              {
                "location": "192.168.8.101:9120",
                "nodeId": "86586a966202b5aa4aed31633f330aba",
                "status": "IN_SYNC",
                "syncProgress": "1"
              }
            ]
          },
          {
            "id": "-1",
            "master": "86586a966202b5aa4aed31633f330aba",
            "origin": "86586a966202b5aa4aed31633f330aba",
            "replicas": [
              {
                "location": "192.168.8.102:9120",
                "nodeId": "948fb3af810a9b7bc6c76e2a69ba35d9",
                "status": "IN_SYNC",
                "syncProgress": "1"
              }
            ]
          }
        ],
        "revision": 1,
        "version": 1
      },
      "serviceConfigUri": "/analytics/config/service",
      "serviceDiagnosticsUri": "http://localhost:8095/analytics/cluster/diagnostics",
      "serviceRestartUri": "http://localhost:8095/analytics/cluster/restart",
      "state": "ACTIVE"
    }

    Cluster Restart

    POST /analytics/cluster/restart

    Description

    Restarts all Analytics Service nodes in the cluster.

    Responses

    HTTP Code Description Schema

    202

    Accepted. Returns an object showing the status of the cluster.

    object

    401

    Unauthorized. The user name or password may be incorrect.

    Returns an object containing an error message. Refer to Error Codes.

    object

    404

    Not found. The path may be incorrect.

    No Content

    Security

    Type Name

    basic

    Analytics Manage

    Example HTTP request

    Curl request

    curl -v -u Administrator:password -X POST http://localhost:8095/analytics/cluster/restart

    Example HTTP response

    Response 202

    {
      "cluster" : {
        "metadata_node" : "edfb6de9c91d7fb36399fea3ce620c5c",
        "ncs" : [ {
          "node_id" : "edfb6de9c91d7fb36399fea3ce620c5c",
          "partitions" : [ {
            "active" : true,
            "partition_id" : "partition_0"
          } ],
          "pid" : 5763,
          "state" : "ACTIVE"
        } ],
        "state" : "ACTIVE"
      },
      "date" : "Wed Oct 10 15:35:56 BST 2018",
      "status" : "SHUTTING_DOWN"
    }

    Node Restart

    POST /analytics/node/restart

    Description

    Restarts the specified Analytics Service node.

    Responses

    HTTP Code Description Schema

    202

    Accepted. Returns an object showing the status of the node.

    object

    401

    Unauthorized. The user name or password may be incorrect.

    Returns an object containing an error message. Refer to Error Codes.

    object

    404

    Not found. The path may be incorrect.

    No Content

    Security

    Type Name

    basic

    Analytics Manage

    Example HTTP request

    Curl request

    curl -v -u Administrator:password -X POST http://localhost:8095/analytics/node/restart

    Example HTTP response

    Response 202

    {"status": "restarting node"}

    Ingestion Status

    GET /analytics/status/ingestion

    Description

    Shows the progress of ingestion by the Analytics service, for each Analytics collection.

    Responses

    HTTP Code Description Schema

    200

    Success. Returns an object giving the ingestion status of each Analytics collection.

    Ingestion

    401

    Unauthorized. The user name or password may be incorrect.

    Returns an object containing an error message. Refer to Error Codes.

    object

    404

    Not found. The path may be incorrect.

    No Content

    Security

    Type Name

    basic

    Analytics Manage / Analytics Select

    Example HTTP request

    Curl request

    curl -v -u Administrator:password http://localhost:8095/analytics/status/ingestion

    Example HTTP response

    Response 200

    {
      "links": [
        {
          "name": "Local",
          "scope": "travel-sample/tenant_agent_02",
          "status": "healthy",
          "state": [
            {
              "timestamp": 1631107234921,
              "progress": 1,
              "scopes": [
                {
                  "collections": [
                    {
                      "name": "users"
                    }
                  ],
                  "name": "travel-sample/tenant_agent_02"
                }
              ]
            }
          ]
        },
        {
          "name": "Local",
          "scope": "travel-sample/inventory",
          "status": "healthy",
          "state": [
            {
              "timestamp": 1631107234921,
              "progress": 1,
              "scopes": [
                {
                  "collections": [
                    {
                      "name": "airport"
                    },
                    {
                      "name": "landmark"
                    }
                  ],
                  "name": "travel-sample/inventory"
                }
              ]
            },
            {
              "timestamp": 1631107234921,
              "progress": 0.9821428571428571,
              "timeLag": 4840,
              "itemsProcessed": 23595,
              "seqnoAdvances": 49129,
              "scopes": [
                {
                  "collections": [
                    {
                      "name": "route"
                    }
                  ],
                  "name": "travel-sample/inventory"
                }
              ]
            }
          ]
        }
      ]
    }

    Pending Mutations

    GET /analytics/node/agg/stats/remaining

    Caution : This operation is deprecated, and will be removed in a future release.

    Description

    Shows the number of mutations in the DCP queue that have not yet been ingested by the Analytics service, for each Analytics collection.

    This endpoint may not return meaningful results in Couchbase Server 7.0 and later. The reported number of mutations may be different to the actual number of mutations in the Analytics collection. For this reason, this endpoint has been deprecated, and you should use the Ingestion Status endpoint instead.

    Responses

    HTTP Code Description Schema

    200

    Success. Returns an object giving the number of pending mutations for each Analytics collection.

    Mutations

    401

    Unauthorized. The user name or password may be incorrect.

    Returns an object containing an error message. Refer to Error Codes.

    object

    404

    Not found. The path may be incorrect.

    No Content

    Security

    Type Name

    basic

    Analytics Manage / Analytics Select

    Example HTTP request

    Curl request

    curl -v -u Administrator:password http://localhost:8095/analytics/node/agg/stats/remaining

    Example HTTP response

    Response 200

    {
      "Commerce": {
        "orders": 0,
        "customers": 0
      }
    }

    Definitions

    This section describes the properties returned by these REST APIs.

    Status

    An object giving information about the status of the Analytics service.

    Name Description Schema

    authorizedNodes
    optional

    An array of strings, each of which is the ID of an authorized Analytics node.
    Example : [ "86586a966202b5aa4aed31633f330aba", "948fb3af810a9b7bc6c76e2a69ba35d9" ]

    < string > array

    ccNodeId
    optional

    The ID of the cluster controller node.
    Example : "86586a966202b5aa4aed31633f330aba"

    string

    nodeConfigUri
    optional

    The path of the Analytics Node Configuration REST API.
    Example : "/analytics/config/node"

    string

    nodeDiagnosticsUri
    optional

    The path of the Analytics Node Diagnostics REST API. For internal use only.
    Example : "/analytics/node/diagnostics"

    string

    nodeRestartUri
    optional

    The path of the Analytics Node Restart REST API.
    Example : "/analytics/node/restart"

    string

    nodeServiceUri
    optional

    The path of the Analytics Query Service REST API.
    Example : "/analytics/service"

    string

    serviceConfigUri
    optional

    The path of the Analytics Service Configuration REST API.
    Example : "/analytics/config/service"

    string

    serviceDiagnosticsUri
    optional

    The full URI of the Analytics Service Diagnostics REST API. For internal use only.
    Example : "http://localhost:8095/analytics/cluster/diagnostics"

    string

    serviceRestartUri
    optional

    The full URI of the Analytics Cluster Restart REST API.
    Example : "http://localhost:8095/analytics/cluster/restart"

    string

    state
    optional

    The state of the Analytics Service.
    Example : "ACTIVE"

    enum (ACTIVE, REBALANCE_REQUIRED, UNUSABLE, SHUTTING_DOWN)

    nodes
    optional

    An array of objects, each giving information about one Analytics node.

    < Nodes > array

    partitions
    optional

    An array of objects, each giving information about one Analytics partition.

    < Partitions > array

    partitionsTopology
    optional

    An object giving information about the partition topology.

    Partition Topology

    Nodes

    Name Description Schema

    apiBase
    optional

    The URI scheme, host, and port for HTTP access to Analytics REST APIs on this node.
    Example : "http://192.168.8.101:8095"

    string

    apiBaseHttps
    optional

    The URI scheme, host, and port for secure HTTPS access to Analytics REST APIs on this node.
    Example : "https://192.168.8.101:18095"

    string

    nodeId
    optional

    The ID of the node.
    Example : "86586a966202b5aa4aed31633f330aba"

    string

    nodeName
    optional

    The name or IP address of the node, including the cluster administration port.
    Example : "192.168.8.101:8091"

    string

    Partitions

    Name Description Schema

    active
    optional

    Indicates whether this partition is active.
    Example : true

    boolean

    activeNodeId
    optional

    The ID of the node where this partition is currently active.
    Example : "86586a966202b5aa4aed31633f330aba"

    string

    iodeviceNum
    optional

    The number of the IO Device where this partition is located.
    Example : 0

    integer

    nodeId
    optional

    The ID of the node where this partition originated.
    Example : "86586a966202b5aa4aed31633f330aba"

    string

    partitionId
    optional

    The ID of this partition.
    Example : 0

    integer

    path
    optional

    The path of the IO Device where this partition is located.
    Example : "/data/@analytics/v_iodevice_0"

    string

    pendingActivation
    optional

    Indicates whether this partition is waiting to become active.
    Example : false

    boolean

    Partition Topology

    Name Description Schema

    balanced
    optional

    Indicates whether the Analytics nodes are balanced.
    Example : true

    boolean

    ccNodeId
    optional

    The ID of the cluster controller node.
    Example : "86586a966202b5aa4aed31633f330aba"

    string

    metadataPartition
    optional

    The ID of the metadata partition.
    Example : -1

    integer

    numReplicas
    optional

    The number of Analytics replicas.
    Example : 1

    integer

    revision
    optional

    The revision number of the partition topology.
    Example : 1

    integer

    version
    optional

    The version number of the partition topology.
    Example : 1

    integer

    partitions
    optional

    An array of objects, each giving information about the state of one Analytics partition.

    < Partition States > array

    Partition States

    Name Description Schema

    id
    optional

    The partition ID.
    Example : 0

    integer

    master
    optional

    The ID of the node where the partition is currently active.
    Example : "86586a966202b5aa4aed31633f330aba"

    string

    origin
    optional

    The ID of the node where the partition originated.
    Example : "86586a966202b5aa4aed31633f330aba"

    string

    replicas
    optional

    An array of objects, each giving information about the state of one Analytics replica.

    < Replicas > array

    Replicas

    Name Description Schema

    location
    optional

    The name or IP address of the node where this replica is located, including the Analytics replication port.
    Example : "192.168.8.102:9120"

    string

    nodeId
    optional

    The ID of the node where this replica is located.
    Example : "948fb3af810a9b7bc6c76e2a69ba35d9"

    string

    status
    optional

    The synchronization status of the replica.
    Example : "IN_SYNC"

    enum (IN_SYNC, CATCHING_UP, DISCONNECTED)

    syncProgress
    optional

    The percentage (fraction from 0 to 1) of synchronization progress for this replica at the current time.
    Minimum value : 0
    Maximum value : 1
    Example : 1.0

    number (double)

    Ingestion

    An object containing a single links property.

    Name Description Schema

    links
    optional

    An array of objects, each giving information about a single linked Analytics scope.

    < Links > array

    Links

    Name Description Schema

    name
    optional

    The name of the link.
    Example : "Local"

    string

    scope
    optional

    The name of the Analytics scope.
    Example : "travel-sample/inventory"

    string

    status
    optional

    The status of the Analytics scope.
    Example : "healthy"

    enum (healthy, stopped, unhealthy, suspended)

    state
    optional

    An array of objects, each giving the ingestion state of one or more Analytics collections.

    Analytics collections which have the same ingestion state within this Analytics scope are aggregated together.

    < States > array

    States

    Name Description Schema

    timestamp
    required

    The time since epoch that this sample was calculated, in milliseconds.
    Example : 1631273689161

    integer

    progress
    required

    The percentage (fraction from 0 to 1) of ingestion progress at the current time.
    Minimum value : 0
    Maximum value : 1
    Example : 0.0

    number (double)

    timeLag
    optional

    The estimated time that the ingestion lags behind the Data service, in milliseconds. Only displayed for Analytics collections that are not fully ingested.
    Example : 9744

    integer

    itemsProcessed
    optional

    The number of items ingested since last connect; that is, the total number of mutations and deletions processed. Only displayed for Analytics collections that are not fully ingested.

    Note that this value is reset on connect, so it may appear to get smaller.
    Example : 12301

    integer

    seqnoAdvances
    optional

    The change in sequence number (seqno) since last connect. Only displayed for Analytics collections that are not fully ingested.
    Example : 61

    integer

    scopes
    required

    An array of objects, each one giving information about a single Analytics scope.

    < State Scopes > array

    State Scopes

    Name Description Schema

    name
    required

    The name of the Analytics scope.
    Example : "travel-sample/inventory"

    string

    collections
    required

    An array of objects, each one giving information about a single Analytics collection.

    < State Collections > array

    State Collections

    Name Description Schema

    name
    required

    The name of the Analytics collection.
    Example : "route"

    string

    Mutations

    An object containing one or more nested scope objects, one for each available Analytics scope.

    Name Description Schema

    scope
    optional

    An object containing one or more collection properties, one for each Analytics collection in the Analytics scope. The name of the object is the name of the Analytics scope, in display form.

    Collections

    Collections

    Name Description Schema

    collection
    optional

    The number of mutations in the DCP queue that have not yet been ingested. The name of the property is the name of the Analytics collection.

    integer

    Security

    The Analytics Administration REST APIs support HTTP basic authentication. Credentials can be passed via HTTP headers.

    Analytics Manage / Analytics Select

    For the Request Cancellation, Ingestion Status, and Pending Mutations operations, users must have one of the following access roles:

    • Full Admin

    • Cluster Admin

    • Analytics Manager

    • Analytics Reader

    • Analytics Select

    • Analytics Admin

    Type : basic

    Cluster Read / Pools Read

    For the Cluster Status operation, users must have one of the following access roles:

    • Full Admin

    • Cluster Admin

    • Read-Only Admin

    • Analytics Admin

    Type : basic

    Analytics Manage

    For the Cluster Restart and Node Restart operations, users must have one of the following RBAC roles:

    • Full Admin

    • Cluster Admin

    • Analytics Admin

    Type : basic

    Refer to Roles for more details.