Histórico e versões do esquema de configuração da extensão do Windows Diagnóstico do Azure (WAD)

Este artigo fornece o histórico de versões da extensão Diagnóstico do Azure para versões de esquema do Windows (WAD) enviadas como parte do SDK do Microsoft Azure.

Gráfico de envio do SDK do Azure e das versões de diagnóstico

Versão do SDK do Azure Versão da extensão de diagnóstico Modelação
1.x 1.0 plug-in
2.0 - 2.4 1.0 plug-in
2.5 1.2 extensão
2,6 1.3 "
2.7 1.4 "
2,8 1.5 "
2.9 1.6 "
2.96 1.7 "
2.96 1.8 "
2.96 1.8.1 "
2.96 1.9 "
2.96 1.11 "
2.96 1.21 "

Diagnóstico do Azure versão 1.0 foi fornecida pela primeira vez num modelo de plug-in, o que significa que, quando instalou o SDK do Azure, obteve a versão dos diagnósticos do Azure fornecida com o mesmo.

A partir do SDK 2.5 (versão de diagnóstico 1.2), o diagnóstico do Azure foi para um modelo de extensão. As ferramentas para utilizar novas funcionalidades só estavam disponíveis em SDKs do Azure mais recentes, mas qualquer serviço que utilizasse o diagnóstico do Azure iria recolher a versão de envio mais recente diretamente do Azure. Por exemplo, qualquer pessoa que ainda esteja a utilizar o SDK 2.5 estaria a carregar a versão mais recente apresentada na tabela anterior, independentemente de estar a utilizar as funcionalidades mais recentes.

Índice de esquemas

Diferentes versões dos diagnósticos do Azure utilizam esquemas de configuração diferentes. O esquema 1.0 e 1.2 foram preteridos. Para obter mais informações sobre a versão 1.3 e posterior, consulte Diagnóstico 1.3 e Esquema de Configuração posterior

Histórico de versões

Extensão de diagnóstico 1.11

Foi adicionado suporte para o sink do Azure Monitor. Este sink só é aplicável a contadores de desempenho. Permite o envio de contadores de desempenho recolhidos na VM, no VMSS ou no serviço cloud para o Azure Monitor como métricas personalizadas. O sink do Azure Monitor suporta:

  • Obter todos os contadores de desempenho enviados para o Azure Monitor através das APIs de métricas do Azure Monitor.
  • Alertas em todos os contadores de desempenho enviados para o Azure Monitor através da nova experiência de alertas unificados no Azure Monitor
  • Tratar o operador de caráter universal nos contadores de desempenho como a dimensão "Instância" na métrica. Por exemplo, se recolheu o contador "LogicalDisk(*)/DiskWrites/sec", poderá filtrar e dividir a dimensão "Instância" para desenhar ou alertar nas Escritas/seg do Disco para cada Disco Lógico (C:, D:, etc.)

Definir o Azure Monitor como um novo sink na configuração da extensão de diagnóstico

"SinksConfig": {
    "Sink": [
        {
            "name": "AzureMonitorSink",
            "AzureMonitor": {}
        },
    ]
}
<SinksConfig>  
  <Sink name="AzureMonitorSink">
      <AzureMonitor/>
  </Sink>
</SinksConfig>

Nota

Configurar o sink do Azure Monitor para VMs Clássicas e Serviço CLoud Clássico requer que sejam definidos mais parâmetros na configuração privada da extensão de Diagnóstico.

Para obter mais detalhes, veja a documentação detalhada do esquema da extensão de diagnóstico.

Em seguida, pode configurar os contadores de desempenho para serem encaminhados para o Sink do Azure Monitor.

"PerformanceCounters": {
    "scheduledTransferPeriod": "PT1M",
    "sinks": "AzureMonitorSink",
    "PerformanceCounterConfiguration": [
        {
            "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
            "sampleRate": "PT1M",
            "unit": "percent"
        }
    ]
},
<PerformanceCounters scheduledTransferPeriod="PT1M", sinks="AzureMonitorSink">  
  <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent" />  
</PerformanceCounters>

Extensão de diagnóstico 1.9

Foi adicionado suporte do Docker.

Extensão de diagnóstico 1.8.1

Pode especificar um token de SAS em vez de uma chave de conta de armazenamento na configuração privada. Se for fornecido um token de SAS, a chave da conta de armazenamento é ignorada.

