Gerenciar assinaturas
Use as APIs de Gerenciamento de assinatura para gerenciar a entrega de dados de telemetria para o coletor de dados.
Pré-requisitos
-
Antes de chamar as APIs de gerenciamento de assinatura, consulte Configuração do coletor de dados para configurar um tipo de coletor de sua escolha.
-
Para criar assinaturas, você deve ter a
Fabric Stream Subscription Managerfunção (STREAM_SUBSCRIPTION PERMISSION CREATE AND READ). Entre em contato com o Administrador da empresa ou o Administrador do IAM para gerenciar o acesso e as funções. -
Se você estiver usando a API, envie suas credenciais de usuário, ID do cliente e Segredo do cliente para autenticação OAuth2. Consulte Autenticação de API para obter mais informações sobre como autenticar suas solicitações para a API da Equinix.
Criar uma assinatura
- Portal
- API
O portal suporta a criação e o gerenciamento de assinaturas para Splunk, Datadog, Microsoft Teams e PagerDuty.
-
Faça login no Portal do Cliente > Painel de Fabric.
-
No menu Observabilidade, selecione Fluxos de dados.

-
No menu suspenso Actions, selecione Adicionar assinaturas.

-
Selecione o coletor de dados para sua assinatura no menu suspenso. Consulte os exemplos abaixo para obter os coletores de dados compatíveis.
Para criar uma assinatura, envie uma POST solicitação para o /fabric/v4/streams/<streamId>/subscriptions endpoint. Especifique o ID do fluxo no streamobjeto e as configurações do coletor de dados e as informações de autenticação no sinkobjeto no corpo da solicitação.
Consulte os exemplos abaixo para criar uma assinatura de stream para os coletores de dados compatíveis.
Os valores de URI/host da API de assinatura são compatíveis apenas com HTTPS e não com certificados autoassinados.
Datadog
- Portal
- API
- Event
- Metric
Na página Add Subscription, insira as informações do Datadog, incluindo:
- Um nome de assinatura
- Seu URL do host Datadog
- Sua chave de API Datadog
- Sua chave de aplicativo Datadog
- e forneça uma descrição (opcional)

Use a tabela de referência de site Datadog para encontrar o parâmetro de site para o sink.host parâmetro.
Solicitação de ondulação de amostra:
curl -X 'POST' 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<datadog_subscription_name>",
"description": "<datadog_subscription_desc>",
"sink": {
"host": "https://<datadog_site_parameter>",
"type": "DATADOG",
"credential": {
"type": "API_KEY",
"apiKey": "<datadog_api_key>"
},
"settings": {
"applicationKey": "<datadog_application_key>"
}
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/1a39648d-c407-4470-b08b-454965f31bf4",
"uuid": "1a39648d-c407-4470-b08b-454965f31bf4",
"type": "STREAM_SUBSCRIPTION",
"name": "datadog_subscription",
"description": "datadog_subscription_desc",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"host": "https://<datadog_site_parameter>",
"type": "DATADOG",
"credential": {
"type": "API_KEY",
"apiKey": "<encrypted_datadog_api_key>"
},
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5,
"settings": {
"metricUri": "https://<datadog_site_parameter>/api/v2/series",
"eventUri": "https://<datadog_site_parameter>/api/v1/events"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-10-07T06:48:45.861755Z",
"updatedDateTime": "2024-10-07T06:48:51.514474Z"
}
}
---
date_happened: 1719864741 # in seconds
source_type_name: Equinix
aggregation_key: NCAB543WC4lrLpET8nLX4Vd8
title: 'Virtual port status changed to Up'
status: info # INFO->info, WARN -> warn, ERROR->error, CRITICAL->warn, FATAL->error, default: info
text: "{\"cloudevent\":{\"specversion\":\"1.0\",\"source\":\"https://api.equinix.com/fabric/v4/cloudevents\",\"id\":\"6c573287-9914-4202-8b6d-2d15e7da04b8\",\"type\":\"equinix.fabric.port.status.up\",\"subject\":\"/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688\",\"time\":\"2024-07-01T20:12:21.306Z\",\"severitynumber\":9,\"severitytext\":\"INFO\",\"equinixalert\":\"clear/NCAB543WC4lrLpET8nLX4Vd8\",\"equinixproject\":\"123\",\"data\":{\"message\":\"Virtual port status changed to Up\",\"resource\":{}}}}"
---
series:
- type: 3 # 0(unspecified), 1(count), 2(rate), 3(gauge)
metric: equinix.fabric.port.bandwidth_rx.usage
resources:
- type: subject
name: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
- type: equinixproject
name: 123
unit: bit/s
points:
- timestamp: 1719889941
value: 440023
- type: 1
metric: equinix.fabric.port.packets_erred_tx.count
resources:
- type: subject
name: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
- type: equinixproject
name: 123
unit: packet
interval: 300 # in seconds
points:
- timestamp: 1719889941
value: 10
Google pubsub
- Portal
- API
Na página Adicionar assinatura, insira suas informações de publicação do Google Cloud, incluindo:
- Um nome de assinatura
- O token de acesso pubsub do Google Cloud
- O URI de assinatura do Google Cloud pubsub
- E forneça uma descrição (opcional)

