Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some investigations on reporting stats #59

Open
MatthewFlamm opened this issue Jan 12, 2021 · 2 comments
Open

Some investigations on reporting stats #59

MatthewFlamm opened this issue Jan 12, 2021 · 2 comments

Comments

@MatthewFlamm
Copy link
Contributor

On v2 API at least, certain information is only available via the stats service. stats.get_sources returns a list of sources of data

stats.get_sources

{'aggregation-cpu-average': ['cpu-interrupt',
                             'cpu-user',
                             'cpu-idle',
                             'cpu-nice',
                             'cpu-system'],
 'aggregation-cpu-sum': ['cpu-system',
                         'cpu-user',
                         'cpu-nice',
                         'cpu-idle',
                         'cpu-interrupt'],
 'cpu-0': ['cpu-system', 'cpu-interrupt', 'cpu-idle', 'cpu-nice', 'cpu-user'],
 'cpu-1': ['cpu-user', 'cpu-system', 'cpu-interrupt', 'cpu-idle', 'cpu-nice'],
 'cpu-2': ['cpu-system', 'cpu-nice', 'cpu-idle', 'cpu-user', 'cpu-interrupt'],
 'cpu-3': ['cpu-nice', 'cpu-idle', 'cpu-system', 'cpu-interrupt', 'cpu-user'],
 'cputemp-0': ['temperature'],
 'cputemp-1': ['temperature'],
 'cputemp-2': ['temperature'],
 'cputemp-3': ['temperature'],
 'ctl-ioctl': ['disk_time-0-0',
               'disk_octets-0-0',
               'disk_ops',
               'disk_time',
               'disk_octets',
               'disk_ops-0-0'],
 'ctl-tpc': ['disk_ops',
             'disk_time-0-0',
             'disk_octets-0-0',
             'disk_time',
             'disk_octets',
             'disk_ops-0-0'],
 'df-mnt-storage': ['df_complex-free',
                    'df_complex-used',
                    'df_complex-reserved'],
 'df-mnt-storage-Music': ['df_complex-free',
                          'df_complex-used',
                          'df_complex-reserved'],
 'df-mnt-storage-Pictures': ['df_complex-reserved',
                             'df_complex-free',
                             'df_complex-used'],
 'df-mnt-storage-Videos': ['df_complex-reserved',
                           'df_complex-free',
                           'df_complex-used'],
 'df-mnt-storage-iocage': ['df_complex-reserved',
                           'df_complex-used',
                           'df_complex-free'],
 'df-mnt-storage-iocage-download': ['df_complex-reserved',
                                    'df_complex-free',
                                    'df_complex-used'],
 'df-mnt-storage-iocage-download-12.1-RELEASE': ['df_complex-free',
                                                 'df_complex-used',
                                                 'df_complex-reserved'],
 'df-mnt-storage-iocage-images': ['df_complex-used',
                                  'df_complex-free',
                                  'df_complex-reserved'],
 'df-mnt-storage-iocage-jails': ['df_complex-used',
                                 'df_complex-reserved',
                                 'df_complex-free'],
 'df-mnt-storage-iocage-jails-plexjail': ['df_complex-free',
                                          'df_complex-used',
                                          'df_complex-reserved'],
 'df-mnt-storage-iocage-jails-plexjail-root': ['df_complex-free',
                                               'df_complex-reserved',
                                               'df_complex-used'],
 'df-mnt-storage-iocage-log': ['df_complex-reserved',
                               'df_complex-free',
                               'df_complex-used'],
 'df-mnt-storage-iocage-releases': ['df_complex-free',
                                    'df_complex-reserved',
                                    'df_complex-used'],
 'df-mnt-storage-iocage-releases-12.1-RELEASE': ['df_complex-reserved',
                                                 'df_complex-free',
                                                 'df_complex-used'],
 'df-mnt-storage-iocage-releases-12.1-RELEASE-root': ['df_complex-reserved',
                                                      'df_complex-used',
                                                      'df_complex-free'],
 'df-mnt-storage-iocage-templates': ['df_complex-free',
                                     'df_complex-used',
                                     'df_complex-reserved'],
 'df-root': ['df_complex-free', 'df_complex-reserved', 'df_complex-used'],
 'df-var-tmp-xxxxxxx': ['df_complex-reserved',
                            'df_complex-used',
                            'df_complex-free'],
 'disk-ada0': ['disk_time',
               'disk_octets',
               'disk_io_time',
               'disk_ops',
               'pending_operations'],
 'disk-ada1': ['disk_time',
               'disk_octets',
               'pending_operations',
               'disk_io_time',
               'disk_ops'],
 'disk-ada2': ['disk_io_time',
               'pending_operations',
               'disk_ops',
               'disk_time',
               'disk_octets'],
 'disktemp-ada0': ['temperature'],
 'disktemp-ada1': ['temperature'],
 'disktemp-ada2': ['temperature'],
 'geom_stat': ['geom_ops_rwd-ada2',
               'geom_ops-ada0',
               'geom_queue-ada0',
               'geom_bw-ada0',
               'geom_latency-ada2',
               'geom_busy_percent-ada1',
               'geom_queue-ada1',
               'geom_ops-ada1',
               'geom_busy_percent-ada0',
               'geom_bw-ada1',
               'geom_latency-ada0',
               'geom_bw-ada2',
               'geom_queue-ada2',
               'geom_ops-ada2',
               'geom_ops_rwd-ada0',
               'geom_busy_percent-ada2',
               'geom_latency-ada1',
               'geom_ops_rwd-ada1'],
 'interface-bridge0': ['if_octets', 'if_packets', 'if_errors'],
 'interface-em0': ['if_errors', 'if_octets', 'if_packets'],
 'interface-igb0': ['if_packets', 'if_errors', 'if_octets'],
 'interface-vnet0.1': ['if_octets', 'if_packets', 'if_errors'],
 'interface-vnet0.2': ['if_errors', 'if_packets', 'if_octets'],
 'interface-vnet0.3': ['if_packets', 'if_errors', 'if_octets'],
 'interface-vnet0.4': ['if_packets', 'if_octets', 'if_errors'],
 'interface-vnet0.5': ['if_errors', 'if_packets', 'if_octets'],
 'load': ['load'],
 'memory': ['memory-active',
            'memory-cache',
            'memory-inactive',
            'memory-wired',
            'memory-laundry',
            'memory-free'],
 'nfsstat-client': ['nfsstat-pathconf',
                    'nfsstat-readdir',
                    'nfsstat-fsinfo',
                    'nfsstat-symlink',
                    'nfsstat-rmdir',
                    'nfsstat-mknod',
                    'nfsstat-create',
                    'nfsstat-commit',
                    'nfsstat-lookup',
                    'nfsstat-access',
                    'nfsstat-setattr',
                    'nfsstat-read',
                    'nfsstat-write',
                    'nfsstat-remove',
                    'nfsstat-readirplus',
                    'nfsstat-readlink',
                    'nfsstat-getattr',
                    'nfsstat-mkdir',
                    'nfsstat-link',
                    'nfsstat-rename',
                    'nfsstat-fsstat'],
 'nfsstat-server': ['nfsstat-read',
                    'nfsstat-commit',
                    'nfsstat-write_bytes',
                    'nfsstat-create',
                    'nfsstat-readlink',
                    'nfsstat-fsinfo',
                    'nfsstat-getattr',
                    'nfsstat-mkdir',
                    'nfsstat-access',
                    'nfsstat-lookup',
                    'nfsstat-read_bytes',
                    'nfsstat-mknod',
                    'nfsstat-readdir',
                    'nfsstat-symlink',
                    'nfsstat-link',
                    'nfsstat-pathconf',
                    'nfsstat-rmdir',
                    'nfsstat-remove',
                    'nfsstat-write',
                    'nfsstat-fsstat',
                    'nfsstat-rename',
                    'nfsstat-setattr',
                    'nfsstat-readirplus'],
 'processes': ['ps_state-wait',
               'ps_state-stopped',
               'ps_state-zombies',
               'ps_state-idle',
               'ps_state-running',
               'ps_state-blocked',
               'ps_state-sleeping'],
 'rrdcached': ['operations-receive-flush',
               'operations-write-updates',
               'queue_length',
               'operations-receive-update',
               'counter-journal-bytes',
               'counter-journal-rotates',
               'gauge-tree_nodes',
               'operations-write-data_sets',
               'gauge-tree_depth'],
 'swap': ['swap-free', 'swap-used'],
 'uptime': ['uptime'],
 'zfs_arc': ['cache_eviction-ineligible',
             'cache_size-c_max',
             'cache_eviction-cached',
             'hash_collisions',
             'cache_size-p',
             'cache_result-mru_ghost-hit',
             'cache_size-bonus_size',
             'cache_size-mfu_ghost_size',
             'cache_result-mru-hit',
             'cache_size-arc',
             'cache_result-demand_metadata-hit',
             'cache_size-c',
             'cache_result-prefetch_metadata-miss',
             'cache_size-mru_size',
             'cache_result-prefetch_data-hit',
             'cache_result-prefetch_data-miss',
             'cache_operation-deleted',
             'cache_size-hdr_size',
             'cache_size-mru_ghost_size',
             'cache_size-anon_size',
             'cache_size-L2',
             'cache_ratio-arc',
             'cache_ratio-L2',
             'mutex_operations-miss',
             'cache_eviction-eligible',
             'cache_result-demand_data-hit',
             'cache_result-mfu_ghost-hit',
             'io_octets-L2',
             'cache_size-mfu_size',
             'memory_throttle_count',
             'cache_size-dbuf_size',
             'cache_result-mfu-hit',
             'cache_size-dnode_size',
             'cache_result-demand_data-miss',
             'cache_size-metadata_size',
             'cache_result-prefetch_metadata-hit',
             'cache_size-c_min'],
 'zfs_arc_v2': ['gauge_arcstats_raw_l2write-l2_write_not_cacheable',
                'gauge_arcstats_raw_cp-c',
                'arcstat_ratio_metadata-demand_metadata_misses',
                'gauge_arcstats_raw_counts-recycle_miss',
                'gauge_arcstats_raw_l2write-l2_write_pios',
                'gauge_arcstats_raw_prefetch-prefetch_data_misses',
                'gauge_arcstats_raw_l2write-l2_write_full',
                'gauge_arcstats_raw_l2-l2_rw_clash',
                'gauge_arcstats_raw_l2-l2_misses',
                'gauge_arcstats_raw_hash-hash_chains',
                'gauge_arcstats_raw_l2write-l2_write_in_l2',
                'gauge_arcstats_raw_prefetch-prefetch_data_hits',
                'gauge_arcstats_raw_mru-mru_ghost_hits',
                'gauge_arcstats_raw_l2write-l2_write_buffer_list_null_iter',
                'gauge_arcstats_raw_duplicate-duplicate_reads',
                'arcstat_ratio_data-demand_data_misses',
                'gauge_arcstats_raw_cp-c_min',
                'arcstat_ratio_mu-mru_hits',
                'gauge_arcstats_raw_l2_compress-l2_compress_successes',
                'gauge_arcstats_raw_counts-allocated',
                'gauge_arcstats_raw_size-other_size',
                'gauge_arcstats_raw_demand-demand_metadata_hits',
                'gauge_arcstats_raw_mru-mfu_hits',
                'gauge_arcstats_raw_arcmeta-arc_meta_limit',
                'gauge_arcstats_raw_l2writes-l2_writes_error',
                'gauge_arcstats_raw_size-size',
                'gauge_arcstats_raw_arcmeta-arc_meta_used',
                'gauge_arcstats_raw_l2write-l2_write_trylock_fail',
                'gauge_arcstats_raw_cp-p',
                'arcstat_ratio_arc-hits',
                'gauge_arcstats_raw_l2evict-l2_evict_lock_retry',
                'gauge_arcstats_raw_counts-mutex_miss',
                'gauge_arcstats_raw-l2_asize',
                'gauge_arcstats_raw_memcount-memory_throttle_count',
                'gauge_arcstats_raw_l2abort-l2_abort_lowmem',
                'gauge_arcstats_raw_arcmeta-arc_meta_max',
                'arcstat_ratio_mu-mru_ghost_hits',
                'gauge_arcstats_raw_l2-l2_io_error',
                'gauge_arcstats_raw_evict-evict_l2_cached',
                'gauge_arcstats_raw-l2_size',
                'gauge_arcstats_raw_counts-deleted',
                'gauge_arcstats_raw_l2_compress-l2_compress_failures',
                'gauge_arcstats_raw-l2_hdr_size',
                'arcstat_ratio_data-prefetch_data_misses',
                'gauge_arcstats_raw_l2_free-l2_cdata_free_on_write',
                'gauge_arcstats_raw_prefetch-prefetch_metadata_hits',
                'gauge_arcstats_raw_demand-demand_metadata_misses',
                'arcstat_ratio_mu-mfu_hits',
                'gauge_arcstats_raw_l2writes-l2_writes_done',
                'arcstat_ratio_arc-misses',
                'gauge_arcstats_raw_duplicate-duplicate_buffers',
                'gauge_arcstats_raw_l2write-l2_write_passed_headroom',
                'arcstat_ratio_arc-l2_hits',
                'gauge_arcstats_raw_l2write-l2_write_io_in_progress',
                'arcstat_ratio_arc-l2_misses',
                'gauge_arcstats_raw_hits_misses-misses',
                'gauge_arcstats_raw_l2_compress-l2_compress_zeros',
                'arcstat_ratio_mu-mfu_ghost_hits',
                'arcstat_ratio_data-demand_data_hits',
                'gauge_arcstats_raw_hash-hash_chain_max',
                'gauge_arcstats_raw_arcmeta-arc_meta_min',
                'gauge_arcstats_raw_l2-l2_feeds',
                'gauge_arcstats_raw_hash-hash_collisions',
                'gauge_arcstats_raw_l2write-l2_write_buffer_iter',
                'gauge_arcstats_raw_l2write-l2_write_spa_mismatch',
                'arcstat_ratio_metadata-prefetch_metadata_misses',
                'gauge_arcstats_raw_l2write-l2_write_buffer_list_iter',
                'gauge_arcstats_raw_l2writes-l2_writes_hdr_miss',
                'gauge_arcstats_raw_hash-hash_elements_max',
                'gauge_arcstats_raw_size-data_size',
                'gauge_arcstats_raw_evict-evict_l2_eligible',
                'gauge_arcstats_raw_l2writes-l2_writes_sent',
                'gauge_arcstats_raw_l2-l2_cksum_bad',
                'gauge_arcstats_raw_l2bytes-l2_write_bytes',
                'gauge_arcstats_raw_l2bytes-l2_read_bytes',
                'arcstat_ratio_metadata-demand_metadata_hits',
                'gauge_arcstats_raw_prefetch-prefetch_metadata_misses',
                'gauge_arcstats_raw_evict-evict_skip',
                'arcstat_ratio_data-prefetch_data_hits',
                'gauge_arcstats_raw_size-hdr_size',
                'gauge_arcstats_raw_l2_free-l2_free_on_write',
                'gauge_arcstats_raw_counts-stolen',
                'gauge_arcstats_raw_duplicate-duplicate_buffers_size',
                'gauge_arcstats_raw_l2write-l2_write_buffer_bytes_scanned',
                'arcstat_ratio_metadata-prefetch_metadata_hits',
                'gauge_arcstats_raw_l2-l2_hits',
                'gauge_arcstats_raw_cp-c_max',
                'gauge_arcstats_raw_demand-demand_data_hits',
                'gauge_arcstats_raw_evict-evict_l2_ineligible',
                'gauge_arcstats_raw_l2evict-l2_evict_reading',
                'gauge_arcstats_raw_mru-mfu_ghost_hits',
                'gauge_arcstats_raw_demand-demand_data_misses',
                'gauge_arcstats_raw_mru-mru_hits',
                'gauge_arcstats_raw_hash-hash_elements',
                'gauge_arcstats_raw_hits_misses-hits']}

