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
sampleRateExpression configurada, o ClickStack a encapsula assim:
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 |
Percentis com amostragem usam
quantileTDigestWeighted, um sketch T-Digest aproximado. Os resultados ficam próximos, mas não exatos.Configurando a expressão da taxa de amostragem
span.
Por exemplo, se o processador tail-sampling do OpenTelemetry gravar a taxa em SpanAttributes['SampleRate']:
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.