diff options
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/lib_zabbix/library/zbx_item.py | 20 | ||||
| -rw-r--r-- | roles/lib_zabbix/library/zbx_itemprototype.py | 20 | ||||
| -rw-r--r-- | roles/lib_zabbix/tasks/create_template.yml | 2 | ||||
| -rw-r--r-- | roles/os_zabbix/vars/template_openshift_master.yml | 30 | 
4 files changed, 69 insertions, 3 deletions
diff --git a/roles/lib_zabbix/library/zbx_item.py b/roles/lib_zabbix/library/zbx_item.py index 5dc3cff9b..996c98fae 100644 --- a/roles/lib_zabbix/library/zbx_item.py +++ b/roles/lib_zabbix/library/zbx_item.py @@ -41,6 +41,24 @@ def exists(content, key='result'):      return True +def get_data_type(data_type): +    ''' +    Possible values: +    0 - decimal; +    1 - octal; +    2 - hexadecimal; +    3 - bool; +    ''' +    vtype = 0 +    if 'octal' in data_type: +        vtype = 1 +    elif 'hexadecimal' in data_type: +        vtype = 2 +    elif 'bool' in data_type: +        vtype = 3 + +    return vtype +  def get_value_type(value_type):      '''      Possible values: @@ -158,6 +176,7 @@ def main():              template_name=dict(default=None, type='str'),              zabbix_type=dict(default='trapper', type='str'),              value_type=dict(default='int', type='str'), +            data_type=dict(default='decimal', type='str'),              interval=dict(default=60, type='int'),              delta=dict(default=0, type='int'),              multiplier=dict(default=None, type='str'), @@ -219,6 +238,7 @@ def main():                    'hostid': templateid[0],                    'type': get_zabbix_type(module.params['zabbix_type']),                    'value_type': get_value_type(module.params['value_type']), +                  'data_type': get_data_type(module.params['data_type']),                    'applications': get_app_ids(module.params['applications'], app_name_ids),                    'formula': formula,                    'multiplier': use_multiplier, diff --git a/roles/lib_zabbix/library/zbx_itemprototype.py b/roles/lib_zabbix/library/zbx_itemprototype.py index 43498c015..aca9c8336 100644 --- a/roles/lib_zabbix/library/zbx_itemprototype.py +++ b/roles/lib_zabbix/library/zbx_itemprototype.py @@ -116,6 +116,24 @@ def get_zabbix_type(ztype):      return _vtype +def get_data_type(data_type): +    ''' +    Possible values: +    0 - decimal; +    1 - octal; +    2 - hexadecimal; +    3 - bool; +    ''' +    vtype = 0 +    if 'octal' in data_type: +        vtype = 1 +    elif 'hexadecimal' in data_type: +        vtype = 2 +    elif 'bool' in data_type: +        vtype = 3 + +    return vtype +  def get_value_type(value_type):      '''      Possible values: @@ -175,6 +193,7 @@ def main():              interfaceid=dict(default=None, type='int'),              zabbix_type=dict(default='trapper', type='str'),              value_type=dict(default='float', type='str'), +            data_type=dict(default='decimal', type='str'),              delay=dict(default=60, type='int'),              lifetime=dict(default=30, type='int'),              state=dict(default='present', type='str'), @@ -238,6 +257,7 @@ def main():                    'ruleid': get_rule_id(zapi, module.params['discoveryrule_key'], template['templateid']),                    'type': get_zabbix_type(module.params['zabbix_type']),                    'value_type': get_value_type(module.params['value_type']), +                  'data_type': get_data_type(module.params['data_type']),                    'applications': get_app_ids(zapi, module.params['applications'], template['templateid']),                    'formula': formula,                    'multiplier': use_multiplier, diff --git a/roles/lib_zabbix/tasks/create_template.yml b/roles/lib_zabbix/tasks/create_template.yml index 44c4e6766..2992505bf 100644 --- a/roles/lib_zabbix/tasks/create_template.yml +++ b/roles/lib_zabbix/tasks/create_template.yml @@ -33,6 +33,7 @@      key: "{{ item.key }}"      name: "{{ item.name | default(item.key, true) }}"      value_type: "{{ item.value_type | default('int') }}" +    data_type: "{{ item.data_type | default('decimal') }}"      description: "{{ item.description | default('', True) }}"      multiplier: "{{ item.multiplier | default('', True) }}"      units: "{{ item.units | default('', True) }}" @@ -81,6 +82,7 @@      key: "{{ item.key }}"      discoveryrule_key: "{{ item.discoveryrule_key }}"      value_type: "{{ item.value_type }}" +    data_type: "{{ item.data_type | default('decimal') }}"      template_name: "{{ template.name }}"      applications: "{{ item.applications }}"      description: "{{ item.description | default('', True) }}" diff --git a/roles/os_zabbix/vars/template_openshift_master.yml b/roles/os_zabbix/vars/template_openshift_master.yml index 6defc4989..174486e15 100644 --- a/roles/os_zabbix/vars/template_openshift_master.yml +++ b/roles/os_zabbix/vars/template_openshift_master.yml @@ -13,6 +13,13 @@ g_template_openshift_master:      applications:      - Openshift Master +  - key: openshift.master.api.healthz +    description: "Checks the healthz check of the master's api: https://master_host/healthz" +    type: int +    data_type: bool +    applications: +    - Openshift Master +    - key: openshift.master.user.count      description: Shows number of users in a cluster      type: int @@ -24,8 +31,20 @@ g_template_openshift_master:      type: int      applications:      - Openshift Master -   -  - key: openshift.project.counter + +  - key: openshift.master.pod.user.running.count +    description: Shows number of user pods running (non infrastructure pods) +    type: int +    applications: +    - Openshift Master + +  - key: openshift.master.pod.total.count +    description: Shows total number of pods (running and non running) +    type: int +    applications: +    - Openshift Master + +  - key: openshift.project.count      description: Shows number of projects on a cluster      type: int      applications: @@ -109,6 +128,11 @@ g_template_openshift_master:      url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/check_create_app.asciidoc'      priority: avg +  - name: 'Openshift Master API health check is failing on {HOST.NAME}' +    expression: '{Template Openshift Master:openshift.master.api.healthz.max(#3)}<1' +    url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/openshift_master.asciidoc' +    priority: high +    - name: 'Openshift Master process not running on {HOST.NAME}'      expression: '{Template Openshift Master:openshift.master.process.count.max(#3)}<1'      url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/openshift_master.asciidoc' @@ -125,7 +149,7 @@ g_template_openshift_master:      priority: info    - name: 'There are no projects running on {HOST.NAME}' -    expression: '{Template Openshift Master:openshift.project.counter.last()}=0' +    expression: '{Template Openshift Master:openshift.project.count.last()}=0'      url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/openshift_master.asciidoc'      priority: info  | 
