速查列表:Apache SkyWalking OAL 的 域(Scopes)
OAL简介
在流模式(Streaming mode)下,SkyWalking 提供了 观测分析语言(Observability Analysis Language,OAL) 来分析流入的数据。
OAL脚本现在位于/config文件夹,用户可以简单地改变和重新启动服务器,使其有效。
但是,OAL脚本仍然是编译语言,OAL运行时动态生成Java代码。可以在系统环境上设置SW_OAL_ENGINE_DEBUG=Y,查看生成了哪些类。
作用域(Scope)
作用域包括全局(All)、服务(Service)、服务实例(Service Instance)、端点(Endpoint)、服务关系(Service Relation)、服务实例关系(Service Instance Relation)、端点关系(Endpoint Relation)。
接下来我来详细了解一下每个作用域。
文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。
全局(All)
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示每个请求对应的服务名称 | string | |
| serviceInstanceName | 表示引用的服务实例名称 | string | |
| endpoint | 表示每个请求的端点名称 | string | |
| latency | 表示每个请求的耗时 | int(单位:毫秒) | |
| status | 表示请求成功还是失败的状态 | bool(true 表示成功) | |
| responseCode | 如果该请求是 HTTP 请求, 则表示 HTTP 响应的状态码. 如 200, 404, 302 | int | |
| type | 表示请求类型,例如: Database, HTTP, RPC, gRPC | enum |
服务(Service)
按照服务计算每个请求的度量数据。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示服务的名称 | string | |
| nodeType | 表示服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| serviceInstanceName | 表示引用的服务实例名称 | string | |
| endpointName | 表示端点的名称, 如:HTTP URI的完整路径 | string | |
| latency | 表示每个请求的耗时 | int | |
| status | 表示请求成功还是失败的状态 | bool(true 表示成功) | |
| responseCode | 如果该请求是 HTTP 请求, 表示 HTTP 请求的响应码 | int | |
| type | 表示每个请求的类型, 如: Database, HTTP, RPC, gRPC | enum |
服务实例(Service Instance)
按照服务实例计算每个请求的度量数据。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示服务实例名称。现在原生探针使用 uuid@ipv4 作为服务实例名称, 当需要在聚合中设置过滤器(Filter)时,这个毫无用处。 |
string | |
| nodeType | 表示服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| serviceName | 表示服务的名称 | string | |
| endpointName | 表示端点的名称, 如 HTTP URI 的完整路径. | string | |
| latency | 表示每个请求的耗时 | int | |
| status | 表示请求成功还是失败的状态 | bool(true 表示成功) | |
| responseCode | 如果该请求是 HTTP 请求, 则表示 HTTP 响应的状态码. 如 200, 404, 302. | int | |
| type | 表示请求类型,例如: Database, HTTP, RPC, gRPC | enum |
文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。
服务实例(Service Instance)二级作用域
当服务实例是一个 JVM 并且通过 javaagent 收集时,计算服务实例的度量指标。
1. ServiceInstanceJVMCPU
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示服务实例名称。现在原生探针使用 uuid@ipv4 作为服务实例名称, 当需要在聚合中设置过滤器(Filter)时,这个毫无用处。 |
string | |
| serviceName | 表示服务的名称 | string | |
| usePercent | 表示 CPU 耗时百分比 | double |
2. ServiceInstanceJVMMemory
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示服务实例名称。 现在原生探针使用 uuid@ipv4 作为服务实例名称, 当需要在聚合中设置过滤器(Filter)时,这个毫无用处。 |
string | |
| serviceName | 表示服务的名称 | string | |
| heapStatus | 表示该指标是否是堆的指标 | bool | |
| init | 参考 JVM 文档 | long | |
| max | 参考 JVM 文档 | long | |
| used | 参考 JVM 文档 | long | |
| committed | 参考 JVM 文档 | long |
3. ServiceInstanceJVMMemoryPool
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示服务实例名称。现在原生探针使用 uuid@ipv4 作为服务实例名称, 当需要在聚合中设置过滤器(Filter)时,这个毫无用处。 |
string | |
| serviceName | 表示服务的名称 | string | |
| poolType | 根据不同的 JVM 版本, 可能包括 CODE_CACHE_USAGE, NEWGEN_USAGE, OLDGEN_USAGE, SURVIVOR_USAGE, PERMGEN_USAGE, METASPACE_USAGE | enum | |
| init | 参考 JVM 文档 | long | |
| max | 参考 JVM 文档 | long | |
| used | 参考 JVM 文档 | long | |
| committed | 参考 JVM 文档 | long |
文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。
4. ServiceInstanceJVMGC
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示服务实例名称。现在原生探针使用 uuid@ipv4 作为服务实例名称, 当需要在聚合中设置过滤器(Filter)时,这个毫无用处。 |
string | |
| serviceName | 表示服务的名称 | string | |
| phrase | NEW/OLD | Enum | |
| time | GC 耗时 | long | |
| count | GC 次数 | long |
5. ServiceInstanceJVMThread
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示服务实例名称。现在原生探针使用 uuid@ipv4 作为服务实例名称, 当需要在聚合中设置过滤器(Filter)时,这个毫无用处。 |
string | |
| serviceName | 表示服务的名称 | string | |
| liveCount | 表示活跃线程的当前数量 | int | |
| daemonCount | 表示当前守护进程线程的数量 | int | |
| peakCount | 表示当前峰值线程数 | int |
端点(Endpoint)
计算服务中每个端点请求的度量指标。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示端点的名称, 如 HTTP URI 的完整路径. | string | |
| nodeType | 表示服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| serviceName | 表示服务的名称 | string | |
| serviceInstanceName | 表示引用的服务实例 id 的名称. | string | |
| latency | 表示每个请求的耗时 | int | |
| status | 表示请求成功还是失败的状态 | bool(true 表示成功) | |
| responseCode | 如果该请求是 HTTP 请求, 则表示 HTTP 响应的状态码,如:200, 404, 302. | int | |
| type | 表示请求类型,例如: Database, HTTP, RPC, gRPC | enum |
服务关系(Service Relation)
计算服务与服务之间每个请求的度量指标。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| sourceServiceName | 表示源服务的名称 | string | |
| sourceServiceNodeType | 表示源服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| sourceServiceInstanceName | 表示源服务实例名称 | string | |
| destServiceName | 表示目标服务的名称 | string | |
| destServiceNodeType | 表示目标服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| destServiceInstanceName | 表示目标服务实例名称 | string | |
| endpoint | 表示本次调用中使用的端点 | string | |
| componentId | 表示本次调用中使用到的组件 ID | 是 | string |
| latency | 表示每个请求的耗时 | int | |
| status | 表示请求成功还是失败的状态 | bool(true 表示成功) | |
| responseCode | 如果该请求是 HTTP 请求, 则表示 HTTP 响应的状态码. 如 200, 404, 302. | int | |
| type | 表示请求类型,例如: Database, HTTP, RPC, gRPC | enum | |
| detectPoint | 本地请求探测点位置,如:client, server, proxy. | 是 | enum |
| tlsMode | 表示源服务和目标服务之间的TLS模式,如:service_relation_mtls_cpm = from(ServiceRelation.*).filter(tlsMode == "mTLS").cpm() |
string |
服务实例关系(Service Instance Relation)
计算服务实例与服务实例之间每个请求的度量指标。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| sourceServiceName | 表示源服务的名称 | string | |
| sourceServiceNodeType | 表示源服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| sourceServiceInstanceName | 表示源服务实例名称 | string | |
| destServiceName | 表示目标服务的名称 | ||
| destServiceNodeType | 表示目标服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| destServiceInstanceName | 表示目标服务实例名称 | string | |
| endpoint | 表示本次调用中使用的端点 | string | |
| componentId | 表示本次调用中使用到的组件 ID | 是 | string |
| latency | 表示每个请求的耗时 | int | |
| status | 表示请求成功还是失败的状态 | bool(true 表示成功) | |
| responseCode | 如果该请求是 HTTP 请求, 则表示 HTTP 响应的状态码. 如 200, 404, 302. | int | |
| type | 表示请求类型,例如: Database, HTTP, RPC, gRPC | enum | |
| detectPoint | 本地请求探测点位置,如:client, server, proxy. | 是 | enum |
| tlsMode | 表示源服务和目标服务之间的TLS模式,如:service_relation_mtls_cpm = from(ServiceRelation.*).filter(tlsMode == "mTLS").cpm() |
string |
文章持续更新,微信搜索「万猫学社」第一时间阅读,关注后回复「电子书」,免费获取12本Java必读技术书籍。
端点关系(Endpoint Relation)
计算一个端点和另一个端点之间的依赖关系的度量数据。这种关系很难检测,也依赖于跟踪库来传播上一个端点。
所以端点关系范围聚合,仅仅在使用 SkyWalking 原生探针进行追踪的情况下才有效,包括自动打点探针(如 Java, .NET),
OpenCensus SkyWalking exporter以及其他传播追踪上下文的实现.
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| endpoint | 表示父级端点名称 | string | |
| serviceName | 表示父级端点的服务名称 | string | |
| serviceNodeType | 表示父级端点的服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | enum | |
| childEndpoint | 表示子父级端点名称 | string | |
| childServiceName | 表示子级端点的服务名称 | string | |
| childServiceNodeType | 表示子级端点的服务节点或网络地址的类型,如:Normal, Database, MQ, Cache | string | |
| childServiceInstanceName | 表示子级端点的服务实例名称 | string | |
| rpcLatency | 表示RPC请求的耗时,排除了父级端点自身的耗时 | int | |
| componentId | 表示此调用中使用的组件ID | 是 | string |
| status | 表示请求成功还是失败的状态 | bool(true 表示成功) | |
| responseCode | 如果该请求是 HTTP 请求,则表示 HTTP 响应的状态码 | int | |
| type | 表示请求类型,例如: Database, HTTP, RPC, gRPC | enum | |
| detectPoint | 本地请求探测点位置,如:client, server, proxy. | 是 | enum |
浏览器传输(BrowserAppTraffic)
计算浏览器应用程序的每个请求的度量数据。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示每个请求的浏览器应用程序名称 | string | |
| count | 表示请求数,固定为1 | int | |
| trafficCategory | 表示传输类别,如:NORMAL, FIRST_ERROR, ERROR | enum | |
| errorCategory | 代表错误类别,如:AJAX, RESOURCE, VUE, PROMISE, UNKNOWN | enum |
浏览器单一版本传输(BrowserAppSingleVersionTraffic)
计算浏览器应用程序中浏览器单一版本的每个请求的度量数据。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示每个请求的单一版本名 | string | |
| serviceName | 表示浏览器应用程序的名称 | string | |
| count | 表示请求数,固定为1 | int | |
| trafficCategory | 表示传输类别,如:NORMAL, FIRST_ERROR, ERROR | enum | |
| errorCategory | 代表错误类别,如:AJAX, RESOURCE, VUE, PROMISE, UNKNOWN | enum |
浏览器页面传输(BrowserAppPageTraffic)
计算浏览器应用程序中页面的每个请求的度量数据。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示每个请求的页面名称 | string | |
| serviceName | 表示浏览器应用程序的名称 | string | |
| count | 表示请求数,固定为1 | int | |
| trafficCategory | 表示传输类别,如:NORMAL, FIRST_ERROR, ERROR | enum | |
| errorCategory | 代表错误类别,如:AJAX, RESOURCE, VUE, PROMISE, UNKNOWN | enum |
浏览器页面耗时(BrowserAppPagePerf)
计算浏览器应用程序中页面的每个请求耗时的度量数据。
| 名称 | 备注 | 是否分组键 | 数据类型 |
|---|---|---|---|
| name | 表示每个请求的页面名称 | string | |
| serviceName | 表示浏览器应用程序的名称 | string | |
| redirectTime | 表示重定向的耗时 | int(单位:毫秒) | |
| dnsTime | 表示DNS查询的耗时 | int(单位:毫秒) | |
| ttfbTime | 发出页面请求到接收到应答数据第一个字节所花费的耗时 | int(单位:毫秒) | |
| tcpTime | TCP连接的耗时 | int(单位:毫秒) | |
| transTime | 内容传输的耗时 | int(单位:毫秒) | |
| domAnalysisTime | DOM结构分析的耗时 | int(单位:毫秒) | |
| fptTime | 首次渲染时间/白屏时间 | int(单位:毫秒) | |
| domReadyTime | DOM结构准备的耗时 | int(单位:毫秒) | |
| loadPageTime | 整个页面加载时间 | int(in ms) | |
| resTime | 页面中同步加载资源的耗时 | int(单位:毫秒) | |
| sslTime | 仅对HTTPS有效 | int(单位:毫秒) | |
| ttlTime | 首次交互时间 | int(单位:毫秒) | |
| firstPackTime | 第一个包的时间 | int(单位:毫秒) | |
| fmpTime | 首次有效绘制时间 | int(单位:毫秒) |
注:本文以SkyWalking的8.2.0版本为例进行介绍,如果版本不同会略有差异。
微信公众号:万猫学社
微信扫描二维码
关注后回复「电子书」
获取12本Java必读技术书籍

