操作场景
本文介绍在本地开发 Java 应用,通过 polaris-sdk 的方式接入 TSE 治理中心(北极星网格),并实现可观测性功能。
前提条件
在开发前,请确保您已经下载并安装了 Java 和 Maven。
操作步骤
步骤1:引入北极星依赖
1. 引入 polaris sdk 依赖
修改应用根目录下的
pom.xml
,为polaris-java
添加dependencyManagement
:<dependencyManagement><dependencies><dependency><groupId>com.tencent.polaris</groupId><artifactId>polaris-dependencies</artifactId><version>${version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
说明:
2. 引入 polaris starter
<dependencies><dependency><groupId>com.tencent.polaris</groupId><artifactId>polaris-all</artifactId></dependency></dependencies>
步骤2:添加北极星配置文件 polaris.yml
1. 在项目的 main/resources 目录下创建 polaris.yml 文件用于初始化 polaris-java SDK。
2. 在 polaris.yml 文件中配置应用名、polaris(北极星)服务端地址等信息。服务端地址查看详细参见:引擎管理 > 客户端访问地址。
global:serverConnectors:- id: polarisprotocol: grpcaddresses:# 地址需要替换成您创建的北极星引擎的客户端访问地址。- 127.0.0.1:8091#描述: 监控及日志数据上报相关配置statReporter:#描述: 是否启用上报enable: trueplugin:prometheus:type: push# 描述: 设置 pushgateway 的地址, 仅 type == push 时生效# 地址需要替换成您创建的北极星引擎的客户端访问地址。address: 127.0.0.1:9091#描述:设置metric数据推送到pushgateway的执行周期#范围:[1s:...],默认值:10spushInterval: 10s
步骤3:应用开发,上报监控指标
发起调用,并上报请求调用结果。
1. 初始化 ConsumerAPI SDK 实例:
import com.tencent.polaris.factory.api.DiscoveryAPIFactory;public static void main(String[] args) throws Exception {ConsumerAPI consumerAPI = DiscoveryAPIFactory.createConsumerAPI();}
2. 设置服务调用结果信息:
public enum RetStatus {// 服务调用成功RetSuccess,// 服务调用失败RetFail,// 服务调用超时RetTimeout,}ServiceCallResult result = new ServiceCallResult();// 设置被调服务所在命名空间result.setNamespace(String namespace);// 设置被调服务的服务信息result.setService(String service);// 设置被调实例result.setInstance(Instance instance);// 设置本次请求的响应码result.setRetCode(String code);// 设置本次请求的耗时result.setDelay(String delay);// 设置本次请求的结果状态result.setRetStatus(RetStatus status);// 设置本次请求的请求标签,格式为 key=value;key=value;result.setLabels(String labels);// 设置本次请求调用的方法result.setMethod(String method);
3. 上报请求调用结果:
您在根据请求调用情况对 ServiceCallResult 结构体完成初始化后,只需要调用
ConsumerAPI.updateServiceCallResult
方法即可完成请求调用结果上报。SDK 内部会根据上报的调用结果信息,将其转换为相应的流量调用指标数据,上报至 prometheus。consumerAPI.updateServiceCallResult(ServiceCallResult)