Merge "grafana: update docs and make an import script"

This commit is contained in:
Zuul 2022-02-01 01:25:24 +00:00 committed by Gerrit Code Review
commit cd939ca0a2
3 changed files with 42 additions and 17 deletions

View File

@ -25,11 +25,20 @@ Overview
Apache is configured as a reverse proxy to Grafana running in a Apache is configured as a reverse proxy to Grafana running in a
container, listening on port 3000. container, listening on port 3000.
Updating dashboards
===================
Changes to config-files in ``project-config`` will trigger the
``infra-prod-run-grafana`` job to refresh the dashboards. If the
container is restarted manually, you can run
``/usr/local/bin/update-grafana-dashboards`` on
``grafana.opendev.org`` to reload directly.
Local Development Local Development
================= =================
To develop dashboards, you can run the OpenDev Grafana container. To develop dashboards, you can run the Grafana container.
Firstly, get setup: Firstly, get setup:
.. code-block:: shell-session .. code-block:: shell-session
@ -50,13 +59,12 @@ Then run the container with the following options:
$ sudo podman run \ $ sudo podman run \
-p 3000:3000 \ -p 3000:3000 \
-v ./secrets:/etc/grafana/secrets \ -v ./secrets:/etc/grafana/secrets \
-v ./project-config:/opt/project-config \
-e GF_AUTH_ANONYMOUS_ENABLED=true \ -e GF_AUTH_ANONYMOUS_ENABLED=true \
-e GF_USERS_ALLOW_SIGN_UP=false \ -e GF_USERS_ALLOW_SIGN_UP=false \
-e GF_SECURITY_ADMIN_PASSWORD__FILE=/etc/grafana/secrets/admin_password \ -e GF_SECURITY_ADMIN_PASSWORD__FILE=/etc/grafana/secrets/admin_password \
-e GF_SECURITY_ADMIN_USER__FILE=/etc/grafana/secrets/admin_user \ -e GF_SECURITY_ADMIN_USER__FILE=/etc/grafana/secrets/admin_user \
-e GF_SECURITY_SECRET_KEY__FILE=/etc/grafana/secrets/secret_key \ -e GF_SECURITY_SECRET_KEY__FILE=/etc/grafana/secrets/secret_key \
docker.io/opendevorg/grafana docker.io/grafana/grafana-oss
At this point, Grafana will be running and listening on port 3000. At this point, Grafana will be running and listening on port 3000.
You can log into as ``admin`` with ``password`` (or using your secrets You can log into as ``admin`` with ``password`` (or using your secrets
@ -64,15 +72,23 @@ above).
This is unconfigured and does not yet talk to the OpenDev Graphite This is unconfigured and does not yet talk to the OpenDev Graphite
instance. The dashboard definitions are kept in instance. The dashboard definitions are kept in
``project-config/grafana``. To load them ``exec`` the ``project-config/grafana``. You need to run the ``grafyaml`` tool to
``update-grafana`` script in the container (i.e. ``podman exec load them.
<running-container> update-grafana``). That will run ``grafyaml`` and
load in the updated dashboards (note it relies on things being mapped .. code-block:: shell-session
as above). To work on dashboards, update the ``yaml`` files in
``project-config`` and re-run ``update-grafana``, then reload them in $ echo 'GRAFANA_URL=http://admin:password@localhost:3000/' > grafyaml.env
the Grafana UI. $ docker run --rm -t --network=host \
--env-file ./grafyaml.env \
-v ./project-config/grafana:/grafana:ro \
opendevorg/grafyaml
To work on dashboards, update the ``yaml`` files in ``project-config``
and re-run the grafyaml import as above, then reload them in the
Grafana UI.
Alternatively, you can use the Grafana editor to make the dashboards, Alternatively, you can use the Grafana editor to make the dashboards,
and then under "Dashboard Settings" (gear icon) select "JSON Model" and then under "Dashboard Settings" (gear icon) select "JSON Model"
and commit that (it seems you have to cut-and-paste, there isn't and commit that (it seems you have to cut-and-paste, there isn't
currently a way to export the JSON as such). currently a way to export the JSON as such). The raw JSON can be
proposed as an addition to ``project-config``.

View File

@ -41,6 +41,14 @@
group: root group: root
mode: 0644 mode: 0644
- name: Write update script
template:
src: update-grafana-dashboards.sh.j2
dest: /usr/local/bin/update-grafana-dashboards
owner: root
group: root
mode: 0755
- name: Install apache2 - name: Install apache2
apt: apt:
name: name:
@ -88,9 +96,4 @@
cmd: docker image prune -f cmd: docker image prune -f
- name: Import dashboards to container - name: Import dashboards to container
shell: command: '/usr/local/bin/update-grafana-dashboards'
cmd: >-
docker run --rm -t --network=host
--env-file /etc/grafana/secrets/grafyaml.env
-v /opt/project-config/grafana:/grafana:ro
opendevorg/grafyaml

View File

@ -0,0 +1,6 @@
#!/bin/bash
docker run --rm -t --network=host \
--env-file /etc/grafana/secrets/grafyaml.env \
-v /opt/project-config/grafana:/grafana:ro \
opendevorg/grafyaml