前置条件
开发者在使用前需先获取账号的ak、sk、endpoint、projectId。
您需要拥有华为云账号以及该账号对应的 Access Key(AK)和 Secret Access Key(SK)。请在华为云控制台“我的凭证-访问密钥”页面上创建和查看您的 AK/SK。更多信息请查看访问密钥。
endpoint 华为云各服务应用区域和各服务的终端节点,详情请查看地区和终端节点。
project_id 云服务所在项目 ID ,根据你想操作的项目所属区域选择对应的项目 ID 。
其他参数请参考批量查询监控数据API文档
运行环境
Java JDK 1.8 及其以上版本。
SDK获取和安装
您可以通过Maven配置所依赖的云监控SDK
Copied!
<dependency>
<groupId>com.huaweicloud.sdk</groupId>
<artifactId>huaweicloud-sdk-ces</artifactId>
<version>3.0.70</version>
</dependency>
示例代码
Copied!
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.ces.v1.CesClient;
import com.huaweicloud.sdk.ces.v1.model.BatchListMetricDataRequest;
import com.huaweicloud.sdk.ces.v1.model.BatchListMetricDataRequestBody;
import com.huaweicloud.sdk.ces.v1.model.MetricsDimension;
import com.huaweicloud.sdk.ces.v1.model.MetricInfo;
import com.huaweicloud.sdk.ces.v1.model.BatchListMetricDataResponse;
import com.huaweicloud.sdk.ces.v1.region.CesRegion;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.ArrayList;
public class BatchListMetricDataDemo {
private static final Logger logger = LoggerFactory.getLogger(BatchListMetricDataDemo.class.getName());
public static void main(String[] args) {
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
String projectId = "{project_id}";
ICredential auth = new BasicCredentials()
.withAk(ak)
.withSk(sk)
.withProjectId(projectId);
CesClient client = CesClient.newBuilder()
.withEndpoint("{endpoint}")
.withCredential(auth)
.withRegion(CesRegion.valueOf("{region_id}"))
.build();
BatchListMetricDataRequest request = new BatchListMetricDataRequest();
BatchListMetricDataRequestBody body = new BatchListMetricDataRequestBody();
List<MetricsDimension> dimensions = new ArrayList<>();
dimensions.add(
new MetricsDimension()
.withName("{dimensions name}")
.withValue("{dimensions value}")
);
List<MetricInfo> metrics = new ArrayList<>();
metrics.add(
new MetricInfo()
.withNamespace("{namespace}")
.withMetricName("{metric_name}")
.withDimensions(dimensions)
);
body.withTo("{to}");
body.withFrom("{from}");
body.withFilter("{filter}");
body.withPeriod("{period}");
body.withMetrics(metrics);
request.withBody(body);
try {
BatchListMetricDataResponse response = client.batchListMetricData(request);
logger.info(response.toString());
} catch (ConnectionException | RequestTimeoutException | ServiceResponseException e) {
logger.error(e.toString());
}
}
}
版本说明
本示例基于华为云SDK V3.0版本开发
功能介绍
华为云提供了云监控服务端SDK,您可以直接集成服务端SDK来调用云监控服务的相关API,从而实现对云监控服务的快速操作。
该示例展示了如何通过java版SDK批量查询监控数据。
前置条件
获取AK/SK
开发者在使用前需先获取账号的ak、sk、endpoint、projectId。
您需要拥有华为云账号以及该账号对应的 Access Key(AK)和 Secret Access Key(SK)。请在华为云控制台“我的凭证-访问密钥”页面上创建和查看您的 AK/SK。更多信息请查看访问密钥。
endpoint 华为云各服务应用区域和各服务的终端节点,详情请查看地区和终端节点。
project_id 云服务所在项目 ID ,根据你想操作的项目所属区域选择对应的项目 ID 。
其他参数请参考批量查询监控数据API文档
运行环境
Java JDK 1.8 及其以上版本。
SDK获取和安装
您可以通过Maven配置所依赖的云监控SDK
<dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-ces</artifactId> <version>3.0.70</version> </dependency>
示例代码
import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.ces.v1.CesClient; import com.huaweicloud.sdk.ces.v1.model.BatchListMetricDataRequest; import com.huaweicloud.sdk.ces.v1.model.BatchListMetricDataRequestBody; import com.huaweicloud.sdk.ces.v1.model.MetricsDimension; import com.huaweicloud.sdk.ces.v1.model.MetricInfo; import com.huaweicloud.sdk.ces.v1.model.BatchListMetricDataResponse; import com.huaweicloud.sdk.ces.v1.region.CesRegion; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; import java.util.ArrayList; public class BatchListMetricDataDemo { private static final Logger logger = LoggerFactory.getLogger(BatchListMetricDataDemo.class.getName()); public static void main(String[] args) { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份认证为例,运行示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk) .withProjectId(projectId); CesClient client = CesClient.newBuilder() .withEndpoint("{endpoint}") .withCredential(auth) .withRegion(CesRegion.valueOf("{region_id}")) .build(); BatchListMetricDataRequest request = new BatchListMetricDataRequest(); BatchListMetricDataRequestBody body = new BatchListMetricDataRequestBody(); List<MetricsDimension> dimensions = new ArrayList<>(); dimensions.add( new MetricsDimension() .withName("{dimensions name}") .withValue("{dimensions value}") ); List<MetricInfo> metrics = new ArrayList<>(); metrics.add( new MetricInfo() .withNamespace("{namespace}") .withMetricName("{metric_name}") .withDimensions(dimensions) ); body.withTo("{to}"); body.withFrom("{from}"); body.withFilter("{filter}"); body.withPeriod("{period}"); body.withMetrics(metrics); request.withBody(body); try { BatchListMetricDataResponse response = client.batchListMetricData(request); logger.info(response.toString()); } catch (ConnectionException | RequestTimeoutException | ServiceResponseException e) { logger.error(e.toString()); } } }
参考
更多信息请参考云监控服务
修订记录