The tool for beautiful monitoring and metric analytics & dashboards for Graphite, InfluxDB & Prometheus & More
Clone or download
Latest commit a231e57 Jan 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci build: updates ci deploy. Jan 17, 2019
.github contributing.md Oct 4, 2018
conf makes cache mode configurable Dec 27, 2018
devenv Added test case dashboard Jan 18, 2019
docs change enabled to true Jan 18, 2019
emails update email default year and name Mar 20, 2018
packages Merge branch 'master' of github.com:grafana/grafana Jan 18, 2019
packaging build: removes curl install from build. Jan 10, 2019
pkg removes debug2 logging Jan 15, 2019
public Moved add query button to the right Jan 18, 2019
scripts Merge pull request #14924 from xlson/repo-update-improvements Jan 17, 2019
tools/phantomjs Update render.js Sep 21, 2018
vendor ldap: upgrades go-ldap to v3 Dec 16, 2018
.babelrc WIP babel 7 Oct 29, 2018
.bra.toml build: internal metrics for packaging. Nov 15, 2018
.dockerignore remove duplicated /tmp entry in .dockerignore Aug 9, 2018
.editorconfig support for loading function definitions from graphite Jan 16, 2018
.gitignore Merge branch 'master' into data-source-settings-to-react Nov 7, 2018
CHANGELOG.md changelog: adds note for #14795 Jan 15, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#8960) Jul 31, 2017
CONTRIBUTING.md contributing.md Oct 4, 2018
Dockerfile upgrade to golang 1.11.4 Dec 17, 2018
Gopkg.lock ldap: upgrades go-ldap to v3 Dec 16, 2018
Gopkg.toml ldap: upgrades go-ldap to v3 Dec 16, 2018
Gruntfile.js build: correctly adds enterprise to the filename. (#13831) Oct 25, 2018
LICENSE.md Update LICENSE.md Nov 24, 2017
Makefile build: internal metrics for packaging. Nov 15, 2018
NOTICE.md Update NOTICE.md Aug 9, 2018
PLUGIN_DEV.md docs: fix minor typos Oct 6, 2018
README.md Update README.md Jan 10, 2019
ROADMAP.md Update ROADMAP.md Aug 7, 2018
UPGRADING_DEPENDENCIES.md Fix other misspell issues Nov 29, 2018
appveyor.yml upgrade to golang 1.11.4 Dec 17, 2018
build.go Docker image for ARM Jan 10, 2019
jest.config.js Testing moving out one type to grafana/ui Dec 23, 2018
latest.json Updates to latest checking. Jan 15, 2019
package.json Panel time override tests Jan 11, 2019
tsconfig.json Fixed Gauge being cropped when resizing panel Jan 14, 2019
tslint.json added radix rule and changed files to follow rule (#13153) Sep 5, 2018
yarn.lock Merge remote-tracking branch 'origin/master' into reactify-stackdriver Jan 14, 2019

README.md

Grafana Circle CI Go Report Card codecov

Website | Twitter | Community & Forum

Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB.

Installation

Head to docs.grafana.org and download the latest release.

If you have any problems please read the troubleshooting guide.

Documentation & Support

Be sure to read the getting started guide and the other feature guides.

Run from master

If you want to build a package yourself, or contribute - Here is a guide for how to do that. You can always find the latest master builds here

Dependencies

  • Go (Latest Stable)
  • Node.js LTS

Building the backend

go get github.com/grafana/grafana
cd $GOPATH/src/github.com/grafana/grafana
go run build.go setup
go run build.go build

Building frontend assets

For this you need Node.js (LTS version).

To build the assets, rebuild on file change, and serve them by Grafana's webserver (http://localhost:3000):

npm install -g yarn
yarn install --pure-lockfile
yarn watch

Build the assets, rebuild on file change with Hot Module Replacement (HMR), and serve them by webpack-dev-server (http://localhost:3333):

yarn start
# OR set a theme
env GRAFANA_THEME=light yarn start

Note: HMR for Angular is not supported. If you edit files in the Angular part of the app, the whole page will reload.

Run tests

yarn jest

Recompile backend on source change

To rebuild on source change.

go get github.com/Unknwon/bra
bra run

Open grafana in your browser (default: http://localhost:3000) and login with admin user (default: user/pass = admin/admin).

Building a Docker image

There are two different ways to build a Grafana docker image. If you're machine is setup for Grafana development and you run linux/amd64 you can build just the image. Otherwise, there is the option to build Grafana completely within Docker.

Run the image you have built using: docker run --rm -p 3000:3000 grafana/grafana:dev

Building on linux/amd64 (fast)

  1. Build the frontend go run build.go build-frontend
  2. Build the docker image make build-docker-dev

The resulting image will be tagged as grafana/grafana:dev

Building anywhere (slower)

Choose this option to build on platforms other than linux/amd64 and/or not have to setup the Grafana development environment.

  1. make build-docker-full or docker build -t grafana/grafana:dev .

The resulting image will be tagged as grafana/grafana:dev

Notice: If you are using Docker for MacOS, be sure to let limit of Memory bigger than 2 GiB (at docker -> Preferences -> Advanced), otherwize you may faild at grunt build

Dev config

Create a custom.ini in the conf directory to override default configuration options. You only need to add the options you want to override. Config files are applied in the order of:

  1. grafana.ini
  2. custom.ini

In your custom.ini uncomment (remove the leading ;) sign. And set app_mode = development.

Running tests

Frontend

Execute all frontend tests

yarn test

Writing & watching frontend tests

  • Start watcher: yarn jest
  • Jest will run all test files that end with the name ".test.ts"

Backend

# Run Golang tests using sqlite3 as database (default)
go test ./pkg/...

# Run Golang tests using mysql as database - convenient to use /docker/blocks/mysql_tests
GRAFANA_TEST_DB=mysql go test ./pkg/...

# Run Golang tests using postgres as database - convenient to use /docker/blocks/postgres_tests
GRAFANA_TEST_DB=postgres go test ./pkg/...

Contribute

If you have any idea for an improvement or found a bug, do not hesitate to open an issue. And if you have time clone this repo and submit a pull request and help me make Grafana the kickass metrics & devops dashboard we all dream about!

Read the contributing guide then check the beginner friendly label to find issues that are easy and that we would like help with.

Plugin development

Checkout the Plugin Development Guide and checkout the PLUGIN_DEV.md file for changes in Grafana that relate to plugin development.

License

Grafana is distributed under Apache 2.0 License.