Merge "grafana: update docs and make an import script"
This commit is contained in:
commit
cd939ca0a2
@ -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``.
|
||||||
|
@ -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
|
|
||||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user