Giter Club home page Giter Club logo

kelemetry's Introduction

Kelemetry: Global control plane tracing for Kubernetes

Overview

Kelemetry aggregates various data sources including Kubernetes events, audit log, informers into the form of traditional tracing, enabling visualization through Jaeger UI and automatic analysis.

Motivation

As a distributed asynchronous declarative API, Kubernetes suffers from lower explainability compared to traditional RPC-based services as there is no clear causal relationship between events; a change in one object indirectly effects changes in other objects, posing challenges to understanding and troubleshooting the system. Past attempts of tracing in Kubernetes were either limited to single components or excessively intrusive to individual components.

Kelemetry addresses the problem by associating events of related objects into the same trace. By recognizing object relations such as OwnerReferences, related events can be visualized together without prior domain-specific knowledge. The behavior of various components are recorded on the same timeline to reconstruct the causal hierarchy of the actual events.

Features

  • Collect audit logs
  • Collect controller events (i.e. the "Events" section in kubectl describe)
  • Record object diff associated with audit logs
  • Connect objects based on owner references
  • Collect data from custom sources (Plugin API)
  • Connect objects with custom rules with multi-cluster support (Plugin API)
  • Navigate trace with Jaeger UI and API
  • Scalable for multiple large clusters
graph TB
    kelemetry[Kelemetry]
    audit-log[Audit log] --> kelemetry
    event[Event] --> kelemetry
    watch[Object watch] --> kelemetry
    kelemetry ---> |OpenTelemetry protocol| storage[Jaeger storage]
    plugin[Kelemetry storage plugin] --> storage
    user[User] --> ui[Jaeger UI] --> plugin
Loading

Getting started

Contribution/Development

Code of Conduct

See Code of Conduct.

Community

License

Kelemetry is licensed under Apache License 2.0.

kelemetry's People

Contributors

sof3 avatar dependabot[bot] avatar xuqingyun avatar

Watchers

 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.