<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Bret Wortman - Elasticsearch Labs]]></title>
    <description><![CDATA[Articles and tutorials from the Search team at Elastic]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Bret Wortman - Elasticsearch Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt1121c0bf0e8a6e65/6a88da6340a1841030ef456f/search-labs-thumbnail.png</url>
      <link>https://www.elastic.co/pt/search-labs/author/bret-wortman</link>
    </image>
    <link>https://www.elastic.co/pt/search-labs/author/bret-wortman</link>
    <atom:link href="https://www.elastic.co/pt/search-labs/rss/author/bret-wortman.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[pt]]></language>
    <lastBuildDate>Mon, 28 Sep 2026 02:31:13 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Quando o TSDS encontra o ILM: projetando fluxos de dados de séries temporais que aceitam dados tardios]]></title>
    <description><![CDATA[Como os limites de tempo do TSDS interagem com as fases do ILM e como projetar políticas que tolerem métricas atrasadas.]]></description>
    <content:encoded><![CDATA[<p>Recentemente, migrei o cluster de métricas de um cliente de "tudo na camada ativa" para uma arquitetura hot/cold/frozen. Era uma mudança que eu já havia feito dezenas de vezes antes. Em poucos minutos, o Logstash parou completamente de avançar os dados.</p><p>O Elasticsearch estava rejeitando métricas de chegada tardia. Essas rejeições fizeram o pipeline ficar atrasado, resultando em dados mais tardios, o que desencadeou ainda mais rejeições. Com o tempo, o pipeline parou completamente.</p><p>Tivemos que restaurar a partir do snapshot, reindexar os dados e redesenhar o pipeline de ingestão para recuperar.</p><p>A causa raiz não era a gestão de ciclo de vida de índices (ILM) em si. Tratava-se de fluxos de dados de séries temporais (TSDS) e como eles aplicam índices de apoio com limite temporal.</p><p>O TSDS pode reduzir os requisitos de armazenamento para métricas em 40–70%, mas as mudanças na arquitetura que tornam o TSDS eficiente também alteram a forma como os índices se comportam ao longo do tempo. Essas mudanças são importantes ao projetar políticas de ILM ou quando seus pipelines de ingestão podem produzir dados tardios.</p><h2>TL;DR</h2><p>Ao usar o TSDS:</p><ul><li><p>Índices de suporte aceitam apenas documentos dentro de uma janela de tempo específica.</p></li><li><p>Se dados tardios chegarem após um índice se tornar frio ou congelado, o Elasticsearch rejeitará esses documentos ou os encaminhará para o armazenamento de falhas, caso esteja configurado.</p></li></ul><p>Regra de design:</p>warm_min_age &gt; rollover_max_age + maximum_expected_lateness<h2>O que é um fluxo de dados de séries temporais?</h2><p>Um<em> fluxo de dados de série temporal</em> (TSDS) é um fluxo de dados especializado otimizado para dados métricos. Os dados são roteados de modo que documentos relacionados fiquem localizados dentro dos mesmos fragmentos, otimizando-os para consulta e recuperação. Como o Elasticsearch faz isso:</p><p>Cada documento contém:</p><ul><li><p>Um registro de data e hora.</p></li><li><p>Campos dimensionais que identificam a série de tempo.</p></li><li><p>Campos métricos representando valores medidos.</p></li></ul><p>Alguns exemplos:</p><ul><li><p>Uso da CPU por host.</p></li><li><p>Solicitar latência por serviço.</p></li><li><p>Leituras de temperatura por sensor.</p></li></ul><p><em>As dimensões </em>identificam o que queremos medir, enquanto <em>as métricas </em>representam valores que mudam com o tempo.</p><h3>Dimensões</h3><p>Dimensões descrevem a entidade medida.</p><p>Exemplos:</p>host.name
service.name
container.id<p>Definimos eles em mapeamentos com:</p>time_series_dimension: true<h3>Métricas</h3><p>Métricas representam valores numéricos e são definidas usando:</p>time_series_metric<p>Tipos comuns de métricas:</p><ul><li><p>Indicador: Valores que sobem e descem.</p></li><li><p>Contador: valores que aumentam até serem reiniciados.</p></li></ul><p>O Elastic Agent coleta principalmente métricas e dados de log. Mesmo que você não tenha habilitado manualmente nenhum índice TSDS, ainda pode tê-los no seu cluster.</p><h3>O campo _tsid</h3><p>O Elasticsearch gera internamente um valor <code>_tsid</code> a partir dos campos de dimensão. Isso permite que documentos com dimensões idênticas sejam roteados para o mesmo shard, melhorando:</p><ul><li><p>Compressão.</p></li><li><p>Local da consulta.</p></li><li><p>Desempenho de agregações.</p></li></ul><h2>A principal diferença: índices de apoio com prazo definido</h2><p>Os fluxos de dados tradicionais sempre gravam no índice de suporte mais recente, chamado <em>índice de gravação</em>, mas o TSDS se comporta de maneira diferente.</p><p>Cada índice de apoio TSDS tem uma janela de tempo definida e aceita apenas documentos com <code>@timestamp</code> valores que se encaixam nessa janela:</p>GET _data_stream/my-metrics-data-stream


     "index_mode": "time_series",
     "time_series": {
       "temporal_ranges": [
         {
           "start": "2026-01-15T14:35:50.000Z",
           "end": "2026-03-16T11:34:40.000Z"
         }
       ]
     }<p>Quando um documento é indexado, o Elasticsearch encaminha o documento para o índice de suporte responsável por aquele timestamp, o que significa que, ao contrário dos índices tradicionais, um TSDS pode gravar em vários índices de suporte simultaneamente.</p><p>Por exemplo:</p><ul><li><p>Dados em tempo real → índice mais recente.</p></li><li><p>Dados tardios → índice anterior cobrindo esse intervalo de tempo.</p></li></ul><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt7b001853af30d5f8/6a17dc2cfaa9137a7d93c751/31af2bb3b3dc24db8342e791e1db77a44659ba7a-1589x502.png" alt="Linha do tempo mostrando como um documento tardio é direcionado para um índice mais antigo, enquanto um documento atual vai para o índice mais recente." /><h2>Projetando para dados tardios</h2><p>Os pipelines de ingestão reais raramente entregam métricas perfeitamente no prazo. As métricas podem ser atrasadas por interrupções de rede, acúmulos no caminho, ingestão em lote e perda de dispositivos de borda, que se reconectam e começam a recuperar o atraso.</p><p>Índices tradicionais absorvem silenciosamente esses atrasos. O TSDS não.</p><p>Se o carimbo de data/hora de um documento estiver fora da faixa de índices de apoio graváveis, o Elasticsearch o rejeitará, o que significa que sua política de ILM deve considerar os dados tardios.</p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt6e8eae1b2ddad142/6a17dc2e1d1b8335a793e35c/32a103b95b20e31615c214271e27811a7ee315ae-1999x691.png" alt="Linha do tempo do ciclo de vida do índice" /><h2>A restrição crítica</h2><p>Os índices de suporte precisam permanecer com permissão de escrita por tempo suficiente para receber dados com atraso.</p><p>Em termos práticos:</p>time_until_readonly &gt; maximum_expected_lateness<p>Como o ILM mede o tempo de existência a partir do rollover, a regra operacional passa a ser:</p>warm_or_cold_min_age &gt; rollover_max_age + maximum_expected_lateness<p></p><p>Por exemplo, se as métricas podem chegar até seis horas atrasadas, os índices devem permanecer graváveis pelo menos seis horas após o rollover.</p><p></p><p>Desconsiderar essa restrição foi exatamente o que causou a falha de ingestão descrita anteriormente. Os dados tardios eram direcionados para um índice anterior, que já estava na camada cold e, portanto, era bloqueado para escrita.</p><p></p><h2>Tratamento de documentos rejeitados</h2><p>Quando o TSDS rejeita um documento, o Elasticsearch retorna um erro, indicando que o carimbo de data e hora não está dentro da faixa de índices graváveis. Como seu pipeline de ingestão lida com esse erro determina se você perde dados ou trava a ingestão de dados.</p><p>O principal mecanismo para lidar com documentos rejeitados é o armazenamento de falhas.</p><h3>Repositório de falhas (recomendado no Elasticsearch 9.1+)</h3><p>O Elasticsearch 9.1 introduziu o armazenamento de falhas, que captura automaticamente documentos rejeitados. Em vez de retornar erros aos clientes, o Elasticsearch grava documentos rejeitados em um índice dedicado de falhas dentro do fluxo de dados.</p><p>Você pode inspecionar falhas usando:</p>GET metrics-myapp::failures/_search<p>O uso do armazenamento de falhas impede que os pipelines de ingestão travem devido a erros de rejeição, enquanto preserva os dados com falha para análise ou <a href="https://www.elastic.co/docs/manage-data/data-store/data-streams/reindex-tsds">reindexação</a>.</p><h2>Monitoramento de questões de rejeição</h2><p>Os problemas de chegada tardia geralmente aparecem primeiro como anomalias de ingestão. Você pode notá-los primeiro como:</p><ul><li><p>Quedas repentinas na taxa de indexação.</p></li><li><p>Picos nos documentos rejeitados.</p></li><li><p>Um número crescente de entradas de lojas que falham.</p></li><li><p>Diferenças de incompatibilidade entre entradas e saídas do pipeline contagem.</p></li></ul><p>Alertas nesses sinais permitem que os operadores detectem problemas antes que os pipelines parem. Fluxos de trabalho, trabalhos de Machine Learning e outros mecanismos podem ser usados para automatizar a detecção e notificação.</p><h2>Lista de verificação de migração para TSDS + ILM</h2><p>Se você estiver migrando um cluster de métricas para o TSDS, introduzindo a hierarquização do ILM ou atualizando para uma versão do Elasticsearch em que as métricas são TSDS por padrão, revise esses itens primeiro.</p><h3><strong>1. Medir a latência de ingestão</strong></h3><p>Antes de mudar as políticas de ILM, determine:</p><ul><li><p>Atraso normal na ingestão de dados.</p></li><li><p>Pior caso de atraso durante os incidentes.</p></li><li><p>Atrasos causados por pipelines em lote.</p></li></ul><p>O projeto do seu ILM deve acomodar o máximo de atraso realista.</p><h3><strong>2. Verificar as janelas de tempo do índice</strong></h3><p>Inspecione seus índices de respaldo de TSDS:</p>GET _data_stream/&lt;your-stream&gt;<p>Analise:</p><ul><li><p><code>time_series.start_time</code></p></li><li><p><code>time_series.end_time</code></p></li></ul><p>Esses limites determinam quais índices podem aceitar documentos. Entender essas janelas pode ajudar a determinar o quanto os dados podem estar atrasados antes de serem rejeitados.</p><h3><strong>3. Dimensione o nível hot para chegadas tardias</strong></h3><p>Garanta que os índices backing permaneçam graváveis por tempo suficiente para os dados tardios.</p><p>Regra operacional:</p><ul><li><p><code>warm_min_age &gt; rollover_max_age + maximum_expected_lateness</code></p></li></ul><p>Lembre-se, os índices devem permanecer graváveis por pelo menos seis horas se as métricas chegarem com seis horas de atraso.</p><h3><strong>4. Decida o que fazer com documentos rejeitados</strong></h3><p>Escolha uma estratégia antes de ativar o TSDS:</p><ul><li><p>Armazenamento de falhas (recomendado no Elasticsearch 9.1+).</p></li><li><p>Fila de dead letter do Logstash.</p></li><li><p>Índice de contingência para chegadas tardias.</p></li><li><p>Aceitar a perda limitada de dados.</p></li></ul><h3><strong>5. Monitorar a saúde da ingestão</strong></h3><p>Adicionar alertas para:</p><ul><li><p>A taxa de indexação cai.</p></li><li><p>Documentos rejeitados.</p></li><li><p>Crescimento do armazenamento de falhas.</p></li><li><p>Desajustes de entrada/saída do pipeline.</p></li></ul><p>Problemas de dados tardios geralmente aparecem primeiro como anomalias de ingestão.</p><h2>Resumo</h2><p>Fluxos de dados de séries temporais oferecem grandes melhorias de armazenamento e desempenho para cargas de trabalho de métricas, mas introduzem uma mudança arquitetônica importante: os índices de suporte têm limite temporal, o que afeta o comportamento do ILM.</p><p>Ao usar o TSDS:</p><ul><li><p>Os índices devem permanecer graváveis tempo suficiente para aceitar dados tardios.</p></li><li><p>Os pipelines de ingestão devem lidar com documentos rejeitados com segurança.</p></li></ul><p>A regra fundamental a lembrar é:</p>warm_min_age &gt; rollover_max_age + maximum_expected_lateness<p>Se você projetar políticas de ILM em torno dessa restrição, o TSDS funcionará extremamente bem para cargas de trabalho de métricas.</p><p>Se ignorar isso, seu pipeline de ingestão pode descobrir esses limites de tempo da pior forma.</p>]]></content:encoded>
    <link>https://www.elastic.co/search-labs/blog/tsds-ilm-elasticsearch</link>
    <guid isPermaLink="true">https://www.elastic.co/search-labs/blog/tsds-ilm-elasticsearch</guid>
    <category><![CDATA[Dados de indexação]]></category>
    <category><![CDATA[Banco de dados vetorial]]></category>
    <dc:creator><![CDATA[Bret Wortman]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltcacf154aeacb29d8/6a17dc30dbb4ffc7ddfb557f/e4c46e4a6f746d9c845857e80de036f5d51cd4e7-1280x720.png" length="0" type="image/png"/>
    <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>