Git Product home page Git Product logo

shuang-shuang / tracing-framework Goto Github PK

View Code? Open in Web Editor NEW

This project forked from brownsys/tracing-framework

0.0 3.0 0.0 4.98 MB

Projects related to end-to-end tracing and causal metadata propagation, such as X-Trace, Retro, and Pivot Tracing

Home Page: http://brownsys.github.io/tracing-framework

License: BSD 3-Clause "New" or "Revised" License

Java 65.93% AspectJ 3.21% Protocol Buffer 1.02% C 0.10% Shell 0.05% Batchfile 0.02% HTML 4.31% JavaScript 18.93% CSS 0.79% Scala 1.32% Perl 2.04% Ruby 2.29%

tracing-framework's Introduction

Brown University Tracing Framework

Welcome to the Brown University Tracing Framework repository. This repository contains multiple projects from the Brown University systems research group, such as X-Trace, Retro, and Pivot Tracing.

Full documentation is available at https://brownsys.github.io/tracing-framework

Getting Started

Head over to the tutorials section to begin!

Projects Overview

The tracing framework comprises four main projects:

Tracing Plane is the underlying instrumentation library that the other projects are built on. The Tracing Plane provides a generic end-to-end metadata propagation primitive called Baggage, that lets you dynamically propagate key-value pairs along the execution path of a request. Baggage provides a primitive similar to thread local variables, but instead at the granularity of a request, as it traverses process, machine, and application boundaries.

Pivot Tracing is a dynamic monitoring framework for distributed systems. Users can write high-level monitoring queries that are compiled down into instrumentation and automatically installed into live, running systems. Pivot Tracing uses the Tracing Plane's Baggage primitive for correlating statistics from multiple places in the system.

X-Trace is a distributed causal logging framework. Instead of logging to per-process and per-machine files, X-Trace collects logged messages centrally. X-Trace uses the Tracing Plane's Baggage primitive to pass identifiers through the system, enabling causally related logging statements to be tied together. X-Trace can automatically hook in to existing log4j/commons loggers.

Retro is a fine-grained resource consumption, attribution, and actuation library. Retro instruments both system- and application-level resources, such as disk, network, cpu, locks, and queues. Retro aggregates consumption statistics, broken down according to the high-level tenant consuming the resouce. Retro provides hooks for throttling the requests of individual tenants. Retro reports measurements globally, enabling centralized resource management policies that react to aggressive resource consumption by throttling the responsible tenants. Retro uses the Tracing Plane's Baggage primitive to propagate tenant identifiers.

Instrumented Systems

These projects are all instrumentation libraries. They are intended for use with a new or existing system. We also have some pre-instrumented forks of some well known systems:

[Note: we are currently porting instrumentation for these systems to the latest versions for release. Check back soon]

Note: This documentation is a work in progress. For questions, please use the pivot-tracing-users Google group.

tracing-framework's People

Contributors

jonathanmace avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.