IBX SmartView
Environmental readings, power events, system alerts, streaming subscriptions and the asset hierarchy.
Scope#
IBX SmartView exposes the facility data of an IBX for the cages of an account: temperature and humidity per sensor, power draw and power events, facility alerts, and the hierarchy that links a cage to the infrastructure that feeds it.
| Accessor | API | Covers |
|---|---|---|
environmentals() | dcim/v3 | Sensor readings |
powerEvents() | dcim/v3 | Power events and power alert configurations |
systemAlerts() | dcim/v3 | Facility system alerts |
streamingSubscriptions() | dcim/v3 | Push delivery to AWS IoT, Azure Event Hub, a webhook or a REST endpoint |
hierarchy(), smartViewAssets() | v1 | Location and power hierarchy, asset details, affected assets, tag points |
legacyEnvironmentals(), legacyPower() | v1 | The earlier environmental and power APIs |
Environmental readings#
import com.eqixiac.equinix.ibxsmartview.model.SensorReading;
for (SensorReading reading : smartView.environmentals().list("DC6")) {
System.out.println(reading.getSensorId() + " zone " + reading.getZoneId()
+ " temperature " + reading.getTemperature() + " humidity " + reading.getHumidity());
}Power events and alerts#
import com.eqixiac.equinix.ibxsmartview.model.PowerEvent;
import com.eqixiac.equinix.ibxsmartview.model.SystemAlert;
for (PowerEvent event : smartView.powerEvents().search(List.of("DC6", "DC11"), null, null, 0, 50)) {
System.out.println(event.getEventType() + " " + event.getStatus() + " " + event.getConditionType()
+ " trigger " + event.getTriggerValue() + " current " + event.getCurrentValue());
}
for (SystemAlert alert : smartView.systemAlerts().search("ACTIVE", null, null, 0, 50)) {
System.out.println(alert);
}The arguments of powerEvents().search are the IBX list, a status list, a search text, the offset and the limit. defineAlertConfiguration() creates a power alert with thresholds. pauseAlertConfiguration, resumeAlertConfiguration and deleteAlertConfiguration manage it.
Streaming subscriptions#
A streaming subscription pushes readings and alerts to a channel.
import com.eqixiac.equinix.ibxsmartview.enums.ChannelType;
import com.eqixiac.equinix.ibxsmartview.model.StreamingSubscription;
import com.eqixiac.equinix.ibxsmartview.model.implementation.Channel;
import com.eqixiac.equinix.ibxsmartview.model.implementation.EnvironmentalMessageType;
import com.eqixiac.equinix.ibxsmartview.model.implementation.MessageType;
import com.eqixiac.equinix.ibxsmartview.model.implementation.WebhookChannelConfiguration;
StreamingSubscription subscription = smartView.streamingSubscriptions().define()
.withChannel(Channel.builder()
.channelType(ChannelType.WEBHOOK)
.webhookChannelConfiguration(WebhookChannelConfiguration.builder()
.url("https://telemetry.example.com/equinix/smartview").build())
.build())
.withMessageType(MessageType.builder()
.environmental(List.of(EnvironmentalMessageType.builder()
.accountNumber(accountNo).ibx(List.of("DC6", "DC11")).build()))
.build())
.create();
smartView.streamingSubscriptions().getSubscriptionData(subscription.getId());
subscription.delete();The message types select what is delivered: environmental readings, metered power, power events and system alerts, each scoped to an account and a list of IBXs.
Hierarchy and assets#
The v1 calls require the account number, and the service answers HTTP 400 without it. The asset calls also require the IBX and the asset classification, and the SDK rejects a call with any of the three missing before it is sent.
import com.eqixiac.equinix.ibxsmartview.model.implementation.HierarchyNode;
List<HierarchyNode> locations = smartView.hierarchy().getLocationHierarchy(accountNo, "DC6");
smartView.hierarchy().getPowerHierarchy(accountNo, "DC6");
smartView.smartViewAssets().getAffectedAssets(accountNo, "DC6", "Electrical", "DC6.UPS-1A");getAffectedAssets returns the cages and cabinets that depend on a piece of infrastructure, which during a power event identifies the affected part of the facility. The classification and asset identifier in the block are illustrative, and smartViewAssets().list(...) returns the values that exist for an account.
Use with the other domains#
- A power event can be compared with the open trouble tickets from the Customer Portal for the same IBX.
- Readings can be delivered to the same sink as Fabric stream subscriptions.
- The MCP tools
ibx_get_environmentalsandibx_list_power_eventsmake the two reads available to an agent (MCP server).