开源软件供应链点亮计划2024,任务列表

中文版本

项目题目

项目描述

难度

导师名称 / 联系方式

项目产出要求

项目技术要求/成长

相关仓库地址

报名学生/候选人

支持JFR性能剖析

在SkyWalking Java中集成JFR性能剖析功能

  • 在SkyWalking Java项目中通过集成async-profiler实现JFR剖析功能,并和OAP接口进行对接
  • 在SkyWalking OAP项目中设计并实现JFR性能剖析任务的API和相应处理逻辑,包括任务创建/持久化/下发以及Agent任务结果上传解析等
  • 在SkyWalking UI中增加JFR性能剖析结果的展示:推荐以火焰图形式显示
进阶

陆家靖 /

lujiajing@apache.org

完成JFR和SkyWalking Java Agent的集成,在OAP完成性能分析,最后呈现到UI

Java

(UI部分需要前端基础)


完善SkyWalking Go的toolkit

在SkyWalking Go的toolkit中支持完整trace, log和meter API

  • Trace API: 参考Java版本Toolkit,可以在span中增加debug,info,error级别event
  • Meter API: 增加Counter,Gauge以及Histogram类型指标的API以供用户使用
  • Log API:目前仅支持logrus和zap框架,需要新增用户可以自行调用API以上报日志内容
进阶刘晗 / liuhan@apache.org完成SkyWalking Go的toolkit开发,最终利用e2e完成自动化功能测试Go
支持自定义插入/更新触发器

目前,BanyanDB缺乏通用的行数据插入/更新触发器。为应对采样聚合(minute->hour, minute→day)计算从OAP向BanyanDB的迁移,现需要BanyanDB支持通用行数据触发器功能。该功能除支持数据聚合计算外,同时需要将目前的TopN估算流程迁移到通用触发器中。

https://github.com/apache/skywalking/issues/8721

进阶高洪涛/hanahmily@apache.org

输出代码

测试用例

编写相关文档

Gohttps://github.com/apache/skywalking-banyandb
支持数据聚合

目前,BanyanDB只是接受OAP发送来的metric数据。这些数据是经过OAP的L1到L2层聚合计算而得出的。此过程需要消耗OAP的带宽和计算资源。在该任务中,BanyanDB需要使用代码生产技术,将OAP中的聚合函数转换为go语言原生函数。从而达到帮助OAP释放聚合计算的压力,进而去掉L2计算层。https://github.com/apache/skywalking/issues/8720

进阶吴晟/wusheng@apache.org

输出代码

测试用例

编写相关文档

Gohttps://github.com/apache/skywalking-banyandb
SWCK 支持注入 skywalking Python agent

swck 现在已经支持自动注入 Java Agent, 使得 Java 应用无需修改代码即可接入 SkyWalking Agent, 本题目需求是让 swck 支持 Python Agent 自动注入, 达到类似注入 Java Agent 类似的功能, 能够让用户无需修改 Python 代码即可接入 Python Agent 到 Python 业务服务.

https://github.com/apache/skywalking/issues/7682

进阶柯振旭/kezhenxu94 at apache dot org

代码实现

测试用例与GitHub Actions自动化

使用文档

Go

https://github.com/apache/skywalking-swck



2024年,OSPP组委会只提供了5个名额,下列待选任务被取消





SkyWalking 支持监控Ray集群侧状态Ray 是一个分布式的计算框架,其基本组成部分是集群(多节点)和任务,本题目的需求是让 Ray 计算引擎集群节点暴露的指标可以在 SkyWalking UI 中展示。进阶陈意昊/yihaochen@apache.org

代码实现

测试用例

最终呈现到 UI

Javahttps://github.com/apache/skywalking
SWCK 增加 k8s event exporter CRD 和 controller在 SWCK 中增加 k8s event exporter CRD 并实现对应的 controller,使其能与 OAPServer 集成。基础

江华禧

hoshea@apache.org

代码实现
测试用例
编写相关文档
Go, Kubernetes
SkyWalking PHP 增加php-amqp在SkyWalking PHP中增加php-amqp支持,并实现数据上报基础

何延龙

heyanlong@apache.org

代码实现

测试用例

最终呈现到 UI

Rust

https://github.com/apache/skywalking-php



















English Version

Task

Description

Difficulty

Mentor / Email Address

Output

Tech. Requirements / What You'll Learn

Repo

Candidate

Support JFR Profiling

Integrate JFR profiling to the SkyWalking Java Agent

  • Embed async-profiler agent into the existing SkyWalking Java Agent to implement JFR profiling and integrate with new OAP APIs
  • Design and implement JFR task creation/ persistent/distribution and result upload/analysis by adding APIs and logic within the SkyWalking OAP project.
  • Add profiling visualization to the SkyWalking UI: flamegraph is recommended.
Advanced

Jiajing LU /

lujiajing@apache.org

Complete the JFR integration to the Java Agent, analysis in the OAP and show report in the UI

  • Java
  • Some FrontEnd skills for UI part

Improve the toolkit of SkyWalking Go

Support full trace, log, and meter API in the SkyWalking Go toolkit

  • Trace API: Reference Java version Toolkit, you can add debug, info, and error level events in the span.

  • Meter API: Add APIs for Counter, Gauge, and Histogram type metrics for users to use.

  • Log API: Currently only supports logrus and zap frameworks. Need to add the ability for users to call APIs to report log content.