{
    "storageAccountName": "diagstorageaccount",
    "storageAccountEndPoint": "https://core.windows.net",
    "storageAccountSasToken": "{sas token}",
    "SecondaryStorageAccounts": {
        "StorageAccount": [
            {
                "name": "secondarydiagstorageaccount",
                "endpoint": "https://core.windows.net",
                "sasToken": "{sas token}"
            }
        ]
    }
}
<PrivateConfig>
    <StorageAccount name="diagstorageaccount" endpoint="https://core.windows.net" sasToken="{sas token}" />
    <SecondaryStorageAccounts>
        <StorageAccount name="secondarydiagstorageaccount" endpoint="https://core.windows.net" sasToken="{sas token}" />
    </SecondaryStorageAccounts>
</PrivateConfig>

Extensão de diagnóstico 1.8

Foi adicionado o Tipo de Armazenamento a PublicConfig. StorageType pode ser Tabela, Blob, TableAndBlob. A tabela é a predefinição.

{
    "WadCfg": {
    },
    "StorageAccount": "diagstorageaccount",
    "StorageType": "TableAndBlob"
}
<PublicConfig>
    <WadCfg />
    <StorageAccount>diagstorageaccount</StorageAccount>
    <StorageType>TableAndBlob</StorageType>
</PublicConfig>

Extensão de diagnóstico 1.7

Foi adicionada a capacidade de encaminhar para o EventHub.

Extensão de diagnóstico 1.5

Foi adicionado o elemento sinks e a capacidade de enviar dados de diagnóstico para o Application Insights , facilitando o diagnóstico de problemas na sua aplicação, bem como ao nível do sistema e da infraestrutura.

SDK do Azure 2.6 e extensão de diagnóstico 1.3

Para projetos do Serviço Cloud no Visual Studio, foram efetuadas as seguintes alterações. (Estas alterações também se aplicam a versões posteriores do SDK do Azure.)

  • O emulador local suporta agora diagnósticos. Esta alteração significa que pode recolher dados de diagnóstico e garantir que a sua aplicação está a criar os rastreios certos enquanto está a desenvolver e a testar no Visual Studio. A cadeia de UseDevelopmentStorage=true ligação permite a recolha de dados de diagnóstico enquanto executa o seu projeto de serviço cloud no Visual Studio com o Emulador de Armazenamento do Azure. Todos os dados de diagnóstico são recolhidos na conta de armazenamento (Armazenamento de Desenvolvimento).
  • A cadeia de ligação da conta de armazenamento de diagnósticos (Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString) é armazenada novamente no ficheiro de configuração do serviço (.cscfg). No Azure SDK 2.5, a conta de armazenamento de diagnósticos foi especificada no ficheiro diagnostics.wadcfgx.

Existem algumas diferenças importantes entre a forma como a cadeia de ligação funcionou no SDK do Azure 2.4 e anterior e como funciona no SDK 2.6 do Azure e posterior.

  • No Azure SDK 2.4 e anterior, a cadeia de ligação foi utilizada no runtime pelo plug-in de diagnóstico para obter as informações da conta de armazenamento para transferir registos de diagnóstico.
  • No Azure SDK 2.6 e posterior, o Visual Studio utiliza a cadeia de ligação de diagnóstico para configurar a extensão de diagnóstico com as informações adequadas da conta de armazenamento durante a publicação. A cadeia de ligação permite-lhe definir diferentes contas de armazenamento para diferentes configurações de serviço que o Visual Studio utilizará ao publicar. No entanto, como o plug-in de diagnóstico já não está disponível (depois do SDK 2.5 do Azure), o ficheiro .cscfg por si só não consegue ativar a Extensão de Diagnóstico. Tem de ativar a extensão separadamente através de ferramentas como o Visual Studio ou o PowerShell.
  • Para simplificar o processo de configuração da extensão de diagnóstico com o PowerShell, a saída do pacote do Visual Studio também contém o XML de configuração pública para a extensão de diagnóstico para cada função. O Visual Studio utiliza a cadeia de ligação de diagnóstico para preencher as informações da conta de armazenamento presentes na configuração pública. Os ficheiros de configuração pública são criados na pasta Extensions (Extensões) e seguem o padrão PaaSDiagnostics.<RoleName>.PubConfig.xml. Todas as implementações baseadas no PowerShell podem utilizar este padrão para mapear cada configuração para uma Função.
  • A cadeia de ligação no ficheiro .cscfg também é utilizada pelo portal do Azure para aceder aos dados de diagnóstico para que possa aparecer no separador Monitorização. A cadeia de ligação é necessária para configurar o serviço para mostrar dados de monitorização verbosos no portal.

