{"id":13523950,"url":"https://github.com/kubewharf/kelemetry","last_synced_at":"2025-05-16T18:08:11.186Z","repository":{"id":142602173,"uuid":"613711697","full_name":"kubewharf/kelemetry","owner":"kubewharf","description":"Global control plane tracing for Kubernetes","archived":false,"fork":false,"pushed_at":"2025-05-13T08:12:17.000Z","size":3543,"stargazers_count":269,"open_issues_count":18,"forks_count":27,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-13T09:24:53.394Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kubewharf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-14T05:45:32.000Z","updated_at":"2025-05-03T15:16:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"f8e8f327-1a9e-4bc8-85f4-9d41dd5387c6","html_url":"https://github.com/kubewharf/kelemetry","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubewharf%2Fkelemetry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubewharf%2Fkelemetry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubewharf%2Fkelemetry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubewharf%2Fkelemetry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubewharf","download_url":"https://codeload.github.com/kubewharf/kelemetry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254582907,"owners_count":22095518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:01:05.435Z","updated_at":"2025-05-16T18:08:11.125Z","avatar_url":"https://github.com/kubewharf.png","language":"Go","funding_links":[],"categories":["Go","Observability \u0026 Monitoring","K8S-Tools"],"sub_categories":[],"readme":"# Kelemetry: Global control plane tracing for Kubernetes\n\n## Overview\n\nKelemetry aggregates various data sources including\nKubernetes events, audit log, informers\ninto the form of traditional tracing,\nenabling visualization through Jaeger UI and automatic analysis.\n\n![](images/trace-view.png)\n\n## Motivation\n\nAs a distributed asynchronous declarative API,\nKubernetes suffers from lower explainability compared to traditional RPC-based services\nas there is no clear causal relationship between events;\na change in one object indirectly effects changes in other objects,\nposing challenges to understanding and troubleshooting the system.\nPast attempts of tracing in Kubernetes were either limited to single components\nor excessively intrusive to individual components.\n\nKelemetry addresses the problem by associating events of related objects into the same trace.\nBy recognizing object relations such as OwnerReferences,\nrelated events can be visualized together without prior domain-specific knowledge.\nThe behavior of various components are recorded on the same timeline\nto reconstruct the causal hierarchy of the actual events.\n\n## Features\n\n- [x] Collect audit logs\n- [x] Collect controller events (i.e. the \"Events\" section in `kubectl describe`)\n- [x] Record object diff associated with audit logs\n- [x] Connect objects based on owner references\n- [x] Collect data from custom sources (Plugin API)\n- [x] Connect objects with custom rules with multi-cluster support (Plugin API)\n- [x] Navigate trace with Jaeger UI and API\n- [x] Scalable for multiple large clusters\n- [x] Construct tailormade metrics based on audit logs\n\n```mermaid\ngraph TB\n    kelemetry[Kelemetry]\n    audit-log[Audit log] --\u003e kelemetry\n    event[Event] --\u003e kelemetry\n    watch[Object watch] --\u003e kelemetry\n    kelemetry ---\u003e |OpenTelemetry protocol| storage[Jaeger storage]\n    plugin[Kelemetry storage plugin] --\u003e storage\n    user[User] --\u003e ui[Jaeger UI] --\u003e plugin\n```\n\n## Getting started\n\n- [Deployment](./docs/DEPLOY.md) for production\n- [Quickstart](./docs/QUICK_START.md) for trying out Kelemetry with a test cluster\n- [Development setup](./docs/DEV.md) for developing Kelemetry\n\n## Contribution/Development\n\n- [Contributing guidelines](CONTRIBUTING.md)\n- [Developer manual](./docs/DEV.md)\n- [Security policy](SECURITY.md)\n- [User guide](./docs/USER_GUIDE.md)\n\n## Code of Conduct\n\nSee [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## Community\n\n- [Discussions](https://github.com/kubewharf/kelemetry/discussions)\n\n## License\nKelemetry is licensed under [Apache License 2.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubewharf%2Fkelemetry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubewharf%2Fkelemetry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubewharf%2Fkelemetry/lists"}