Skip to content

feat: support trace reporting #517

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

Merged
merged 2 commits into from
Jun 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions polaris-assembly/polaris-assembly-api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@
<artifactId>polaris-model</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>polaris-plugin-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.tencent.polaris</groupId>
<artifactId>polaris-client</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,59 +17,52 @@

package com.tencent.polaris.assembly.api;

import java.io.Closeable;
import java.util.List;

import com.tencent.polaris.api.pojo.Instance;
import com.tencent.polaris.api.pojo.ServiceKey;
import com.tencent.polaris.assembly.api.pojo.AfterRequest;
import com.tencent.polaris.assembly.api.pojo.BeforeRequest;
import com.tencent.polaris.assembly.api.pojo.BeforeResponse;
import com.tencent.polaris.api.rpc.ServiceCallResult;
import com.tencent.polaris.assembly.api.pojo.GetOneInstanceRequest;
import com.tencent.polaris.assembly.api.pojo.ServiceCallResult;
import com.tencent.polaris.assembly.api.pojo.GetReachableInstancesRequest;
import com.tencent.polaris.assembly.api.pojo.TraceAttributes;

public interface AssemblyAPI {
public interface AssemblyAPI extends AutoCloseable, Closeable {

/**
* 主调 pre hook
* @param beforeRequest beforeRequest
* @return BeforeResponse
* 获取路由后的服务实例列表,贯穿服务发现、服务路由的逻辑
* @param request 多个符合路由条件的服务实例
* @return List<Instance>
*/
BeforeResponse beforeCallService(BeforeRequest beforeRequest);
List<Instance> getReachableInstances(GetReachableInstancesRequest request);

/**
* 主调 post hook
* @param afterRequest afterRequest
* 获取单个服务实例,贯穿服务发现、服务路由、负载均衡的逻辑,最终返回单个服务实例
* @param request request
* @return Instance
*/
void afterCallService(AfterRequest afterRequest);
Instance getOneInstance(GetOneInstanceRequest request);

/**
* 被调 pre hook
* @param beforeRequest beforeRequest
* @return BeforeResponse
* 上报服务调用结果,服务调用结果可用于熔断统计和监控数据
* @param result 调用结果(包括成功失败,返回码,以及时延)
*/
BeforeResponse beforeProcess(BeforeRequest beforeRequest);
void updateServiceCallResult(ServiceCallResult result);

/**
* 被调 post hook
* @param afterRequest afterRequest
* 上报调用链属性数据
*/
void afterProcess(AfterRequest afterRequest);
void updateTraceAttributes(TraceAttributes traceAttributes);

/**
* 注册前hook
* @param serviceKey serviceKey
* 清理并释放资源
*/
void initService(ServiceKey serviceKey);
default void destroy() {

/**
* 负载均衡 hook
* @param request request
* @return Instance
*/
Instance getOneInstance(GetOneInstanceRequest request);
}

/**
*
* @param result
*/
void updateServiceCallResult(ServiceCallResult result);
@Override
default void close() {
destroy();
}

}

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading