Otimize os custos de monitoramento para insights de contêiner
Os clusters do Kubernetes geram uma grande quantidade de dados que são coletados pelo Container insights. Como você é cobrado pela ingestão e retenção desses dados, você deseja configurar seu ambiente para otimizar seus custos. Você pode reduzir significativamente seus custos de monitoramento filtrando os dados de que não precisa e também otimizando a configuração do espaço de trabalho do Log Analytics onde você está armazenando seus dados.
Depois de analisar os dados coletados e determinar se há algum dado que você está coletando que não seja necessário, há várias opções para filtrar os dados que você não deseja coletar. Isso vai desde a seleção de um conjunto de configurações de custo predefinidas até o aproveitamento de diferentes recursos para filtrar dados com base em critérios específicos. Este artigo fornece um passo a passo de orientação sobre como analisar e otimizar sua coleta de dados para insights de contêiner.
Analise a ingestão de dados
Para identificar suas melhores oportunidades de redução de custos, analise a quantidade de dados que estão sendo coletados em diferentes tabelas. Essas informações ajudarão você a identificar quais tabelas estão consumindo mais dados e ajudá-lo a tomar decisões informadas sobre como reduzir custos.
Você pode visualizar a quantidade de dados ingerida em cada espaço de trabalho usando o runbook de Uso do Container Insights, que está disponível na página Espaço de trabalho de um cluster monitorado.
O relatório permitirá que você exiba o uso de dados por diferentes categorias, como tabela, namespace e fonte de log. Utilize estas diferentes vistas para determinar quaisquer dados que não esteja a utilizar e que possam ser filtrados para reduzir custos.
Selecione a opção para abrir a consulta no Log Analytics, onde você pode realizar análises mais detalhadas, incluindo a visualização dos registros individuais que estão sendo coletados. Consulte Logs de consulta do Container insights para consultas adicionais que você pode usar para analisar os dados coletados.
Por exemplo, a captura de tela a seguir mostra uma modificação na consulta de log usada para By Table que mostra os dados por namespace e tabela.
Filtrar dados recolhidos
Depois de identificar os dados que você pode filtrar, use diferentes opções de configuração no Container insights para filtrar os dados que você não precisa. As opções estão disponíveis para selecionar configurações predefinidas, definir parâmetros individuais e usar consultas de log personalizadas para filtragem detalhada.
Predefinições de custo
A maneira mais simples de filtrar dados é usando as predefinições de custo no portal do Azure. Cada predefinição inclui diferentes conjuntos de tabelas para coletar com base em diferentes perfis de operação e custo. As predefinições de custo são projetadas para ajudá-lo a configurar rapidamente sua coleta de dados com base em cenários comuns.
Gorjeta
Se você configurou seu cluster para usar a experiência Prometheus para insights de contêiner, poderá desabilitar a coleta de desempenho , pois os dados de desempenho estão sendo coletados pelo Prometheus.
Para obter detalhes sobre como selecionar uma predefinição de custo, consulte Configurar DCR com o portal do Azure
Opções de filtragem
Depois de escolher uma predefinição de custo apropriada, você pode filtrar dados adicionais usando os diferentes métodos na tabela a seguir. Cada opção permitirá filtrar dados com base em diferentes critérios. Quando terminar a configuração, você deve coletar apenas os dados necessários para análise e alerta.
Filtrar por | Description |
---|---|
Tabelas | Modifique manualmente o DCR se desejar selecionar tabelas individuais para preencher diferentes dos grupos predefinidos de custo. Por exemplo, você pode querer coletar ContainerLogV2 , mas não coletar KubeEvents que está incluído na mesma predefinição de custo. Consulte Valores de fluxo em DCR para obter uma lista dos fluxos a serem usados no DCR e use as orientações em . |
Logs de contêiner | ContainerLogV2 Armazena os registros Stdout/Stderr gerados pelos contêineres no cluster. Embora seja possível desabilitar a coleta de toda a tabela usando o DCR, você pode configurar a coleção de logs stderr e stdout separadamente usando o ConfigMap para o cluster. Como stdout as stderr configurações podem ser definidas separadamente, você pode optar por habilitar uma e não a outra.Consulte Filtrar logs de contêiner para obter detalhes sobre como filtrar logs de contêiner. |
Espaço de Nomes | Os namespaces no Kubernetes são usados para agrupar recursos dentro de um cluster. Você pode filtrar dados de recursos em namespaces específicos que não são necessários. Usando o DCR, você só pode filtrar dados de desempenho por namespace, se tiver habilitado a coleta para a Perf tabela. Use ConfigMap para filtrar dados para namespaces stdout stderr e logs específicos.Consulte Filtrar logs de contêiner para obter detalhes sobre a filtragem de logs por namespace e Filtragem de logs de plataforma (Namespaces do Kubernetes do sistema) para obter detalhes sobre o namespace do sistema. |
Cápsulas e contentores | A filtragem de anotações permite filtrar logs de contêiner com base nas anotações feitas no pod. Usando o ConfigMap você pode especificar se os logs stdout e stderr devem ser coletados para pods e contêineres individuais. Consulte Filtragem baseada em anotações para cargas de trabalho para obter detalhes sobre como atualizar seu ConfigMap e definir anotações em seus pods. |
Transformações
As transformações de tempo de ingestão permitem aplicar uma consulta KQL para filtrar e transformar dados no pipeline do Azure Monitor antes de serem armazenados no espaço de trabalho do Log Analytics. Isso permite filtrar dados com base em critérios que não podem ser executados com as outras opções.
Por exemplo, você pode optar por filtrar logs de contêiner com base no nível de log em ContainerLogV2. Você pode adicionar uma transformação ao DCR do Container insights que executaria a funcionalidade no diagrama a seguir. Neste exemplo, eventos somente error
e critical
de nível são coletados, enquanto quaisquer outros eventos são ignorados.
Uma estratégia alternativa seria salvar os eventos menos importantes em uma tabela separada configurada para logs básicos. Os eventos ainda estariam disponíveis para solução de problemas, mas com uma economia de custos significativa para a ingestão de dados.
Consulte Transformações de dados em Insights de contêiner para obter detalhes sobre como adicionar uma transformação ao DCR de insights de contêiner, incluindo DCRs de exemplo usando transformações.
Configurar níveis de preços
Os Logs Básicos no Azure Monitor oferecem um desconto de custo significativo para a ingestão de dados em seu espaço de trabalho do Log Analytics para dados que você ocasionalmente usa para depuração e solução de problemas. As tabelas configuradas para logs básicos oferecem um desconto de custo significativo para a ingestão de dados em troca de um custo para consultas de log, o que significa que elas são ideais para dados que você precisa, mas que você acessa com pouca frequência.
O ContainerLogV2 pode ser configurado para logs básicos, o que pode proporcionar economias de custos significativas se você consultar os dados com pouca frequência. Usando transformações, você pode especificar dados que devem ser enviados para tabelas alternativas configuradas para logs básicos. Consulte Transformações de dados em Insights de contêiner para obter um exemplo dessa estratégia.
Próximos passos
Para ajudá-lo a entender quais são os custos provavelmente baseados em padrões de uso recentes de dados coletados com insights de contêiner, consulte Analisar o uso em um espaço de trabalho do Log Analytics.