From 0d1024c807649cc4258700d250814b21805002c0 Mon Sep 17 00:00:00 2001 From: Bartosz Kupidura Date: Tue, 10 Jan 2017 11:41:31 +0100 Subject: [PATCH] Start using grafana from fuel-ccp-grafana Change-Id: Ic8b059b95c0956a92abfc9fc754071a60c66649e Depends-on: I89540f8dd656dd930c8b4d999aa195a295592ba4 --- docker/grafana/Dockerfile.j2 | 19 ------------- docker/influxdb/Dockerfile.j2 | 1 + service/files/defaults.yaml | 7 ----- service/files/grafana-configure.sh.j2 | 10 ++++--- .../files/kubernetes.dashboard.json | 0 .../files/system.dashboard.json | 0 service/grafana.yaml | 27 ------------------- service/influxdb.yaml | 22 +++++++++++++++ 8 files changed, 29 insertions(+), 57 deletions(-) delete mode 100644 docker/grafana/Dockerfile.j2 rename docker/grafana/dashboards/kubernetes.json => service/files/kubernetes.dashboard.json (100%) rename docker/grafana/dashboards/system.json => service/files/system.dashboard.json (100%) delete mode 100644 service/grafana.yaml diff --git a/docker/grafana/Dockerfile.j2 b/docker/grafana/Dockerfile.j2 deleted file mode 100644 index fc0d421..0000000 --- a/docker/grafana/Dockerfile.j2 +++ /dev/null @@ -1,19 +0,0 @@ -FROM {{ image_spec("base-tools") }} -MAINTAINER {{ maintainer }} - -# NOTE(elemoine): the Grafana package is downloaded from -# grafanarel.s3.amazonaws.com. Do we want to host the package instead? - -RUN apt-get update \ - && apt-get install -y --no-install-recommends \ - libfontconfig \ - && curl https://grafanarel.s3.amazonaws.com/builds/grafana_{{ grafana_version }}_amd64.deb -o /tmp/grafana.deb \ - && dpkg -i /tmp/grafana.deb \ - && usermod -a -G microservices grafana \ - && rm /tmp/grafana.deb \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -COPY dashboards /dashboards - -USER grafana diff --git a/docker/influxdb/Dockerfile.j2 b/docker/influxdb/Dockerfile.j2 index a9621d5..e35a000 100644 --- a/docker/influxdb/Dockerfile.j2 +++ b/docker/influxdb/Dockerfile.j2 @@ -12,6 +12,7 @@ RUN gpg \ && gpg --batch --verify /tmp/influxdb.deb.asc /tmp/influxdb.deb \ && dpkg -i /tmp/influxdb.deb \ && chown -R influxdb: /etc/influxdb \ + && usermod -a -G microservices influxdb \ && rm -f /tmp/influxdb.deb.asc /tmp/influxdb.deb USER influxdb diff --git a/service/files/defaults.yaml b/service/files/defaults.yaml index a06409a..eecbcaa 100644 --- a/service/files/defaults.yaml +++ b/service/files/defaults.yaml @@ -13,12 +13,6 @@ configs: service_pattern: "^k8s_(.-)%..*" hindsight_heka_tcp_port: cont: 5565 - grafana: - host: "grafana" - port: - cont: 3000 - user: "admin" - password: "admin" influxdb: database: "ccp" host: "influxdb" @@ -36,7 +30,6 @@ configs: maxsize: "100M" versions: influxdb_version: "0.13.0" - grafana_version: "3.0.3-1463994644" elasticsearch_version: "2.4.0" kibana_version: "4.6.1" elasticsearch_curator_version: "4.1.0" diff --git a/service/files/grafana-configure.sh.j2 b/service/files/grafana-configure.sh.j2 index 0883a83..db07efa 100755 --- a/service/files/grafana-configure.sh.j2 +++ b/service/files/grafana-configure.sh.j2 @@ -1,14 +1,16 @@ #!/bin/bash +GRAFANA_URL="http://{{ grafana.user }}:{{ grafana.password }}@{{ address('grafana') }}:{{ grafana.port.cont }}" + echo "Waiting for Grafana to come up..." -until $(curl --fail --output /dev/null --silent http://{{ grafana.user }}:{{ grafana.password }}@localhost:{{ grafana.port.cont }}/api/org); do +until $(curl --fail --output /dev/null --silent ${GRAFANA_URL}/api/org); do printf "." sleep 2 done echo -e "Grafana is up and running.\n" echo "Creating InfluxDB datasource..." -curl -i -XPOST -H "Accept: application/json" -H "Content-Type: application/json" "http://{{ grafana.user }}:{{ grafana.password }}@localhost:{{ grafana.port.cont }}/api/datasources" -d ' +curl -i -XPOST -H "Accept: application/json" -H "Content-Type: application/json" "${GRAFANA_URL}/api/datasources" -d ' { "name": "CCP InfluxDB", "type": "influxdb", @@ -26,9 +28,9 @@ fi echo -e "InfluxDB datasource was successfully created.\n" echo "Importing default dashboards..." -for dashboard in /dashboards/*.json; do +for dashboard in /tmp/*.dashboard.json; do echo -e "\tImporting ${dashboard}..." - curl -i -XPOST --data "@${dashboard}" -H "Accept: application/json" -H "Content-Type: application/json" "http://{{ grafana.user }}:{{ grafana.password}}@localhost:{{ grafana.port.cont }}/api/dashboards/db" + curl -i -XPOST --data "@${dashboard}" -H "Accept: application/json" -H "Content-Type: application/json" "${GRAFANA_URL}/api/dashboards/db" if [ $? -ne 0 ]; then echo "Error importing ${dashboard}" exit 1 diff --git a/docker/grafana/dashboards/kubernetes.json b/service/files/kubernetes.dashboard.json similarity index 100% rename from docker/grafana/dashboards/kubernetes.json rename to service/files/kubernetes.dashboard.json diff --git a/docker/grafana/dashboards/system.json b/service/files/system.dashboard.json similarity index 100% rename from docker/grafana/dashboards/system.json rename to service/files/system.dashboard.json diff --git a/service/grafana.yaml b/service/grafana.yaml deleted file mode 100644 index cd4c4a6..0000000 --- a/service/grafana.yaml +++ /dev/null @@ -1,27 +0,0 @@ -dsl_version: 0.1.0 -service: - name: grafana - ports: - - {{ grafana.port }} - containers: - - name: grafana - image: grafana - daemon: - command: /usr/sbin/grafana-server --homepath=/usr/share/grafana --config=/etc/grafana/grafana.ini - cfg:default.paths.data=/var/lib/grafana - cfg:default.paths.logs=/var/log/grafana - files: - - grafana-configure.sh - post: - - name: grafana-configure - type: local - command: /opt/ccp/bin/grafana-configure.sh - volumes: - - name: grafana-data - type: empty-dir - path: /var/lib/grafana -files: - grafana-configure.sh: - path: /opt/ccp/bin/grafana-configure.sh - content: grafana-configure.sh.j2 - perm: "0755" diff --git a/service/influxdb.yaml b/service/influxdb.yaml index e50da67..cf2d92b 100644 --- a/service/influxdb.yaml +++ b/service/influxdb.yaml @@ -10,6 +10,18 @@ service: command: influxd -config /etc/influxdb/influxdb.conf files: - influxdb.conf + # {% if grafana.enable == true %} + post: + - name: stacklight-grafana-configure + command: /opt/ccp/bin/grafana-configure.sh + type: single + dependencies: + - grafana + files: + - grafana-configure.sh + - kubernetes-dashboard + - system-dashboard + # {% endif %} volumes: - name: influxdb-data type: empty-dir @@ -19,3 +31,13 @@ files: path: /etc/influxdb/influxdb.conf content: influxdb.conf.j2 perm: "0600" + grafana-configure.sh: + path: /opt/ccp/bin/grafana-configure.sh + content: grafana-configure.sh.j2 + perm: "0755" + kubernetes-dashboard: + path: /tmp/kubernetes.dashboard.json + content: kubernetes.dashboard.json + system-dashboard: + path: /tmp/system.dashboard.json + content: system.dashboard.json