Pular para o conteúdo principal

Integração com um coletor

O API de assinatura permite estabelecer um destino de canal de comunicação para eventos relacionados ao status ambiental e operacional de ativos selecionados. Ele oferece suporte aos canais de comunicação do AWS IoT Core, Hub de Eventos do Azure e Webhook.

observação

Você também pode criar uma assinatura e acessar seus dados no Equinix API. Consulte Transmitir dados do Colocation a partir do Equinix API para obter instruções.

Certificado mTLS da Equinix

O certificado MTLS é usado como uma extensão do certificado TLS (antigo SSL) para que o servidor e o cliente autentiquem um ao outro. O Equinix requer esse certificado assinado confiável dos clientes, semelhante ao fornecido por nossos serviços. Nossos serviços de assinatura oferecem a opção adicional de verificação de conexão. Quando um novo lote de eventos é enviado com 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 GET solicitação para o /smartview/v2/streaming/subscriptions/certificate endpoint. Especifique o destino do canal como um parâmetro de consulta, AWS_IOT_COREou 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>'
Importante

O Subscription API não aceita certificados autoassinados. Use um certificado CA para autenticação mútua.

AWS IoT

Envie dados para o AWS IoT Core fornecendo o endpoint HTTP ao criar sua assinatura.

observação

Para autorizar o 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 enviar dados para o Hub de Eventos do Azure 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 o AWS ou o Azure como coletor, mas pode fornecer uma URL de destino para a qual os dados de streaming podem ser enviados, o Equinix oferece a criação de uma assinatura para enviar dados para um destino webhook genérico .

Formatos de objetos para coletores

O formato da mensagem para os canais do AWS IoT Core e Hubs de Eventos do Azure torna as mensagens mais legíveis. Aqui estão 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"
}
}

Umidade ambiental

{
"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"
}
}

Potência

{
"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"
}
}

Potência 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"
}
}

Nota: As leituras de potência medida estão disponíveis em unidades kWh, kW, kVA, A e pf (fator de potência).

Ponto de identificaçã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) de pontos de dados e alertas (sistema e personalizado) como parte dos próprios dados. Isso é usado para garantir e informar ao cliente API que os dados dos ativos DCIM são válidos e coletados de forma confiável. A adição do DQI fornece transparência em relação à qualidade dos dados recebidos.

Indicadores de armazenamento e encaminhamento

O campo messageRetriedSNFI (Store and Forward Indicator, indicador de armazenamento e encaminhamento) é usado para se comunicar se os dados do DCIM estiverem realmente quase em tempo real ou atrasados e enviados posteriormente devido a uma conexão interrompida pelo canal NRT. Se a conexão entre o cliente de assinatura e o editor tiver um problema, o editor usará o mecanismo Armazenar e Encaminhar (SNF) para armazenar a mensagem no lado do editor. Depois que a conexão é restabelecida, essas mensagens armazenadas e eventos NRT são enviados ao cliente após o tempo de conexão estabelecido. Os dados enviados posteriormente por causa do método SNFI são marcados, pois não são mais dados NRT, em comparação com outros dados normais.

Suas aplicações de API podem criar regras de negócios e tomar decisões com base nesses dois indicadores para melhorar a transparência dos 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"
}
}

Interpretando valores ENUM e booleanos

Poderá ser fornecida uma planilha do Excel que inclua colunas semelhantes às seguintes:

IBXTIPO_DE_ATIVOCLASSIFICAÇÃO_DE_ATIVOSID_DO_ATIVOSUFIXO_DE_TAGID_DA_TAGTIPO_DE_DADOS_TAGTAG_UOMNOME_DE_EXIBIÇÃO_DA_TAGNOME_DA_TABELA_DE_ESTADOS
TR5Incêndio, Detecção de fumaçaMecânicoTR5.Alarme de Incêndio_001alarmeTR5.Alarme de Incêndio_001:alarmeBoolAlarmeALARME NORMAL
TR5Detecção de vazamentoMecânicoTR5.LD_TR5_CABLE1vazamento detectadoTR5.LD_TR5_CABLE1:vazamento detectadoBoolVazamento detectadoALARME NORMAL
TR5UPSElétricaTR5.UPS_2110resilienteTR5.UPS_2110:resilienteBoolResilienteREDUCEDRESIL_RESILASDESIGNED

Para valores booleanos e ENUM, consulte STATE_TABLE_NAMEQuando o primeiro valor (NORMAL, REDUCEDRESIL) corresponde a 0e o segundo valor (ALARM, RESILASDESIGNED) corresponde a 1.

frequência de chamadas à API

Para o Power API, ligue para o departamento de TI a cada 5 minutos para data centers da Ásia-Pacífico e a cada 15 minutos para outras regiões. O limite é de 100 000 chamadas por usuário por dia.

Para o API de assinaturas (método de coleta REST), chame-o aproximadamente a cada 30 segundos por ID de assinatura. Ligar até uma vez a cada 5 minutos é suficiente.

Esta página foi útil?