Then you can access information about the data by using

stats.get_dataset_info with args ["cputemp-0", "temperature"]

stats.get_dataset_info

{'datasets': {'value': {'type': 'GAUGE'}},
 'last_update': 1610476196,
 'source': 'cputemp-0',
 'step': 10,
 'type': 'temperature'}

Then finally with this info, the data can be retrieved with stats.get_data with args [["dataset": "value", "source": "cputemp-0", "type": "temperature"]]

stats.get_data

{'about': 'Data for cputemp-1/temperature',
 'data': [[2931.0],
          [2923.524178],
          [2911.0],
          [2911.0],
          [2907.271507],
          [2912.200866],
          [2927.260955],
          [2921.0],
          [2917.262088],
          [2911.0],
          [2914.737406],
          [2917.260951],
          [2914.720423],
          [2917.270926],
          [2918.440282],
          [2923.524218],
          [2907.260561],
          [2901.0],
          [2897.28509],
          [2898.372248],
          [2918.322402],
          [2927.260997],
          [2917.272831],
          [2914.738049],
          [2917.297672],
          [2907.290207],
          [2904.737268],
          [2907.288642],
          [2901.0],
          [2901.0],
          [2904.671161],
          [2907.275651],
          [2901.0],
          [2904.709219],
          [2911.0],
          [2911.0],
          [2918.475206],
          [2927.260936],
          [2921.0],
          [2917.26093],
          [2907.261005],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2904.738359],
          [2907.261996],
          [2901.0],
          [2908.453734],
          [2909.82449],
          [2894.73622],
          [2901.0],
          [2901.0],
          [2901.0],
          [2897.268524],
          [2894.728039],
          [2908.44658],
          [2921.0],
          [2913.524098],
          [2904.718449],
          [2911.0],
          [2911.0],
          [2911.0],
          [2914.717158],
          [2917.262069],
          [2907.262091],
          [2901.0],
          [2901.0],
          [2927.16852],
          [2948.572384],
          [2907.284117],
          [2901.0],
          [2901.0],
          [2901.0],
          [2908.444304],
          [2917.26206],
          [2907.269769],
          [2904.717031],
          [2914.736615],
          [2913.522026],
          [2908.458386],
          [2921.0],
          [2921.0],
          [2917.262043],
          [2914.698024],
          [2909.786033],
          [2905.753592],
          [2919.78588],
          [2904.715353],
          [2911.0],
          [2911.0],
          [2907.262064],
          [2908.468004],
          [2913.525328],
          [2901.0],
          [2912.211909],
          [2923.61348],
          [2914.727721],
          [2913.523832],
          [2901.0],
          [2904.736108],
          [2914.687537],
          [2909.786036],
          [2898.443978],
          [2914.738776],
          [2909.782655],
          [2894.724044],
          [2901.0],
          [2908.434718],
          [2917.262015],
          [2911.0],
          [2907.318867],
          [2897.291991],
          [2894.653929],
          [2897.279742],
          [2898.343134],
          [2911.0],
          [2911.0],
          [2907.262028],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2897.284719],
          [2898.454494],
          [2911.0],
          [2914.701231],
          [2913.523992],
          [2897.279292],
          [2905.923716],
          [2919.786084],
          [2901.0],
          [2901.0],
          [2904.720093],
          [2907.261892],
          [2901.0],
          [2912.20923],
          [2919.786447],
          [2897.291957],
          [2898.474888],
          [2907.265573],
          [2901.0],
          [2901.0],
          [2901.0],
          [2912.13246],
          [2919.786063],
          [2904.732267],
          [2907.308475],
          [2904.652024],
          [2907.266526],
          [2904.701247],
          [2921.998117],
          [2929.786024],
          [2907.281855],
          [2901.0],
          [2908.418132],
          [2917.294635],
          [2907.279622],
          [2897.270359],
          [2898.448464],
          [2911.0],
          [2911.0],
          [2914.679995],
          [2917.261861],
          [2911.0],
          [2911.0],
          [2911.0],
          [2911.0],
          [2911.0],
          [2911.0],
          [2907.27401],
          [2904.737479],
          [2907.260956],
          [2904.706617],
          [2907.260231],
          [2901.0],
          [2901.0],
          [2901.0],
          [2908.437282],
          [2909.785847],
          [2894.706247],
          [2901.0],
          [2904.73647],
          [2907.295706],
          [2901.0],
          [2908.447104],
          [2917.261986],
          [2911.0],
          [2907.260859],
          [2897.280385],
          [2894.733664],
          [2897.281243],
          [2894.734576],
          [2901.0],
          [2904.724385],
          [2907.283685],
          [2908.445128],
          [2917.306504],
          [2914.738166],
          [2913.523994],
          [2897.275927],
          [2902.154099],
          [2917.261973],
          [2903.5237],
          [2894.717382],
          [2904.725395],
          [2907.291327],
          [2901.0],
          [2904.734832],
          [2918.470038],
          [2916.04766],
          [2894.680142],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2897.334484],
          [2898.428112],
          [2903.521822],
          [2894.705631],
          [2897.279551],
          [2898.474794],
          [2907.310693],
          [2908.438446],
          [2913.524276],
          [2901.0],
          [2904.735499],
          [2907.26195],
          [2904.735051],
          [2903.523642],
          [2894.738376],
          [2908.406642],
          [2913.521636],
          [2904.712627],
          [2907.265611],
          [2901.0],
          [2904.736999],
          [2907.261938],
          [2897.311653],
          [2905.866108],
          [2919.781167],
          [2901.0],
          [2904.739051],
          [2914.71118],
          [2913.523598],
          [2901.0],
          [2904.732294],
          [2911.0],
          [2903.52389],
          [2894.726805],
          [2897.271331],
          [2891.0],
          [2894.65194],
          [2897.278851],
          [2898.450652],
          [2911.0],
          [2914.713761],
          [2909.785928],
          [2898.469698],
          [2907.286567],
          [2901.0],
          [2912.178528],
          [2919.782652],
          [2904.733294],
          [2903.541928],
          [2898.411436],
          [2899.785757],
          [2888.420282],
          [2901.0],
          [2908.461684],
          [2917.261901],
          [2907.307502],
          [2901.0],
          [2901.0],
          [2901.0],
          [2904.734424],
          [2907.263621],
          [2897.290783],
          [2898.468168],
          [2914.734602],
          [2913.523848],
          [2901.0],
          [2912.143167],
          [2931.0],
          [2919.785973],
          [2908.478034],
          [2917.261918],
          [2907.271888],
          [2908.458196],
          [2917.261924],
          [2911.0],
          [2907.261166],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2901.0],
          [2897.306239],
          [2898.460384],
          [2907.273772],
          [2897.260947],
          [2891.0],
          [2902.217051],
          [2924.738142],
          [2919.785712],
          [2897.307546],
          [2894.664068],
          [2897.282145],
          [2898.438232],
          [2922.192778],
          [2937.261759],
          [2923.523786],
          [2914.716741],
          [2917.261861],
          [2907.273577],
          [2904.677761],
          [2903.52393],
          [2894.739618],
          [2901.0],
          [2901.0],
          [2908.370496],
          [2917.260876],
          [2907.271927],
          [2901.0],
          [2897.277263],
          [2891.0],
          [2894.703076],
          [2897.266875],
          [2894.708525],
          [2908.473078],
          [2909.780852],
          [2891.0],
          [2891.0],
          [2898.466218],
          [2903.533954],
          [2898.45338],
          [2907.261892],
          [2897.269714],
          [2898.396174],
          [2899.782226],
          [2884.736973],
          [2894.718761],
          [2897.274586],
          [2898.417296],
          [2911.0],
          [2914.738224],
          [2913.52357],
          [2904.725326],
          [2914.720679],
          [2913.52358],
          [2901.0],
          [2897.293452],
          [2891.0],
          [2902.213325],
          [2913.523434],
          [2904.70814],
          [None],
          [None]],
 'meta': {'end': 1610476930,
          'legend': ['cputemp-1/temperature'],
          'start': 1610473330,
          'step': 10}}

