how can i get the "CacheUtilization" metric from "Azure Data Explorer" using java. Are there any JAVA SDKs that help fetch the metrics from "Azure Data Explorer" service?
Regarding the issue, please refer to the following code
<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>
code
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;
}
}