Integrando com um Coletor
A API de Assinatura permite estabelecer um canal de comunicação para eventos relacionados ao status ambiental e operacional de ativos selecionados. Ela é compatível com os canais de comunicação AWS IoT Core, Azure Event Hub e Webhook.
Você também pode criar uma assinatura e acessar seus dados na API da Equinix. Consulte Transmitir dados de colocation da API da Equinix para obter instruções.
Certificado Equinix mTLS
O certificado mTLS é usado como uma extensão do certificado TLS (antigo SSL) para autenticação mútua entre o servidor e o cliente. A Equinix exige este certificado assinado e confiável dos clientes, semelhante ao fornecido pelos nossos serviços. Nossos serviços de assinatura você a opção adicional de verificação de conexão . Quando um novo lote de eventos é enviado a cada tentativa de comunicação, nossos serviços de assinatura usam os certificados fornecidos pelo cliente para validar se o serviço para o qual estamos enviando os dados é o correto.
Para recuperar o certificado, envie uma solicitação GET para o endpoint /smartview/v2/streaming/subscriptions/certificate. Especifique o destino do canal como um parâmetro de consulta, seja AWS_IOT_CORE ou WEBHOOK.
Exemplo de solicitação cURL:
curl -X 'GET' 'https://api.equinix.com/smartview/v2/streaming/subscriptions/certificate?channelType=WEBHOOK' \
-H 'Authorization: Bearer <Bearer Token>'
A API de Assinatura não aceita certificados autoassinados. Use um certificado de Autoridade Certificadora (CA) para autenticação mútua.
AWS IoT
Envie dados para o AWS IoT Core fornecendo o [endpoint HTTP ao criar sua assinatura.
Para autorizar a Equinix a enviar eventos para um destino do AWS IoT Core, você deve baixar o Certificado Equinix e registrá-lo no console do IoT Core. Consulte a [documentação do AWS IoT Core para obter instruções.
Hub de Eventos do Azure
A configuração de autoatendimento para envio de dados para o Azure Event Hub não está disponível. Para habilitar o envio de dados para o Azure, entre em contato com o suporte.
Webhooks
Se você não deseja usar AWS ou Azure como coletor, mas pode fornecer um URL de destino para o qual os dados de streaming podem ser enviados, a Equinix oferece criação de uma assinatura para enviar dados para um destino webhook genérico.
Formatos de Objetos para Colecionadores
O formato das mensagens para os canais do AWS IoT Core e do Azure Event Hubs torna as mensagens mais legíveis. Veja alguns exemplos de mensagens enviadas por meio de assinaturas do API Plus.
Ambiental - temperatura
{
"type": "environmental",
"data": {
"ibx": "CH2",
"asset": {
"id": "asset1",
"level": "ZONE"
},
"reading": {
"value": "23.300",
"unit": "CELSIUS"
},
"tag": {
"id": "temperature",
"displayName": "Temperature"
},
"readingTime": "2020-08-24T09:21:00.000Z"
}
}
Ambiental - umidade
{
"type": "environmental",
"data": {
"ibx": "CH1",
"asset": {
"id": "asset1",
"level": "ZONE"
},
"reading": {
"value": "66.120",
"unit": "PERCENT"
},
"tag": {
"id": "humidity",
"displayName": "Humidity"
},
"readingTime": "2020-07-28T12:35:14.615Z"
}
}
Energia
{
"type": "power",
"data": {
"ibx": "SP2",
"asset": {
"id": "0210:469593",
"type": "CIRCUIT"
},
"cage": "ssxxxxsss",
"cabinet": "SP2:01:021470:0210",
"accountNumber": "1000659151",
"realPower": {
"value": "0.522",
"unit": "kW"
},
"apparentPower": {
"value": "1.070",
"unit": "kVA"
},
"contractualPower": {
"value": "60.000",
"unit": "kVA"
},
"current": {
"value": "1.500",
"unit": "A"
},
"powerFactor": {
"value": "0.48",
"unit": "pf"
},
"soldCurrent": {
"value": "15.000",
"unit": "A"
},
"soldPower": {
"value": "2.880",
"unit": "kVA"
},
"powerConsumptionToContractual": {
"value": "32.151",
"unit": "PERCENT"
},
"cabinetRating": {
"value": "123.300",
"unit": "kVA"
},
"peakLastSevenDays": {
"value": "1.146",
"unit": "kVA"
},
"peakLastSevenDaysRatio": {
"value": "34.424",
"unit": "PERCENT"
},
"peakLastSevenDaysContractualPower": {
"value": "3.329",
"unit": "kVA"
},
"peakLastSevenDaysTime": "2020-07-29T07:00:00.000Z",
"lastUpdated": "2020-07-24T11:46:00.000Z",
"readingTime": "2020-07-24T11:45:00.000Z",
"description": "test description",
"oid": "1.3.6.1.2.1.299.2.10.6846",
"circuitType": "primary",
"customerName": "test customer"
}
}
energia medida - kWh
{
"type": "metered-power",
"data": {
"ibx": "LD9",
"asset": {
"id": "LD9.CBM-PDU-17-99",
"type": "Customer Billing Meter"
},
"cage": "LD9:0G:00Z13Z",
"cageSerialNo": "00Z13B-21010567",
"accountNumber": "1000006212",
"customerName": "ABC Company",
"kilowattHour": {
"value": "304574.323",
"unit": "kWh"
},
"readingTime": "2023-04-24T11:45:00.000Z",
"dataQuality": "Good"
}
}
Observação: as leituras de energia medidas estão disponíveis em unidades kWh, kW, kVA, A e pf (fator de energia ).
Ponto de marcação
{
"type": "tag-point",
"data": {
"ibx": "LA1",
"reading": {
"value": "33406.6",
"unit": "l/s"
},
"tag": {
"id": "LA1.Air-Handler-7-4-4:totalsupplyairflow",
"displayName": "Total Supply Air Flow"
},
"readingTime": "2020-08-24T09:21:00.000Z"
}
}
Alerta personalizado
{
"type": "alert",
"data": {
"ibx": "SG2",
"region": "APAC",
"asset": {
"id": "CH1.Colo.CH1_05_000550_0105",
"type": "ENVIRONMENTAL",
"classification": "Environmental"
},
"tag": {
"id": "temperature"
},
"threshold": {
"unit": "CELSIUS",
"maxValue": "-6.67",
"minValue": "-12.22"
},
"id": "zhe-15603221441540.3171591127612322145",
"triggeredTime": "2019-09-23T23:01:30.655Z",
"type": "environmental",
"typeId": "Absolute",
"conditional": "N",
"eventType": "Out of Range",
"heartbeat": false
}
}
Alerta do sistema
{
"type": "system-alert",
"data": {
"ibx": "SG2",
"region": "APAC",
"metro": "SG",
"country": "SG",
"currentValue": {
"unit": "kWh",
"value": "2.650479E7",
"type": "float"
},
"asset": {
"id": "9SG2.ELEC4AUPSR-A10ASBF0",
"type": "Circuit Breaker with Metering",
"classification": "Electrical"
},
"tag": {
"id": "SG2.ELEC5BUPSR-B14UAH2Q:breaker",
"displayName": "Bypass Not Available"
},
"conditionName": "Low",
"status": {
"acknowledged": true,
"acknowledgementTime": "2020-07-28T12:35:14.615Z",
"cleared": false,
"active": false
},
"threshold": {
"unit": "kWh",
"stateLimit": "80",
"message": "Drive not in Auto"
},
"severity": 820,
"triggeredTime": "2020-07-28T12:35:14.615Z",
"processedTime": "2020-07-28T12:35:14.615Z",
"normalProcessedTime": "2020-07-28T12:35:14.615Z",
"normalTriggeredTime": "2020-07-28T12:35:14.615Z",
"type": "Digital",
"heartbeat": false
}
}
Indicadores de Qualidade de Dados
O campo dataQuality oferece os Indicadores de Qualidade de Dados (DQI) dos pontos de dados e alertas (do sistema e personalizados) como parte dos próprios dados. Isso é usado para garantir e informar ao cliente da API que os dados dos ativos DCIM são válidos e coletados de forma confiável. A adição do DQI proporciona transparência em relação à qualidade dos dados recebidos.
Indicadores de armazenamento e encaminhamento
O campo messageRetried, como Indicador de Armazenamento e Encaminhamento (SNFI), é usado para comunicar se os dados DCIM estão em tempo quase real ou atrasados e enviados posteriormente devido a uma interrupção na conexão pelo canal NRT. Se houver um problema na conexão entre o cliente assinante e o publicador, o publicador usa o mecanismo de Armazenamento e Encaminhamento (SNF) para armazenar a mensagem em seu próprio servidor. Assim que a conexão for restabelecida, essas mensagens armazenadas e os eventos NRT são enviados ao cliente após o tempo de conexão estabelecido. Os dados enviados posteriormente, devido ao método SNFI, são marcados como não sendo mais dados NRT, diferentemente dos demais dados normais.
Seus aplicativos de API podem criar regras de negócios e decisões com base nesses dois indicadores para melhorar a transparência de dados e a eficiência da solução .
{
"messageRetried": true,
"type": "tag-point",
"data": {
"ibx": "SG2",
"reading": {
"value": "54.0",
"unit": "s"
},
"tag": {
"id": "SG2.UPS-5-RM A22-04:batterytimeremaining",
"displayName": "Battery Time Remaining"
},
"readingTime": "2021-03-25T03:48:00.510Z",
"dataQuality": "Good"
}
}