如何使用JavaAPI获取云服务(托管服务)诊断数据?
How to get Cloud Service (Hosted Service) diagnostic data using Java API?
如何使用 Java 或 Rest API 获取云服务(托管服务)诊断数据?
我们可以从 Azure 门户获取 DiagnosticsConnectionString for Roles 并使用它查询 WADPerformanceCounter Table(存储 API)。
执行时出现以下异常:
query:java.util.NoSuchElementException: An error occurred while enumerating the result, check the original exception for details. at com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:113) at TestStorage.main(TestStorage.java:225) Caused by: com.microsoft.azure.storage.table.TableServiceException: Bad Request
@Prit,你的问题中没有任何代码,所以我无法弄清楚是由什么引起的问题。
所以我post我的步骤和代码在这里作为参考帮助。
在Azure管理门户的云服务选项卡CONFIGURE
复制云服务一个角色的DIAGNOSTICS CONNECTION STRINGS
,连接字符串格式如DefaultEndpointsProtocol=https;AccountName=<storage-account-name>;AccountKey=<storage-key>
.
使用 GUI 工具 Micorsoft Azure Storage Explorer
查找和查看 table WADPerformanceCounter
。
Java 中的代码检索所有诊断数据,如下所示。
import com.microsoft.azure.storage.CloudStorageAccount;
import com.microsoft.azure.storage.table.CloudTable;
import com.microsoft.azure.storage.table.CloudTableClient;
import com.microsoft.azure.storage.table.TableQuery;
import com.microsoft.azure.storage.table.TableServiceEntity;
public class WADPerformanceCounterReader {
public static final String storageConnectionString =
"DefaultEndpointsProtocol=https;"+
"AccountName=<storage-account-name>;"+
"AccountKey=<storage-key>";
public static void main(String[] args) {
try {
// Retrieve storage account from connection-string.
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
// Create the table client.
CloudTableClient tableClient = storageAccount.createCloudTableClient();
CloudTable cloudTable = tableClient.getTableReference("WADPerformanceCountersTable");
TableQuery<TableServiceEntity> query = TableQuery.from(TableServiceEntity.class);
for (TableServiceEntity entity : cloudTable.execute(query)) {
System.out.println(entity.getPartitionKey()+"\t"+entity.getRowKey());
}
} catch (Exception e) {
// Output the stack trace.
e.printStackTrace();
}
}
}
希望对您有所帮助。
如何使用 Java 或 Rest API 获取云服务(托管服务)诊断数据?
我们可以从 Azure 门户获取 DiagnosticsConnectionString for Roles 并使用它查询 WADPerformanceCounter Table(存储 API)。
执行时出现以下异常:
query:java.util.NoSuchElementException: An error occurred while enumerating the result, check the original exception for details. at com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:113) at TestStorage.main(TestStorage.java:225) Caused by: com.microsoft.azure.storage.table.TableServiceException: Bad Request
@Prit,你的问题中没有任何代码,所以我无法弄清楚是由什么引起的问题。
所以我post我的步骤和代码在这里作为参考帮助。
在Azure管理门户的云服务选项卡
CONFIGURE
复制云服务一个角色的DIAGNOSTICS CONNECTION STRINGS
,连接字符串格式如DefaultEndpointsProtocol=https;AccountName=<storage-account-name>;AccountKey=<storage-key>
.使用 GUI 工具
Micorsoft Azure Storage Explorer
查找和查看 tableWADPerformanceCounter
。
Java 中的代码检索所有诊断数据,如下所示。
import com.microsoft.azure.storage.CloudStorageAccount; import com.microsoft.azure.storage.table.CloudTable; import com.microsoft.azure.storage.table.CloudTableClient; import com.microsoft.azure.storage.table.TableQuery; import com.microsoft.azure.storage.table.TableServiceEntity; public class WADPerformanceCounterReader { public static final String storageConnectionString = "DefaultEndpointsProtocol=https;"+ "AccountName=<storage-account-name>;"+ "AccountKey=<storage-key>"; public static void main(String[] args) { try { // Retrieve storage account from connection-string. CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString); // Create the table client. CloudTableClient tableClient = storageAccount.createCloudTableClient(); CloudTable cloudTable = tableClient.getTableReference("WADPerformanceCountersTable"); TableQuery<TableServiceEntity> query = TableQuery.from(TableServiceEntity.class); for (TableServiceEntity entity : cloudTable.execute(query)) { System.out.println(entity.getPartitionKey()+"\t"+entity.getRowKey()); } } catch (Exception e) { // Output the stack trace. e.printStackTrace(); } } }
希望对您有所帮助。