Запись счетчиков производительности облачной службы Azure в локальный файл

Я хотел бы записать диагностические данные облака Azure (в частности, счетчики производительности служб) в локальный файл журнала на экземпляре компьютера, а не сохранять его в учетной записи хранения Azure. Как бы я это сделал?

Связанный: В соответствии с этим: Инициализируйте или измените конфигурацию диагностики Azure. "По умолчанию данные диагностики будут собираться и храниться в экземпляре роли". Где хранятся эти данные? Это локальный файл журнала, который я ищу?

1 ответ

Я пытаюсь получить локальный файл, даже если пытаюсь использовать команду Powershell, но также не могу найти файл счетчиков производительности.

Get-ChildItem -Path disk:\ -recurse |  Select-String -Pattern "search string" # search string in the file.

Основываясь на моем опыте, это хорошая практика для хранения записи в хранилище. Затем мы могли бы использовать SDK для простого запроса записей из нескольких экземпляров.

Если мы просто хотим получить запись в локальный файл. Мы могли бы использовать SDK хранилища Azure, чтобы получить запись из таблицы WADPerformanceCountersTable и сохранить записи в локальном файле в качестве обходного пути.

Если код C# возможен для вас, попробуйте использовать следующий код, который является фрагментом документа.

/ Get the connection string. When using Microsoft Azure Cloud Services, it is recommended
// you store your connection string using the Microsoft Azure service configuration
// system (*.csdef and *.cscfg files). You can you use the CloudConfigurationManager type
// to retrieve your storage connection string.  If you're not using Cloud Services, it's
// recommended that you store the connection string in your web.config or app.config file.
// Use the ConfigurationManager type to retrieve your storage connection string.

string connectionString = Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("StorageConnectionString");
//string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString;

// Get a reference to the storage account using the connection string.  You can also use the development
// storage account (Storage Emulator) for local debugging.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
//CloudStorageAccount storageAccount = CloudStorageAccount.DevelopmentStorageAccount;

// Create the table client.
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

// Create the CloudTable object that represents the "WADPerformanceCountersTable" table.
CloudTable table = tableClient.GetTableReference("WADPerformanceCountersTable");

// Create the table query, filter on a specific CounterName, DeploymentId and RoleInstance.
TableQuery<PerformanceCountersEntity> query = new TableQuery<PerformanceCountersEntity>()
  .Where(
    TableQuery.CombineFilters(
      TableQuery.GenerateFilterCondition("CounterName", QueryComparisons.Equal, @"\Processor(_Total)\% Processor Time"),
      TableOperators.And,
      TableQuery.CombineFilters(
      TableQuery.GenerateFilterCondition("DeploymentId", QueryComparisons.Equal, "ec26b7a1720447e1bcdeefc41c4892a3"),
      TableOperators.And,
      TableQuery.GenerateFilterCondition("RoleInstance", QueryComparisons.Equal, "WebRole1_IN_0")
    )
  )
);

// Execute the table query.
IEnumerable<PerformanceCountersEntity> result = table.ExecuteQuery(query);

// Process the query results and build a CSV file.
StringBuilder sb = new StringBuilder("TimeStamp,EventTickCount,DeploymentId,Role,RoleInstance,CounterName,CounterValue\n");

foreach (PerformanceCountersEntity entity in result)
{
  sb.Append(entity.Timestamp + "," + entity.EventTickCount + "," + entity.DeploymentId + ","
    + entity.Role + "," + entity.RoleInstance + "," + entity.CounterName + "," + entity.CounterValue+"\n");
}

StreamWriter sw = File.CreateText(@"C:\temp\PerfCounters.csv");
sw.Write(sb.ToString());
sw.Close();

Дополнительные сведения об использовании таблицы хранения Azure см. В разделе Начало работы с хранилищем таблицы Azure.

Другие вопросы по тегам