Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
A amostragem é um recurso do Application Insights. É a maneira recomendada para reduzir o tráfego de telemetria e os custos de dados e de armazenamento, preservando uma análise estatística correta de dados do aplicativo. A amostragem também ajuda a evitar que o Application Insights limite a telemetria. O filtro de amostragem seleciona itens relacionados para que você possa navegar entre os itens quando você estiver realizando investigações de diagnóstico.
Quando as contagens de métricas são apresentadas no portal, elas são renormalizadas para levar em consideração a amostragem. Isso minimiza o efeito nas estatísticas.
Observação
Cuidado
Recomendamos a Distribuição do OpenTelemetry do Azure Monitor para novos aplicativos ou clientes para impulsionar o Application Insights do Azure Monitor. A Distribuição do OpenTelemetry do Azure Monitor oferece funcionalidade e experiência semelhantes às do SDK do Application Insights. É possível migrar do SDK do Application Insights usando os guias de migração para .NET, Node.js e Python, mas ainda estamos trabalhando para adicionar mais alguns recursos para compatibilidade com versões anteriores.
OperationId
.summarize sum(itemCount)
.A tabela a seguir resume os tipos de amostragem disponíveis para cada SDK e tipo de aplicativo:
SDK do Application Insights | Amostragem adaptável com suporte | Amostragem de taxa fixa com suporte | Amostragem de ingestão com suporte |
---|---|---|---|
ASP.NET | Sim (ativado por padrão) | Sim | Apenas se nenhuma outra amostragem estiver em vigor |
ASP.NET Core | Sim (ativado por padrão) | Sim | Apenas se nenhuma outra amostragem estiver em vigor |
Funções do Azure | Sim (ativado por padrão) | Não | Apenas se nenhuma outra amostragem estiver em vigor |
Java | Não | Sim | Apenas se nenhuma outra amostragem estiver em vigor |
JavaScript | Não | Sim | Apenas se nenhuma outra amostragem estiver em vigor |
Node.JS | Não | Sim | Apenas se nenhuma outra amostragem estiver em vigor |
Python | Não | Sim | Apenas se nenhuma outra amostragem estiver em vigor |
Todos os outros | Não | No | Sim |
Observação
Em geral, para a maioria dos aplicativos de pequeno e médio porte, você não precisa de amostragem. As informações de diagnóstico mais úteis e as estatísticas mais precisas são obtidas por meio da coleta de dados em todas as atividades de usuário.
As principais vantagens da amostragem são:
O algoritmo de amostragem decide quais itens de telemetria manter ou descartar, seja o serviço Application Insights ou SDK fazendo a amostragem. Esse algoritmo segue regras para manter todos os pontos de dados inter-relacionados intactos, garantindo que o Application Insights forneça uma experiência de diagnóstico acionável e confiável, mesmo com menos dados. Por exemplo, se uma amostra incluir uma solicitação com falha, ela retém todos os itens de telemetria relacionados, como exceções e rastreamentos. Dessa forma, ao visualizar detalhes da solicitação no Application Insights, você sempre verá a solicitação e as telemetrias relacionadas.
A decisão de amostragem baseia-se na ID da operação da solicitação, o que significa que todos os itens de telemetria que pertencem a uma determinada operação são preservados ou descartados. Para os itens de telemetria que não têm uma ID de operação definida (como itens telemetria notificados por threads assíncronos sem contexto HTTP), a amostragem simplesmente captura um percentual dos itens de telemetria de cada tipo.
Ao apresentar a telemetria de volta para você, o serviço Application Insights ajusta as métricas pelo mesmo percentual de amostragem usado no momento da coleta, para compensar os pontos de dados ausentes. Portanto, ao examinar a telemetria no Application Insights, os usuários estarão vendo aproximações estatisticamente corretas próximas dos números reais.
A precisão da aproximação depende principalmente do percentual de amostragem configurado. Além disso, a precisão aumenta para os aplicativos que lidam com um grande volume de solicitações semelhantes de uma grande quantidade de usuários. Por outro lado, para aplicativos que não funcionam com uma carga significativa, a amostragem não é necessária, pois esses aplicativos geralmente podem enviar toda a sua telemetria e, ao mesmo tempo, permanecer dentro da cota, sem causar perda de dados devido à limitação.
Há três módulos de amostragem alternativos:
A amostragem adaptável ajusta automaticamente o volume da telemetria enviada do Azure Functions e do SDK para o aplicativo ASP.NET/ASP.NET Core. É a amostragem padrão quando você usa o SDK do ASP.NET ou do ASP.NET Core. A amostragem adaptável está disponível apenas para a telemetria ASP.NET/ASP.NET Core do lado do servidor e para o Azure Functions.
A amostragem de taxa fixa reduz o volume da telemetria enviada do servidor Java ou ASP.NET ou ASP.NET Core e dos navegadores dos usuários. Você define a taxa. O cliente e o servidor sincronizam as amostragens, para que, no Search, você possa navegar entre exibições de página e solicitações relacionadas.
A amostragem de ingestão atua no ponto de extremidade do serviço Application Insights. Ela descarta parte da telemetria que chega em seu aplicativo, na taxa de amostragem que você definir. Ela não reduz o tráfego de telemetria enviado do seu aplicativo, mas ajuda você a se manter em sua cota mensal. A principal vantagem da amostragem de ingestão é que você pode definir a taxa de amostragem sem reimplantar o aplicativo. A amostragem de ingestão funciona de maneira uniforme para todos os servidores e clientes, mas não se aplica quando outros tipos de amostragem estão em operação.
Importante
Se os métodos de amostragem adaptável ou de taxa fixa estiverem habilitados para um tipo de telemetria, a amostragem de ingestão será desabilitada para essa telemetria. No entanto, os tipos de telemetria excluídos da amostragem em nível de SDK ainda estarão sujeitos à amostragem de ingestão na taxa definida no portal.
A amostragem adaptável afeta o volume de telemetria enviado do seu aplicativo de servidor Web para o end-point do serviço Application Insights.
Dica
A amostragem adaptável está habilitada por padrão quando você usa o SDK do ASP.NET ou do ASP.NET Core, e também está habilitada por padrão para o Azure Functions.
O volume é ajustado automaticamente para permanecer dentro do limite de taxa MaxTelemetryItemsPerSecond
. Se o aplicativo gerar pouca telemetria, como durante a depuração ou o baixo uso, ele não descarta itens, desde que o volume permaneça abaixo de MaxTelemetryItemsPerSecond
. À medida que o volume de telemetria aumenta, ele ajusta a taxa de amostragem para atingir o volume desejado. Esse ajuste, recalculado em intervalos regulares, é baseado na média móvel da taxa de transmissão de saída.
Para atingir o volume de destino, parte da telemetria gerada é descartada. Assim como os outros tipos de amostragem, o algoritmo retém os itens de telemetria relacionados. Por exemplo, quando estiver inspecionando a telemetria no Search, você conseguirá localizar a solicitação relacionada a uma exceção específica.
As contagens de métrica, como a taxa de solicitações e a taxa de exceções são ajustadas para compensar a taxa de amostragem, para que mostrem valores aproximados no Gerenciador de Métricas.
Observação
Esta seção se aplica a aplicativos ASP.NET, não a aplicativos ASP.NET Core. Saiba mais sobre como configurar a amostragem adaptável para aplicativos ASP.NET Core mais adiante neste documento.
Em ApplicationInsights.config
, é possível ajustar diversos parâmetros no nó AdaptiveSamplingTelemetryProcessor
. Os números mostrados são os valores padrão:
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
A taxa de destino das operações lógicas que o algoritmo adaptável visa coletar em cada host de servidor. Se o seu aplicativo Web for executado em muitos hosts, reduza esse valor para permanecer dentro de sua taxa de destino de tráfego no portal do Application Insights.
<EvaluationInterval>00:00:15</EvaluationInterval>
O intervalo no qual a taxa atual de telemetria é reavaliada. Avaliação é executada como uma média móvel. Talvez você queira reduzir esse intervalo se a sua telemetria estiver sujeita a picos repentinos.
<SamplingPercentageDecreaseTimeout>00:02:00</SamplingPercentageDecreaseTimeout>
Quando o valor da porcentagem de amostragem muda, ele determina quão rapidamente podemos reduzir novamente a porcentagem de amostragem a fim de capturar menos dados.
<SamplingPercentageIncreaseTimeout>00:15:00</SamplingPercentageIncreaseTimeout>
Da mesma forma, quando o valor da porcentagem de amostragem muda, ele dita quão rapidamente podemos aumentar novamente a porcentagem de amostragem para capturar mais dados.
<MinSamplingPercentage>0.1</MinSamplingPercentage>
À medida que a porcentagem de amostragem varia, qual é o valor mínimo que podemos definir?
<MaxSamplingPercentage>100.0</MaxSamplingPercentage>
À medida que a porcentagem de amostragem varia, qual é o valor máximo que podemos definir?
<MovingAverageRatio>0.25</MovingAverageRatio>
No cálculo da média móvel, esse valor especifica o peso que deve ser atribuído ao valor mais recente. Use um valor menor ou igual a 1. Valores menores tornam o algoritmo menos reativo a mudanças repentinas.
<InitialSamplingPercentage>100</InitialSamplingPercentage>
A quantidade de telemetria a ser amostrada quando o aplicativo iniciar. Não reduza esse valor enquanto estiver depurando.
<ExcludedTypes>type;type</ExcludedTypes>
Uma lista delimitada por ponto e vírgula dos tipos que você não deseja submeter à amostragem. Os tipos reconhecidos são Dependency
, Event
, Exception
, PageView
, Request
, Trace
. Todos os dados telemétricos dos tipos especificados são transmitidos; os tipos não especificados serão amostrados.
<IncludedTypes>type;type</IncludedTypes>
Uma lista delimitada por ponto e vírgula dos tipos que você deseja submeter à amostragem. Os tipos reconhecidos são Dependency
, Event
, Exception
, PageView
, Request
, Trace
. Os tipos especificados são amostrados; todos os dados telemétricos de todos os demais tipos são sempre transmitidos.
Para desativar a amostragem adaptável, remova os nós AdaptiveSamplingTelemetryProcessor
de ApplicationInsights.config
.
Em vez de definir o parâmetro de amostragem no arquivo .config
, você pode definir esses valores de forma programática.
Remova todos os nós AdaptiveSamplingTelemetryProcessor
do arquivo .config
.
Use o seguinte snippet para configurar a amostragem adaptável:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
// ...
var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
// For older versions of the Application Insights SDK, use the following line instead:
// var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
// Enable AdaptiveSampling so as to keep overall telemetry volume to 5 items per second.
builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5);
// If you have other telemetry processors:
builder.Use((next) => new AnotherProcessor(next));
builder.Build();
Também é possível ajustar a taxa de amostragem para cada tipo de telemetria individualmente, ou mesmo excluir determinados tipos de serem amostrados:
// The following configures adaptive sampling with 5 items per second, and also excludes Dependency telemetry from being subjected to sampling.
builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");
Aplicativos ASP.NET Core podem ser configurados no código ou por meio do arquivo appsettings.json
. Para obter mais informações, consulte Configuração no ASP.NET Core.
A amostragem adaptável está habilitada por padrão para todos os aplicativos ASP.NET Core. É possível desabilitar ou personalizar o comportamento de amostragem.
O recurso de amostragem padrão pode ser desabilitado ao adicionar o serviço do Application Insights.
Adicione ApplicationInsightsServiceOptions
após o método WebApplication.CreateBuilder()
no arquivo Program.cs
:
var builder = WebApplication.CreateBuilder(args);
var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
aiOptions.EnableAdaptiveSampling = false;
builder.Services.AddApplicationInsightsTelemetry(aiOptions);
var app = builder.Build();
O código acima irá desabilitar a amostragem adaptável. Siga as etapas a seguir para adicionar a amostragem com mais opções de personalização.
Use os seguintes métodos de extensão de TelemetryProcessorChainBuilder
para personalizar o comportamento de amostragem.
Importante
Se você usar esse método para configurar a amostragem, não deixe de definir a propriedade aiOptions.EnableAdaptiveSampling
como false
ao chamar AddApplicationInsightsTelemetry()
. Depois de fazer essa alteração, você precisará seguir as instruções no seguinte bloco de código exatamente na ordem para reabilitar a amostragem adaptável com suas personalizações em vigor. Não fazer isso pode resultar em excesso de ingestão de dados. Sempre teste as configurações de amostragem pós-alteração e defina um limite de dados diário apropriado para ajudar a controlar seus custos.
using Microsoft.ApplicationInsights.AspNetCore.Extensions;
using Microsoft.ApplicationInsights.Extensibility;
var builder = WebApplication.CreateBuilder(args);
builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
{
var telemetryProcessorChainBuilder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
// Using adaptive sampling
telemetryProcessorChainBuilder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 5);
// Alternately, the following configures adaptive sampling with 5 items per second, and also excludes DependencyTelemetry from being subject to sampling:
// telemetryProcessorChainBuilder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");
telemetryProcessorChainBuilder.Build();
});
builder.Services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
EnableAdaptiveSampling = false,
});
var app = builder.Build();
Você pode personalizar outras configurações de amostragem por meio da classe SamplingPercentageEstimatorSettings:
using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;
telemetryProcessorChainBuilder.UseAdaptiveSampling(new SamplingPercentageEstimatorSettings
{
MinSamplingPercentage = 0.01,
MaxSamplingPercentage = 100,
MaxTelemetryItemsPerSecond = 5
}, null, excludedTypes: "Dependency");
Siga as instruções desta página para configurar a amostragem adaptável para os aplicativos em execução no Azure Functions.
A amostragem de taxa fixa reduz o tráfego enviado do seu servidor Web e de navegadores da Web. Ao contrário da amostragem adaptável, ela reduz a telemetria a uma taxa fixa decidida por você. A amostragem de taxa fixa está disponível para aplicativos ASP.NET, ASP.NET Core, Java e Python.
Assim como outras técnicas, ela também mantém itens relacionados. Ela também sincroniza a amostragem do cliente e do servidor, para que os itens relacionados sejam retidos. Como exemplo, quando você olha a exibição de página em Buscar, você pode encontrar suas solicitações de servidor relacionadas.
No Metrics Explorer, as taxas como as contagens de solicitações e de exceções são multiplicadas por um fator para compensar a taxa de amostragem, para que elas sejam o mais exatas possível.
Desabilitar a amostragem adaptável: em ApplicationInsights.config
, remova ou transforme em comentário o nó AdaptiveSamplingTelemetryProcessor
.
<TelemetryProcessors>
<!-- Disabled adaptive sampling:
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
</Add>
-->
Habilitar o módulo de amostragem de taxa fixa. Adicione este snippet a ApplicationInsights.config
:
Nesse exemplo, SamplingPercentage é 20, portanto, 20% de todos os itens são amostrados. Os valores em no Metrics Explorer serão multiplicados por (100/20) = 5 para compensar.
<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<!-- Set a percentage close to 100/N where N is an integer. -->
<!-- E.g. 50 (=100/2), 33.33 (=100/3), 25 (=100/4), 20, 1 (=100/100), 0.1 (=100/1000) -->
<SamplingPercentage>20</SamplingPercentage>
</Add>
</TelemetryProcessors>
Como alternativa, em vez de definir o parâmetro de amostragem no arquivo ApplicationInsights.config
, você pode definir estes valores de forma programática:
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
// ...
var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
// For older versions of the Application Insights SDK, use the following line instead:
// var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
builder.UseSampling(10.0); // percentage
// If you have other telemetry processors:
builder.Use((next) => new AnotherProcessor(next));
builder.Build();
Desabilitar amostragem adaptável
As alterações podem ser feitas após o método WebApplication.CreateBuilder()
, usando ApplicationInsightsServiceOptions
:
var builder = WebApplication.CreateBuilder(args);
var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
aiOptions.EnableAdaptiveSampling = false;
builder.Services.AddApplicationInsightsTelemetry(aiOptions);
var app = builder.Build();
Habilitar o módulo de amostragem de taxa fixa
As alterações podem ser feitas após o método WebApplication.CreateBuilder()
:
var builder = WebApplication.CreateBuilder(args);
builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
{
var builder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
// Using fixed rate sampling
double fixedSamplingPercentage = 10;
builder.UseSampling(fixedSamplingPercentage);
builder.Build();
});
builder.Services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
EnableAdaptiveSampling = false,
});
var app = builder.Build();
Por padrão, nenhuma amostragem está habilitada no SDK e na instrumentação automática do Java. Atualmente, há suporte para a instrumentação automática do Java, substituições de amostragem e amostragem de taxa fixa. O Java não dá suporte à amostragem adaptável.
Observação
Para o percentual de amostragem, escolha um percentual que esteja próximo a 100/N, em que N é um inteiro. Atualmente, a amostragem não dá suporte a outros valores.
Instrumente o aplicativo com a versão mais recente dos Exportadores do OpenCensus para o Azure Monitor.
Observação
A amostragem de taxa fixa não está disponível para o exportador de métricas. Isso significa que as métricas personalizadas são o único tipo de telemetria em que a amostragem NÃO pode ser configurada. O exportador de métricas enviará todos os dados telemétricos que ele monitora.
Você pode especificar um sampler
como parte da configuração do Tracer
. Se nenhum amostrador explícito for fornecido, o ProbabilitySampler
é usado por padrão. O ProbabilitySampler
usaria uma taxa de 1/10000 por padrão, o que significa que uma das solicitações de 10,000 seria enviada para o Application Insights. Se você quiser especificar uma taxa de amostragem, veja os detalhes a seguir.
Para especificar a taxa de amostragem, verifique se o Tracer
especifica um amostrador com uma taxa de amostragem entre 0,0 e 1,0, inclusive. Uma taxa de amostragem de 1,0 representa 100%, o que significa que todas as suas solicitações são enviadas como telemetria para o Application Insights.
tracer = Tracer(
exporter=AzureExporter(
instrumentation_key='00000000-0000-0000-0000-000000000000',
),
sampler=ProbabilitySampler(1.0),
)
Você pode configurar a amostragem de taxa fixa para AzureLogHandler
modificando o argumento opcional logging_sampling_rate
. Se nenhum argumento for fornecido, uma taxa de amostragem de 1,0 é usada. Uma taxa de amostragem de 1,0 representa 100%, o que significa que todas as suas solicitações são enviadas como telemetria para Application Insights.
handler = AzureLogHandler(
instrumentation_key='00000000-0000-0000-0000-000000000000',
logging_sampling_rate=0.5,
)
As páginas da Web baseadas em JavaScript podem ser configuradas para usar o Application Insights. A telemetria é enviada do aplicativo cliente em execução no navegador do usuário, e as páginas podem estar hospedadas em qualquer servidor.
Ao configurar as páginas da Web baseadas em JavaScript para o Application Insights, modifique o snippet JavaScript que você receber do portal do Application Insights.
Dica
Em aplicativos ASP.NET com JavaScript incluído, o snippet normalmente está em _Layout.cshtml
.
Insira uma linha como samplingPercentage: 10,
antes da chave de instrumentação:
<script>
var appInsights = // ...
({
// Value must be 100/N where N is an integer.
// Valid examples: 50, 25, 20, 10, 5, 1, 0.1, ...
samplingPercentage: 10,
instrumentationKey: ...
});
window.appInsights = appInsights;
appInsights.trackPageView();
</script>
Observação
Em 31 de março de 31, 2025, o suporte à ingestão de chave de instrumentação será encerrado. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Transição para cadeias de conexão para aproveitar as novas funcionalidades.
Para o percentual de amostragem, escolha um percentual que esteja próximo a 100/N, em que N é um inteiro. Atualmente, a amostragem não dá suporte a outros valores.
O SDK do JavaScript do lado do cliente participa da amostragem de taxa fixa com o SDK do lado do servidor. As páginas instrumentadas enviam apenas a telemetria do lado do cliente do mesmo usuário para o qual o SDK do lado do servidor tomou a decisão de incluir na amostragem. Essa lógica é projetada para manter a integridade das sessões de usuário em aplicativos do lado do cliente e do servidor. Como resultado, você pode encontrar todos os outros itens de telemetria para esse usuário ou sessão de qualquer item de telemetria específico no Application Insights e, na Pesquisa, você pode navegar pelas exibições de página e pelas solicitações relacionadas.
Se a telemetria do lado do cliente e do servidor não mostrar amostras coordenados:
A amostragem de ingestão opera no ponto em que a telemetria de seu servidor Web, seus navegadores e seus dispositivos atinge o ponto de extremidade do serviço Application Insights. Embora ela não reduza o tráfego de telemetria enviado do seu aplicativo, reduz a quantidade processada e mantida (e cobrada) pelo Application Insights.
Use esse tipo de amostragem se seu aplicativo geralmente ultrapassar a cota mensal e se você não tiver a opção de usar os tipos de amostragem baseados em SDK.
Defina a taxa de amostragem na página Uso e custos estimados:
Assim como outros tipos de amostragem, o algoritmo retém os itens relacionados de telemetria. Por exemplo, quando estiver inspecionando a telemetria no Search, você conseguirá localizar a solicitação relacionada a uma exceção específica. As contagens de métrica como a taxa de solicitação e a taxa de exceções são mantidas corretamente.
A amostragem descarta determinados pontos de dados, tornando-os indisponíveis em qualquer recurso do Application Insights, como a Exportação Contínua.
A amostragem de ingestão não funciona em conjunto com a amostragem adaptável ou de taxa fixa. A amostragem adaptável é ativada automaticamente com o SDK do ASP.NET, o SDK do ASP.NET Core, no Serviço de Aplicativo do Azure ou com o Agente do Application Insights. Quando o ponto de extremidade de serviço do Application Insights recebe telemetria e detecta uma taxa de amostragem abaixo de 100% (indicando amostragem ativa), ele ignora qualquer taxa de amostragem de ingestão definida.
Aviso
O valor mostrado no bloco do portal indica o valor definido para a amostragem de ingestão. Ele não representa a taxa de amostragem real se qualquer tipo de amostragem de SDK (amostragem adaptável ou de taxa fixa) estiver em operação.
Use a amostragem de ingestão se:
Use a amostragem de taxa fixa se:
Use a amostragem adaptável:
Se as condições para usar outras formas de amostragem não se aplicarem, recomendamos a amostragem adaptável. Essa configuração está habilitada por padrão no SDK do ASP.NET/ASP.NET Core. A amostragem não reduz o tráfego até que uma determinada taxa mínima seja atingida, portanto, os sites com baixo uso provavelmente não são amostrados.
Use uma Consulta de análise para encontrar a taxa de amostragem.
union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType
Se você vir que RetainedPercentage
para qualquer tipo é menor que 100, então esse tipo de telemetria está sendo amostrado.
Importante
O Application Insights não faz a amostragem dos tipos de telemetria de sessão, métrica (incluindo métrica personalizada) ou contador de desempenho em qualquer uma das técnicas de amostragem. Esses tipos são sempre excluídos da amostragem, pois uma redução na precisão pode ser altamente indesejável para esses tipos de telemetria.
À medida que o aplicativo é escalado verticalmente, ele pode processar dezenas, centenas ou milhares de itens de trabalho por segundo. Registrar um evento para cada um deles não é economicamente viável nem eficaz para o recurso. O Application Insights usa amostragem para se adaptar ao volume crescente de telemetria de maneira flexível e controlar o uso e o custo dos recursos.
Aviso
A integridade de exibição de ponta a ponta de uma operação distribuída poderá ser afetada se algum aplicativo na operação distribuída tiver ativado a amostragem. Decisões de amostragem diferentes são feitas por cada aplicativo em uma operação distribuída, portanto, a telemetria para uma ID de operação pode ser salva por um aplicativo, enquanto outros aplicativos podem decidir não fazer a amostra da telemetria para a mesma ID de operação.
À medida que as taxas de amostragem aumentam, a precisão das consultas baseadas em log diminui e passa a ser superestimada. Isso só afeta a precisão das consultas baseadas em log quando a amostragem está habilitada e as taxas de amostragem estão em um intervalo mais alto (cerca de 60%). O impacto varia com base nos tipos de telemetria, no número de dados telemétricos por operação e outros fatores.
Os SDKs usam métricas pré-agregadas para resolver problemas causados pela amostragem. Para obter mais informações sobre essas métricas, confira Azure Application Insights – Azure Monitor | Microsoft Docs. Os SDKs identificam propriedades relevantes dos dados registrados e extraem estatísticas antes da amostragem. Para minimizar o uso de recursos e custos, as métricas são agregadas. Esse processo resulta em alguns itens de telemetria por minuto, em vez de milhares de itens de telemetria de eventos. Por exemplo, essas métricas podem relatar "este aplicativo Web processou 25 solicitações" para a conta de MDM, com uma itemCount
de 100 no registro de telemetria de solicitação enviada. Essas métricas pré-agregadas fornecem números precisos e são confiáveis mesmo quando a amostragem afeta os resultados de consultas baseadas em logs. Você pode visualizá-las no painel Métricas do portal do Application Insights.
A amostragem afeta a precisão do alerta?
Observação
A amostragem não é aplicada a métricas, mas as métricas podem ser derivadas de dados amostrados. Dessa forma, a amostragem pode afetar indiretamente a precisão do alerta.
Qual é o comportamento de amostragem padrão nos SDKs do ASP.NET e do ASP.NET Core?
AdaptiveSamplingTelemetryProcessor
: um inclui o tipo Event
na amostragem, enquanto o outro o exclui. Essa configuração limita a telemetria a cinco itens do tipo Event
e cinco itens de todos os outros tipos combinados, garantindo que os Events
sejam amostrados separadamente de outros tipos de telemetria.Use os exemplos na seção anterior desta página para alterar esse comportamento padrão.
A telemetria pode ser amostrada mais de uma vez?
Por que a amostragem não se trata apenas de “coletar X% de cada tipo de telemetria”?
O percentual de amostragem pode ser alterado com o tempo?
Se eu usar a amostragem de taxa fixa, como saber qual percentual de amostragem funciona melhor para o meu aplicativo?
Uma maneira é iniciar com a amostragem adaptável, descobrir qual taxa se adequa (consulte a pergunta anterior) e, em seguida, alternar para a amostragem de taxa fixa usando essa taxa.
Caso contrário, é preciso adivinhar. Analise o seu uso atual da telemetria na em Application Insights, observe qualquer limitação que esteja ocorrendo e estime o volume da telemetria coletada. Essas três entradas, junto com seu tipo de preço selecionado, sugere o quanto você talvez queira reduzir o volume da telemetria coletada. No entanto, um aumento no número de usuários ou alguma outra mudança no volume de telemetria pode invalidar sua estimativa.
O que acontece se eu configurar o percentual de amostragem com um valor muito baixo?
O que acontece se eu configurar o percentual de amostragem com um valor muito alto?
O que acontece se eu definir as configurações IncludedTypes e ExcludedTypes?
ExcludedTypes
e IncludedTypes
em sua configuração para evitar conflitos e garantir configurações claras de coleção de telemetria.ExcludedTypes
são excluídos mesmo se também estiverem definidos nas configurações IncludedTypes
. ExcludedTypes terá precedência sobre IncludedTypes.Em quais plataformas posso usar a amostragem?
applicationinsights.json
(para o SDK do Java, configure ApplicationInsights.xml
) para ativar a amostragem de taxa fixa. A amostragem é desativada por padrão. Com a amostragem de taxa fixa, o SDK do navegador e o servidor sincronizam automaticamente os eventos relacionados à amostra.Há alguns eventos raros que sempre desejo ver. Como posso fazê-los passar pelo módulo de amostragem?
A melhor maneira de sempre ver determinados eventos é gravar um TelemetryInitializer personalizado, que define SamplingPercentage
como 100 no item de telemetria que você deseja reter, conforme mostrado abaixo. A execução dos inicializadores é garantida antes dos processadores de telemetria (incluindo amostragem), portanto, todas as técnicas de amostragem ignoram esse item de quaisquer considerações de amostragem. Inicializadores de telemetria personalizados estão disponíveis no SDK do ASP.NET, do ASP.NET Core, do JavaScript e do Java. Por exemplo, você pode configurar um inicializador de telemetria usando o SDK do ASP.NET:
public class MyTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
if(somecondition)
{
((ISupportSampling)telemetry).SamplingPercentage = 100;
}
}
}
A amostragem adaptável está disponível para o SDK do Application Insights para o ASP.NET v2.0.0-beta3 e posterior e para o SDK Microsoft.ApplicationInsights.AspNetCore v2.2.0-beta1 e posterior, e está habilitada por padrão.
A taxa de amostragem fixa é um recurso do SDK do ASP.NET a partir da versão 2.0.0 e do Java a partir da versão 2.0.1.
Antes da versão v2.5.0-beta2 do SDK do ASP.NET e da versão v2.2.0-beta3 do SDK do ASP.NET Core, as decisões de amostragem para aplicativos que definem "usuário" (como a maioria dos aplicativos Web) dependiam do hash da ID do usuário. Para aplicativos que não definem usuários (como serviços Web), a decisão foi baseada na ID de operação da solicitação. As versões recentes do SDK do ASP.NET e do ASP.NET Core agora usam a ID de operação para as decisões de amostragem.
Eventos
17 de mar., 21 - 21 de mar., 10
Junte-se à série de encontros para criar soluções de IA escaláveis com base em casos de uso do mundo real com outros desenvolvedores e especialistas.
Registrar agoraTreinamento
Roteiro de aprendizagem
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization