批量查询监控数据
引导式阅读
Java
批量查询监控数据
作者
C***
上架时间
2023-11-10 08:49:33

版本说明

本示例基于华为云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()); } } }

参考

更多信息请参考云监控服务

修订记录

发布日期 文档版本 修订说明
2021-12-02 1.0 文档首次发布