The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.

Grafana

The open-source platform for monitoring and observability.

License Circle CI 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 the Apache 2.0 License.

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
Comments
  • 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.

  • Traces: Create span when a new session is opened

    Traces: Create span when a new session is opened

    What is this feature? When I tested changes in https://github.com/grafana/grafana/pull/61109 I found serious difference between top-level spans and query execution spans (sometimes seconds). It turned out that in my tests the code was blocked on starting a new session.

    This PR adds a tracing span that records when the session is open and closed. This will make db operations more visible because real duration of the query does not indicate the time it took to get data from database.

    image

    for example, this trace is much useful because it shows that although query took 3.78ms, the real db access took more than 4.8s ! Also, it revealed some unnecessary session opening, which is fixed in https://github.com/grafana/grafana/pull/61117

  • Alerting: Add client configuration for remote Loki historian backend and test connection

    Alerting: Add client configuration for remote Loki historian backend and test connection

    What is this feature?

    This PR creates and allows configuration of a Loki client, to be used in the remote loki state historian backend. We configure the client with a URL only (for now), and verify that we are able to communicate with Loki on startup.

    As in the previous PR, the configuration options are intentionally not documented. We might break them in the future.

    Which issue(s) does this PR fix?:

    contrib https://github.com/grafana/grafana/issues/48359

    Special notes for your reviewer:

  • Docs: removed unsupported versions; reordered

    Docs: removed unsupported versions; reordered

    This PR supports the Grafana 10 goal: Upgrade with Confidence. The Docs Squad has committed to refactoring and updating the upgrade guide.

    This PR removes unsupported versions from the upgrade guide and reorders content.

  • Traces: Fix timestamp for database query traces

    Traces: Fix timestamp for database query traces

    What is this feature? Grafana support tracing of database queries. However, the trace span starts when the query is already executed and closed almost immediately.

    https://github.com/grafana/grafana/blob/862a6a2fa625100b690c5a48a9b12e7a7dd42041/pkg/services/sqlstore/database_wrapper.go#L98-L108

    This makes span duration to be wrong:

    Screenshot

    image

    This PR updates the creation of the span and provides the actual query start timestamp

    Related: https://github.com/grafana/grafana/pull/42674

    Note: this fixes only OpenTelemetry mode. OpenTracing implementation does ignores the options

An example logging system using Prometheus, Loki, and Grafana.
An example logging system using Prometheus, Loki, and Grafana.

Logging Example Structure Collector Export numerical data for Prometheus and log data for Promtail. Exporter uses port 8080 Log files are saved to ./c

Nov 21, 2022
Go starter project with Gin, Viper, postgres , redis, zap, prometheus metrics etc setup

Go REST Service Starter/Boilerplate Easily extendible REST API Service boilerplate aiming to follow idiomatic go and best practice. Any feedback and p

Jun 23, 2022
Sep 24, 2021
Like Prometheus, but for logs.
Like Prometheus, but for logs.

Loki: like Prometheus, but for logs. Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It

Dec 30, 2022
gosivy - Real-time visualization tool for Go process metrics
 gosivy - Real-time visualization tool for Go process metrics

Gosivy tracks Go process's metrics and plot their evolution over time right into your terminal, no matter where it's running on. It helps you understand how your application consumes the resources.

Nov 27, 2022
Very powerful server agent for collecting & sending logs & metrics with an easy-to-use web console.
Very powerful server agent for collecting & sending logs & metrics with an easy-to-use web console.

logkit-community δΈ­ζ–‡η‰ˆ Introduce Very powerful server agent for collecting & sending logs & metrics with an easy-to-use web console. logkit-community De

Dec 29, 2022
A Postgres Metrics Dashboard
A Postgres Metrics Dashboard

#Pome Pome stands for Postgres Metrics. Pome is a PostgreSQL Metrics Dashboard to keep track of the health of your database. This project is at a very

Dec 22, 2022
pprof is a tool for visualization and analysis of profiling data

Introduction pprof is a tool for visualization and analysis of profiling data. pprof reads a collection of profiling samples in profile.proto format a

Jan 8, 2023
Pragmatic and minimalistic module for collecting and sending traces from Go code πŸ’ͺ🏽
Pragmatic and minimalistic module for collecting and sending traces from Go code πŸ’ͺ🏽

tracing-go Pragmatic and minimalistic module for collecting and exporting trace data from the Go code. prometheus/client_golang but for Traces NOTE: T

Jan 6, 2023
Structured, composable logging for Go
Structured, composable logging for Go

log15 Package log15 provides an opinionated, simple toolkit for best-practice logging in Go (golang) that is both human and machine readable. It is mo

Dec 18, 2022
Write log entries, get X-Ray traces.

logtoxray Write to logs, get X-Ray traces. No distributed tracing instrumenation library required. ?? ?? ?? THIS PROJECT IS A WORK-IN-PROGRESS PROTOTY

Apr 24, 2022
Tracetest - Trace-based testing. End-to-end tests powered by your OpenTelemetry Traces.
Tracetest - Trace-based testing. End-to-end tests powered by your OpenTelemetry Traces.

End-to-end tests powered by OpenTelemetry. For QA, Dev, & Ops. Live Demo | Documentation | Twitter | Discord | Blog Click on the image or this link to

Jan 3, 2023
gin-gonic/gin metrics for prometheus.
gin-gonic/gin  metrics for prometheus.

gin-metrics gin-gonic/gin metrics exporter for Prometheus. δΈ­ζ–‡ Introduction gin-metrics defines some metrics for gin http-server. There have easy way t

Jan 1, 2023
Goimportcycle - a tool to visualize Go imports resolved to the file level
Goimportcycle - a tool to visualize Go imports resolved to the file level

Go Import Cycle goimportcycle is a tool to visualize Go imports resolved to the

Dec 8, 2022
mtail - extract internal monitoring data from application logs for collection into a timeseries database
 mtail - extract internal monitoring data from application logs for collection into a timeseries database

mtail - extract internal monitoring data from application logs for collection into a timeseries database mtail is a tool for extracting metrics from a

Dec 29, 2022
A flexible process data collection, metrics, monitoring, instrumentation, and tracing client library for Go
A flexible process data collection, metrics, monitoring, instrumentation, and tracing client library for Go

Package monkit is a flexible code instrumenting and data collection library. See documentation at https://godoc.org/gopkg.in/spacemonkeygo/monkit.v3 S

Dec 14, 2022
Library and program to parse and forward HAProxy logs

haminer Library and program to parse and forward HAProxy logs. Supported forwarder, Influxdb Requirements Go for building from source code git for dow

Aug 17, 2022
Search and analysis tooling for structured logs

Zed The Zed system provides an open-source, cloud-native, and searchable data lake for semi-structured and structured data. Zed lakes utilize a supers

Jan 5, 2023
A customized GORM logger that implements the appropriate interface and uses Logrus to output logs

CryptoMath GORM Logger A customized GORM logger that implements the appropriate interface and uses Logrus to output logs. Install go get github.com/ma

Nov 6, 2021