Migrar projetos para o SDK do Azure 2.6 e posterior

Ao migrar do SDK 2.5 do Azure para o SDK do Azure 2.6 ou posterior, se tiver uma conta de armazenamento de diagnóstico especificada no ficheiro .wadcfgx, permanecerá aí. Para tirar partido da flexibilidade de utilizar diferentes contas de armazenamento para diferentes configurações de armazenamento, terá de adicionar manualmente a cadeia de ligação ao projeto. Se estiver a migrar um projeto do Azure SDK 2.4 ou anterior para o SDK 2.6 do Azure, as cadeias de ligação de diagnóstico são preservadas. No entanto, tenha em atenção as alterações na forma como as cadeias de ligação são tratadas no SDK do Azure 2.6, conforme especificado na secção anterior.

Como o Visual Studio determina a conta de armazenamento de diagnósticos

  • Se for especificada uma cadeia de ligação de diagnóstico no ficheiro .cscfg, o Visual Studio utiliza-a para configurar a extensão de diagnóstico ao publicar e ao gerar os ficheiros xml de configuração pública durante o empacotamento.
  • Se não for especificada nenhuma cadeia de ligação de diagnóstico no ficheiro .cscfg, o Visual Studio volta a utilizar a conta de armazenamento especificada no ficheiro .wadcfgx para configurar a extensão de diagnóstico ao publicar e gerar os ficheiros xml de configuração pública ao empacotar.
  • A cadeia de ligação de diagnóstico no ficheiro .cscfg tem precedência sobre a conta de armazenamento no ficheiro .wadcfgx. Se for especificada uma cadeia de ligação de diagnóstico no ficheiro .cscfg, o Visual Studio utiliza-a e ignora a conta de armazenamento em .wadcfgx.

O que faz a "Atualizar cadeias de ligação de armazenamento de desenvolvimento..." a caixa de verificação tem?

A caixa de verificação Atualizar cadeias de ligação de armazenamento de desenvolvimento para Diagnósticos e Colocação em cache com credenciais da conta de armazenamento do Microsoft Azure ao publicar no Microsoft Azure dá-lhe uma forma conveniente de atualizar quaisquer cadeias de ligação da conta de armazenamento de desenvolvimento com a conta de armazenamento do Azure especificada durante a publicação.

Por exemplo, suponha que seleciona esta caixa de verificação e a cadeia de ligação de diagnóstico especifica UseDevelopmentStorage=true. Quando publicar o projeto no Azure, o Visual Studio atualizará automaticamente a cadeia de ligação de diagnóstico com a conta de armazenamento que especificou no assistente Publicar. No entanto, se uma conta de armazenamento real tiver sido especificada como a cadeia de ligação de diagnóstico, essa conta é utilizada.

Diferenças na funcionalidade de diagnóstico entre o Azure SDK 2.4 e anterior e o SDK do Azure 2.5 e posterior

Se estiver a atualizar o projeto do SDK 2.4 do Azure para o SDK do Azure 2.5 ou posterior, deve ter em conta as seguintes diferenças de funcionalidade de diagnóstico.

  • As APIs de configuração foram preteridas – a configuração programática dos diagnósticos está disponível no SDK do Azure 2.4 ou versões anteriores, mas foi preterida no SDK do Azure 2.5 e posterior. Se a configuração de diagnóstico estiver atualmente definida no código, terá de reconfigurar essas definições do zero no projeto migrado para que os diagnósticos continuem a funcionar. O ficheiro de configuração de diagnóstico do SDK 2.4 do Azure é diagnostics.wadcfg e diagnostics.wadcfgx para o SDK do Azure 2.5 e posterior.
  • Os diagnósticos para aplicações de serviço cloud só podem ser configurados ao nível da função e não ao nível da instância.
  • Sempre que implementar a sua aplicação, a configuração de diagnóstico é atualizada – isto pode causar problemas de paridade se alterar a configuração de diagnósticos a partir do Explorador de Servidores e, em seguida, reimplementar a sua aplicação.
  • No Azure SDK 2.5 e posterior, as informações de falha de sistema são configuradas no ficheiro de configuração de diagnóstico e não no código – se tiver informações de falha de sistema configuradas no código, terá de transferir manualmente a configuração do código para o ficheiro de configuração, uma vez que as informações de falha de sistema não são transferidas durante a migração para o SDK 2.6 do Azure.