2 # -*- encoding: utf-8; py-indent-offset: 4 -*-
3 # +------------------------------------------------------------------+
4 # | ____ _ _ __ __ _ __ |
5 # | / ___| |__ ___ ___| | __ | \/ | |/ / |
6 # | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
7 # | | |___| | | | __/ (__| < | | | | . \ |
8 # | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
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
):
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
56 human_readable_f
= int
57 parsed
.append((resource_key
, resource_title
, limit
, amount
, human_readable_f
))
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',