Compartilhar via


Os logs do Application Insights estão ausentes ou incorretos para aplicativos do Azure Functions

Você pode monitorar de perto o aplicativo de funções por meio da integração entre o Azure Functions e o Application Insights. E você pode usar o Application Insights sem nenhuma configuração personalizada.

Se os logs do Application Insights estiverem ausentes ou se os dados parecerem parciais ou imprecisos, use as etapas a seguir para resolver o problema.

Verificar a configuração do aplicativo de funções

  1. Navegue até o seu aplicativo de funções no portal do Azure.

  2. Selecione Diagnosticar e resolver problemas para abrir o diagnóstico do Azure Functions.

  3. Na barra de pesquisa , digite Verificações de configuração de função e abra-a.

  4. Você verá um relatório de diagnóstico de todas as verificações de configuração do aplicativo de funções. Em particular para o Application Insights, as seguintes verificações são executadas:

    • Existe apenas uma das seguintes configurações de conexão:

      • APPINSIGHTS_INSTRUMENTATIONKEY Chave de instrumentação do Application Insights

      • APPLICATIONINSIGHTS_CONNECTION_STRING conexão

        Recomendamos que você use o APPLICATIONINSIGHTS_CONNECTION_STRING para um comportamento mais estável. A capacidade de uso APPINSIGHTS_INSTRUMENTATIONKEY será preterida até 2025.

    • O registro em log interno AzureWebJobsDashboard está desabilitado, conforme recomendado.

    • A amostragem está habilitada para a telemetria do Azure Functions (habilitada por padrão).

Recomendação: o aplicativo de funções deve estar na versão 4 e a versão de runtime deve ser pelo menos 4.15.2xx. Isso ocorre porque, a partir desta versão, você pode acompanhar os fluxos de log do Azure Functions para o serviço Application Insights. Ao monitorar os fluxos de log, você pode verificar se há logs ausentes.

Os logs estão ausentes ou são parciais

O Application Insights coleta dados de log, desempenho e erros. A configuração de amostragem é usada para reduzir o volume de telemetria. O recurso Amostragem é habilitado por padrão com as configurações mostradas no exemplo host.json a seguir. Os tipos excluídos não são amostrados.

{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond" : 20,
        "excludedTypes": "Request;Exception"
      }
    }
  }
}

Se você notar algum log parcialmente ausente, isso pode ocorrer devido à amostragem. Para determinar a taxa de amostragem real, use uma consulta do Analytics que use o intervalo de tempo necessário mostrado no snippet de código a seguir. Se você observar que o TelemetrySavedPercentage para qualquer tipo de amostragem é menor que 100, esse tipo de telemetria está sendo amostrado.

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > todatetime("mm/dd/yyyy hh:mm:ss") and timestamp < todatetime("mm/dd/yyyy hh:mm:ss")
| summarize TelemetrySavedPercentage = 100/avg(itemCount), TelemetryDroppedPercentage = 100-100/avg(itemCount) by bin(timestamp, 1d), itemType
| sort by timestamp asc

Para obter mais informações, confira Coleta, retenção e armazenamento de dados no Application Insights.

Controlar o volume e o detalhamento dos logs

Você pode aumentar ou suprimir os logs gravados. Para fazer isso, você pode usar uma combinação de nível de log e categorias, conforme configurado no host.json.

O agente do Azure Functions inclui uma categoria para cada log. A categoria indica qual parte do código de tempo de execução ou seu código de função gerou o log. Por exemplo:

  • Os Host.Results e Function.<YOUR_FUNCTION_NAME> são algumas das categorias disponíveis.
  • Um nível de log é atribuído a cada log. O valor indica importância relativa, como Warning ou Information.

Para obter mais informações, consulte as outras categorias e níveis de log disponíveis.

Você pode configurar como seu aplicativo deve gravar os logs seguindo o snippet de código de exemplo:

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "default": "Information", // catch all default, with modifications below for individual categories.
      "Function": "Warning", // Warning level from all Functions (except the ones configured below).
      "Host.Aggregator": "Trace", // Log all traces in the 'customMetrics' table of (and shown on Metrics/Alerts blade in AI) - use either this or Host.Results
      "Host.Results": "Error", // Error and Critical requests are only logged in the 'requests' table of the AI (and shown on Monitor Functions blade in Functions App) - use either this or Host.Aggregator
      "Function.Function1": "Information", //Information level logs from Function 1, logged in 'traces', 'dependencies' and 'customMetrics' tables of AI
      "Function.Function2.User": "Information" //user code logs from Function2, logged in 'traces' table of AI
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "maxTelemetryItemsPerSecond": 1,
        "excludedTypes": "Exception"
      }
    }
  }
}

Para definir esses valores no nível das configurações do aplicativo (para evitar a reimplantação em host.json alterações), substitua valores de host.json específicos criando um valor equivalente como uma configuração do aplicativo. Para saber mais, confira Substituir valores de host.json.

Para obter mais exemplos sobre como suprimir logs, consulte functions-log-suppression.

O aplicativo de funções integrado de rede virtual não gera logs

Se um aplicativo de funções estiver integrado a uma rede virtual, você deverá abrir a porta 443 para o tráfego de saída no firewall do servidor para permitir que o SDK do Application Insights ou o Agente do Application Insights envie dados ao portal para as seguintes URLs:

  • dc.applicationinsights.azure.com
  • dc.applicationinsights.microsoft.com
  • dc.services.visualstudio.com
  • *.in.applicationinsights.azure.com

Para obter mais informações, veja Endereços IP usados pelo Azure Monitor.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.