速查列表:Apache SkyWalking OAL 的 域(Scopes)的更多相关文章
- HTML速查列表
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 框架、颜色、颜色名、脚本、字符实体、URL、速查列表
一. 1.<iframe></iframe>标签设置内联框架(一个内联框架用来当前HTML文档嵌入另一个文档).[语法:<iframe src="URL&quo ...
- HTML 速查列表
HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </head& ...
- 吴裕雄--天生自然HTML学习笔记:HTML 速查列表
HTML 基本文档 <!DOCTYPE html> <html> <head> <title>文档标题</title> </head& ...
- CSS速查列表-3-(font)字体
CSS Fonts(字体) CSS字体属性定义 1.字体:font-family 属性设置文本的字体系列.p{font-family:"Times New Roman", Time ...
- CSS速查列表-2-(text)文本
CSS的Text属性可以改变页面中 1.文本的颜色(color). 2.字符间距(word-spacing ) 属性可以改变字(单词)之间的标准间隔.其默认值 normal 与设置值为 0 是一样的 ...
- CSS速查列表-1-(background)背景
CSS 背景 CSS 属性定义背景效果: background-color background-image background-repeat background-attachment backg ...
- html 速查表
HTML 速查列表 HTML 速查列表. 你可以打印它,以备日常使用. HTML 基本文档 <!DOCTYPE html> <html> <head> <ti ...
- Standard C 语言标准函数库速查(彩色的函数列表,十分清楚)
Standard C 语言标准函数库速查 (Cheat Sheet) wcstombs 函数说明 #include <stdlib.h> size_t mbstowcs(wchar_t * ...
随机推荐
- 基于MD5+RSA算法实现接口调用防扯皮级鉴权
概述 最近项目中需要对第三方开发接口调用,考虑了一下,准备采用MD5+RSA算对请求数据进行签名,来达到请求鉴权,过滤非法请求的目标. 数字签名采用MD5+RSA算法实现.RSA私钥要严格保密并提供安 ...
- C# JSON学习之序列化与反序列化
在我的个人计划中,学习制作c#下的曲线平台属于下半年的重点.关于前后端的数据传递-json数据的学习很有必要,通过一个例子来加深自己的理解. 新建一个console控制台程序,通过导入NewstonS ...
- 【LeetCode】860. 柠檬水找零
860. 柠檬水找零 知识点:贪心 题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 ...
- STP生成树的一些笔记
一.STP概述 1.1.STP简介 交换网络环路主要由广播风暴.多帧复制和MAC地址表紊乱造成. 广播风暴:一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播:由于网络拓扑的设计和连 ...
- 【笔记】初探KNN算法(1)
KNN算法(1) 全称是K Nearest Neighbors k近邻算法: 思想简单 需要的数学知识很少 效果不错 可以解释机器学习算法使用过程中的很多细节问题 更加完整的刻画机器学习应用的流程 其 ...
- Redis内存碎片
内存碎片大家都已经耳熟能详了.当Redis数据删除后,Redis释放的内存空间可能不是连续的,这就会带来一个问题,这些不连续的内存空间有可能处于闲置的,但是redis缺无法来保存数据,这就会减低Red ...
- Sqli-Labs less23-24
less-23 23关和第1关很像,但是观察代码发现他对--+和#都进行了转义,不能再用这种方式注释 可以用新的注释符:;%00或者and和or语句进行闭合 语句:http://192.168.5.1 ...
- FTP三种访问模式
FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露. vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数 ...
- Do you want to continue? [Y/n] Abort.
当出现这个后命令终止,无法选择 y这时候 ,在输入命令时候提前加入 -y udo apt install sysv-rc-conf -y
- 干货!4大实验项目,深度解析Tag在可观测性领域的最佳实践!
Opentelemetry协议,是CNCF(Cloud Native Computing Foundation-云原生计算基金会)定义的最新一代的可观测规范(目前还在孵化中),该规范定义了可观测性的三 ...