AdvancedHan Liu / liuhan@apache.orgComplete the development of SkyWalking Go toolkit, and finally use e2e to complete automated feature testing
  • Go

Support customer insert/update trigger

BanyanDB currently does not have a trigger function for inserting or updating row data. To enable the migration of downsampling aggregation calculations from OAP to BanyanDB, it is necessary for BanyanDB to support a general row data trigger system. This trigger system must not only support data aggregation calculations but also migrate the current TopN estimation process to the general trigger.

https://github.com/apache/skywalking/issues/8721

AdvancedHongtao Gao/hanahmily@apache.org

Codes support this feature

Test cases

Document

  • Go
https://github.com/apache/skywalking-banyandb
Support function in row merging

At present, BanyanDB accepts metric data that is sent from OAP. These metric data are aggregated and calculated using the L1 to L2 layers of OAP, which requires significant bandwidth and computational resources. The objective of this task is to develop a code generation technology that can convert the aggregation functions in OAP into native go language functions. By doing so, the pressure of aggregation calculation on OAP can be alleviated, and the L2 calculation layer can be eliminated

https://github.com/apache/skywalking/issues/8720

AdvancedSheng Wu/wusheng@apache.org

Codes support this feature

Test cases

Document

  • Go
https://github.com/apache/skywalking-banyandb
Add Python agent injector in swck 

Swck now has Java agent injector, enabling users to monitor their Java applications without modifying the codes, this task is to add the similar injector for Python agent so that users can monitor their Python services without modifying the codes.


https://github.com/apache/skywalking/issues/7682

Advanced Zhenxu Ke / kezhenxu94 at apache dot org 

Code implementation 

Tests (automated by GitHub Actions)

Gohttps://github.com/apache/skywalking-swck 

In 2024, the OSPP Organizing Committee only provided 5 spots, and the following candidate tasks have been canceled.







Monitoring Ray Cluster with SkyWalking

Ray is a distributed computing framework, the basic components involve a Ray cluster (multiple nodes) and jobs, the task is to ingest the exposed metrics of a Ray cluster to SkyWalking and visualize in the UI.

AdvancedYihao Chen/yihaochen@apache.org

Code implementation

Test cases 

Visualize to UI

Javahttps://github.com/apache/skywalking
Add k8s event exporter CRD and controllerAdd k8s event exporter CRD to SWCK and implement the corresponding controller so that it can be integrated with OAPServer.Basic

Huaxi Jiang

hoshea@apache.com

Codes support this feature

Test cases

Document

Go, Kubernetes
Add php-amqp to SkyWalking PHP



Add php-amqp support to SkyWalking PHP and implement data reportBasic

Yanlong He

heyanlong@apache.org

Code implementation

Test cases 

Visualize to UI

Rusthttps://github.com/apache/skywalking-php
















SkyWalking项目基本情况介绍


社区介绍示例

  1. 社区名称:Apache SkyWalking社区
  2. 社区官方网址:http://skywalking.apache.org
  3. 社区Logo文件:http://www.apache.org/logos/?#skywalking
  4. 社区描述:Apache软件基金会顶级项目。分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s)架构而设计。分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
  5. 社区邮件列表:dev@skywalking.apache.org。 订阅方式,发送邮件到dev-subscribe@skywalking.apache.org,根据回复操作。网页版本查看方式,https://lists.apache.org/list.html?dev@skywalking.apache.org.
  6. 社区官方公共邮箱:dev@skywalking.apache.org。建议订阅后发送。要求,使用英文。或联系单个任务导师的邮箱。
  7. Slack。发送 [CN] Request to join SkyWalking slack 到 dev@skywalking.apache.org。Slack管理员会发送邀请到发件人邮箱,根据邮件操作即可。
  8. 技术标签:Apache, APM, java, Go, PHP, Node.js, .Net, Python, service mesh, Prometheus, distributed tracing
  9. 专注领域:应用性能监控,分布式追踪,分布式系统性能

Introduction 

  1. Community Name: Apache SkyWalking Community
  2. Official Website: http://skywalking.apache.org
  3. Community Logo: http://www.apache.org/logos/?#skywalking
  4. Community Description: A top-level project of the Apache Software Foundation. Apache SkyWalking is an application performance monitoring tool for distributed systems, specifically designed for microservices, cloud-native, and container-based architectures (Docker, K8s). It is crafted to monitor the performance of distributed applications, particularly for microservices, cloud-native, and container-based (Docker, K8s, Mesos) architectures.
  5. Community Mailing List: dev@skywalking.apache.org. To subscribe, send an email to dev-subscribe@skywalking.apache.org and follow the reply instructions. To view the mailing list on the web, visit https://lists.apache.org/list.html?dev@skywalking.apache.org.
  6. Official Community Email: dev@skywalking.apache.org. It is recommended to subscribe before sending. Send your emails in English or contact individual mentors directly via their email addresses.
  7. Slack: Send an email with the subject "[CN] Request to join SkyWalking slack" to dev@skywalking.apache.org. The Slack administrator will send an invitation to the sender's email, which you can follow to join.
  8. Technical Tags: Apache, APM, Java, Go, PHP, Node.js, .Net, Python, service mesh, Prometheus, distributed tracing
  9. Focus Areas: Application Performance Monitoring, Distributed Tracing, Performance of Distributed Systems




  • No labels