Grafana - The open-source platform for monitoring and observability

Overview

Grafana

The open-source platform for monitoring and observability.

License Drone Go Report Card

Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture:

  • Visualize: Fast and flexible client side graphs with a multitude of options. Panel plugins offer many different ways to visualize metrics and logs.
  • Dynamic Dashboards: Create dynamic & reusable dashboards with template variables that appear as dropdowns at the top of the dashboard.
  • Explore Metrics: Explore your data through ad-hoc queries and dynamic drilldown. Split view and compare different time ranges, queries and data sources side by side.
  • Explore Logs: Experience the magic of switching from metrics to logs with preserved label filters. Quickly search through all your logs or streaming them live.
  • Alerting: Visually define alert rules for your most important metrics. Grafana will continuously evaluate and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie.
  • Mixed Data Sources: Mix different data sources in the same graph! You can specify a data source on a per-query basis. This works for even custom datasources.

Get started

Unsure if Grafana is for you? Watch Grafana in action on play.grafana.org!

Documentation

The Grafana documentation is available at grafana.com/docs.

Contributing

If you're interested in contributing to the Grafana project:

Get involved

License

Grafana is distributed under AGPL-3.0-only. For Apache-2.0 exceptions, see LICENSING.md.

Comments
  • [Draft] Alerting: UI changes required to support v3 and Auth in Kafka Contact Point

    [Draft] Alerting: UI changes required to support v3 and Auth in Kafka Contact Point

    What is this feature?

    This PR adds the code required to automatically create UI elements to match changes made in this alerting PR: https://github.com/grafana/alerting/pull/28

    This adds UI elements to perform the following,

    1. A checkbox to opt for basic auth.
    2. A text field to supply the username
    3. A dropdown to select a way to supply the password: The password can be entered in the UI or be supplied a file on the grafana server.
    4. A dropdown to select the API version to use when publishing kafka messages.

    Why do we need this feature?

    1. Using this feature without auth is fine in simple projects but doesn't really work in larger companies.
    2. The existing Kafka Contact Point only supported v2 APIs. While this was fine till now - newer systems are moving towards v3. Confluent is already only deploying v3 APIs for their Kafka Cloud Clusters.

    Who is this feature for?

    Anyone using the Kafka REST Contact Point with Grafana.

    Which issue(s) does this PR fix?

    Fixes https://github.com/grafana/grafana/issues/41176

    Screenshots

    The user can supply a password right here. Screenshot 2023-01-09 at 12 09 52 AM

    Or, they can choose to give a file path, Screenshot 2023-01-09 at 12 08 58 AM

    The user can select the desired API version like this, Screenshot 2023-01-09 at 12 11 07 AM

    References

    Corresponding change in grafana/alerting: https://github.com/grafana/alerting/pull/28

    Need help with

    1. How do I make sure that this and the corresponding alerting changes go in together? If one goes in without the other, things might break. Do I wait for the alerting change to merge and then update the go.mod file to pick a newer version of the alerting package? Or is this somehow handled automatically?
    area/backend pr/external 
    opened by MohammadGhazanfar 1
  • Inhibition rules support

    Inhibition rules support

    Hello, in the docs it clearly states that Grafana alertmanager supports inhibition rules (see here) However I cannot find a single example or doc on how to actually configure inhibition in Grafana alertmanager. So what's going on here? can anyone give some info? is this even supported in Grafana alerting?

    opened by azelezni 0
  • build: fix corss build

    build: fix corss build

    What is this feature?

    Why do we need this feature?

    Who is this feature for?

    Which issue(s) does this PR fix?:

    Fix corss build issue, setBuildEnv should be invoked before runPrint.

    Before fix:

    $ go run build.go --goos=darwin --goarch=amd64 build-server
    Version: 9.4.0, Linux Version: 9.4.0, Package Iteration: 1673140414pre
    rm -r dist
    rm -r tmp
    rm -r /Users/jimmiehan/go/pkg/darwin_amd64/github.com/grafana
    building grafana-server ./pkg/cmd/grafana-server
    rm -r ./bin/darwin-amd64/grafana-server
    rm -r ./bin/darwin-amd64/grafana-server.md5
    go build -ldflags -w -X main.version=9.4.0-pre -X main.commit=d44de7f20a -X main.buildstamp=1673058226 -X main.buildBranch=main -o ./bin/darwin-amd64/grafana-server ./pkg/cmd/grafana-server
    go version
    go version go1.19.1 darwin/arm64
    Targeting darwin/amd64
    
    $ file ./bin/darwin-amd64/grafana-server                                
    ./bin/darwin-amd64/grafana-server: Mach-O 64-bit executable arm64
    

    After fix:

    $ go run build.go --goos=darwin --goarch=amd64 build-server
    Version: 9.4.0, Linux Version: 9.4.0, Package Iteration: 1673140473pre
    rm -r dist
    rm -r tmp
    rm -r /Users/jimmiehan/go/pkg/darwin_amd64/github.com/grafana
    building grafana-server ./pkg/cmd/grafana-server
    rm -r ./bin/darwin-amd64/grafana-server
    rm -r ./bin/darwin-amd64/grafana-server.md5
    go build -ldflags -w -X main.version=9.4.0-pre -X main.commit=d1f213dcf2 -X main.buildstamp=1673097489 -X main.buildBranch=fix/jimmiehan-fix-cross-build -o ./bin/darwin-amd64/grafana-server ./pkg/cmd/grafana-server
    go version
    go version go1.19.1 darwin/arm64
    Targeting darwin/amd64
    
    $ file ./bin/darwin-amd64/grafana-server                   
    ./bin/darwin-amd64/grafana-server: Mach-O 64-bit executable x86_64
    

    Special notes for your reviewer:

    area/backend pr/external 
    opened by hanjm 0
  • Changes to panel using MQTT source gives error message

    Changes to panel using MQTT source gives error message

    In line with issue #60570 which was closed without full investigation, if I create a panel using an MQTT data source and then change the panel I get an error message saying "Subscription to the channel 1/ds/LVo8dvh4z/1s/picow/temperature already exists". The MQTT source is a HiveMQ broker which is being connected to using tls. The panel works perfectly until a change is made to it, and then the error message appears.

    The message can also be reproduced by deleting the panel and creating a new one with the same source.

    opened by jon-p-taylor 2
  • Test Datasource: do not use global random

    Test Datasource: do not use global random

    What is this feature? In alerting we do some performance testing using the test data source with function RandomWalk. During investigating performance problems I found that the RandomWalk method was the bottleneck. This happens because it uses global randomizer instance, that has synchronous access guarded by a mutex.

    blocks

    image

    This PR updates test data source to not use the global randomizer.

    type/performance area/backend datasource/TestDataDB no-backport no-changelog 
    opened by yuri-tceretian 0
