Sangfor HCI Datasets
Sangfor HCI datasets define what a Sangfor HCI device reads from a Sangfor HCI management platform (dataset type sangfor). They attach to devices of type sangfor, and in
Collector Types
There are 13 datasets, one per data model, each with its own definition id, event.dataset, interval, and pipeline, so it can be searched, routed, and processed on its own. Each dataset's event.dataset is sangfor.<dataset>.
| Dataset (console title) | Dataset | Definition | Definition id | Kind | Default interval | Minimum |
|---|---|---|---|---|---|---|
| Sangfor Hosts | host | sangfor_host_collector | 10100 | inventory | 3,600 s | 60 s |
| Sangfor Host GPUs | host_gpu | sangfor_host_gpu_collector | 10101 | inventory | 3,600 s | 60 s |
| Sangfor Host Memory | host_memory | sangfor_host_memory_collector | 10102 | inventory | 3,600 s | 60 s |
| Sangfor Host Processors | host_processor | sangfor_host_processor_collector | 10103 | inventory | 3,600 s | 60 s |
| Sangfor Virtual Machines | vm | sangfor_vm_collector | 10104 | inventory | 3,600 s | 60 s |
| Sangfor VM Disks | vm_disk | sangfor_vm_disk_collector | 10105 | inventory | 3,600 s | 60 s |
| Sangfor VM Hardware | vm_hardware | sangfor_vm_hardware_collector | 10106 | inventory | 3,600 s | 60 s |
| Sangfor VM Network Adapters | vm_network_adapter | sangfor_vm_network_adapter_collector | 10107 | inventory | 3,600 s | 60 s |
| Sangfor Datastores | datastore | sangfor_datastore_collector | 10108 | inventory | 3,600 s | 60 s |
| Sangfor Host CPU Usage | host_processor_stats | sangfor_host_processor_stats_collector | 10150 | metric | 60 s | 20 s |
| Sangfor Host Memory Usage | host_memory_stats | sangfor_host_memory_stats_collector | 10151 | metric | 60 s | 20 s |
| Sangfor Host GPU Usage | host_gpu_stats | sangfor_host_gpu_stats_collector | 10152 | metric | 60 s | 20 s |
| Sangfor VM Usage | vm_stats | sangfor_vm_stats_collector | 10153 | metric | 60 s | 20 s |
There is no event dataset. The platform's alarms are counted on each host and machine (alarm_count, warning), which the inventories write.
Every dataset takes these properties:
| Field | Required | Type | Default | Description |
|---|---|---|---|---|
interval | N | int | per dataset | Seconds between readings. At least the dataset's minimum above. |
pipeline_name | N | string | the device's | The preprocessing pipeline the dataset's records enter. |
Wizard fields
Every Sangfor HCI dataset's
Rules
- Intervals. An interval under the dataset's minimum is left out with a warning in the device's log, and the rest of the device runs. Inventories are read hourly by default, because what the platform holds changes rarely. The use datasets may be read every 20 seconds at most.
- One of each. A dataset type is read once per device, however many datasets of it are assigned. The first decides its settings; the others are left out with a warning.
- Every reading reads afresh. The platform answers everything a host has, and how it is doing, in its hosts list, and the same of a virtual machine in its machines list. Every dataset reads its list again at every reading.
- Pipelines. A dataset's records enter the pipeline the dataset selects, otherwise the device's. Two datasets on one device can reach two pipelines.
Inventories
Inventory datasets write every item at every reading. From a dataset's second reading on, each record carries event.action:
event.action | event.type | Meaning |
|---|---|---|
added | creation | Not in the last delivered reading |
changed | change | Its fields differ from the last delivered reading's |
unchanged | info | As it was |
removed | deletion | Gone: written once, as it was last seen, dated now |
- The baseline is the last delivered reading. A reading that fails, or whose records could not all be written, never becomes the one the next compares with, so nothing is marked removed because a request failed.
- What moves while an item stays the same is written but not compared, such as a host's status, a machine's power state, or a datastore's use. Each table below says which fields these are.
- Ids, not names. An item is compared by its own fields and by the id of the availability zone it sits in, never by a name another object gives it. Renaming an availability zone marks nothing; moving a host, a machine, or a datastore to another zone marks it changed. A machine the platform moves to another host did not change: its record is tagged with the host it is on now.
- The first reading after a start marks nothing: the baseline is kept in memory.
Sizes and memory are bytes (the platform counts them in MB, read as MiB). The platform's own ratios (ratio, allocation_ratio, memory_ratio) are written as it gives them, to a thousandth: the API does not document their scale.
Hosts
| Dataset | One record per | Fields |
|---|---|---|
host | Host (hypervisor) | host.name, host.ip; sangfor.host.id, name, ip, type, description, status (not compared), alarm_count (not compared), cpu.model/sockets/cores_per_socket/cores/total_mhz, memory.size, storage.size, gpu.count |
host_gpu | Host that has GPUs | sangfor.host_gpu.count, memory.size |
host_memory | Host | sangfor.host_memory.size, reserved (what the platform keeps back), allocation_max (as the platform gives it; not compared) |
host_processor | Processor socket | sangfor.host_processor.index, model, vendor (intel, amd, hygon), cores (the socket's) |
The host dataset also refreshes the discovery that tags every dataset's records with its availability zone and host.
Virtual Machines
| Dataset | One record per | Fields |
|---|---|---|
vm | Virtual machine | sangfor.vm.id, name, description, status, power_state, stopped, type, vmtype, instant_vm, encrypted, expire_time, location, backup_file_count, uptime, shutdown_duration, has_gpu, vtool_installed, os.type/name/installed, image, project, user, storage, dh.id/name, group.id/name/id_path/name_path, protection.*, in_protection, network_type, ips, floating_ip.*, alarm_count, warning.*, advanced.*; related.hosts, related.ip. Not compared: status, power_state, stopped, uptime, shutdown_duration, backup_file_count, alarm_count, warning, ips, in_protection, floating_ip.bind_status. |
vm_disk | Disk | sangfor.vm_disk.id, storage.id/name/tag_id, storage_file, physical_disk_type, size, eagerly_scrub, preallocate |
vm_hardware | Virtual machine | sangfor.vm_hardware.cpu.sockets/cores_per_socket/cores/mhz/total_mhz, memory.size, storage.size/used/used_pct/ratio/file_size (the use not compared), gpu.count/memory_total |
vm_network_adapter | Network interface, known by its vif id, else its port id, else its MAC address | sangfor.vm_network_adapter.vif_id, name, device_id, port_id, mac, model, ip, ipv6, network_type, custom_gateway, connected, subnet.id/name/cidr/gateway, vpc.id/name. Not compared: connected, ip, ipv6. |
A machine's own name and its addresses are its vm record's related.hosts and related.ip, which is how a search finds it from the machine's own logs. host.name on a machine's records is always the host it runs on.
Datastores
| Dataset | One record per | Fields |
|---|---|---|
datastore | Datastore | sangfor.datastore.id, name, description, type, status, target, storage_tag_id, size, used, used_pct, ratio, read/write.bytes_per_sec/max_bytes_per_sec. Not compared: status, the use, and the throughput. |
A datastore is tagged with its availability zone and names no host.
Use
The use datasets read the platform's current figures from its hosts and machines lists, one list reading per dataset reading. The lists carry no time of their own, so each record is dated at its reading.
- Only what is running. A host the platform says is down, and a machine that does not run, have no current figures and no record. The GPU datasets read the hosts and machines that have GPUs.
- No zero for what the platform does not give. A figure the platform leaves out, or writes as
null, as text that is not a number, or as a negative, is left out rather than written as zero. A host or machine that gives none of the dataset's figures has no record. A zero the platform writes is its own value, and is written. - Derived fractions. The part used (
used.pct) is the platform's own used and total figures divided, a fraction of 1, written only when it gives both and the total is not zero. - Units. Memory in bytes, CPU in MHz, disk traffic in operations and bytes a second, network traffic in bits a second; the platform's ratios as it gives them.
| Dataset | One record per | Fields |
|---|---|---|
host_processor_stats | Running host | sangfor.host_processor_stats.used.mhz/pct (of the host's total MHz), ratio, allocation_ratio, allocation_max |
host_memory_stats | Running host | sangfor.host_memory_stats.used.bytes/pct, ratio, allocation_ratio, allocation_max |
host_gpu_stats | Running host that has GPUs | sangfor.host_gpu_stats.used (GPUs in use), ratio, memory.used.bytes/pct, memory.ratio |
vm_stats | Running virtual machine | sangfor.vm_stats.cpu.used.mhz/pct, cpu.ratio, memory.used.bytes/pct, memory.ratio, disk.read/write.iops/bytes_per_sec, network.read/write.bits_per_sec; while it has a GPU, gpu.ratio/memory_used/memory_ratio |
Examples
Reading a platform's hosts and virtual machines hourly, and the hosts' CPU use every 20 seconds... | |