Показатели обозревателя данных Azure

#azure-java-sdk

Вопрос:

как я могу получить метрику «Кэширование» из «Обозревателя данных Azure» с помощью java. Существуют ли какие-либо SDK JAVA, которые помогают получать показатели из службы «Обозреватель данных Azure»?

Ответ №1:

Что касается этой проблемы, пожалуйста, обратитесь к следующему коду

  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("ttMetadata: ");
                       for (MetadataValueInner metadata : timeElement.metadatavalues()) {
                           System.out.println("ttt"   metadata.name().localizedValue()   ": "   metadata.value());
                       }
                       System.out.println("ttData: ");
                       for (MetricValue data : timeElement.data()) {
                           System.out.println("ttt"   data.timestamp()
                                     " : (Min) "   data.minimum()
                                     " : (Max) "   data.maximum()
                                     " : (Avg) "   data.average()
                                     " : (Total) "   data.total()
                                     " : (Count) "   data.count());
                       }
                   }
               }
               break;
           }
        }