grafana/devenv
Todd Campbell 643f790753
Alerting: Add support for Sensu Go notification channel (#28012)
* Add support for Sensu Go notification channel

Similar to current support for the older "Core" version of
Sensu, this commit add support for the newer version.

Closes #19908

Signed-off-by: Todd Campbell <todd@sensu.io>

* fix linter errors

Signed-off-by: Todd Campbell <todd@sensu.io>

* Apply suggestions from code review

PR review suggestions

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix no new variables error

* Replace convey testing with testify

Signed-off-by: Todd Campbell <todd@sensu.io>

* Wording suggestions

Signed-off-by: Todd Campbell <todd@sensu.io>

* Add docker compose environment for testing/maintenance

Signed-off-by: Todd Campbell <todd@sensu.io>

* Renamed and fixed docker-compose.yaml to work in devenv

Signed-off-by: Todd Campbell <todd@sensu.io>

* Change sensugo web UI port to 3080 so as not to conflict with grafana

Signed-off-by: Todd Campbell <todd@sensu.io>

* Apply suggestions from code review

Set the API key as a secure value.

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

* Add Sensu Go information to notifications doc

Signed-off-by: Todd Campbell <todd@sensu.io>

* Update pkg/services/alerting/notifiers/sensugo.go

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

* change assert to require for Error/NoError tests

Signed-off-by: Todd Campbell <todd@sensu.io>

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-11-27 19:09:24 +02:00
..
benchmarks/ab moves benchmark script to devenv 2018-09-17 11:17:23 +02:00
bulk_alerting_dashboards Support using multiple datasources for testing bulk alerting. (#23258) 2020-04-01 20:55:37 +02:00
bulk-dashboards Fix bulk-dashboards path (#12978) 2018-08-20 19:21:31 +02:00
dev-dashboards GraphNG: Adding ticks test dashboard and improves tick spacing (#29044) 2020-11-12 17:23:05 +01:00
dev-dashboards-without-uid Units: Added bitcoin units milli-bitcoin (mBTC) and micro-bitcoin (μBTC) (#24182) 2020-06-11 09:13:03 +02:00
docker Alerting: Add support for Sensu Go notification channel (#28012) 2020-11-27 19:09:24 +02:00
e2e-api-tests Chore: MEGA - Make Eslint Great Again 💅 (#26094) 2020-08-11 17:52:44 +02:00
local-npm Add guide and tooling for local packages registry setup (#26110) 2020-07-07 14:07:00 +02:00
create_docker_compose.sh Build: allow dynamically change docker image (#18112) 2019-07-16 08:16:10 +02:00
dashboards.yaml Allow saving of provisioned dashboards (#19820) 2019-10-31 14:27:31 +01:00
datasources_docker.yaml Devenv: adds grafana block with a customizeable version (#22867) 2020-03-18 15:42:41 +01:00
datasources.yaml docs: customMetricsNamespaces for Cloudwatch provisioning (#26457) 2020-07-20 16:58:20 +02:00
README.md Docs: Troubleshoot starting docker containers on Mac (#28754) 2020-11-11 14:49:26 +01:00
setup.sh Chore: spelling - misc (#24438) 2020-06-04 06:51:30 +02:00

Set up your development environment

This folder contains useful scripts and configuration so you can:

  • Configure data sources in Grafana for development.
  • Configure dashboards for development and test scenarios.
  • Create docker-compose file with databases and fake data.

Install Docker

Grafana uses Docker to make the task of setting up databases a little easier. If you do not have it already, make sure you install Docker before proceeding to the next step.

Developer dashboards and data sources

./setup.sh

After restarting the Grafana server, there should be a number of data sources named gdev-<type> provisioned as well as a dashboard folder named gdev dashboards. This folder contains dashboard and panel features tests dashboards.

Please update these dashboards or make new ones as new panels and dashboards features are developed or new bugs are found. The dashboards are located in the devenv/dev-dashboards folder.

docker-compose with databases

This command creates a docker-compose file with specified databases configured and ready to run. Each database has a prepared image with some fake data ready to use. For available databases, see docker/blocks directory. Notice that for some databases there are multiple images, for example there is prometheus_mac specifically for Macs or different version.

make devenv sources=influxdb,prometheus2,elastic5

Some of the blocks support dynamic change of the image version used in the Docker file. The signature looks like this:

make devenv sources=postgres,openldap,grafana postgres_version=9.2 grafana_version=6.7.0-beta1

Notes per block

Grafana

The grafana block is pre-configured with the dev-datasources and dashboards.

Jaeger

Jaeger block runs both Jaeger and Loki container. Loki container sends traces to Jaeger and also logs its own logs into itself so it is possible to setup derived field for traceID from Loki to Jaeger. You need to install a docker plugin for the self logging to work, without it the container won't start. See https://github.com/grafana/loki/tree/master/cmd/docker-driver#plugin-installation for installation instructions.

Troubleshooting

Containers fail to start (Mac OS)

ERROR: for <service_name> Cannot start service <service_name>: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting ... merged/var/log/grafana: operation not permitted\\\"\"": unknown
ERROR: Encountered errors while bringing up the project.

If running Mac OSX the above error might be encountered when starting certain Docker containers that mount /var/log/. When first run this causes Docker to try to create the folder /var/log/grafana however by default Docker for Mac does not have permission to create folders at this location as it runs as the current user.

To solve this issue manually create the folder /var/log/grafana and give your user write permissions then try starting the containers again.