curl -X POST 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<gcp_pubsub_subscription_name>",
"description": "<gcp_pubsub_subscription_desc>",
"sink": {
"uri": "https://pubsub.googleapis.com/v1/projects/<gcp_project_name>/topics/<gcp_topic_name>:publish",
"type": "GOOGLE_PUBSUB",
"credential": {
"type": "ACCESS_TOKEN",
"accessToken": "<encoded_base64_service_account_json>"
}
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/12190e7d-a486-4a77-ba56-fecdab616837",
"uuid": "12190e7d-a486-4a77-ba56-fecdab616837",
"type": "STREAM_SUBSCRIPTION",
"name": "<gcp_pubsub_subscription_name>",
"description": "<gcp_pubsub_subscription_desc>",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"uri": "https://pubsub.googleapis.com/v1/projects/<gcp_project_name>/topics/<gcp_topic_name>:publish",
"type": "GOOGLE_PUBSUB",
"credential": {
"type": "ACCESS_TOKEN"
},
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2025-04-28T21:23:02.006057019Z"
}
}
Desenho de Grafana Webhook
- Portal
- API
- CloudEvent
- CloudEvents Metric
- OpenTelemetry Log
- OpenTelemetry Metric
Na página Add Subscription, insira as informações do Grafana, incluindo:
- Um nome de assinatura.
- O URI do Grafana Metrics.
- A URI de Eventos Grafana.
- Sua chave de API Grafana.
- Uma descrição opcional.