Releases(v9.3.2)
Owner
Grafana Labs
Grafana Labs is behind leading open source projects Grafana and Loki, and the creator of the first open & composable observability platform.
Grafana Labs
Xiaomi Platform Tree for Snapdragon 660 Devices

This repository contains common device configuration for Xiaomi sdm660-based devices Copyright # # Copyright (C) 2018 The LineageOS Project # # Licens

MUHAMAD KHOIRON 1 Dec 17, 2021
Uberlog - Cross platform multi-process C++ logging system

uberlog uberlog is a cross platform C++ logging system that is: Small Fast Robust Runs on Linux, Windows, OSX MIT License Small Two headers, and three

IMQS Software 15 Sep 29, 2022
log4cplus is a simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. It is modelled after the Java log4j API.

% log4cplus README Short Description log4cplus is a simple to use C++17 logging API providing thread--safe, flexible, and arbitrarily granular control

null 1.4k Jan 4, 2023
Colorful Logging is a simple and efficient library allowing for logging and benchmarking.

Colorful-Logging "Colorful Logging" is a library allowing for simple and efficient logging as well for benchmarking. What can you use it for? -Obvious

Mateusz Antkiewicz 1 Feb 17, 2022
View and log aoe-api requests and responses

aoe4_socketspy View and log aoe-api requests and responses Part 1: https://www.codereversing.com/blog/archives/420 Part 2: https://www.codereversing.c

Alex Abramov 10 Nov 1, 2022
Portable, simple and extensible C++ logging library

Plog - portable, simple and extensible C++ logging library Pretty powerful logging library in about 1000 lines of code Introduction Hello log! Feature

Sergey Podobry 1.6k Dec 29, 2022
A DC power monitor and data logger

Hoverboard Power Monitor I wanted to gain a better understanding of the power consumption of my hoverboard during different riding situations. For tha

Niklas Roy 22 May 1, 2021
An ATTiny85 implementation of the well known sleep aid. Includes circuit, software and 3d printed case design

dodowDIY An ATTiny85 implementation of the well known sleep aid. Includes circuit, software and 3d printed case design The STL shells are desiged arou

null 15 Sep 4, 2022
A BSD-based OS project that aims to provide an experience like and some compatibility with macOS

What is Helium? Helium is a new open source OS project that aims to provide a similar experience and some compatibiilty with macOS on x86-64 sytems. I

Zoë Knox 4.7k Dec 30, 2022
A revised version of NanoLog which writes human readable log file, and is easier to use.

NanoLogLite NanoLogLite is a revised version of NanoLog, and is easier to use without performance compromise. The major changes are: NanoLogLite write

Meng Rao 26 Nov 22, 2022
Receive and process logs from the Linux kernel.

Netconsd: The Netconsole Daemon This is a daemon for receiving and processing logs from the Linux Kernel, as emitted over a network by the kernel's ne

Facebook 33 Oct 5, 2022
Minimalistic logging library with threads and manual callstacks

Minimalistic logging library with threads and manual callstacks

Sergey Kosarevsky 20 Dec 5, 2022
Compressed Log Processor (CLP) is a free tool capable of compressing text logs and searching the compressed logs without decompression.

CLP Compressed Log Processor (CLP) is a tool capable of losslessly compressing text logs and searching the compressed logs without decompression. To l

null 516 Dec 30, 2022
A Fast and Convenient C++ Logging Library for Low-latency or Real-time Environments

xtr What is it? XTR is a C++ logging library aimed at applications with low-latency or real-time requirements. The cost of log statements is minimised

null 10 Jul 17, 2022
Log.c2 is based on rxi/log.c with MIT LICENSE which is inactive now. Log.c has a very flexible and scalable architecture

log.c2 A simple logging library. Log.c2 is based on rxi/log.c with MIT LICENSE which is inactive now. Log.c has a very flexible and scalable architect

Alliswell 2 Feb 13, 2022
✔️The smallest header-only GUI library(4 KLOC) for all platforms

Welcome to GUI-lite The smallest header-only GUI library (4 KLOC) for all platforms. 中文 Lightweight ✂️ Small: 4,000+ lines of C++ code, zero dependenc

null 6.6k Jan 8, 2023
Example code for collecting weather data from an ESP32 and then uploading this data to InfluxDB in order to create a dashboard using Grafana.

InfluxGrafanaTutorial Example code for collecting weather data from an ESP32 and then uploading this data to InfluxDB in order to create a dashboard u

Michael Klements 9 Dec 30, 2022