conch-reporter-smartos's People
conch-reporter-smartos's Issues
Match `os` to livesys reporter fields
00:58:22 preflight-5T18TD2:/opt/conch/versions/conch-reporter/current/Conch-Reporter# cat /tmp/device_report.json | jq .os
{
"platform": "debian",
"platform_version": "8.11",
"hostname": "preflight-5T18TD2",
"version": "3.16.0-6-amd64",
"type": "Linux"
}
Need bios_version
Want SMBIOS info
"product_name": "Joyent-M12G5",
"serial_number": "E329410X8501570",
"sku": "600-0032-001",
"system_uuid": "00000000-0000-0000-0000-AC1F6B6C5564",
Add timeout support to all exec commands
If Capture::Tiny doesn't require XS, seems promising:
https://metacpan.org/pod/Capture::Tiny#PERL_CAPTURE_TINY_TIMEOUT
Need report_id
"report_id": "8D9341B8-8692-11E8-AC62-F8FE7E92F6E8",
Need HBA objects
We can get these from hwgrok
.
"hba": {
"0": {
"bios_ver": "8.31.03.00",
"bus": "94",
"device": "0",
"firmware_ver": "14.00.00.00",
"segment": "0",
"slot": "6",
"type": "SAS3008"
},
"1": {
"bios_ver": "8.31.03.00",
"bus": "134",
"device": "0",
"firmware_ver": "14.00.00.00",
"segment": "0",
"slot": "2",
"type": "SAS3008"
},
"2": {
"bios_ver": "8.31.03.00",
"bus": "216",
"device": "0",
"firmware_ver": "14.00.00.00",
"segment": "0",
"slot": "4",
"type": "SAS3008"
}
},
Reports should include reporter/agent metadata
Each collector should include its module name, a high level object should include the git sha of the reporter, etc.
Want fan object
Can get this from hwgrok
.
Validation/DiskSmartStatus error
Use of uninitialized value in pattern match (m//) at /home/bdha/src/joyent/conch/bin/../lib/Conch/Validation/DiskSmartStatus.pm line 23.
Want extended CPU info
Disk objects are missing the `transport` property
Should be usb
or sas
, mainly.
Want power ratings
Can get these from hwgrok
.
Validation for LOM cards
From the OS side, we need to verify that a LOM card is getting an IP, and that it's functional.
Validation/UsbHddNum error
Use of uninitialized value in fc at /home/bdha/src/joyent/conch/bin/../lib/Conch/Validation/UsbHddNum.pm line 20.
Transceiver collector
/usr/lib/dl/dltraninfo -v
Consume `/etc/release`
SmartOS 20170803T064301Z x86_64
Copyright (c) 2010-2017, Joyent, Inc.
Built with the following components:
[
{ "repo": "smartos-live", "branch": "release-20170803",
"commit_date": "1501506422",
"rev": "77195c1816fbcb90ba4c2cbe0d039b437a819f51",
"url": "[email protected]:joyent/smartos-live.git" },
{ "repo": "illumos-joyent", "branch": "release-20170803",
"commit_date": "1501706977",
"rev": "70fe2b10487a1b0dfe11ed0378b4f835ff133884",
"url": "/root/data/jenkins/workspace/smartos/MG/build/illumos-joyent" },
{ "repo": "illumos-extra", "branch": "release-20170803",
"commit_date": "1494282454",
"rev": "591c23412e2f32c1bd57db71d578014c73984613",
"url": "/root/data/jenkins/workspace/smartos/MG/build/illumos-extra" },
{ "repo": "kvm", "branch": "release-20170803",
"commit_date": "1450081968",
"rev": "a8befd521c7e673749c64f118585814009fe4b73",
"url": "/root/data/jenkins/workspace/smartos/MG/build/illumos-kvm" },
{ "repo": "kvm-cmd", "branch": "release-20170803",
"commit_date": "1470436658",
"rev": "70a3b9ac0fffc05cbe541164c097f51040addc8c",
"url": "/root/data/jenkins/workspace/smartos/MG/build/illumos-kvm-cmd" },
{ "repo": "mdata-client", "branch": "release-20170803",
"commit_date": "1482175115",
"rev": "dbb3fdec26373f8e86c9ea0057ebba48581ff476",
"url": "/root/data/jenkins/workspace/smartos/MG/build/mdata-client" }
]
Normalize LLDP port and peer fields
This means that nominally network-related reports only contain integers for ports. In the future we may need to add a "stack_unit" field, but we currently don't stack switches in a way where we'd end up with te2/15 or similar.
Conch::Validations::SwitchPeers
needs to be updated along with Conch::Reporter::Collect::Network
.
Need uptime_since
"uptime_since": "2018-07-13 11:37:13+00:00"
Need to cache SMART lookups
Requested by @jclulow.
Disk control commands can cause latency bubbles / make disks sad.
Need CPU temps
For the temp
object.
fix mac addresses using shorthand
replace dladm with sysinfo to get the mac address and interface information.
Memory locator is inconsistant across chasis / OS
dmidecode
on Linux gives us P1-DIMMA1
. On some systems under SmartOS, smbios
just gives us A1
.
On other systems it matches. So that's fun!
dmidecode
(in Conch Report) on a SMCI Shrimp MK3.5:
{
"memory-asset-tag": "P1-DIMMA1_AssetTag (date:18/13)",
"memory-bank-locator": "P0_Node0_Channel0_Dimm0",
"memory-configured-clock-speed": "2666",
"memory-configured-voltage": "1.2 V",
"memory-data-width": "64",
"memory-form-factor": "DIMM",
"memory-locator": "P1-DIMMA1",
"memory-manufacturer": "Samsung",
"memory-maximum-voltage": "1.2 V",
"memory-minimum-voltage": "1.2 V",
"memory-part-number": "M393A4K40CB2-CTD",
"memory-rank": "2",
"memory-serial-number": "38C6B8F3",
"memory-set": null,
"memory-size": "32",
"memory-speed": "2666",
"memory-total-width": "72",
"memory-type": "DDR4",
"memory-type-detail": "Synchronous"
},
smbios
on an SMCI Shrimp Mk3.5:
ID SIZE TYPE
58 143 SMB_TYPE_MEMDEVICE (type 17) (memory device)
Manufacturer: Samsung
Serial Number: 38C6CE64
Asset Tag: P2-DIMMD1_AssetTag (date:18/13)
Location Tag: P2-DIMMD1
Part Number: M393A4K40CB2-CTD
Physical Memory Array: 57
Memory Error Data: Not Supported
Total Width: 72 bits
Data Width: 64 bits
Size: 34359738368 bytes
Form Factor: 9 (DIMM)
Set: None
Rank: 2 (dual)
Memory Type: 26 (DDR4)
Flags: 0x80
SMB_MDF_SYNC (synchronous)
Speed: 2666 MT/s
Configured Speed: 2666 MT/s
Device Locator: P2-DIMMD1
Bank Locator: P1_Node1_Channel0_Dimm0
Minimum Voltage: 1.20V
Maximum Voltage: 1.20V
Configured Voltage: 1.20V
smbios
on a Dell Joyent-Compute-Platform-3301:
ID SIZE TYPE
4375 43 SMB_TYPE_MEMDEVICE (type 17) (memory device)
Location Tag: B12
Physical Memory Array: 4096
Memory Error Data: Not Supported
Total Width: 0 bits
Data Width: 0 bits
Size: Not Populated
Form Factor: 2 (unknown)
Set: 6
Rank: Unknown
Memory Type: 2 (unknown)
Flags: 0x0
Speed: Unknown
Configured Speed: Unknown
Device Locator: B12
Bank Locator:
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
So... surprising no one...
This is going to require some changes to the validator, regardless of anything else.
Document cache behaviors
Diskinfo, LLDP, hwgrok caches
`dimm_map` blowing up
malformed JSON string, neither array, object, number, string or atom,
Need CPU objects
hwgrok
does not give us CPU info. We'll need to collect it some other way.
The very minimum we need is:
"processor": {
"count": 2,
"type": "Intel(R) Xeon(R) Gold 6132 CPU @ 2.60GHz"
},
Under Linux, we push up about 1000 lines of CPU flags. I don't think that's critical information, but things like:
"microcode": "0x2000043",
"model_family": "6",
"model_id": "85",
"model_name": "Intel(R) Xeon(R) Gold 6132 CPU @ 2.60GHz",
"model_stepping": "4",
"socket_id": "1"
from each CPU would be helpful.
Interfaces must be re-keyed
Validations currently go off eth
, which won't work for illumos drivers. Will need to rework the report and validation to key off MACs or -- preferably -- arrayrefs.
Need chassis temp info
Can get these from hwgrok
.
"temp": {
"cpu0": "28",
"cpu1": "28",
"exhaust": "30",
"inlet": "22"
},
Add lockfile support so we don't stomp on ourselves
Need CIDR masks for all IPs
Required for netbox integration.
Triton headnodes must be unique for searching
Append the datacenter name to headnode
in the report if the hostname eq headnode
.
No CPUS array
The current version of this code won't validate because there is no CPUs information. As of joyent/conch-api#634 the server no longer validates against the memory
and processors
properties but instead relies on the dimms
and cpus
properties. While dimms
we have, there is nothing here that currently generates the cpus
property so no reports generated will validate as best I'm aware.
See also: joyent/conch-livesys#126 which updates the livesys reporter to remove these keys.
package.sh includes .git
Less than useful for releases!
Need disk objects
hwgrok
gives us a bunch of stuff, but it does not give us the device type or the transport. We'll need to parse both hwgrok
and diskinfo
.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.