• Stars
    star
    21,722
  • Rank 1,038 (Top 0.03 %)
  • Language
    Go
  • License
    GNU Affero Genera...
  • Created almost 6 years ago
  • Updated 22 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Like Prometheus, but for logs.

Loki Logo

Drone CI Go Report Card Slack Fuzzing Status

Loki: like Prometheus, but for logs.

Loki is a horizontally-scalable, highly-available, multi-tenant log aggregation system inspired by Prometheus. It is designed to be very cost effective and easy to operate. It does not index the contents of the logs, but rather a set of labels for each log stream.

Compared to other log aggregation systems, Loki:

  • does not do full text indexing on logs. By storing compressed, unstructured logs and only indexing metadata, Loki is simpler to operate and cheaper to run.
  • indexes and groups log streams using the same labels youโ€™re already using with Prometheus, enabling you to seamlessly switch between metrics and logs using the same labels that youโ€™re already using with Prometheus.
  • is an especially good fit for storing Kubernetes Pod logs. Metadata such as Pod labels is automatically scraped and indexed.
  • has native support in Grafana (needs Grafana v6.0).

A Loki-based logging stack consists of 3 components:

  • promtail is the agent, responsible for gathering logs and sending them to Loki.
  • loki is the main server, responsible for storing logs and processing queries.
  • Grafana for querying and displaying the logs.

Loki is like Prometheus, but for logs: we prefer a multidimensional label-based approach to indexing, and want a single-binary, easy to operate system with no dependencies. Loki differs from Prometheus by focusing on logs instead of metrics, and delivering logs via push, instead of pull.

Getting started

Upgrading

Documentation

Commonly used sections:

Getting Help

If you have any questions or feedback regarding Loki:

Your feedback is always welcome.

Further Reading

Contributing

Refer to CONTRIBUTING.md

Building from source

Loki can be run in a single host, no-dependencies mode using the following commands.

You need go, we recommend using the version found in our build Dockerfile

$ go get github.com/grafana/loki
$ cd $GOPATH/src/github.com/grafana/loki # GOPATH is $HOME/go by default.

$ go build ./cmd/loki
$ ./loki -config.file=./cmd/loki/loki-local-config.yaml
...

To build Promtail on non-Linux platforms, use the following command:

$ go build ./clients/cmd/promtail

On Linux, Promtail requires the systemd headers to be installed if Journal support is enabled. To enable Journal support the go build tag flag promtail_journal_enabled should be passed

With Journal support on Ubuntu, run with the following commands:

$ sudo apt install -y libsystemd-dev
$ go build --tags=promtail_journal_enabled ./clients/cmd/promtail

With Journal support on CentOS, run with the following commands:

$ sudo yum install -y systemd-devel
$ go build --tags=promtail_journal_enabled ./clients/cmd/promtail

Otherwise, to build Promtail without Journal support, run go build with CGO disabled:

$ CGO_ENABLED=0 go build ./clients/cmd/promtail

Adopters

Please see ADOPTERS.md for some of the organizations using Loki today. If you would like to add your organization to the list, please open a PR to add it to the list.

License

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

More Repositories

1

grafana

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.
TypeScript
59,679
star
2

k6

A modern load testing tool, using Go and JavaScript - https://k6.io
Go
22,905
star
3

pyroscope

Continuous Profiling Platform. Debug performance issues down to a single line of code
C
9,170
star
4

mimir

Grafana Mimir provides horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.
Go
3,634
star
5

tempo

Grafana Tempo is a high volume, minimal dependency distributed tracing backend.
Go
3,561
star
6

oncall

Developer-friendly incident response with brilliant Slack integration
Python
3,179
star
7

tanka

Flexible, reusable and concise configuration for Kubernetes
Go
2,185
star
8

phlare

๐Ÿ”ฅ horizontally-scalable, highly-available, multi-tenant continuous profiling aggregation system
Go
2,061
star
9

grafana-zabbix

Zabbix plugin for Grafana dashboard
TypeScript
2,011
star
10

helm-charts

Smarty
1,457
star
11

agent

Vendor-neutral programmable observability pipelines.
Go
1,447
star
12

grafonnet-lib

Jsonnet library for generating Grafana dashboard files.
Jsonnet
1,079
star
13

beyla

eBPF-based autoinstrumentation of HTTP and HTTPS services
C
1,032
star
14

grafana-operator

An operator for Grafana that installs and manages Grafana instances, Dashboards and Datasources through Kubernetes/OpenShift CRs
Go
756
star
15

