Amostragem

A Amostragem é um processo que restringe a quantidade de trechos gerados por um sistema. A configuração de amostragem exata que você deve usar depende das suas necessidades específicas, mas, em geral, você deve tomar uma decisão no início de um rastro e permitir que a decisão de amostragem se propague para outros serviços.

Um Sampler pode ser definido no TracerProvider utilizando o método WithSampler, conforme o exemplo a seguir:

provider := trace.NewTracerProvider(
    trace.WithSampler(trace.AlwaysSample()),
)

AlwaysSample e NeverSample são valores autoexplicativos. AlwaysSample significa que cada trecho será amostrado, enquanto NeverSample significa que nenhum trecho será amostrado. Ao iniciar um projeto, ou em ambiente de desenvolvimento, utilize AlwaysSample.

Outros amostradores disponíveis são:

  • TraceIDRatioBased, que amostra uma fração dos trechos, com base na fração fornecida ao amostrador. Caso esta fração seja .5, metade de todos os trechos serão amostrados.
  • ParentBased, é um decorador de amostrador que se comporta de maneira diferente, com base no parente do trecho. Caso o trecho não possua um parente, o amostrador decorado é usado para tomar a decisão de amostragem com base no parente do trecho. Por padrão, ParentBased amostra trechos que possuem parentes que foram amostrados e não amostra trechos cujos parentes não foram amostrados.

Por padrão, o Tracer Provider utiliza o amostrador ParentBased com o amostrador AlwaysSample

Caso esteja em um ambiente de produção, considere utilizar o amostrador ParentBased com o amostrador TraceIDRatioBased.