aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2019-11-12 10:28:39 +0000
committerMichal Nasiadka <mnasiadka@gmail.com>2019-11-12 11:03:49 +0000
commitf89b95ad8e5e80266264b528c3abc279d0653c44 (patch)
treeeabd0e92f3fea7430350c7bed6d6c45f9d0011f8
parentdcbc0bd89a24cd93aa8fc46a644c9d4c19dad4d5 (diff)
downloadkolla-f89b95ad8e5e80266264b528c3abc279d0653c44.tar.gz
kolla-f89b95ad8e5e80266264b528c3abc279d0653c44.zip
CI: Remove collectd roles
Collectd roles have been used in the past in CI for collecting data and drawing rrd graphs. It has been disabled since Dec 2018 [1]. [1]: https://opendev.org/openstack/kolla/commit/65296e27e665a431b786944224195ba7593473bc Change-Id: If9fbffe3c1753fde2c0e1e9562d664dca03cc02d
-rw-r--r--roles/collect-collectd/files/rrdtool_graph.py171
-rw-r--r--roles/collect-collectd/tasks/main.yml72
-rw-r--r--roles/collect-collectd/templates/graph.html.j216
-rw-r--r--roles/collectd/defaults/main.yml15
-rw-r--r--roles/collectd/handlers/main.yml6
-rw-r--r--roles/collectd/tasks/main.yml46
-rw-r--r--roles/collectd/templates/collectd.conf.j227
7 files changed, 0 insertions, 353 deletions
diff --git a/roles/collect-collectd/files/rrdtool_graph.py b/roles/collect-collectd/files/rrdtool_graph.py
deleted file mode 100644
index c5166a66b..000000000
--- a/roles/collect-collectd/files/rrdtool_graph.py
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/python2
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# 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.
-
-import argparse
-import glob
-import logging
-import os
-import re
-import sys
-
-import rrdtool
-
-
-LOG = logging.getLogger('root')
-
-COLORS = (
- '#0000ff',
- '#00ff00',
- '#ff0000',
- '#00ffff',
- '#ffff00',
- '#ff00ff'
-)
-
-
-def colorgen():
- for color in COLORS:
- yield color
-
-
-def get_uptime_seconds():
- with open('/proc/uptime') as f:
- return f.read().split(' ')[0]
-
-
-class LoadGraph(object):
-
- DEF = 'DEF:%(vname)s=%(filename)s:%(ds)s:%(CF)s'
- LINE = 'LINE1:%(vname)s%(color)s:%(vname)s'
- AREA = 'AREA:%(vname)s%(color)s:%(vname)s'
-
- def __init__(self, conf, file, color):
- self.conf = conf
- self.color = colorgen()
- self.file = file
- self.info = RRDInfo(file)
- self.color = color
- self.filename = os.path.basename(self.file)
-
- def _gen_line(self, vname, ds, color):
- params = dict(vname=vname,
- ds=ds,
- filename=self.file,
- color=color,
- CF=self.conf.cf)
- ret = []
- ret.append(self.DEF % params)
- draw = self.LINE
- if self.conf.area:
- draw = self.AREA
- if self.conf.stack:
- draw += ':STACK'
- ret.append(draw % params)
- LOG.info('Get params for ds: %s', ret)
- return ret
-
- def gen_params(self):
-
- ret = []
- for DS in self.info.data_sources():
- filename, ext = os.path.splitext(self.filename)
- vname = '%s-%s' % (filename, DS)
- ret.extend(self._gen_line(vname, DS, next(self.color)))
- return ret
-
- def graph(self):
- params = self.common_params()
- params += self.get_period()
- params.extend(self.gen_params())
- return rrdtool.graphv(*params)
-
-
-class RRDInfo(object):
-
- def __init__(self, file):
- self.info = rrdtool.info(file)
-
- @property
- def last_update(self):
- return self.info['last_update']
-
- def data_sources(self):
- dss = set()
- for key in self.info:
- ds = re.findall('ds\[(\w*)', key)
- if ds:
- dss.add(ds[0])
- return dss
-
-
-def main():
- logging.basicConfig(level=logging.DEBUG)
-
- parser = argparse.ArgumentParser()
- parser.add_argument('--file', nargs='+')
- parser.add_argument('--type')
- parser.add_argument('--height', default='256')
- parser.add_argument('--width', default='1024')
- parser.add_argument('--output', default='a.png')
-
- parser.add_argument('--stack', action='store_true')
- parser.add_argument('--area', action='store_true')
- parser.add_argument('--cf', default='MAX')
-
- parser.add_argument('--start', default=None)
- parser.add_argument('--end', default=None)
-
- conf = parser.parse_args(sys.argv[1:])
-
- last_update = None
-
- rrd_definitions = []
-
- color = colorgen()
-
- rrd_files = []
- for f in conf.file:
- f = os.path.expanduser(f)
- rrd_files.extend(glob.glob(f))
- LOG.info('Get rrdfiles: %s', rrd_files)
-
- for file in rrd_files:
- rrd_definitions.extend(LoadGraph(conf, file, color=color).gen_params())
- if not last_update:
- last_update = RRDInfo(file).last_update
- else:
- last_update = min(RRDInfo(file).last_update, last_update)
-
- start = conf.start
- end = conf.end
- if not start:
- start = 'end-' + get_uptime_seconds()
- if not end:
- end = str(last_update + 60)
-
- params = [
- conf.output,
- '--zoom', '4',
- '--width', conf.width,
- '--height', conf.height,
- '--start', start,
- '--end', end
- ]
- params.extend(rrd_definitions)
- LOG.debug('params: %s', params)
-
- rrdtool.graph(*params)
-
-
-if __name__ == "__main__":
- main()
diff --git a/roles/collect-collectd/tasks/main.yml b/roles/collect-collectd/tasks/main.yml
deleted file mode 100644
index 2ebedc18e..000000000
--- a/roles/collect-collectd/tasks/main.yml
+++ /dev/null
@@ -1,72 +0,0 @@
----
-- name: copy rrdtool_graph file
- copy:
- src: rrdtool_graph.py
- dest: /usr/local/bin/rrdtool_graph
- mode: 0755
- become: true
-
-- name: stop collectd service
- service:
- name: collectd
- state: stopped
- become: true
-
-- name: generate image folder
- file:
- path: "/tmp/rrd_graph"
- state: directory
- become: true
-
-- name: generate load graph
- command: "/usr/local/bin/rrdtool_graph --file /var/lib/collectd/rrd/{{ ansible_fqdn }}/load/load.rrd --output /tmp/rrd_graph/load.png"
- ignore_errors: true
- become: true
-
-- name: generate memory graph
- command: "/usr/local/bin/rrdtool_graph --file /var/lib/collectd/rrd/{{ ansible_fqdn }}/memory/*.rrd --stack --area --output /tmp/rrd_graph/memory.png"
- ignore_errors: true
- become: true
-
-- name: generate interface graph
- command: "/usr/local/bin/rrdtool_graph --file /var/lib/collectd/rrd/{{ ansible_fqdn }}/interface-{{ ansible_default_ipv4.interface }}/if_packets.rrd --output /tmp/rrd_graph/interface-{{ ansible_default_ipv4.interface }}.png"
- ignore_errors: true
- become: true
-
-- name: generate graph.html
- vars:
- graphs:
- - load.png
- - memory.png
- - "interface-{{ ansible_default_ipv4.interface }}.png"
- template:
- src: graph.html.j2
- dest: /tmp/rrd_graph/graph.html
- ignore_errors: true
- become: true
-
-- name: copy graph files
- synchronize:
- src: "/tmp/rrd_graph"
- dest: "{{ zuul.executor.log_root }}"
- mode: pull
- copy_links: true
- verify_host: true
- rsync_opts:
- - "--quiet"
-
-- name: copy collectd rrd files
- synchronize:
- src: "/var/lib/collectd/rrd"
- dest: "{{ zuul.executor.log_root }}"
- mode: pull
- copy_links: true
- verify_host: true
- rsync_opts:
- - "--quiet"
-
-- name: start collectd service
- service:
- name: collectd
- state: started
- become: true
diff --git a/roles/collect-collectd/templates/graph.html.j2 b/roles/collect-collectd/templates/graph.html.j2
deleted file mode 100644
index 007af26db..000000000
--- a/roles/collect-collectd/templates/graph.html.j2
+++ /dev/null
@@ -1,16 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width" />
- <title>Graph.html</title>
- </head>
- <body>
- {% for graph in graphs %}
- <div>
- <h2> Grap for {{ graph }} </h2>
- <img src="{{ graph }}" width="50%" alt="{{ graph }}"/>
- </div>
- {% endfor %}
- </body>
-</html>
diff --git a/roles/collectd/defaults/main.yml b/roles/collectd/defaults/main.yml
deleted file mode 100644
index 0cbb0e858..000000000
--- a/roles/collectd/defaults/main.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-collectd_packages:
- RedHat:
- - collectd
- - collectd-disk
- - collectd-rrdtool
- - rrdtool-python
-
- Debian:
- - collectd
- - python-rrdtool
-
-collectd_config_path:
- RedHat: /etc/collectd.conf
- Debian: /etc/collectd/collectd.conf
diff --git a/roles/collectd/handlers/main.yml b/roles/collectd/handlers/main.yml
deleted file mode 100644
index 3ec96219c..000000000
--- a/roles/collectd/handlers/main.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-- name: restart collectd service
- service:
- name: collectd
- state: restarted
- become: true
diff --git a/roles/collectd/tasks/main.yml b/roles/collectd/tasks/main.yml
deleted file mode 100644
index bf58f73d8..000000000
--- a/roles/collectd/tasks/main.yml
+++ /dev/null
@@ -1,46 +0,0 @@
----
-- name: install centos-release-opstools repo
- package: "name={{ item }}"
- become: true
- with_items:
- - centos-release-opstools
- when:
- - ansible_os_family == 'RedHat'
-
-- name: update yum cache
- command: yum makecache
- become: true
- when:
- - ansible_os_family == 'RedHat'
-
-- name: install collectd
- package:
- name: "{{ item }}"
- become: true
- with_items: "{{ collectd_packages[ansible_os_family] }}"
- notify:
- - restart collectd service
-
-- name: Ensure rrd folder
- file:
- path: "/var/lib/collectd/rrd"
- state: "directory"
- become: true
-
-- name: copy collectd.conf file
- template:
- src: collectd.conf.j2
- dest: "{{ collectd_config_path[ansible_os_family] }}"
- become: true
- notify:
- - restart collectd service
-
-- name: Flush handlers
- meta: flush_handlers
-
-- name: enable collectd service
- become: true
- service:
- name: collectd
- enabled: yes
- state: started
diff --git a/roles/collectd/templates/collectd.conf.j2 b/roles/collectd/templates/collectd.conf.j2
deleted file mode 100644
index 5f306f983..000000000
--- a/roles/collectd/templates/collectd.conf.j2
+++ /dev/null
@@ -1,27 +0,0 @@
-Interval 5
-
-LoadPlugin syslog
-LoadPlugin cpu
-LoadPlugin interface
-LoadPlugin load
-LoadPlugin memory
-LoadPlugin rrdtool
-<Plugin rrdtool>
- DataDir "/var/lib/collectd/rrd"
- CreateFilesAsync false
- CacheTimeout 120
- CacheFlush 900
- WritesPerSecond 50
-</Plugin>
-
-LoadPlugin disk
-<Plugin "disk">
- IgnoreSelected false
-</Plugin>
-
-LoadPlugin df
-<Plugin "df">
- IgnoreSelected true
-</Plugin>
-
-LoadPlugin processes