probe-introduction-cn.md 2.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
## 探测器介绍
在SkyWalking中,探测器代表探针或者被集成到目标系统的SDK库以此负责收集包括跟踪和度量在内的遥测数据。
基于目标系统的技术堆栈, 探头可以使用很多不同的方式来做。但它们的最终效果应该是一样的,那就是收集和重新格式化数据, 然后发送到后端。

大体上看,SkyWalking中有大致三大类型的探测器。
- **基于语言的原生探针**. 这种类型的探针运行在目标服务中, 就像用户代码的一部分。 如SkyWalking的Java探针,
通过`-javaagent`参数指令在运行时增强代码,`增强(manipulate)`意味着改变和注入到用户的代码。
另外一种则是由️目标类库提供的一些钩子(hook)或者拦截等机制。因此,你会发现,这些方法都是基于语言和类库的。

- **服务网格探测器**. 服务网格探测器将从服务网格中的控制面板(control panel)或者代理(proxy)等sidecar中收集数据。
在过去,代理(proxy)只是一个集群的入口,但是现在通过服务网格和sidecar我们可以在此基础上进行观测。

- **第三方埋点类库**. SkyWalking接收其他主流的埋点类库的数据格式。SkyWalking后端会分析并将这些追踪或者指标数据转换成SkyWalking支持的格式。
这些特性会在支持Zipkin span数据的时候提供。查看[针对其他追踪器的接收器](../setup/backend/backend-receivers.md)了解相关信息。

没有必要同时使用**基于语言的原生探针****服务网格探测器**,因为它们都是收集指标数据。
这导致的结果就是, 你的系统承受了两次载荷, 因此分析数字将会翻倍。

这里有几种推荐的使用方式:
1. 仅使用**基于语言的原生探针**
1. 仅使用**第三方埋点类库**,类似Zipkin生态系统
1. 仅使用**服务网格探测器**
1.**基于语言的原生探针**处于跟踪状态的基础上使用**服务网格探测器**或者**第三方埋点类库**(推荐使用)

另外,举例说明什么是**处于跟踪状态**

默认情况下,**基于语言的原生探针****第三方埋点类库**都会发送分布式追踪数据到后端,后端会分析并聚合这些数据。
**处于跟踪状态**则意味着后端认为只需保存它们这些比如日志的追踪,并在跟踪和指标之间建立链接,比如`这些追踪属于哪个服务和端点?`

## 下一步是什么?
-[服务自动埋点](service-agent-cn.md)[Manual埋点SDK](manual-sdk-cn.md)[Service Mesh探测器](service-mesh-probe-cn.md) 
[Zipkin接收器](../setup/backend/backend-receivers.md)了解更多。
- 在理解探测器之后,可以查看[后端总览](backend-overview-cn.md)来理解分析和存储。