Cleanup config.nodes_of
[check_mk.git] / checks / aws_rds_limits
blobf0a7a3368a1b5193651dfc39e58c1032ccd90457
1 #!/usr/bin/python
2 # -*- encoding: utf-8; py-indent-offset: 4 -*-
3 # +------------------------------------------------------------------+
4 # | ____ _ _ __ __ _ __ |
5 # | / ___| |__ ___ ___| | __ | \/ | |/ / |
6 # | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
7 # | | |___| | | | __/ (__| < | | | | . \ |
8 # | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
9 # | |
10 # | Copyright Mathias Kettner 2018 mk@mathias-kettner.de |
11 # +------------------------------------------------------------------+
13 # This file is part of Check_MK.
14 # The official homepage is at http://mathias-kettner.de/check_mk.
16 # check_mk is free software; you can redistribute it and/or modify it
17 # under the terms of the GNU General Public License as published by
18 # the Free Software Foundation in version 2. check_mk is distributed
19 # in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
20 # out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
21 # PARTICULAR PURPOSE. See the GNU General Public License for more de-
22 # tails. You should have received a copy of the GNU General Public
23 # License along with GNU Make; see the file COPYING. If not, write
24 # to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
25 # Boston, MA 02110-1301 USA.
27 factory_settings['aws_rds_limits_default_levels'] = {
28 "db_instances": (None, 80.0, 90.0),
29 "reserved_db_instances": (None, 80.0, 90.0),
30 "allocated_storage": (None, 80.0, 90.0),
31 "db_security_groups": (None, 80.0, 90.0),
32 "auths_per_db_security_groups": (None, 80.0, 90.0),
33 "db_parameter_groups": (None, 80.0, 90.0),
34 "manual_snapshots": (None, 80.0, 90.0),
35 "event_subscriptions": (None, 80.0, 90.0),
36 "db_subnet_groups": (None, 80.0, 90.0),
37 "option_groups": (None, 80.0, 90.0),
38 "subnet_per_db_subnet_groups": (None, 80.0, 90.0),
39 "read_replica_per_master": (None, 80.0, 90.0),
40 "db_clusters": (None, 80.0, 90.0),
41 "db_cluster_parameter_groups": (None, 80.0, 90.0),
42 "db_cluster_roles": (None, 80.0, 90.0),
46 def parse_aws_rds_limits(info):
47 parsed = []
48 for resource_key, resource_title, limit, amount in parse_aws(info):
49 if resource_key == "allocated_storage":
50 # Allocated Storage has unit TiB
51 factor = 1024**4 / 1000
52 limit = limit * factor
53 amount = amount * factor
54 human_readable_f = get_bytes_human_readable
55 else:
56 human_readable_f = int
57 parsed.append((resource_key, resource_title, limit, amount, human_readable_f))
58 return parsed
61 def check_aws_rds_limits(item, params, parsed):
62 return check_aws_limits("rds", params, parsed)
65 check_info['aws_rds_limits'] = {
66 'parse_function': parse_aws_rds_limits,
67 'inventory_function': discover_single,
68 'check_function': check_aws_rds_limits,
69 'service_description': 'AWS/RDS Limits',
70 'includes': ['aws.include'],
71 'group': 'aws_rds_limits',
72 'default_levels_variable': 'aws_rds_limits_default_levels',
73 'has_perfdata': True,