jaegertracing/jaeger
GitHub: jaegertracing/jaeger
由Uber开源的CNCF毕业项目,用于微服务架构下的分布式链路追踪、故障排查和性能分析。
Stars: 22529 | Forks: 2805
[](https://stand-with-ukraine.pp.ua)
[](#get-in-touch)
[][ci]
[][cov]
[][community-stats]
[][fossa]
[][openssf]
[][openssf-bp]
[][clomonitor]
[][artifacthub]
# Jaeger - 分布式追踪系统
💥💥💥 Jaeger v2 发布了!阅读 [博客文章](https://medium.com/jaegertracing/jaeger-v2-released-09a6033d1b10) 并 [试用它](https://www.jaegertracing.io/docs/latest/getting-started/)。
## 快速开始
使用 Docker 在几秒钟内启动 Jaeger:
```
# 运行 Jaeger all-in-one (包含 UI、collector、query 和 in-memory storage)
docker run --rm --name jaeger \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
jaegertracing/jaeger:latest
# 通过 http://localhost:16686 访问 UI
# 通过 OTLP 发送 traces:gRPC 端口 4317,HTTP 端口 4318
```
有关生产部署和更多选项,请参阅 [入门指南](https://www.jaegertracing.io/docs/latest/getting-started/)。
## 架构
```
graph TD
SDK["OpenTelemetry SDK"] --> |HTTP or gRPC| COLLECTOR
COLLECTOR["Jaeger Collector"] --> STORE[Storage]
COLLECTOR --> |gRPC| PLUGIN[Storage Plugin]
COLLECTOR --> |gRPC/sampling| SDK
PLUGIN --> STORE
QUERY[Jaeger Query Service] --> STORE
QUERY --> |gRPC| PLUGIN
UI[Jaeger UI] --> |HTTP| QUERY
subgraph Application Host
subgraph User Application
SDK
end
end
```
Jaeger 是由 [Uber Technologies](https://eng.uber.com/distributed-tracing/) 创建并捐赠给 [Cloud Native Computing Foundation](https://cncf.io) 的分布式追踪平台。
有关入门、操作详细信息和其他信息,请参阅 Jaeger [文档][doc]。
Jaeger 由 [Cloud Native Computing Foundation](https://cncf.io) (CNCF) 托管,作为第 7 个顶级项目,于 2019 年 10 月毕业。请参阅 CNCF [Jaeger 孵化公告](https://www.cncf.io/blog/2017/09/13/cncf-hosts-jaeger/)和[ Jaeger 毕业公告](https://www.cncf.io/announcement/2019/10/31/cloud-native-computing-foundation-announces-jaeger-graduation/)。
## 参与其中
Jaeger 是一个具有开放治理的开源项目。我们欢迎社区的贡献,也非常希望得到您的帮助来改进和扩展该项目。这里有一些关于[如何参与的想法](https://www.jaegertracing.io/get-involved/)。其中许多甚至不需要任何编码。
## 版本兼容性保证
由于 Jaeger 使用了 [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector/) 中的许多组件,我们尝试在 Jaeger 版本之间保持配置兼容性。有时,由于可用性改进、新功能或依赖项的更改,Jaeger 中的配置选项(或 Jaeger v1 CLI 标志)可能会被弃用。
在这种情况下,引入弃用的开发人员需要遵循[这些指南](./CONTRIBUTING.md#deprecating-cli-flags)。
简而言之,对于已弃用的配置选项,您应该会在文档或发行说明中看到以下消息:
```
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
```
从包含弃用通知的第一个版本开始,将提供至少 **3 个月** 或 **两个次要版本更新**(以较晚者为准)的宽限期,之后已弃用的配置选项_才可_被删除。
例如,考虑这样一个场景:2024 年 9 月 1 日发布的 v2.0.0 包含针对某个配置选项的弃用通知。
该配置选项将保持弃用状态,直到 2024 年 12 月 1 日或 v2.2.0(以较晚者为准),在此之后_可以_移除它。
它保持弃用状态的时间可能会超过上述宽限期。
## Go 版本兼容性保证
Jaeger 项目尝试跟踪当前受支持的 Go 版本,正如 [Go 团队所定义](https://go.dev/doc/devel/release#policy)的那样。
移除对不受支持的 Go 版本的支持不被视为破坏性更改。
从 Go 1.21 版本开始,Go 版本支持将按如下方式更新:
1. 在新的 Go 次要版本 `N` 发布后不久,将更新构建和测试步骤以适应最新的 Go 次要版本。
2. 在新的 Go 次要版本 `N` 发布后不久,将移除对 Go 版本 `N-1` 的支持,版本 `N` 将成为最低要求版本。
注意:所有可导入的代码都已移至内部包,因此无需维护与旧编译器的向后兼容性(以前使用版本 `N-1`)。
## 相关仓库
### 组件
* [UI](https://github.com/jaegertracing/jaeger-ui)
* [数据模型](https://github.com/jaegertracing/jaeger-idl)
### 文档
* 发布版:https://www.jaegertracing.io/docs/
* 源码:https://github.com/jaegertracing/documentation
## 从源码构建
请参阅 [CONTRIBUTING](./CONTRIBUTING.md)。
## 贡献
请参阅 [CONTRIBUTING](./CONTRIBUTING.md)。
### 维护者
成为维护者的规则在 [GOVERNANCE](./GOVERNANCE.md) 文档中定义。
Jaeger 项目的官方维护者列在 [MAINTAINERS](./MAINTAINERS.md) 文件中。
请使用 `@jaegertracing/jaeger-maintainers` 在 issue 或 PR 中标记他们。
[jaegertracing](https://github.com/jaegertracing) 组织下的某些仓库有额外的维护者。
## 项目状态会议
Jaeger 维护者和贡献者定期通过视频会议进行交流。欢迎大家加入,包括最终用户。有关会议详情,请参阅 https://www.jaegertracing.io/get-in-touch/。
## 路线图
请参阅 https://www.jaegertracing.io/docs/roadmap/
## 联系我们
有疑问、建议或 Bug 报告?通过以下渠道联系项目社区:
* [Slack 聊天室 `#jaeger`][slack](首次加入需加入 [CNCF Slack][slack-join])
* [`jaeger-tracing` 邮件组](https://groups.google.com/forum/#!forum/jaeger-tracing)
* GitHub [议题](https://github.com/jaegertracing/jaeger/issues) 和 [讨论](https://github.com/jaegertracing/jaeger/discussions)
## 安全
Jaeger 的第三方安全审计可在 https://github.com/jaegertracing/security-audits 获取。请参阅 [Issue #1718](https://github.com/jaegertracing/jaeger/issues/1718) 了解 Jaeger 中可用安全机制的摘要。
## 采用者
Jaeger 作为一个产品由多个组件组成。我们希望支持不同类型的用户,
无论他们是仅使用我们的检测库还是完整的端到端 Jaeger 安装,
无论是在生产环境中运行还是用于排查开发中的问题。
请参阅 [ADOPTERS.md](./ADOPTERS.md) 了解目前正在使用 Jaeger 的一些组织。
如果您想将您的组织添加到列表中,请评论我们的
[调查议题](https://github.com/jaegertracing/jaeger/issues/207)。
## 许可证
版权所有 (c) The Jaeger Authors。 [Apache 2.0 许可证](./LICENSE)。
标签:API集成, APM, CNCF, Docker, EVTX分析, GET参数, Go, gRPC, Jaeger, OpenTelemetry, Python工具, Ruby工具, web渗透, 分布式追踪, 可观测性, 子域名突变, 安全防御评估, 开源, 性能分析, 指标, 故障排查, 日志, 日志审计, 用户代理, 监控, 请求拦截, 遥测, 链路追踪