grafana-docker

Grafana docker container
Shell
638
star
16

metrictank

metrics2.0 based, multi-tenant timeseries store for Graphite and friends.
Go
623
star
17

faro-web-sdk

The Grafana Faro Web SDK, part of the Grafana Faro project, is a highly configurable web SDK for real user monitoring (RUM) that instruments browser frontend applications to capture observability signals. Frontend telemetry can then be correlated with backend and infrastructure data for full-stack observability.
TypeScript
623
star
18

grafana-infinity-datasource

CSV, JSON, GraphQL, XML and HTML datasource for grafana.
TypeScript
591
star
19

jsonnet-libs

Grafana Labs' Jsonnet libraries
Jsonnet
516
star
20

simple-json-datasource

Datasource that sends generic http requests to give url
JavaScript
502
star
21

awesome-k6

A curated list of awesome tools, content and projects using k6
493
star
22

k6-operator

An operator for running distributed k6 tests.
Go
486
star
23

carbon-relay-ng

Fast carbon relay+aggregator with admin interfaces for making changes online - production ready
Go
455
star
24

grizzly

A utility for managing Jsonnet dashboards against the Grafana API
Go
416
star
25

terraform-provider-grafana

Terraform Grafana provider
Go
391
star
26

grafana-image-renderer

A Grafana backend plugin that handles rendering of panels & dashboards to PNGs using headless browser (Chromium/Chrome)
TypeScript
335
star
27

dskit

Distributed systems kit
Go
316
star
28

grafana-kiosk

Kiosk Utility for Grafana
Go
314
star
29

xk6-browser

k6 extension that adds support for browser automation and end-to-end web testing via the Chrome Devtools Protocol
Go
308
star
30

worldmap-panel

Worldmap panel plugin for Grafana 3.0 that can be overlaid with circles for data points.
JavaScript
301
star
31

postman-to-k6

Converts Postman collections to k6 script code
JavaScript
286
star
32

grafana-json-datasource

A data source plugin for loading JSON APIs into Grafana.
TypeScript
258
star
33

xk6-dashboard

A k6 extension that makes k6 metrics available on a web-based dashboard.
HTML
256
star
34

k6-learn

JavaScript
255
star
35

k6-template-typescript

Template to use TypeScript with k6
TypeScript
250
star
36

grafonnet

Jsonnet library for generating Grafana dashboards.
Jsonnet
229
star
37

dashboard-linter

A tool to lint Grafana dashboards
Go
187
star
38

thema

A CUE-based framework for portable, evolvable schema
Go
185
star
39

tns

Observability Demo App
Jsonnet
185
star
40

intro-to-mltp

Introduction to Metrics, Logs, Traces and Profiles session companion code.
JavaScript
181
star
41

strava-datasource

Strava datasource for Grafana dashboard
TypeScript
170
star
42

xk6

Build k6 with extensions
Go
169
star
43

github-datasource

Grafana data source plugin using the Github API to retrieve and visualize Github data.
Go
169
star
44

grafana-plugin-sdk-go

A Go SDK for building backend plugins for Grafana
Go
165
star
45

jsonnet-language-server

