def main(): """ Main function to run the check """ args = parse_args() metric_sender = MetricSender(verbose=args.verbose, debug=args.debug) filesys_full_metric = ['filesys.full'] filesys_inode_derived_metrics = { 'filesys.inodes.pused': 'filesys.usedfiles / (filesys.usedfiles + filesys.freefiles) * 100' } discovery_key_fs = 'disc.filesys' item_prototype_macro_fs = '#OSO_FILESYS' item_prototype_key_full = 'disc.filesys.full' item_prototype_key_inode = 'disc.filesys.inodes.pused' # Get the disk space filesys_full_metrics = pminfo.get_metrics(filesys_full_metric) filtered_filesys_metrics = filter_out_docker_filesystems( filesys_full_metrics, 'filesys.full.') if args.filter_pod_pv: filtered_filesys_metrics = filter_out_customer_pv_filesystems( filtered_filesys_metrics) if args.force_send_zeros: filtered_filesys_metrics = zero_mount_percentages( filtered_filesys_metrics) metric_sender.add_dynamic_metric(discovery_key_fs, item_prototype_macro_fs, filtered_filesys_metrics.keys()) for filesys_name, filesys_full in filtered_filesys_metrics.iteritems(): metric_sender.add_metric( {'%s[%s]' % (item_prototype_key_full, filesys_name): filesys_full}) # Get filesytem inode metrics filesys_inode_metrics = pminfo.get_metrics( derived_metrics=filesys_inode_derived_metrics) filtered_filesys_inode_metrics = filter_out_docker_filesystems( filesys_inode_metrics, 'filesys.inodes.pused.') if args.filter_pod_pv: filtered_filesys_inode_metrics = filter_out_customer_pv_filesystems( filtered_filesys_inode_metrics) if args.force_send_zeros: filtered_filesys_inode_metrics = zero_mount_percentages( filtered_filesys_inode_metrics) for filesys_name, filesys_inodes in filtered_filesys_inode_metrics.iteritems( ): metric_sender.add_metric({ '%s[%s]' % (item_prototype_key_inode, filesys_name): filesys_inodes }) metric_sender.send_metrics()
def add_pcp_metrics(self, pcp_metrics, host=None): """ Evaluate a list of metrics from pcp using pminfo return list of UniqueMetrics """ if not host: host = self.host pcp_metric_dict = pminfo.get_metrics(pcp_metrics) for metric, value in pcp_metric_dict.iteritems(): new_unique_metric = UniqueMetric(host, metric, value) self.unique_metrics.append(new_unique_metric)
def add_pcp_metrics(self, pcp_metrics, host=None): """ Evaluate a list of metrics from pcp using pminfo return list of UniqueMetrics """ if not host: host = self.host pcp_metric_dict = pminfo.get_metrics(pcp_metrics) for metric, value in pcp_metric_dict.iteritems(): new_unique_metric = UniqueMetric(host, metric, value) self.unique_metrics.append(new_unique_metric)
def main(): """ Main function to run the check """ args = parse_args() zagg_sender = ZaggSender(verbose=args.verbose, debug=args.debug) discovery_key_network = 'disc.network' pcp_network_dev_metrics = [ 'network.interface.in.bytes', 'network.interface.out.bytes' ] item_proto_macro_network = '#OSO_NET_INTERFACE' item_proto_key_in_bytes = 'disc.network.in.bytes' item_proto_key_out_bytes = 'disc.network.out.bytes' network_metrics = pminfo.get_metrics(pcp_network_dev_metrics) pcp_metrics_divided = {} for metric in pcp_network_dev_metrics: pcp_metrics_divided[metric] = { k: v for k, v in network_metrics.items() if metric in k } # do Network In; use network.interface.in.bytes filtered_network_totals = clean_up_metric_dict( pcp_metrics_divided[pcp_network_dev_metrics[0]], pcp_network_dev_metrics[0] + '.') # Add dynamic items zagg_sender.add_zabbix_dynamic_item(discovery_key_network, item_proto_macro_network, filtered_network_totals.keys()) # Report Network IN bytes; them to the ZaggSender for interface, total in filtered_network_totals.iteritems(): zagg_sender.add_zabbix_keys( {'%s[%s]' % (item_proto_key_in_bytes, interface): total}) # Report Network OUT Bytes; use network.interface.out.bytes filtered_network_totals = clean_up_metric_dict( pcp_metrics_divided[pcp_network_dev_metrics[1]], pcp_network_dev_metrics[1] + '.') # calculate the % Util and add them to the ZaggSender for interface, total in filtered_network_totals.iteritems(): zagg_sender.add_zabbix_keys( {'%s[%s]' % (item_proto_key_out_bytes, interface): total}) zagg_sender.send_metrics()
def main(): """ Main function to run the check """ args = parse_args() zagg_sender = ZaggSender(verbose=args.verbose, debug=args.debug) filesys_full_metric = ['filesys.full'] filesys_inode_derived_metrics = {'filesys.inodes.pused' : 'filesys.usedfiles / (filesys.usedfiles + filesys.freefiles) * 100' } discovery_key_fs = 'disc.filesys' item_prototype_macro_fs = '#OSO_FILESYS' item_prototype_key_full = 'disc.filesys.full' item_prototype_key_inode = 'disc.filesys.inodes.pused' # Get the disk space filesys_full_metrics = pminfo.get_metrics(filesys_full_metric) filtered_filesys_metrics = filter_out_docker_filesystems(filesys_full_metrics, 'filesys.full.') zagg_sender.add_zabbix_dynamic_item(discovery_key_fs, item_prototype_macro_fs, filtered_filesys_metrics.keys()) for filesys_name, filesys_full in filtered_filesys_metrics.iteritems(): zagg_sender.add_zabbix_keys({'%s[%s]' % (item_prototype_key_full, filesys_name): filesys_full}) # Get filesytem inode metrics filesys_inode_metrics = pminfo.get_metrics(derived_metrics=filesys_inode_derived_metrics) filtered_filesys_inode_metrics = filter_out_docker_filesystems(filesys_inode_metrics, 'filesys.inodes.pused.') for filesys_name, filesys_inodes in filtered_filesys_inode_metrics.iteritems(): zagg_sender.add_zabbix_keys({'%s[%s]' % (item_prototype_key_inode, filesys_name): filesys_inodes}) zagg_sender.send_metrics()
def main(): """ Main function to run the check """ args = parse_args() zagg_sender = ZaggSender(verbose=args.verbose, debug=args.debug) discovery_key_network = 'disc.network' pcp_network_dev_metrics = ['network.interface.in.bytes', 'network.interface.out.bytes'] item_proto_macro_network = '#OSO_NET_INTERFACE' item_proto_key_in_bytes = 'disc.network.in.bytes' item_proto_key_out_bytes = 'disc.network.out.bytes' network_metrics = pminfo.get_metrics(pcp_network_dev_metrics) pcp_metrics_divided = {} for metric in pcp_network_dev_metrics: pcp_metrics_divided[metric] = {k: v for k, v in network_metrics.items() if metric in k} # do Network In; use network.interface.in.bytes filtered_network_totals = clean_up_metric_dict(pcp_metrics_divided[pcp_network_dev_metrics[0]], pcp_network_dev_metrics[0] + '.') # Add dynamic items zagg_sender.add_zabbix_dynamic_item(discovery_key_network, item_proto_macro_network, filtered_network_totals.keys()) # Report Network IN bytes; them to the ZaggSender for interface, total in filtered_network_totals.iteritems(): zagg_sender.add_zabbix_keys({'%s[%s]' % (item_proto_key_in_bytes, interface): total}) # Report Network OUT Bytes; use network.interface.out.bytes filtered_network_totals = clean_up_metric_dict(pcp_metrics_divided[pcp_network_dev_metrics[1]], pcp_network_dev_metrics[1] + '.') # calculate the % Util and add them to the ZaggSender for interface, total in filtered_network_totals.iteritems(): zagg_sender.add_zabbix_keys({'%s[%s]' % (item_proto_key_out_bytes, interface): total}) zagg_sender.send_metrics()
ITEM_PROTOTYPE_MACRO_FS = '#OSO_FILESYS' ITEM_PROTOTYPE_KEY_FULL = 'disc.filesys.full' ITEM_PROTOTYPE_KEY_INODE = 'disc.filesys.inodes.pused' def filter_out_docker_filesystems(metric_dict, filesystem_filter): """ Simple filter to elimate unnecessary characters in the key name """ filtered_dict = {k.replace(filesystem_filter, ''):v for (k, v) in metric_dict.iteritems() if 'docker' not in k } return filtered_dict # Get the disk space FILESYS_FULL_METRICS = pminfo.get_metrics(FILESYS_FULL_METRIC) FILTERED_FILESYS_METRICS = filter_out_docker_filesystems(FILESYS_FULL_METRICS, 'filesys.full.') ZS.add_zabbix_dynamic_item(DISCOVERY_KEY_FS, ITEM_PROTOTYPE_MACRO_FS, FILTERED_FILESYS_METRICS.keys()) for filesys_name, filesys_full in FILTERED_FILESYS_METRICS.iteritems(): ZS.add_zabbix_keys({'%s[%s]' % (ITEM_PROTOTYPE_KEY_FULL, filesys_name): filesys_full}) # Get filesytem inode metrics FILESYS_INODE_METRICS = pminfo.get_metrics(derived_metrics=FILESYS_INODE_DERIVED_METRICS) FILTERED_FILESYS_INODE_METRICS = filter_out_docker_filesystems(FILESYS_INODE_METRICS, 'filesys.inodes.pused.') for filesys_name, filesys_inodes in FILTERED_FILESYS_INODE_METRICS.iteritems(): ZS.add_zabbix_keys({'%s[%s]' % (ITEM_PROTOTYPE_KEY_INODE, filesys_name): filesys_inodes})
def add_pcp_to_metric_sender(self, pcp_metrics): """ something pcp yada yada """ pcp_metric_dict = pminfo.get_metrics(metrics=pcp_metrics, derived_metrics=None) self.metric_sender.add_metric(pcp_metric_dict)
# distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # #This is not a module, but pylint thinks it is. This is a command. #pylint: disable=invalid-name from openshift_tools.monitoring.zagg_sender import ZaggSender from openshift_tools.monitoring import pminfo FILESYSTEM_METRIC = ['filesys.full'] DISCOVERY_KEY_FS = 'disc.filesys' ITEM_PROTOTYPE_MACRO_FS = '#OSO_FILESYS' ITEM_PROTOTYPE_KEY_FULL = 'disc.filesys.full' FILESYS_METRICS = pminfo.get_metrics(FILESYSTEM_METRIC) FILTERED_FILESYS_METRICS = {k.replace('filesys.full.', ''):v for (k, v) in FILESYS_METRICS.iteritems() if 'docker' not in k} ZS = ZaggSender() ZS.add_zabbix_dynamic_item(DISCOVERY_KEY_FS, ITEM_PROTOTYPE_MACRO_FS, FILTERED_FILESYS_METRICS.keys()) for filesys_name, filesys_full in FILTERED_FILESYS_METRICS.iteritems(): ZS.add_zabbix_keys({'%s[%s]' % (ITEM_PROTOTYPE_KEY_FULL, filesys_name): filesys_full}) ZS.send_metrics()
def add_pcp_to_zagg_sender(self, pcp_metrics): """ something pcp yada yada """ pcp_metric_dict = pminfo.get_metrics(metrics=pcp_metrics, derived_metrics=None) self.zagg_sender.add_zabbix_keys(pcp_metric_dict)