Azure 数据资源管理器指标

时间:2021-04-19 10:22:57

标签: azure-java-sdk

如何使用 java 从“Azure 数据资源管理器”中获取“CacheUtilization”指标。是否有任何 JAVA SDK 可以帮助从“Azure Data Explorer”服务中获取指标?

1 个答案:

答案 0 :(得分:0)

关于问题,请参考以下代码

  1. 马文
<dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-identity</artifactId>
      <version>1.2.4</version>

    </dependency>


    <dependency>
      <groupId>com.azure.resourcemanager</groupId>
      <artifactId>azure-resourcemanager-resources</artifactId>
      <version>2.2.0</version>
    </dependency>
    <dependency>
      <groupId>com.azure.resourcemanager</groupId>
      <artifactId>azure-resourcemanager-monitor</artifactId>
      <version>2.2.0</version>
    </dependency>

代码

 String clientId="";
        String clientSecret="";
        String tenant="";
        String subId="";
        AzureProfile profile = new AzureProfile(tenant,subId,AzureEnvironment.AZURE);
        TokenCredential credential = new ClientSecretCredentialBuilder()
                .authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
                .tenantId(tenant)
                .clientId(clientId)
                .clientSecret(clientSecret)
                .build();
        MonitorManager manager = MonitorManager
                .configure()
                .withLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS)
                .authenticate(credential,profile);

        OffsetDateTime recordDateTime = OffsetDateTime.now();
        for (MetricDefinition metricDefinition : manager.metricDefinitions().listByResource("<the resource id of data exploer>")
             ) {

           if(metricDefinition.name().localizedValue().equalsIgnoreCase("Cache utilization")){
               MetricCollection metricCollection =  metricDefinition.defineQuery()
                       .startingFrom(recordDateTime.minusDays(7))
                       .endsBefore(recordDateTime)
                       .withAggregation("Average")
                       .withInterval(Duration.ofMinutes(5))
                       .filterByNamespace("microsoft.kusto/clusters")
                       .execute();
               System.out.println("Metrics for '" + "" + "':");
               System.out.println("Namespacse: " + metricCollection.namespace());
               System.out.println("Query time: " + metricCollection.timespan());
               System.out.println("Time Grain: " + metricCollection.interval());
               System.out.println("Cost: " + metricCollection.cost());

               for (Metric metric : metricCollection.metrics()) {
                   System.out.println("\tMetric: " + metric.name().localizedValue());
                   System.out.println("\tType: " + metric.type());
                   System.out.println("\tUnit: " + metric.unit());
                   System.out.println("\tTime Series: ");
                   for (TimeSeriesElement timeElement : metric.timeseries()) {
                       System.out.println("\t\tMetadata: ");
                       for (MetadataValueInner metadata : timeElement.metadatavalues()) {
                           System.out.println("\t\t\t" + metadata.name().localizedValue() + ": " + metadata.value());
                       }
                       System.out.println("\t\tData: ");
                       for (MetricValue data : timeElement.data()) {
                           System.out.println("\t\t\t" + data.timestamp()
                                   + " : (Min) " + data.minimum()
                                   + " : (Max) " + data.maximum()
                                   + " : (Avg) " + data.average()
                                   + " : (Total) " + data.total()
                                   + " : (Count) " + data.count());
                       }
                   }
               }
               break;
           }
        }
相关问题