Tetrate万凯:SkyWalking MAL的监控虚拟机和Kubernetes实践

嘉宾 | 万凯   整理 | 朱宝

出品 | CSDN云原生

2022年5月10日,在CSDN云原生系列在线峰会第4期“Apache SkyWalking峰会”上,Tetrate工程师、Apache SkyWalking PMC成员万凯介绍了Apache SkyWalking的仪表分析语言MAL,并结合具体场景,分享了监控虚拟机和Kubernetes的实践。

要点简述:

  • SkyWalking可观测性分析平台涵盖三个可观察性领域,包括跟踪(Tracing)、指标(Metrics)和日志记录(Logging),对应三种语言可观测性分析语言(OAL)、仪表分析语言(MAL)和日志分析语言(LAL)。

  • 仪表分析语言(MAL)负责原生仪表数据的度量计算,采用稳定且广泛使用的度量系统

戳👇观看万凯分享视频

包罗万象SkyWalking,涵盖了三个可观察性领域

什么是仪表分析语言

面向三个可观察性领域,可观测性分析语言(OAL)用于处理SkyWalking原生追踪和服务网格数据;仪表分析语言(MAL)负责原生仪表数据的度量计算,采用稳定且广泛使用的度量系统,例如Prometheus、OpenTelemetry;日志分析语言(LAL)则专注日志内容处理,并与仪表分析语言协作。

仪表分析语言允许用户在可观测性分析平台(OAP)流式系统中分析和聚合仪表数据,在 SkyWalking中应用场景很多,包括:

  • 服务网格数据平面度量分析 Service Mesh Data Plane Metrics Analysis(Envoy)

  • 服务网格控制平面度量分析Service Mesh Control Plane Metrics Analysis(Istio)

  • SkyWalking OAP服务器自度量分析SkyWalking OAP Server self Metrics Analysis

  • SkyWalking卫星度量分析SkyWalking Satellite Metrics Analysis

  • 线程池度量分析ThreadPool Metrics Analysis

  • 数据源度量分析DataSource Metrics Analysis

  • Spring Sleuth度量分析Spring Sleuth Metrics Analysis

  • 日志提取/生成度量分析Logs extracts / generates Metrics Analysis

  • 续集匿迹(Linux)度量分析VMs(Linux)Metrics Analysis

  • K8s度量分析Kubernetes Metrics Analysis

基于MAL分析的数据流

上图是基于仪表分析语言分析的数据流,左边是监控分析的对象,这些监控对象会提供各自不同数据格式的指标。

这么多不同格式的数据,SkyWalking通过可观测性分析平台插件(OAP Plugins)里不同的接收器(Receiver)进行接收并处理成统一的指标格式,再送入仪表分析语言引擎(MAL Engine)进行规则计算分析,最后将分析结果发送给仪表系统(Meter System)。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,这是一个关于日期类、人员类和学生类的实验题目。下面是具体的实现过程: 首先,我们需要构造日期类。代码如下: ```python class Date: def __init__(self, year, month, day): self.__year = year self.__month = month self.__day = day def get_year(self): return self.__year def get_month(self): return self.__month def get_day(self): return self.__day def set_year(self, year): self.__year = year def set_month(self, month): self.__month = month def set_day(self, day): self.__day = day def __str__(self): return str(self.__year) + '年' + str(self.__month) + '月' + str(self.__day) + '日' ``` 上述代码中,我们定义了 Date 类,并且包含了年、月、日等私有属性。构造函数 __init__() 用于初始化这些私有属性,get_year()、get_month()、get_day()、set_year()、set_month() 和 set_day() 等公有函数用于操作这些私有属性。__str__() 函数用于将该对象转换成字符串的转换函数,可以通过强制类型转换成 string 类。 接下来,我们需要构造人员类。代码如下: ```python class Person: def __init__(self, name, birthdate): self.__name = name self.__birthdate = birthdate def get_name(self): return self.__name def get_birthdate(self): return self.__birthdate def set_name(self, name): self.__name = name def set_birthdate(self, birthdate): self.__birthdate = birthdate ``` 上述代码中,我们定义了 Person 类,并且包含了姓名、出生日期等私有属性。构造函数 __init__() 用于初始化这些私有属性,get_name()、get_birthdate()、set_name() 和 set_birthdate() 等公有函数用于操作这些私有属性。 最后,我们需要构造学生类。代码如下: ```python class Student(Person): def __init__(self, name, birthdate, student_id, major): super().__init__(name, birthdate) self.__student_id = student_id self.__major = major def get_student_id(self): return self.__student_id def get_major(self): return self.__major def set_student_id(self, student_id): self.__student_id = student_id def set_major(self, major): self.__major = major ``` 上述代码中,我们定义了 Student 类,并且从 Person 类派生而来。除了继承 Person 类中的姓名和出生日期等私有属性外,还包括了学号和专业私有属性。构造函数 __init__() 中,我们使用 super() 函数调用父类的构造函数,从而初始化 Person 类中的私有属性。get_student_id()、get_major()、set_student_id() 和 set_major() 等公有函数用于操作学号和专业私有属性。 至此,日期类、人员类和学生类的实现就完成了。我们可以通过以下代码进行测试: ```python if __name__ == '__main__': date = Date(2019, 3, 26) print(str(date)) person = Person('张三', date) print(person.get_name()) print(str(person.get_birthdate())) student = Student('李四', date, '001', '计算机科学') print(student.get_name()) print(str(student.get_birthdate())) print(student.get_student_id()) print(student.get_major()) ``` 上述代码中,我们首先创建了一个 Date 类的对象 date,并且将其转换成字符串。然后,我们创建了一个 Person 类的对象 person,并且获取了其姓名和出生日期等私有属性。最后,我们创建了一个 Student 类的对象 student,获取了其姓名、出生日期、学号和专业等私有属性。运行以上代码,将得到如下输出结果: ``` 2019年3月26日 张三 2019年3月26日 李四 2019年3月26日 001 计算机科学 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值