A Language Server Protocol (LSP) server for Jsonnet (https://jsonnet.org)
Go
154
star
46

django-saml2-auth

Django SAML2 Authentication Made Easy. Easily integrate with SAML2 SSO identity providers like Okta, Azure AD and others.
Python
151
star
47

cortex-tools

If you're using this tool with Grafana Mimir, please switch to "mimirtool" instead: https://github.com/grafana/mimir
Go
150
star
48

piechart-panel

Pie Chart Panel Plugin
JavaScript
150
star
49

grafana-plugin-repository

The plugin repository for plugins that are published on grafana.com.
JavaScript
147
star
50

mqtt-datasource

MQTT Datasource for Grafana allows streaming data from any MQTT broker running either locally or remotely.
Go
143
star
51

xk6-output-prometheus-remote

k6 extension to output real-time test metrics using Prometheus Remote Write.
Go
139
star
52

grafana-plugin-examples

Shell
131
star
53

scribe

A tool for building elaborate CI pipelines using a familiar programming language
Go
123
star
54

kubernetes-diff-logger

Logs updates to Kubernetes Objects for storing and querying with Loki
Go
122
star
55

pyroscope-rs

Pyroscope Profiler for Rust. Profile your Rust applications.
Rust
119
star
56

synthetic-monitoring-agent

Synthetic Monitoring Agent
Go
118
star
57

har-to-k6

JSON config representation of K6 script
JavaScript
114
star
58

faro

Grafana Faro is a project for frontend application observability. It includes a highly configurable web SDK that instruments browser frontend applications to capture observability signals.
113
star
59

google-sheets-datasource

Load Google Sheets in grafana
Go
112
star
60

tutorials

A series of tutorials for helping you make the most out of Grafana.
Makefile
109
star
61

grafana-api-golang-client

Grafana HTTP API Client for Go
Go
105
star
62

synthetic-monitoring-app

Synthetic Monitoring frontend application
TypeScript
103
star
63

scenes

Build Grafana dashboards directly in your Grafana app plugins.
TypeScript
103
star
64

k6-action

k6 is now available as a GitHub Action
JavaScript
101
star
65

clickhouse-datasource

Grafana Plugin for ClickHouse
TypeScript
101
star
66

cuetsy

Experimental CUE->TypeScript exporter
Go
96
star
67

rollout-operator

Kubernetes Rollout Operator
Go
96
star
68

azure-monitor-datasource

Grafana data source for Azure Monitor/Application Insights (deprecated - now included in core Grafana)
TypeScript
92
star
69

dashboard-spec

Go
91
star
70

clock-panel

Clock Panel Plugin for Grafana
TypeScript
88
star
71

grafana-polystat-panel

D3-Based hexagon layout multi-stat panel
TypeScript
86
star
72

docker-otel-lgtm

Dockerfile
82
star
73

k8s-monitoring-helm

Shell
80
star
74

k6-docs

The k6 documentation website.
JavaScript
80
star
75

k6-template-es6

Template using Webpack and Babel to enable ES6 features in k6 tests
JavaScript
77
star
76

cortex-jsonnet

Deprecated: see https://github.com/grafana/mimir/tree/main/operations/mimir instead
Jsonnet
74
star
77

xk6-disruptor

Extension for injecting faults into k6 tests
Go
74
star
78

doom-datasource

Hackathon project
C
71
star
79

tutorial-environment

Environment for tutorial excercises
Go
70
star
80

pyroscope-go

This is the golang client integration for Pyroscope
Go
69
star
81

grafana-ansible-collection

grafana.grafana Ansible collection provides modules and roles for managing various resources on Grafana Cloud and roles to manage and deploy Grafana Agent and Grafana
Python
69
star
82

database-migrator

Code to export grafana.db (sqlite) to MySQL-compatible SQL file, to assist in migration of Grafana data to MySQL-compatible DB.
Shell
67
star
83

mimir-proxies

Proxies to help you ingest your metrics into Grafana Mimir.
Go
65
star
84

pyroscope-java

pyroscope java integration
Java
65
star
85

otel-profiling-go

Open Telemetry integration for Grafana Pyroscope and tracing solutions such as Grafana Tempo, Honeycomb, or Jaeger
Go
65
star
86

memo

easily save grafana annotations from slack mentions and the cli
Go
65
star
87

JPProf

Go Pprof but for Java runtime.
Java
65
star
88

grafana-starter-panel

A starter for Grafana panel plugins
TypeScript
65
star
89

xk6-sql

k6 extension to load test RDBMSs (PostgreSQL, MySQL, MS SQL and SQLite3)
Go
64
star
90

vscode-jsonnet

Full code support (formatting, highlighting, navigation, etc) for Jsonnet
JavaScript
64
star
91

jmeter-to-k6

Converts JMeter .jmx files to k6 JS code
JavaScript
63
star
92

grafana-csv-datasource

A data source for loading CSV data into Grafana.
TypeScript
63
star
93

xk6-distributed-tracing

A k6 extension for distributed tracing.
Go
62
star
94

github-to-es

GitHub Analytics With Elasticsearch And Grafana
JavaScript
54
star
95

grafana-plugin-sdk-rust

Grafana Plugin SDK for Rust
Rust
53
star
96

xk6-kubernetes

Client extension for interacting with Kubernetes clusters from your k6 tests.
Go
52
star
97

regexp

Faster version of the Go regexp package
Go
51
star
98

influxdb-flux-datasource

Grafana datasource plugin for Flux (InfluxDB)
Go
51
star
99

xk6-output-influxdb

k6 extension to output real-time test metrics to an InfluxDB 2.x database.
Go
49
star
100

opcua-datasource

An OPC UA datasource for reading from OPC UA servers (DA/HDA/AE) into Grafana directly
CSS
49
star