Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add native agent module #2915

Merged
merged 8 commits into from
Oct 23, 2024
Merged

add native agent module #2915

merged 8 commits into from
Oct 23, 2024

Conversation

flzj-kl
Copy link
Contributor

@flzj-kl flzj-kl commented Sep 24, 2024

add native agent module

image

native-agnet-client

  • 列出java进程
  • attach jvm
  • load agent
  • ws连接arthas-server
  • 启动后注册到注册中心(etcd、zk)
  • 可扩展的注册逻辑

native-agent-server

  • http、ws 连接 native-agent-cinet
  • native-agent-server java进程管理页面
  • native-agent-server native-agent-client页面
  • native-agent-server 监控页面,复用console页面
  • native-agent-clinet发现
  • 可扩展的发现逻辑

@CLAassistant
Copy link

CLAassistant commented Sep 24, 2024

CLA assistant check
All committers have signed the CLA.

@hengyunabc
Copy link
Collaborator

能否在 agent server 上实现一个简单的 注册中心?避免有外部依赖才能启动。

@flzj-kl
Copy link
Contributor Author

flzj-kl commented Oct 14, 2024

能否在 agent server 上实现一个简单的 注册中心?避免有外部依赖才能启动。

可以的,我补充1下。但是这个agent server 只能管理注册到它的 agent client

@flzj-kl
Copy link
Contributor Author

flzj-kl commented Oct 15, 2024

能否在 agent server 上实现一个简单的 注册中心?避免有外部依赖才能启动。

分两期来做吧,我尽量在这个月底完成。参考下别的注册中心实现,要点时间😄

@hengyunabc
Copy link
Collaborator

在 webui 上的 websocket 连接,貌似是直连的 client 的端口 2672 。

这个要求用户和 client 是网络相通的。 实际上用户很多时候是没办法连接 client 所在的机器的。它只能连接 native-agent-server的机器。

需要把 ws 连接,从 native-agent-server 转发到 native-agent-client,再转发给 arthas 。

@flzj-kl
Copy link
Contributor Author

flzj-kl commented Oct 17, 2024

在 webui 上的 websocket 连接,貌似是直连的 client 的端口 2672 。

这个要求用户和 client 是网络相通的。 实际上用户很多时候是没办法连接 client 所在的机器的。它只能连接 native-agent-server的机器。

需要把 ws 连接,从 native-agent-server 转发到 native-agent-client,再转发给 arthas 。

这是一个很大的问题,我没有考虑到😇。不过没有关系,我已经想到2种实现☝️🤓
1、新增proxy
image

2、将webui独立出来,并依赖外部网关实现转发和负载均衡
image

@flzj-kl
Copy link
Contributor Author

flzj-kl commented Oct 22, 2024

改好了🤓,把native-agent-server改成了native-agent-management-web,把native-agent-client改成了native-agent,再新增了一个native-agent-proxy
image

if (normalizedPath == null) {
return null;
}
URL resourceUrl = getClass().getResource(RESOURCES_BASE_PATH + normalizedPath);

Check failure

Code scanning / CodeQL

Uncontrolled data used in path expression High

This path depends on a
user-provided value
.
ctx.channel().attr(AttributeKey.valueOf("nativeAgentAddress")).set(nativeAgentAddress);
}

request.setUri(uri.getPath());

Check failure

Code scanning / CodeQL

Server-side request forgery Critical

Potential server-side request forgery due to a
user-provided value
.
@hengyunabc hengyunabc merged commit 74290ec into alibaba:master Oct 23, 2024
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants