要帮助您解决在Java代码中获取Azure资源指标数据时遇到的错误,我需要更多的具体信息,比如错误信息、代码片段、使用的库和API等。不过,我可以提供一个基本的示例,展示如何使用Java和Azure SDK来获取Azure资源的指标数据。以下是一个使用Az

摘要:问题描述 在使用 Java 代码调用虚拟机(VM)API获取指标数据时,出现时间格式解析错误。 错误信息: '{ "code": "Bad
问题描述 在使用 Java 代码调用虚拟机(VM)API获取指标数据时,出现时间格式解析错误。 错误信息: '{ "code": "BadRequest", "message": "Detected invalid time interval input: 2024-03-13T13:33:05.123 15:00/2024-03-13T13:48:05.233 15:00, supported Iso 8601 time interval format: (Datetime/Datetime, Datetime/Duration, Duration/Datetime, Duration)" }' JAVA 代码: static void query() { MetricsQueryClient metricsQueryClient = new MetricsQueryClientBuilder() .endpoint("https://management.chinacloudapi.cn") .credential(new DefaultAzureCredentialBuilder().build()) .buildClient(); String resourceId = "<resource id>"; Response<MetricsQueryResult> metricsResponse = metricsQueryClient .queryResourceWithResponse(resourceId, Arrays.asList("CpuTime", "Requests"), new MetricsQueryOptions() .setGranularity(Duration.ofHours(1)) .setTimeInterval(new QueryTimeInterval(OffsetDateTime.now().minusDays(1), OffsetDateTime.now())) .setAggregations(Arrays.asList(AggregationType.AVERAGE, AggregationType.COUNT)), Context.NONE); MetricsQueryResult metricsQueryResult = metricsResponse.getValue(); for (MetricResult metric : metricsQueryResult.getMetrics()) { System.out.println("Metric name " + metric.getMetricName()); for (TimeSeriesElement timeSeriesElement : metric.getTimeSeries()) { System.out.println("Dimensions " + timeSeriesElement.getMetadata()); for (MetricValue metricValue : timeSeriesElement.getValues()) { System.out.println(metricValue.getTimeStamp() + " " + metricValue.getTotal()); } } } } 这个会是什么原因导致的呢? 问题解答 添加日志,对比代码生成的时间格式字符串后,发现问题根源于本地执行环境的时区设置相关! 因为 Java SDK中timespan参数仅支持UTC的ZoneOffset。
阅读全文