Solicitação de ondulação de amostra:
curl -X POST 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<webhook_subscription_name>",
"description": "<webhook_subscription_desc>",
"enabled": true,
"sink": {
"type": "WEBHOOK"
"settings": {
"eventUri": "https://<grafana_oltp_endpoint>/otlp/v1/logs",
"metricUri": "https://<grafana_oltp_endpoint>/otlp/v1/metrics",
"format": "OPENTELEMETRY"
},
"credential": {
"type": "API_KEY",
"apiKey": "<granfana_instance_id>:<grafana_api_key>",
}
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/1a39648d-c407-4470-b08b-454965f31bf4",
"uuid": "1a39648d-c407-4470-b08b-454965f31bf4",
"type": "STREAM_SUBSCRIPTION",
"name": "datadog_subscription",
"description": "datadog_subscription_desc",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"host": "https://<datadog_site_parameter>",
"type": "DATADOG",
"credential": {
"type": "API_KEY",
"apiKey": "<encrypted_datadog_api_key>"
},
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5,
"settings": {
"metricUri": "https://<datadog_site_parameter>/api/v2/series",
"eventUri": "https://<datadog_site_parameter>/api/v1/events"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-10-07T06:48:45.861755Z",
"updatedDateTime": "2024-10-07T06:48:51.514474Z"
}
}
---
specversion: '1.0'
source: https://api.equinix.com/fabric/v4/cloudevents
id: 6c573287-9914-4202-8b6d-2d15e7da04b8
type: equinix.fabric.metric
subject: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
time: '2024-07-01T20:12:21.306Z'
severitynumber: 9
severitytext: INFO
equinixproject: 123
dataschema: https://github.com/Fabric/.../ApiConfigEventData.json
datacontenttype: application/json
data:
message: New metrics collected
resource:
href: https://api.equinix.com/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
uuid: 956a86fb-d03d-436c-8d5d-30d1f51f7688
name: my-test-port
description: port description
metrics:
- type: GAUGE
name: equinix.fabric.port.bandwidth_rx.usage
description: Port inbound bandwidth utilization
unit: bit/s
datapoints:
- endDateTime: '2024-07-01T20:12:21.000Z'
value: 440023
- type: SUM
name: equinix.fabric.port.packets_erred_tx.count
description: Port error packets
interval: PT5M
unit: packet
datapoints:
- endDateTime: '2024-07-01T20:12:21.000Z'
value: 10
{
"specversion": "1.0",
"source": "https://api.equinix.com/fabric/v4/cloudevents",
"id": "16c7e20a-d147-40c4-81ad-f60d25548aad",
"time": "2026-06-24T20:20:59.000Z",
"type": "equinix.fabric.metric",
"subject": "/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688",
"dataschema": "https://equinix.github.io/equinix-cloudevents/jsonschema/equinix/fabric/v1/MetricEvent.json",
"datacontenttype": "application/json",
"severitynumber": "9",
"severitytext": "INFO",
"equinixproject": "123",
"data": {
"message": "Metrics collected",
"resource": {
"href": "https://api.equinix.com/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688",
"uuid": "956a86fb-d03d-436c-8d5d-30d1f51f7688",
"type": "XF_PORT",
"state": "PROVISIONED"
},
"metrics": [
{
"type": "GAUGE",
"name": "equinix.fabric.port.bandwidth_rx.usage",
"unit": "bit/s",
"datapoints": [
{
"endDateTime": "2026-06-24T20:20:59.000Z",
"value": 179
}
]
},
{
"type": "GAUGE",
"name": "equinix.fabric.port.bandwidth_tx.usage",
"unit": "bit/s",
"datapoints": [
{
"endDateTime": "2026-06-24T20:20:59.000Z",
"value": 1711
}
]
}
]
}
}
---
resourceLogs:
- resource:
attributes:
- key: service.name
value:
stringValue: Equinix
- key: equinix.event.specversion
value:
stringValue: '1.0'
- key: equinix.event.source
value:
stringValue: https://api.equinix.com/fabric/v4/cloudevents
- key: equinix.event.subject
value:
stringValue: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
- key: equinix.event.equinixproject
value:
stringValue: 123
scopeLogs:
- scope:
logRecords:
- timeUnixNano: '1719889941306000000'
severityNumber: 9
severityText: Information
body:
stringValue: '{"message":"Virtual port status changed to Up","resource":{"href":"https://api.equinix.com/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688","uuid":"956a86fb-d03d-436c-8d5d-30d1f51f7688","name":"my-test-port","description":"port description"}}'
attributes:
- key: equinix.event.id
value:
stringValue: 6c573287-9914-4202-8b6d-2d15e7da04b8
- key: equinix.event.type
value:
stringValue: equinix.fabric.port.status.up
---
resourceMetrics:
- resource:
attributes:
- key: service.name
value:
stringValue: Equinix
- key: equinix.event.specversion
value:
stringValue: '1.0'
- key: equinix.event.source
value:
stringValue: https://api.equinix.com/fabric/v4/cloudevents
- key: equinix.event.subject
value:
stringValue: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
- key: equinix.event.equinixproject
value:
stringValue: 123
scopeMetrics:
- scope:
metrics:
- name: equinix.fabric.port.bandwidth_rx.usage
description: Port inbound bandwidth utilization
unit: 'bit/s'
gauge:
dataPoints:
- attributes:
- key: service.name
value:
stringValue: Equinix
- key: equinix.event.source
value:
stringValue: https://api.equinix.com/fabric/v4/cloudevents
- key: equinix.event.subject
value:
stringValue: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
- key: equinix.event.equinixproject
value:
stringValue: 123
- key: equinix.event.resource.name
value:
stringValue: 'my-port-name'
timeUnixNano: '1719889941306000000'
asInt: 566
- name: equinix.fabric.port.packets_erred_tx.count
description: Port error packets
unit: packet
sum:
aggregationTemporality: 2 # required for sum https://github.com/open-telemetry/opentelemetry-proto/blob/v0.9.0/opentelemetry/proto/metrics/v1/metrics.proto#L230
dataPoints:
- attributes:
- key: service.name
value:
stringValue: Equinix
- key: equinix.event.source
value:
stringValue: https://api.equinix.com/fabric/v4/cloudevents
- key: equinix.event.subject
value:
stringValue: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
- key: equinix.event.equinixproject
value:
stringValue: 123
- key: equinix.event.resource.name
value:
stringValue: 'my-port-name'
startTimeUnixNano: '1719889641306000000' # optional
timeUnixNano: '1719889941306000000'
asInt: 10
Microsoft Teams
- Portal
- API
Na página Add Subscription, insira as informações do Microsoft Teams, incluindo:
- Um nome de assinatura
- Seu URI do Microsoft Workflow Webhook
- e forneça uma descrição (opcional)