A lot of the sources are dynamic based on the system, like number of cpu cores (somewhat easy to handle), but then there are pool storage, jails, etc....

Also, I'm not sure how to decipher the units as there is no documentation. The CPU temperatures seem to be in deciKelvin units (is this a common unit for this?) but it is hard to know.

@sdwilsh
Copy link
Owner

sdwilsh commented Jan 14, 2021

disk temperature is one thing that is already integrated, FWIW

I was playing around with a subscription to reporting.realtime over the weekend, but was very perplexed as to what unit was the CPU temp reporting in (especially when compared to what the TrueNAS UI showed). I legit hadn't thought of something like deciKelvin...

If we wanted to integrate this (which I support), we'd likely want to try to create some python objects for this so we can fetch the stats, and then also subscribe so it's updated real time.

Assuming you want this for home assistant (via sdwilsh/hass-truenas), we'll either want to ignore most updates, or strongly encourage folks to setup the recorder integration.

@MatthewFlamm
Copy link
Contributor Author

I haven't tried realtime yet. How frequent does the data come in?

The only report that I really want for home assistant that is unavailable from the other services is cpu stats, and I'm not sure which method would be better.

I don't think making recorder a requirement is needed. I do think that if the realtime data is fast, there should be a disclaimer with using it as it could burn through sd cards quickly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants