Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Amostragem de traces

Serviços de alto throughput podem produzir milhões de spans por segundo. Armazenar cada span é caro, por isso as equipes costumam executar o processador tail-sampling do OpenTelemetry Collector para reter apenas 1 em cada N spans. Cada span retido carrega um atributo SampleRate que registra N.

Depois que os dados são amostrados, agregações simples produzem resultados incorretos: count() retorna N vezes menos eventos do que os que realmente ocorreram, sum() e avg() ficam enviesados, e os percentis se distorcem. Os dashboards mostram contagens de requisições, throughput e taxas de erro artificialmente baixas.

O ClickStack resolve isso com um engine de consulta sensível à amostragem. Quando você configura uma expressão de taxa de amostragem em uma fonte de traces, o construtor de consultas reescreve as agregações SQL para ponderar cada span pela sua taxa de amostragem — em dashboards, alertas e pesquisas ad hoc.

Como funciona

Quando uma fonte de traces tem sampleRateExpression configurada, o ClickStack a encapsula assim:

greatest(toUInt64OrZero(toString(expr)), 1)

Spans sem o atributo SampleRate assumem peso 1 por padrão, portanto os dados não amostrados produzem resultados idênticos às consultas originais.

O construtor de consultas então reescreve as agregações:

Agregação Antes Depois (corrigido para amostragem)
count count() sum(weight)
count + condição countIf(cond) sumIf(weight, cond)
avg avg(col) sum(col * weight) / sum(weight)
sum sum(col) sum(col * weight)
quantile(p) quantile(p)(col) quantileTDigestWeighted(p)(col, weight)
min / max inalterado inalterado
count_distinct inalterado inalterado

Configurando a expressão da taxa de amostragem

Abra sua fonte de traces em Configurações da fonte e insira, no campo Expressão da taxa de amostragem, a expressão do ClickHouse que resulte na taxa de amostragem por span.

Por exemplo, se o processador tail-sampling do OpenTelemetry gravar a taxa em SpanAttributes['SampleRate']:

Campo Expressão da taxa de amostragem nas Configurações da fonte do ClickStack

Depois de configurar, todos os gráficos, dashboards, alertas e painéis do dashboard de serviço aplicam automaticamente agregações ponderadas por amostragem. Não é necessário alterar consultas individuais.

Navigation