weaveworks-experiments / Loki

Loki: Simple, Distributed Tracing

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Loki

gateway
A proxy to buffer and forward metrics, events, and traces.
Stars: ✭ 94 (-25.98%)
Mutual labels:  prometheus, zipkin, distributed-tracing
Grpc By Example Java
A collection of useful/essential gRPC Java Examples
Stars: ✭ 709 (+458.27%)
Mutual labels:  prometheus, distributed-tracing, zipkin
Opencensus Java
A stats collection and distributed tracing framework
Stars: ✭ 640 (+403.94%)
Mutual labels:  prometheus, distributed-tracing, zipkin
Opencensus Go
A stats collection and distributed tracing framework
Stars: ✭ 1,895 (+1392.13%)
Mutual labels:  prometheus, distributed-tracing, zipkin
haystack-docker
Repository with docker-compose files to start Haystack components in sandbox
Stars: ✭ 17 (-86.61%)
Mutual labels:  opentracing, zipkin, distributed-tracing
Brave Opentracing
Bridge between OpenTracing and Brave
Stars: ✭ 64 (-49.61%)
Mutual labels:  distributed-tracing, zipkin, opentracing
Jaeger Php
Jaeger Bindings for PHP OpenTracing API
Stars: ✭ 185 (+45.67%)
Mutual labels:  distributed-tracing, zipkin, opentracing
easeagent
An agent component for the Java system
Stars: ✭ 437 (+244.09%)
Mutual labels:  opentracing, zipkin, distributed-tracing
Zipkin Go Opentracing
OpenTracing Bridge for Zipkin Go
Stars: ✭ 472 (+271.65%)
Mutual labels:  distributed-tracing, zipkin, opentracing
Docker Zipkin
Docker images for OpenZipkin
Stars: ✭ 639 (+403.15%)
Mutual labels:  distributed-tracing, zipkin
Molten
php probe for zipkin and opentracing
Stars: ✭ 740 (+482.68%)
Mutual labels:  zipkin, opentracing
Spring Petclinic Microservices
Distributed version of Spring Petclinic built with Spring Cloud
Stars: ✭ 814 (+540.94%)
Mutual labels:  prometheus, zipkin
Jaeger Client Go
Jaeger Bindings for Go OpenTracing API.
Stars: ✭ 1,035 (+714.96%)
Mutual labels:  distributed-tracing, opentracing
Microservice App
A microservices architecture app powered by golang.
Stars: ✭ 114 (-10.24%)
Mutual labels:  prometheus, opentracing
Jaeger Ui
Web UI for Jaeger
Stars: ✭ 639 (+403.15%)
Mutual labels:  distributed-tracing, opentracing
Core
Package core is a service container that elegantly bootstrap and coordinate twelve-factor apps in Go.
Stars: ✭ 34 (-73.23%)
Mutual labels:  distributed-tracing, opentracing
Zipkin Js
Zipkin instrumentation for Node.js and browsers
Stars: ✭ 489 (+285.04%)
Mutual labels:  distributed-tracing, zipkin
Zipkin Armeria Example
Example project that shows how to use armeria and zipkin together
Stars: ✭ 17 (-86.61%)
Mutual labels:  distributed-tracing, zipkin
Sttp
The Scala HTTP client you always wanted!
Stars: ✭ 1,078 (+748.82%)
Mutual labels:  distributed-tracing, zipkin
Bookstoreapp Distributed Application
Ecommerce project is being developed using Spring Boot Microservices and Spring Cloud (Backend) and React (Frontend). Splitting the Ecommerce functionality into various individual microservices so that they can be distributed, scale really well and make use of resources efficiently.
Stars: ✭ 63 (-50.39%)
Mutual labels:  prometheus, zipkin

Loki: Simple Distributed Tracing

Loki is a distributed tracing system inspired by Zipkin and Prometheus.

  • Pull Based: a central Loki app pull traces from your instrumented applications
  • Service Discover: using Prometheus' Service Discovery frameworks allows Loki to discover your app within many popular orchestrators (Kubernetes, Mesos etc) or service discovery systems (Consul, DNS etc)

Loki consists of:

  • A OpenTracing compatible tracer
  • The Loki app

Internally Loki is really just an opinionated reimplementation of OpenZipkin.

Instrumenting your app

Instrument you go application according to OpenTracing

import (
    "github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc"
    "github.com/weaveworks-experiments/pkg/loki/client"
)

func main() {
    // Create a Loki tracer
    tracer, err := loki.NewTracer(loki.DefaultConfig)

  	// explicitly set our tracer to be the default tracer.
  	opentracing.InitGlobalTracer(tracer)

    // Create an instrumented gRPC server
    s := grpc.NewServer(
        grpc.UnaryInterceptor(
            otgrpc.OpenTracingServerInterceptor(tracer),
        ),
    )

    // Register a http handler for Loki
    http.Handle("/traces", loki.Handler())
    log.Fatal(http.ListenAndServe(":8080", nil))
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].