Solicitação de ondulação de amostra:
curl -X 'POST' 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<ms_teams_subscription>",
"description": "<ms_teams_subscription_desc>",
"sink": {
"uri": "<teams_webhook_uri>",
"type": "TEAMS"
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/12190e7d-a486-4a77-ba56-fecdab616837",
"uuid": "12190e7d-a486-4a77-ba56-fecdab616837",
"type": "STREAM_SUBSCRIPTION",
"name": "ms_teams_subscription",
"description": "ms_teams_subscription_desc",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"uri": "****",
"type": "TEAMS",
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-10-04T13:20:40.127727Z"
}
}
PagerDuty
- Portal
- API
- Event
Na página Add Subscription, insira as informações do PagerDuty, incluindo:
- Um nome de assinatura
- Seu URL do host PagerDuty
- Sua Chave de Integração PagerDuty
- e forneça uma descrição (opcional)

Solicitação de ondulação de amostra:
curl -X 'POST' 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<pagerduty_subscription_name>",
"description": "<pagerduty_subscription_desc>",
"sink": {
"host": "https://events.pagerduty.com",
"type": "PAGERDUTY",
"credential": {
"type": "INTEGRATION_KEY",
"integrationKey": "<pagerduty_integration_key>"
}
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/dae0726a-87f0-4c5f-8662-ccbcf44a0de2",
"uuid": "dae0726a-87f0-4c5f-8662-ccbcf44a0de2",
"type": "STREAM_SUBSCRIPTION",
"name": "pagerduty-subscription",
"description": "pagerduty-subscription-desc",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"host": "https://events.pagerduty.com",
"type": "PAGERDUTY",
"credential": {
"type": "INTEGRATION_KEY",
"integrationKey": "<encrypted_integration_key>"
},
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5,
"settings": {
"source": "equinix",
"changeUri": "https://events.pagerduty.com/v2/change/enqueue",
"alertUri": "https://events.pagerduty.com/v2/enqueue"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-09-18T22:04:58.664523Z"
}
}
---
routing_key: routingKey
dedup_key: NCAB543WC4lrLpET8nLX4Vd8
event_action: trigger # or resolve
payload:
source: Equinix
timestamp: '2024-07-01T20:12:21.306Z'
severity: critical
summary: Virtual port status changed to Down
custom_details:
equinixsource: https://api.equinix.com/fabric/v4/cloudevents
specversion: '1.0'
id: 6c573287-9914-4202-8b6d-2d15e7da04b8
type: equinix.fabric.port.status.down
subject: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
time: '2024-07-01T20:12:21.306Z'
severitynumber: 21
severitytext: FATAL # or INFO
equinixalert: raise/NCAB543WC4lrLpET8nLX4Vd8
equinixproject: 123
ServiceNow
- Portal
- API
- Event
- Metric
Na página Add Subscription, insira as informações do ServiceNow, incluindo:
- Um nome de assinatura.
- O URL do Host ServiceNow.
- Seu nome de usuário ServiceNow.
- Sua senha do ServiceNow.
- Uma descrição opcional.

