5.02021-11-21T22:03:47ZTemplateStorage XSKY XMS by HTTPStorage XSKY XMS by HTTP## Description
Template for XMS API
## Overview
The Zabbix Template includes discovery rules, item prototypes, trigger prototypes and graphs, Zabbix will periodically gather resource metrics from HTTP/HTTPS REST API, convert metrics into JSON object, automatically create resource metrics by discovery rules, and send triggers based on the trigger rules.
## Author
XSKY
TemplateXMS Disk (Cache) DiscoveryXMS Host DiscoveryXMS Network Interfaces DiscoveryXMS NFS-Gateways DiscoveryXMS OS-Bucket DiscoveryXMS OS-User DiscoveryXMS OS-Zones DiscoveryXMS OSD DiscoveryXMS POOL DiscoveryXMS S3 Load Balancer DiscoveryXMS Services DiscoveryXSKY XMSZabbix raw item- XMS ClusterHTTP_AGENTxms.cluster.get00TEXTZabbix raw itemJSONPATH$.body.clusterhttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/cluster/?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS Cluster StatsHTTP_AGENTxms.cluster.stats.get00TEXTZabbix raw itemJSONPATH$.body.cluster_statshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/cluster/stats?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS Cluster Os Bucket NumDEPENDENTxms.cluster.stats.os_bucket_num0XSKY XMSJSONPATH$.os_bucket_numxms.cluster.stats.get
- XMS Cluster VersionDEPENDENTxms.cluster.version00CHARXSKY XMSJSONPATH$.versionDISCARD_UNCHANGED_HEARTBEAT21600xms.cluster.get
- XMS Cache DisksHTTP_AGENTxms.hosts.disk_cache.get00TEXTZabbix raw itemJSONPATH$.body.diskshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/disks/?is_cache=true&is_silent=false&limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS HostsHTTP_AGENTxms.hosts.get00TEXTZabbix raw itemJSONPATH$.body.hostshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/hosts?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS Network InterfacesHTTP_AGENTxms.hosts.network_interfaces.get00TEXTZabbix raw itemJSONPATH$.body.network_interfaceshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/network-interfaces?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS OSDsHTTP_AGENTxms.hosts.osds.get00TEXTZabbix raw itemJSONPATH$.body.osdshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/osds?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS ServicesHTTP_AGENTxms.hosts.services.get00TEXTZabbix raw itemJSONPATH$.body.serviceshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/services?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS OS-BucketsHTTP_AGENTxms.os_buckets.get00TEXTZabbix raw itemJSONPATH$.body.os_bucketshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/os-buckets?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS OS-NFS-GatewaysHTTP_AGENTxms.os_nfs_gateways.get00TEXTZabbix raw itemJSONPATH$.body.nfs_gatewayshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/nfs-gateways?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS OS-S3_Load_BalancerHTTP_AGENTxms.os_s3_load_balancer.get00TEXTZabbix raw itemJSONPATH$.body.s3_load_balancershttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/s3-load-balancers?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS OS-UsersHTTP_AGENTxms.os_users.get00TEXTZabbix raw itemJSONPATH$.body.os_usershttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/os-users?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS OS-ZonesHTTP_AGENTxms.os_zone.get00TEXTZabbix raw itemJSONPATH$.body.os_zoneshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/os-zones?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
- XMS PoolsHTTP_AGENTxms.pools.get00TEXTZabbix raw itemJSONPATH$.body.poolshttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/pools?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}JSON
XMS OSD DiscoveryHTTP_AGENTxms.host.osds.discovery1hXMS OSD {#OSDID} IO UtilDEPENDENThosts.osds.io_util[{#OSDID}]0FLOAT%XMS OSD DiscoveryOSD {#OSDID}JSONPATH$.[?(@.osd_id == {#OSDID})].samples[0].io_util.first()MULTIPLIER100xms.hosts.osds.get{last()}>={$XMS_OSDS_IO_UTIL.MAX.WARN}RECOVERY_EXPRESSION{last()}<{$XMS_OSDS_IO_UTIL.MAX.WARN}Host {#HOSTNAME} {#OSDNAME} IO Usage Is Greater Than {$XMS_OSDS_IO_UTIL.MAX.WARN}%WARNINGYESXMS OSD {#OSDID} NameDEPENDENThosts.osds.name[{#OSDID}]00CHARXMS OSD DiscoveryOSD {#OSDID}JSONPATH$.[?(@.osd_id == {#OSDID})].name.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.hosts.osds.getXMS OSD {#OSDID} Total ByteDEPENDENThosts.osds.samples.total_Byte.data[{#OSDID}]0BXMS OSD DiscoveryOSD {#OSDID}JSONPATH$.[?(@.osd_id == {#OSDID})].samples[0].total_kbyte.first()MULTIPLIER1024xms.hosts.osds.getXMS OSD {#OSDID} Used ByteDEPENDENThosts.osds.samples.used_Byte.data[{#OSDID}]0BXMS OSD DiscoveryOSD {#OSDID}JSONPATH$.[?(@.osd_id == {#OSDID} )].samples[0].used_kbyte.first()MULTIPLIER1024xms.hosts.osds.get{last()}>={#OSD_TOTALKBYTE}*{$XMS_OSDS_USED_BYTE.MAX.DISASTER}/100*1024RECOVERY_EXPRESSION{last()}<{#OSD_TOTALKBYTE}*{$XMS_OSDS_USED_BYTE.MAX.DISASTER}/100*1024Host {#HOSTNAME} {#OSDNAME} Data Usage Is Greater Than {$XMS_OSDS_USED_BYTE.MAX.DISASTER}%DISASTERYES{last()}>={#OSD_TOTALKBYTE}*{$XMS_OSDS_USED_BYTE.MAX.WARN}/100*1024RECOVERY_EXPRESSION{last()}<{#OSD_TOTALKBYTE}*{$XMS_OSDS_USED_BYTE.MAX.WARN}/100*1024Host {#HOSTNAME} {#OSDNAME} Data Usage Is Greater Than {$XMS_OSDS_USED_BYTE.MAX.WARN}%WARNINGYESXMS OSD {#OSDID} StatusDEPENDENThosts.osds.status[{#OSDID}]00CHARXMS OSD DiscoveryOSD {#OSDID}JSONPATH$.[?(@.osd_id == {#OSDID})].status.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.hosts.osds.get{str(error)}=1RECOVERY_EXPRESSION{str(active)}=1Host {#HOSTNAME} {#OSDNAME} Status Is errorDISASTERYES{str(stopped)}=1RECOVERY_EXPRESSION{str(active)}=1Host {#HOSTNAME} {#OSDNAME} Status Is StoppedWARNINGYES{str(warning)}=1RECOVERY_EXPRESSION{str(active)}=1Host {#HOSTNAME} {#OSDNAME} Status Is WarningWARNINGYESXMS OSD {#OSDID} TypeDEPENDENThosts.osds.type[{#OSDID}]00CHARXMS OSD DiscoveryOSD {#OSDID}JSONPATH$.[?(@.osd_id == {#OSDID})].type.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.hosts.osds.gethttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/osds?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#OSDID}$.osd_id{#OSDNAME}$.name{#HOSTNAME}$.host.name{#OSD_TOTALKBYTE}$.samples[0].total_kbyte{#OSD_ROLE}$.roleJSONPATH$.osdsXMS Host DiscoveryHTTP_AGENTxms.hosts.discovery1hXMS Host {#HOSTNAME} StatusDEPENDENTxms.hosts.status[{#HOSTID}]00CHARXMS Host DiscoveryHost {#HOSTNAME}JSONPATH$.[?(@.id == {#HOSTID})].status.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.hosts.get{str(error)}=1RECOVERY_EXPRESSION{str(active)}=1Host {#HOSTNAME} Status Is errorDISASTER{str(offline)}=1RECOVERY_EXPRESSION{str(active)}=1Host {#HOSTNAME} Status Is offlineDISASTER{str(warning)}=1RECOVERY_EXPRESSION{str(active)}=1Host {#HOSTNAME} Status Is warningWARNINGhttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/hosts?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#HOSTID}$.id{#HOSTNAME}$.name{#HOSTSTATUS}$.statusJSONPATH$.hostsXMS Disk (Cache) DiscoveryHTTP_AGENTxms.hosts.disk_cache.discovery1hXMS Host {#XMS_HOST_NAME} Disk {#XMS_HOST_DEVICE} StatusDEPENDENTxms.host.disk.status[{#XMS_OSD_ID}]00CHARXMS Disk (Cache) DiscoveryHost {#XMS_HOST_NAME} Disk {#XMS_HOST_DEVICE}JSONPATH$.[?(@.id == {#XMS_OSD_ID} && @.is_cache == '{#XMS_IS_CACHE}')].status.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.hosts.disk_cache.get{str(error)}=1RECOVERY_EXPRESSION{str(active)}=1Host {#XMS_HOST_NAME} Cache Disk {#XMS_HOST_DEVICE} Status Is errorDISASTERhttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/disks/?is_cache=true&is_silent=false&limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#XMS_HOST_ID}$.host.id{#XMS_HOST_NAME}$.host.name{#XMS_IS_CACHE}$.is_cache{#XMS_OSD_ID}$.id{#XMS_HOST_DEVICE}$.deviceJSONPATH$.disksXMS Network Interfaces DiscoveryHTTP_AGENTxms.hosts.network_interfaces.discovery1hHost {#HOSTNAME} Network {#NETWORKNAME} Receive BytesDEPENDENThost.network_interfaces.rx_bandwidth_kbyte[{#NETWORKID}]0B/sXMS Network Interfaces DiscoveryHost {#HOSTNAME} Network {#NETWORKNAME}JSONPATH$.[?(@.host.id == {#HOSTID} && @.type == '{#NETWORKTYPE}')].samples[0].rx_bandwidth_kbyte.first()MULTIPLIER1024xms.hosts.network_interfaces.getHost {#HOSTNAME} Network {#NETWORKNAME} Receive PacketsDEPENDENThost.network_interfaces.rx_pps[{#NETWORKID}]0/sXMS Network Interfaces DiscoveryHost {#HOSTNAME} Network {#NETWORKNAME}JSONPATH$.[?(@.host.id == {#HOSTID} && @.type == '{#NETWORKTYPE}')].samples[0].rx_pps.first()xms.hosts.network_interfaces.getHost {#HOSTNAME} Network {#NETWORKNAME} StatusDEPENDENThost.network_interfaces.status[{#NETWORKID}]00CHARXMS Network Interfaces DiscoveryHost {#HOSTNAME} Network {#NETWORKNAME}JSONPATH$.[?(@.host.id == {#HOSTID} && @.type == '{#NETWORKTYPE}')].operstate.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.hosts.network_interfaces.get{str(down)}=1RECOVERY_EXPRESSION{str(up)}=1Host {#HOSTNAME} Network {#NETWORKNAME} is offlineHIGHHost {#HOSTNAME} Network {#NETWORKNAME} Transmit BytesDEPENDENThost.network_interfaces.tx_bandwidth_kbyte[{#NETWORKID}]0B/sXMS Network Interfaces DiscoveryHost {#HOSTNAME} Network {#NETWORKNAME}JSONPATH$.[?(@.host.id == {#HOSTID} && @.type == '{#NETWORKTYPE}')].samples[0].tx_bandwidth_kbyte.first()MULTIPLIER1024xms.hosts.network_interfaces.getHost {#HOSTNAME} Network {#NETWORKNAME} Transmit PacketsDEPENDENThost.network_interfaces.tx_pps[{#NETWORKID}]0/sXMS Network Interfaces DiscoveryHost {#HOSTNAME} Network {#NETWORKNAME}JSONPATH$.[?(@.host.id == {#HOSTID} && @.type == '{#NETWORKTYPE}')].samples[0].tx_pps.first()xms.hosts.network_interfaces.gethttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/network-interfaces?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#HOSTID}$.host.id{#HOSTNAME}$.host.name{#NETWORKNAME}$.name{#NETWORKID}$.id{#NETWORKTYPE}$.typeJSONPATH$.network_interfacesXMS Services DiscoveryHTTP_AGENTxms.hosts.services.discovery1hXMS {#HOSTNAME} {#TYPE} StatusDEPENDENThost.service.status[{#HOSTID}.{#TYPE}]00CHARXMS Services DiscoveryService {#HOSTNAME} {#TYPE}JSONPATH$.[?(@.host.id == {#HOSTID} && @.type == '{#TYPE}' && @.status == '{#STATUS}') ].up.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.hosts.services.get{str(false)}=1RECOVERY_EXPRESSION{str(true)}=1Service {#TYPE} of Host {#HOSTNAME} is offlineHIGHhttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/services?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#HOSTID}$.host.id{#TYPE}$.type{#HOSTNAME}$.host.name{#STATUS}$.statusJSONPATH$.servicesXMS OS-Bucket DiscoveryHTTP_AGENTxms.os_buckets.discovery1hXMS Bucket {#XMS_BUCKET_NAME} VersionedDEPENDENTxms.buckets.flag.versioned[{#XMS_BUCKET_ID}]00CHARXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].flag.versioned.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} OwnerDEPENDENTxms.buckets.owner[{#XMS_BUCKET_ID}]00CHARXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].owner.name.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Quota Max ObjectsDEPENDENTxms.buckets.quota_max_objects[{#XMS_BUCKET_ID}]0XMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].quota_max_objects.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Quota Max SizeDEPENDENTxms.buckets.quota_max_size[{#XMS_BUCKET_ID}]0XMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].quota_max_size.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Allocated ObjectsDEPENDENTxms.buckets.samples.allocated_objects[{#XMS_BUCKET_ID}]0XMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].allocated_objects.first()xms.os_buckets.get{last()}>={#XMS_BUCKET_QUOTA_MAX_OBJECTS}*{$XMS_BUCKET_ALLOCATED_OBJECTS.MAX.WARN}/100 and {#XMS_BUCKET_QUOTA_MAX_OBJECTS} > 0RECOVERY_EXPRESSION{last()}<{#XMS_BUCKET_QUOTA_MAX_OBJECTS}*{$XMS_BUCKET_ALLOCATED_OBJECTS.MAX.WARN}/100 or {#XMS_BUCKET_QUOTA_MAX_OBJECTS} = 0Object Storage Bucket {#XMS_BUCKET_NAME} Allocated Objects Is Greater Than {$XMS_BUCKET_ALLOCATED_OBJECTS.MAX.WARN}%WARNINGXMS Bucket {#XMS_BUCKET_NAME} Allocated SizeDEPENDENTxms.buckets.samples.allocated_size[{#XMS_BUCKET_ID}]0FLOATXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].allocated_size.first()xms.os_buckets.get{last()}>={#XMS_BUCKET_QUOTA_MAX_SIZE}*{$XMS_BUCKET_ALLOCATED_SIZE.MAX.WARN}/100 and {#XMS_BUCKET_QUOTA_MAX_SIZE} > 0RECOVERY_EXPRESSION{last()}<{#XMS_BUCKET_QUOTA_MAX_SIZE}*{$XMS_BUCKET_ALLOCATED_SIZE.MAX.WARN}/100 or {#XMS_BUCKET_QUOTA_MAX_SIZE} = 0Object Storage Bucket {#XMS_BUCKET_NAME} Allocated Size Is Greater Than {$XMS_BUCKET_ALLOCATED_SIZE.MAX.WARN}%WARNINGXMS Bucket {#XMS_BUCKET_NAME} Del OpsDEPENDENTxms.buckets.samples.del_ops_pm[{#XMS_BUCKET_ID}]0FLOAT/minXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].del_ops_pm.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Down Latency UsDEPENDENTxms.buckets.samples.down_latency_us[{#XMS_BUCKET_ID}]0FLOATXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].down_latency_us.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Latency DownDEPENDENTxms.buckets.samples.latency_down[{#XMS_BUCKET_ID}]0FLOATXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].latency_down.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Latency UpDEPENDENTxms.buckets.samples.latency_up[{#XMS_BUCKET_ID}]0FLOATXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].latency_up.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Rx Bandwidth Byte RateDEPENDENTxms.buckets.samples.rx_bandwidth_kbyte[{#XMS_BUCKET_ID}]0FLOATB/sXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].rx_bandwidth_kbyte.first()MULTIPLIER1024xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Rx OpsDEPENDENTxms.buckets.samples.rx_ops_pm[{#XMS_BUCKET_ID}]0FLOAT/minXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].rx_ops_pm.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Total Rx BytesDEPENDENTxms.buckets.samples.total_rx_bytes[{#XMS_BUCKET_ID}]0BXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].total_rx_bytes.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Total Tx BytesDEPENDENTxms.buckets.samples.total_tx_bytes[{#XMS_BUCKET_ID}]0BXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].total_tx_bytes.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Tx Bandwidth Byte RateDEPENDENTxms.buckets.samples.tx_bandwidth_kbyte[{#XMS_BUCKET_ID}]0FLOATB/sXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].tx_bandwidth_kbyte.first()MULTIPLIER1024xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Tx OpsDEPENDENTxms.buckets.samples.tx_ops_pm[{#XMS_BUCKET_ID}]0FLOAT/minXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].tx_ops_pm.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} Up Latency UsDEPENDENTxms.buckets.samples.up_latency_us[{#XMS_BUCKET_ID}]0FLOATXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].samples[0].up_latency_us.first()xms.os_buckets.getXMS Bucket {#XMS_BUCKET_NAME} StatusDEPENDENTxms.buckets.status[{#XMS_BUCKET_ID}]00CHARXMS OS-Bucket DiscoveryOS Bucket {#XMS_BUCKET_NAME}JSONPATH$.[?(@.id == {#XMS_BUCKET_ID} && @.virtual =='false')].status.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.os_buckets.gethttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/os-buckets?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#XMS_BUCKET_NAME}$.name{#XMS_BUCKET_ID}$.id{#XMS_BUCKET_OWNER}$.owner.name{#XMS_BUCKET_QUOTA_MAX_OBJECTS}$.quota_max_objects{#XMS_BUCKET_QUOTA_MAX_SIZE}$.quota_max_sizeJSONPATH$.os_bucketsXMS NFS-Gateways DiscoveryHTTP_AGENTxms.os_nfs_gateways.discovery1hXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Cpu Util RateDEPENDENTxms.nfs_gateway.samples.cpu_util[{#XMS_NFS_GATEWAY_ID}]0FLOAT%XMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].cpu_util.first()MULTIPLIER100xms.os_nfs_gateways.getXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Down Bandwidth ByteDEPENDENTxms.nfs_gateway.samples.down_bandwidth_kbyte[{#XMS_NFS_GATEWAY_ID}]0B/sXMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].down_bandwidth_kbyte.first()MULTIPLIER1024xms.os_nfs_gateways.getXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Down Latency UsDEPENDENTxms.nfs_gateway.samples.down_latency_us[{#XMS_NFS_GATEWAY_ID}]0XMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].down_latency_us.first()xms.os_nfs_gateways.getXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Down OpsDEPENDENTxms.nfs_gateway.samples.down_ops[{#XMS_NFS_GATEWAY_ID}]0XMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].down_ops.first()xms.os_nfs_gateways.getXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Mem Usage Util RateDEPENDENTxms.nfs_gateway.samples.mem_usage_percent[{#XMS_NFS_GATEWAY_ID}]0FLOAT%XMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].mem_usage_percent.first()MULTIPLIER100xms.os_nfs_gateways.getXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Up Bandwidth ByteDEPENDENTxms.nfs_gateway.samples.up_bandwidth_kbyte[{#XMS_NFS_GATEWAY_ID}]0B/sXMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].up_bandwidth_kbyte.first()MULTIPLIER1024xms.os_nfs_gateways.getXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Up Latency UsDEPENDENTxms.nfs_gateway.samples.up_latency_us[{#XMS_NFS_GATEWAY_ID}]0XMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].up_latency_us.first()xms.os_nfs_gateways.getXMS NFS Gateway {#XMS_NFS_GATEWAY_NAME} Up OpsDEPENDENTxms.nfs_gateway.samples.up_ops[{#XMS_NFS_GATEWAY_ID}]0XMS NFS-Gateways DiscoveryNFS Gateway {#XMS_NFS_GATEWAY_NAME}JSONPATH$.[?(@.host.id == {#XMS_HOST_ID} && @.name == '{#XMS_NFS_GATEWAY_NAME}')]..samples[0].up_ops.first()xms.os_nfs_gateways.gethttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/nfs-gateways?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#XMS_NFS_GATEWAY_ID}$.id{#XMS_NFS_GATEWAY_NAME}$.name{#XMS_HOST_ID}$.host.idJSONPATH$.nfs_gatewaysXMS S3 Load Balancer DiscoveryHTTP_AGENTxms.os_s3_load_balancers.discovery1hXMS Load balancer {#XMS_S3_LOAD_BALANCER_NAME} Active ConnectionsDEPENDENTxms.s3_load_balancer.samples.active_connections[{#XMS_S3_LOAD_BALANCER_ID}]0XMS S3 Load Balancer DiscoveryS3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME}JSONPATH$.[?(@.id == {#XMS_S3_LOAD_BALANCER_ID})].samples[0].active_connections.first()xms.os_s3_load_balancer.get{last()}>={$XMS_S3_LOAD_BALANCER_ACTIVE_CONNECTIONS.WARN}RECOVERY_EXPRESSION{last()}<{$XMS_S3_LOAD_BALANCER_ACTIVE_CONNECTIONS.WARN}S3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME} Active Connections Are Greater Than {$XMS_S3_LOAD_BALANCER_ACTIVE_CONNECTIONS.WARN}WARNINGXMS Load balancer {#XMS_S3_LOAD_BALANCER_NAME} CPU UtilDEPENDENTxms.s3_load_balancer.samples.cpu_util[{#XMS_S3_LOAD_BALANCER_ID}]0FLOAT%XMS S3 Load Balancer DiscoveryS3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME}JSONPATH$.[?(@.id == {#XMS_S3_LOAD_BALANCER_ID})].samples[0].cpu_util.first()MULTIPLIER100xms.os_s3_load_balancer.get{last()}>={$XMS_S3_LOAD_BALANCER_CPU_UTIL.WARN}RECOVERY_EXPRESSION{last()}<{$XMS_S3_LOAD_BALANCER_CPU_UTIL.WARN}S3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME} CPU Usage is Greater Than {$XMS_S3_LOAD_BALANCER_CPU_UTIL.WARN}%WARNINGXMS Load balancer {#XMS_S3_LOAD_BALANCER_NAME} Mem Usage UtilDEPENDENTxms.s3_load_balancer.samples.mem_usage_percent[{#XMS_S3_LOAD_BALANCER_ID}]0FLOAT%XMS S3 Load Balancer DiscoveryS3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME}JSONPATH$.[?(@.id == {#XMS_S3_LOAD_BALANCER_ID})].samples[0].mem_usage_percent.first()MULTIPLIER100xms.os_s3_load_balancer.get{last()}>={$XMS_S3_LOAD_BALANCER_MEM_USAGE_PERCENT.WARN}RECOVERY_EXPRESSION{last()}<{$XMS_S3_LOAD_BALANCER_MEM_USAGE_PERCENT.WARN}S3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME} Memory Usage is Greater Than {$XMS_S3_LOAD_BALANCER_MEM_USAGE_PERCENT.WARN}%WARNINGXMS Load balancer {#XMS_S3_LOAD_BALANCER_NAME} StatusDEPENDENTxms.s3_load_balancer.status[{#XMS_S3_LOAD_BALANCER_ID}]00CHARXMS S3 Load Balancer DiscoveryS3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME}JSONPATH$.[?(@.id == {#XMS_S3_LOAD_BALANCER_ID})].status.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.os_s3_load_balancer.get{str(error)}=1RECOVERY_EXPRESSION{str(active)}=1S3 Load Balancer {#XMS_S3_LOAD_BALANCER_NAME} Status Is ErrorDISASTERhttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/s3-load-balancers?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#XMS_S3_LOAD_BALANCER_ID}$.id{#XMS_S3_LOAD_BALANCER_NAME}$.nameJSONPATH$.s3_load_balancersXMS OS-User DiscoveryHTTP_AGENTxms.os_users.discovery1hXMS OS-User {#XMS_OS_USER_NAME} Allocated ObjectsDEPENDENTxms.os_user.allocated_objects[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].samples[0].allocated_objects.first()xms.os_users.get{last()}>={#XMS_OS_USER_USER_QUOTA_MAX_OBJECTS}*{$XMS_OS_USER_ALLOCATED_OBJECTS.MAX.WARN}/100 and {#XMS_OS_USER_USER_QUOTA_MAX_OBJECTS} > 0RECOVERY_EXPRESSION{last()}<{#XMS_OS_USER_USER_QUOTA_MAX_OBJECTS}*{$XMS_OS_USER_ALLOCATED_OBJECTS.MAX.WARN}/100 or {#XMS_OS_USER_USER_QUOTA_MAX_OBJECTS} = 0Object Storage User {#XMS_OS_USER_NAME} Allocated Objects Is Greater Than {$XMS_OS_USER_ALLOCATED_OBJECTS.MAX.WARN}%WARNINGYESXMS OS-User {#XMS_OS_USER_NAME} Allocated SizeDEPENDENTxms.os_user.allocated_size[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].samples[0].allocated_size.first()xms.os_users.get{last()}>={#XMS_OS_USER_USER_QUOTA_MAX_SIZE}*{$XMS_OS_USER_ALLOCATED_SIZE.MAX.WARN}/100 and {#XMS_OS_USER_USER_QUOTA_MAX_SIZE} > 0RECOVERY_EXPRESSION{last()}<{#XMS_OS_USER_USER_QUOTA_MAX_SIZE}*{$XMS_OS_USER_ALLOCATED_SIZE.MAX.WARN}/100 or {#XMS_OS_USER_USER_QUOTA_MAX_SIZE} = 0Object Storage User {#XMS_OS_USER_NAME} Allocated Size Is Greater Than {$XMS_OS_USER_ALLOCATED_SIZE.MAX.WARN}%WARNINGYESXMS OS-User {#XMS_OS_USER_NAME} Bucket NumDEPENDENTxms.os_user.bucket_num[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].bucket_num.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Bucket Quota Max ObjectsDEPENDENTxms.os_user.bucket_quota_max_objects[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].bucket_quota_max_objects.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Bucket Quota Max SizeDEPENDENTxms.os_user.bucket_quota_max_size[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].bucket_quota_max_size.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Max BucketsDEPENDENTxms.os_user.max_buckets[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].max_buckets.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Del OpsDEPENDENTxms.os_user.samples.del_ops_pm[{#XMS_OS_USER_ID}]0/minXMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].samples[0].del_ops_pm.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Rx Bandwidth Byte RateDEPENDENTxms.os_user.samples.rx_bandwidth_kbyte[{#XMS_OS_USER_ID}]0B/sXMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].samples[0].rx_bandwidth_kbyte.first()MULTIPLIER1024xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Rx OpsDEPENDENTxms.os_user.samples.rx_ops_pm[{#XMS_OS_USER_ID}]0/minXMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].samples[0].rx_ops_pm.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Tx_Bandwidth_Byte RateDEPENDENTxms.os_user.samples.tx_bandwidth_kbyte[{#XMS_OS_USER_ID}]0B/sXMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].samples[0].tx_bandwidth_kbyte.first()MULTIPLIER1024xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} Tx OpsDEPENDENTxms.os_user.samples.tx_ops_pm[{#XMS_OS_USER_ID}]0/minXMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].samples[0].tx_ops_pm.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} StatusDEPENDENTxms.os_user.status[{#XMS_OS_USER_ID}]00CHARXMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].status.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} User Quota Max ObjectsDEPENDENTxms.os_user.user_quota_max_objects[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].user_quota_max_objects.first()xms.os_users.getXMS OS-User {#XMS_OS_USER_NAME} User Quota Max SizeDEPENDENTxms.os_user.user_quota_max_size[{#XMS_OS_USER_ID}]0XMS OS-User DiscoveryOS User {#XMS_OS_USER_NAME}JSONPATH$.[?(@.id == {#XMS_OS_USER_ID})].user_quota_max_size.first()xms.os_users.gethttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/os-users?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#XMS_OS_USER_ID}$.id{#XMS_OS_USER_NAME}$.name{#XMS_OS_USER_ALLOCATED_OBJECTS}$.samples[0].allocated_objects{#XMS_OS_USER_ALLOCATED_SIZE}$.samples[0].allocated_size{#XMS_OS_USER_USER_QUOTA_MAX_OBJECTS}$.user_quota_max_objects{#XMS_OS_USER_USER_QUOTA_MAX_SIZE}$.user_quota_max_sizeJSONPATH$.os_usersXMS OS-Zones DiscoveryHTTP_AGENTxms.os_zones.discovery1hXMS OS-Zones {#XMS_OS_ZONE_NAME} AliasDEPENDENTxms.os_zones.alias[{#XMS_OS_ZONE_ID}]00CHARXMS OS-Zones DiscoveryOS Zones {#XMS_OS_ZONE_NAME}JSONPATH$.[?(@.id == {#XMS_OS_ZONE_ID})].alias.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.os_zone.getXMS OS-Zones {#XMS_OS_ZONE_NAME} Connect StatusDEPENDENTxms.os_zones.connected[{#XMS_OS_ZONE_ID}]00CHARXMS OS-Zones DiscoveryOS Zones {#XMS_OS_ZONE_NAME}JSONPATH$.[?(@.id == {#XMS_OS_ZONE_ID})].connected.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.os_zone.getXMS OS-Zones {#XMS_OS_ZONE_NAME} Objects OPSDEPENDENTxms.os_zones.samples.objects_pm[{#XMS_OS_ZONE_ID}]0XMS OS-Zones DiscoveryOS Zones {#XMS_OS_ZONE_NAME}JSONPATH$.[?(@.id == {#XMS_OS_ZONE_ID})].samples[0].objects_pm.first()xms.os_zone.getXMS OS-Zones {#XMS_OS_ZONE_NAME} Object Bytes PsDEPENDENTxms.os_zones.samples.object_kbytes_ps[{#XMS_OS_ZONE_ID}]0BXMS OS-Zones DiscoveryOS Zones {#XMS_OS_ZONE_NAME}JSONPATH$.[?(@.id == {#XMS_OS_ZONE_ID})].samples[0].object_kbytes_ps.first()MULTIPLIER1024xms.os_zone.getXMS OS-Zones {#XMS_OS_ZONE_NAME} Total ObjectsDEPENDENTxms.os_zones.samples.total_objects[{#XMS_OS_ZONE_ID}]0XMS OS-Zones DiscoveryOS Zones {#XMS_OS_ZONE_NAME}JSONPATH$.[?(@.id == {#XMS_OS_ZONE_ID})].samples[0].total_objects.first()xms.os_zone.getXMS OS-Zones {#XMS_OS_ZONE_NAME} Total Object CapacityDEPENDENTxms.os_zones.samples.total_object_bytes[{#XMS_OS_ZONE_ID}]0FLOATBXMS OS-Zones DiscoveryOS Zones {#XMS_OS_ZONE_NAME}JSONPATH$.[?(@.id == {#XMS_OS_ZONE_ID})].samples[0].total_object_bytes.first()xms.os_zone.gethttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/os-zones?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#XMS_OS_ZONE_ALIAS}$.alias{#XMS_OS_ZONE_NAME}$.name{#XMS_OS_ZONE_ID}$.idJSONPATH$.os_zonesXMS POOL DiscoveryHTTP_AGENTxms.pools.discovery1hXMS Pool {#POOLNAME} Actual CapacityDEPENDENTxms.pool.samples.actual_kbyte[{#POOLID}]0BXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].actual_kbyte.first()MULTIPLIER1024xms.pools.getXMS Pool {#POOLNAME} Data CapacityDEPENDENTxms.pool.samples.data_kbyte[{#POOLID}]0BXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].data_kbyte.first()MULTIPLIER1024xms.pools.get{last()}>={#POOLSTATUS_ACTUAL_KBYTE}*{$XMS_POOL_DATA_KBYTE.MAX.DISASTER}/100*1024RECOVERY_EXPRESSION{last()}<{#POOLSTATUS_ACTUAL_KBYTE}*{$XMS_POOL_DATA_KBYTE.MAX.DISASTER}/100*1024Pool {#POOLNAME} Capacity Usage Is Greater Than {$XMS_POOL_DATA_KBYTE.MAX.DISASTER}%DISASTER{last()}>={#POOLSTATUS_ACTUAL_KBYTE}*{$XMS_POOL_DATA_KBYTE.MAX.HIGH}/100*1024RECOVERY_EXPRESSION{last()}<{#POOLSTATUS_ACTUAL_KBYTE}*{$XMS_POOL_DATA_KBYTE.MAX.HIGH}/100*1024Pool {#POOLNAME} Capacity Usage Is Greater Than {$XMS_POOL_DATA_KBYTE.MAX.HIGH}%HIGH{last()}>={#POOLSTATUS_ACTUAL_KBYTE}*{$XMS_POOL_DATA_KBYTE.MAX.WARN}/100*1024RECOVERY_EXPRESSION{last()}<{#POOLSTATUS_ACTUAL_KBYTE}*{$XMS_POOL_DATA_KBYTE.MAX.WARN}/100*1024Pool {#POOLNAME} Capacity Usage Is Greater Than {$XMS_POOL_DATA_KBYTE.MAX.WARN}%WARNINGXMS Pool {#POOLNAME} Read BandwidthDEPENDENTxms.pool.samples.read_bandwidth_kbyte[{#POOLID}]0B/sXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].read_bandwidth_kbyte.first()MULTIPLIER1024xms.pools.getXMS Pool {#POOLNAME} Read IopsDEPENDENTxms.pool.samples.read_iops[{#POOLID}]0XMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].read_iops.first()xms.pools.getXMS Pool {#POOLNAME} Read LatencyDEPENDENTxms.pool.samples.read_latency_us[{#POOLID}]0usXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].read_latency_us.first()xms.pools.getXMS Pool {#POOLNAME} Recovery BandwidthDEPENDENTxms.pool.samples.recovery_bandwidth_kbyte[{#POOLID}]0B/sXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].recovery_bandwidth_kbyte.first()MULTIPLIER1024xms.pools.getXMS Pool {#POOLNAME} Recovery IopsDEPENDENTxms.pool.samples.recovery_iops[{#POOLID}]0XMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].recovery_iops.first()xms.pools.getXMS Pool {#POOLNAME} Write BandwidthDEPENDENTxms.pool.samples.write_bandwidth_kbyte[{#POOLID}]0B/sXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].write_bandwidth_kbyte.first()MULTIPLIER1024xms.pools.getXMS Pool {#POOLNAME} Write IopsDEPENDENTxms.pool.samples.write_iops[{#POOLID}]0XMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].write_iops.first()xms.pools.getXMS Pool {#POOLNAME} Write LatencyDEPENDENTxms.pool.samples.write_latency_us[{#POOLID}]0usXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].samples[0].write_latency_us.first()xms.pools.getXMS Pool {#POOLNAME} StatusDEPENDENTxms.pool.status[{#POOLID}]00CHARXMS POOL DiscoveryPool {#POOLNAME}JSONPATH$.[?(@.id == {#POOLID})].status.first()DISCARD_UNCHANGED_HEARTBEAT6hxms.pools.get{str(degraded)}=1RECOVERY_EXPRESSION{str(active)}=1Pool {#POOLNAME} Status Is degradedWARNING{str(error)}=1RECOVERY_EXPRESSION{str(active)}=1Pool {#POOLNAME} Status Is errorDISASTER{str(full)}=1RECOVERY_EXPRESSION{str(active)}=1Pool {#POOLNAME} Status Is fullDISASTERhttp://{$XMS_API_IP}:{$XMS_API_PORT}/v1/pools?limit=1000Xms-Auth-Token{$XMS_ACCESS_TOKEN}{#POOLNAME}$.name{#POOLID}$.id{#POOLSTATUS}$.status{#POOLSTATUS_ACTUAL_KBYTE}$.samples[0].actual_kbyteJSONPATH$.pools{$XMS_ACCESS_TOKEN}d862495fc8304b738e537d9c121ce2a6XMS Access Token{$XMS_API_IP}10.255.20.148XMS API IP Address{$XMS_API_PORT}8051XMS API Port{$XMS_BUCKET_ALLOCATED_OBJECTS.MAX.WARN}80XMS Bucket Allocated Objects{$XMS_BUCKET_ALLOCATED_SIZE.MAX.WARN}80Max Warn Percentage of XMS Bucket Allocated Size{$XMS_OSDS_IO_UTIL.MAX.WARN}90Max Warn Percentage of XMS OSDS IO Util{$XMS_OSDS_USED_BYTE.MAX.DISASTER}85Max Disaster Percentage of XMS OSDS Used Byte{$XMS_OSDS_USED_BYTE.MAX.WARN}80Max Warn Percentage of XMS OSDS Used_Byte{$XMS_OS_USER_ALLOCATED_OBJECTS.MAX.WARN}80Max Warn Percentage of XMS OS User Allocated Objects{$XMS_OS_USER_ALLOCATED_SIZE.MAX.WARN}80Max Warn Percentage of XMS OS_User Allocated Size{$XMS_POOL_DATA_KBYTE.MAX.DISASTER}90Max Disaster Percentage of XMS Pool Data kbyte{$XMS_POOL_DATA_KBYTE.MAX.HIGH}85Max High Percentage of XMS Pool Data kbyte{$XMS_POOL_DATA_KBYTE.MAX.WARN}80Max Warn Percentage of XMS Pool Data kbyte{$XMS_S3_LOAD_BALANCER_ACTIVE_CONNECTIONS.WARN}1024Max Warn Value of XMS S3 Load Balancer Active Connections{$XMS_S3_LOAD_BALANCER_CPU_UTIL.WARN}80Max Warn Percentage of XMS S3 Load Balancer CPU Util{$XMS_S3_LOAD_BALANCER_MEM_USAGE_PERCENT.WARN}80Max Warn Percentage of XMS S3 Load Balancer MEM Usage