Skip to main content

Managing Streams

A stream is a logical entity created through the Stream Management APIs. It allows you to organize telemetry data from resources that share the same set of subscriptions.

Limitations

Streams have the following limitations:

  • There is a limit of 5 streams per Project.

  • You can only attach one Organization to a Stream.

  • You can only attach 5 Project assets to a Stream.

  • You can create up to 3 subscriptions per Stream. Each subscription must be for a different sink.

  • You can attach 50 assets per Stream.

  • You can create up to 50 Metrics Alert Rules per Stream.

Prerequisites

  • To use Observability APIs to create streams, you must have the Fabric Stream Subscription Manager(STREAM_SUBSCRIPTION PERMISSION CREATE AND READ) role. Contact your Company Administrator or IAM Administrator to mange access and roles.

  • Submit your user credentials, Client ID, and Client Secret for OAuth2 authentication. Refer to API Authentication for more information on how to authenticate your requests to the Equinix API.

Creating Streams

Once your Assets are created, you will need to create a Stream to manage these Assets. Send a POST request to the /fabric/v4/streams endpoint to create a Stream.

Sample cURL request:

curl -X 'POST' 'https://api.equinix.com/fabric/v4/streams' \  
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
    "type": "TELEMETRY_STREAM",
    "name": "splunk1",
    "description": "subscription 1",
    "project": {
        "projectId": "<projectId>"
    }
}'

Sample Response:

{  
    "uuid": "241372e9-79c9-4ef8-b77a-8b8176c2098b4",
    "href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4",
    "type": "TELEMETRY_STREAM",
    "name": "splunk1",
    "description": "subscription 1",
    "project": {
        "projectId": "<projectId>"
    },
    "enabled": true,
    "state": "PROVISIONING",
    "assetsCount": 0,
    "streamSubscriptionsCount": 0,
    "changelog": {
        "createdBy": "testuser",
        "createdDateTime": "2024-08-12T21:14:17.689103902Z"
    }
}

Retrieving Streams

To get the details of a Stream, send a GET request to the /fabric/v4/streams/{stream_id} endpoint.

Sample cURL Request:

curl -X 'GET' 'https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c2098b4' \  
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>'

Sample Response:

{  
    "href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4",
    "uuid": "241372e9-79c9-4ef8-b77a-8b8176c2098b4",
    "type": "STREAM_SUSBSCRIPTION",
    "name": "splunk1",
    "description": "subscription 1",
    "project": {
        "projectId": "<projectId>"
    },
    "enabled": true,
    "state": "PROVISIONED",
    "changelog": {
        "createdBy": "testuser",
        "createdDateTime": "2024-08-12T21:14:17.689104Z"
    }
}

Deleting Streams

To delete a stream, send a DELETE request to the /fabric/v4/streams/{stream_id} endpoint. Sample cURL Request:

curl -X 'DELETE' 'https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c2098b4' \  
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>'