Solicitação de ondulação de amostra:
curl -X 'POST' 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<servicenow_subscription_name>",
"description": "<servicenow_subscription_desc>",
"sink": {
"host": "https://<host>.service-now.com",
"type": "SERVICENOW",
"settings": {
"source": "<source_name>"
},
"credential": {
"type": "USERNAME_PASSWORD",
"username": "<servicenow-username>",
"password": "<servicenow-password>"
}
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/9b503760-b30f-4eb8-a681-aab1cfa9db1f",
"uuid": "9b503760-b30f-4eb8-a681-aab1cfa9db1f",
"type": "STREAM_SUBSCRIPTION",
"name": "servnow_subscription",
"description": "servnow_subscription_desc",
"state": "PROVISIONING",
"enabled": true,
"sink": {
"host": "https://<host>.service-now.com",
"type": "SERVICENOW",
"credential": {
"type": "USERNAME_PASSWORD"
},
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5,
"settings": {
"source": "source_name",
"metricUri": "https://<host>.service-now.com/api/mid/sa/metrics",
"eventUri": "https://<host>.service-now.com/api/global/em/jsonv2"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2025-01-22T18:09:20.894582046Z"
}
}
---
source: Equinix
time_of_event: '2024-07-01T20:12:21.306Z'
description: Virtual port status changed to Down
severity: 1 # 1 for clear and 0 for clear
resolution_state: New # or Closing
message_key: NCAB543WC4lrLpET8nLX4Vd8
resource: fabric.port
node: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
type: equinix.fabric.port.status.down
additional_info: '{"cloudevent":{"specversion":"1.0","source":"https://api.equinix.com/fabric/v4/cloudevents","id":"6c573287-9914-4202-8b6d-2d15e7da04b8","type":"equinix.fabric.port.status.down","subject":"/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7681","time":"2024-07-01T20:12:21.306Z","severitynumber":13,"severitytext":"CRITICAL","equinixalert":"raise/NCAB543WC4lrLpET8nLX4Vd8","equinixproject":"123","data":{"message":"Virtual port named \'Test-port\' status changed to Down","resource":{}}}}'
---
- timestamp: 1719889941306000. #mili sec
source: Equinix
resource_path: "/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7681"
metric_type: equinix.fabric.port.bandwidth_rx.utilization
value: 70.5
ci2metric_id:
type: GAUGE
subject: "/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7681"
equinixproject: 123
unit: "%"
- timestamp: 1719889941306000 #mili sec
source: Equinix
resource_path: "/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7681"
metric_type: equinix.fabric.port.packets_erred_tx.count
value: 70.5
ci2metric_id:
type: GAUGE
interval: PT5M
subject: "/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7681"
equinixproject: 123
unit: "%"
Slack
- Portal
- API
- CloudEvent
- CloudEvent Metric
Na página Adicionar assinatura, insira as informações do Slack, incluindo:
- Nome da assinatura
- URI da assinatura
- Descrição (opcional)

Solicitação de ondulação de amostra:
curl -X 'POST' 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<slack_subscription_name>",
"description": "<slack_subscription_desc>",
"sink": {
"uri": "<slack_webhook_uri>",
"type": "SLACK"
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/12190e7d-a486-4a77-ba56-fecdab616837",
"uuid": "12190e7d-a486-4a77-ba56-fecdab616837",
"type": "STREAM_SUBSCRIPTION",
"name": "slack_subscription",
"description": "slack_subscription_desc",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"uri": "****",
"type": "SLACK",
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-10-04T13:20:40.127727Z"
}
}
---
cloudevent:
source: https://api.equinix.com/fabric/v4/cloudevents
specversion: '1.0'
id: 6c573287-9914-4202-8b6d-2d15e7da04b8
type: equinix.fabric.port.status.up
subject: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
time: '2024-07-01T20:12:21.306Z'
severitynumber: 9
severitytext: INFO
equinixalert: clear/NCAB543WC4lrLpET8nLX4Vd8
equinixproject: 123
data:
message: Virtual port status changed to Up
resource:
href: https://api.equinix.com/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
uuid: 956a86fb-d03d-436c-8d5d-30d1f51f7688
name: my-test-port
description: port description
---
specversion: '1.0'
source: https://api.equinix.com/fabric/v4/cloudevents
id: 6c573287-9914-4202-8b6d-2d15e7da04b8
type: equinix.fabric.metric
subject: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
time: '2024-07-01T20:12:21.306Z'
severitynumber: 9
severitytext: INFO
equinixproject: 123
dataschema: https://github.com/equinixapis/.../ApiConfigEventData.json
datacontenttype: application/json
data:
message: New metrics collected
resource:
href: https://api.equinix.com/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
uuid: 956a86fb-d03d-436c-8d5d-30d1f51f7688
name: my-test-port
description: port description
metrics:
- type: GAUGE
name: equinix.fabric.port.bandwidth_rx.usage
description: Port inbound bandwidth utilization
unit: bit/s
datapoints:
- endDateTime: '2024-07-01T20:12:21.000Z'
value: 440023
- type: SUM
name: equinix.fabric.port.packets_erred_tx.count
description: Port error packets
interval: PT5M
unit: packet
datapoints:
- endDateTime: '2024-07-01T20:12:21.000Z'
value: 10
Splunk
- Portal
- API
- Event
- Metric
Na página Add Subscription, insira as informações do Splunk, incluindo:
- Um nome de assinatura
- Seu URI do coletor de eventos HTTP Splunk
- Seu token de acesso Splunk
- Seu índice de eventos Splunk (obrigatório)
- Seu Splunk Metrics Index, se você planeja incluir métricas no Splunk
- e forneça uma descrição (opcional)

Solicitação de ondulação de amostra:
curl -X 'POST' 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<splunk_subscription_name>",
"description": "<splunk_subscription_desc>",
"sink": {
"uri": "https://http-inputs-<host>.splunkcloud.com:<port>/services/collector/event"
"type": "SPLUNK_HEC",
"settings": {
"eventIndex": "<name_of_eventIndex>",
"metricIndex": "<name_of_metricIndex>",
"source": "<name_of_splunk_hec>"
},
"credential": {
"type": "ACCESS_TOKEN",
"accessToken": "Splunk <Splunk AccessToken>"
}
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/958a9854-dc49-4ded-87bd-be4d0099355e",
"uuid": "958a9854-dc49-4ded-87bd-be4d0099355e",
"type": "STREAM_SUBSCRIPTION",
"name": "eq-splunk ",
"description": "subscription1",
"state": "PROVISIONING",
"enabled": true,
"sink": {
"uri": "https://http-inputs-<host>.splunkcloud.com:<port>/services/collector/event",
"type": "SPLUNK_HEC",
"credential": {
"type": "ACCESS_TOKEN"
},
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5,
"settings": {
"eventIndex": "<name_of_eventIndex>",
"metricIndex": "<name_of_metricIndex>",
"source": "<name_of_splunk_hec>"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-08-12T21:49:21.761029359Z"
}
}
---
sourcetype: _json
index: test-event-index
source: equinix # optional
event:
equinixsource: https://api.equinix.com/fabric/v4/cloudevents
specversion: '1.0'
id: 6c573287-9914-4202-8b6d-2d15e7da04b8
type: equinix.fabric.port.status.up
subject: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
time: '2024-07-01T20:12:21.306Z'
severitynumber: 9
severitytext: INFO
equinixalert: clear/NCAB543WC4lrLpET8nLX4Vd8
equinixproject: 123
data:
message: Virtual port status changed to Up
resource:
href: https://api.equinix.com/fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
uuid: 956a86fb-d03d-436c-8d5d-30d1f51f7688
name: my-test-port
description: port description
---
time: 1719889941.306
event: metric
index: test-index-metric
source: Equinix # Optional
fields:
subject: /fabric/v4/ports/956a86fb-d03d-436c-8d5d-30d1f51f7688
equinixproject: 123
"metric_name:equinix.fabric.port.bandwidth_rx.usage": 440023
"metric_name:equinix.fabric.port.packets_erred_tx.count": 10
Generic Webhook
Crie uma assinatura para qualquer serviço de webhook genérico para eventos e métricas. Especifique o tipo de dissipador como um webhook. Você deve incluir um URI de evento ou um URI de métrica. Para transmitir eventos e métricas, você deve fornecer um URI de evento e um URI de métrica. Se você fornecer apenas um desses campos, somente o tipo de dados correspondente (eventos ou métricas) será enviado para a plataforma de destino.
- Portal
- API
Na página Add Subscription, insira as informações do Webhook, incluindo:
- Um nome de assinatura
- Selecione o formato CloudEvent ou Open Telemetry para seus dados de streaming.
- O URI do evento
- O URI da métrica
- Selecione um Tipo de autenticação nas opções Sem autorização, Nome de usuário/senha, Token de acesso ou Chave de API. Insira as informações relevantes nos campos fornecidos.
- E forneça uma descrição (opcional).

Solicitação de ondulação de amostra:
curl -X POST 'https://api.equinix.com/fabric/v4/streams/<streamId>/subscriptions' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>' \
-d '{
"type": "STREAM_SUBSCRIPTION",
"name": "<webhook_subscription_name>",
"description": "<webhook_subscription_desc>",
"enabled": true,
"sink": {
"type": "WEBHOOK",
"settings": {
"eventUri": "<webhook_uri>",
"metricUri": "<webhook_uri>",
"format": "<format>"
}
}
}'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/12190e7d-a486-4a77-ba56-fecdab616837",
"uuid": "12190e7d-a486-4a77-ba56-fecdab616837",
"type": "STREAM_SUBSCRIPTION",
"name": "<webhook_subscription_name>",
"description": "<webhook_subscription_desc>",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"type": "WEBHOOK",
"batchEnabled": false,
"batchSizeMax": 50,
"batchWaitTimeMax": 5,
"settings": {
"eventUri": "<webhook_uri>",
"format": "CLOUDEVENT"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2025-04-30T15:31:34.528915714Z"
}
}
Visualizar uma assinatura
- Portal
- API
-
No menu Observabilidade, clique em Fluxos de dados.
-
Selecione um fluxo no Stream Inventory.

-
Na página Stream Details, clique em Assinaturas.

Para recuperar os detalhes de uma assinatura, envie uma GET solicitação para o /fabric/v4/streams/{streamId}/subscriptions/{subscriptionId} endpoint.
Solicitação de ondulação de amostra:
curl -X 'GET' 'https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/557400f8-d360-11e9-bb65-2a2ae2dbcce4' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/958a9854-dc49-4ded-87bd-be4d0099355e",
"uuid": "958a9854-dc49-4ded-87bd-be4d0099355e",
"type": "STREAM_SUBSCRIPTION",
"name": "eq-splunk",
"description": "subscription1",
"state": "PROVISIONED",
"enabled": true,
"sink": {
"uri": "https://http-inputs-<host>.splunkcloud.com:<port>/<endpoint>",
"type": "SPLUNK_HEC",
"credential": {
"type": "ACCESS_TOKEN"
},
"settings": {
"eventIndex": "<name_of_eventIndex>",
"metricIndex": "<name_of_metricIndex>",
"source": "<name_of_splunk_hec>"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-08-12T21:49:21.761029Z"
}
}
Excluir uma assinatura
- Portal
- API
-
No menu Observabilidade, clique em Fluxos de dados.
-
Selecione um fluxo no Stream Inventory.

-
Na página Stream Details, clique em Assinaturas.

-
Em Detalhes da Assinatura, clique no menu de opções
...e em Excluir Assinatura.
Para excluir uma assinatura, envie uma DELETE solicitação para o /fabric/v4/streams/{streamId}/subscriptions/{subscriptionId} endpoint.
Solicitação de ondulação de amostra:
curl -X 'DELETE' 'https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/557400f8-d360-11e9-bb65-2a2ae2dbcce4' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <Bearer Token>'
Resposta da amostra:
{
"href": "https://api.equinix.com/fabric/v4/streams/241372e9-79c9-4ef8-b77a-8b8176c228b4/subscriptions/958a9854-dc49-4ded-87bd-be4d0099355e",
"uuid": "958a9854-dc49-4ded-87bd-be4d0099355e",
"type": "STREAM_SUBSCRIPTION",
"name": "eq-splunk",
"description": "subscription1",
"state": "DEPROVISIONING",
"enabled": true,
"sink": {
"uri": "<protocol>://http-inputs-<host>.splunkcloud.com:<port>/<endpoint>",
"type": "SPLUNK_HEC",
"credential": {
"type": "ACCESS_TOKEN"
},
"settings": {
"eventIndex": "<name_of_eventIndex>",
"metricIndex": "<name_of_metricIndex>",
"source": "<name_of_splunk_hec>"
}
},
"changeLog": {
"createdBy": "user1",
"createdDateTime": "2024-08-12T21:49:21.761029Z"
}
}