Otimizar os custos de monitoramento para insights de contêiner
Os clusters do Kubernetes geram uma grande quantidade de dados coletados por insights de contêiner. Como você é cobrado pela ingestão e retenção desses dados, você deseja configurar seu ambiente para otimizar seus custos. Você pode reduzir significativamente os custos de monitoramento removendo os dados de que não precisa e também otimizando a configuração do workspace do Log Analytics em que você está armazenando seus dados.
Depois de analisar os dados coletados e determinar se há dados coletados que você não precisa, 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é a utilização de recursos diferentes para filtrar dados com base em critérios específicos. Este artigo fornece um passo a passo sobre como analisar e otimizar sua coleta de dados para insights de contêiner.
Analisar a ingestão de dados
Para identificar suas melhores oportunidades de economia de custos, analise a quantidade de dados coletados em tabelas diferentes. Essas informações ajudarão você a identificar quais tabelas estão consumindo mais dados e ajudar você a tomar decisões informadas sobre como reduzir custos.
Você pode visualizar a quantidade de dados ingerida em cada workspace usando o runbook Uso de insights de contêiner, que está disponível na página Workspace 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. Use essas exibições diferentes para determinar os dados que você não está usando e podem ser filtrados para reduzir os custos.
Selecione a opção para abrir a consulta no Log Analytics, na qual você pode executar uma análise mais detalhada, incluindo a exibição dos registros individuais que estão sendo coletados. Consulte Logs de consulta dos insights do contêiner para ver 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 Por tabela que mostra os dados por namespace e tabela.
Filtrar dados coletados
Depois de identificar dados que podem ser filtrados, use diferentes opções de configuração em insights de contêiner para filtrar 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 a serem coletadas com base em diferentes perfis de operação e de custo. As predefinições de custo são projetadas para ajudar você a configurar rapidamente sua coleta de dados com base em cenários comuns.
Dica
Se você configurou o cluster para usar a experiência do 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 o 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 critérios diferentes. Quando terminar sua configuração, você só deverá coletar dados necessários para análise e alertas.
Filtrar por | Descrição |
---|---|
Tabelas | Modifique manualmente o DCR se você quiser selecionar tabelas individuais para preencher diferentes dos grupos predefinidos de custo. Por exemplo, talvez você queira coletar ContainerLogV2, mas não KubeEvents, que está incluído na mesma predefinição de custo. Consulte Valores de fluxo no DCR para obter uma lista dos fluxos a serem usados no DCR e usar as diretrizes em . |
Logs dos contêineres | ContainerLogV2 armazena os registros stdout/stderr gerados pelos contêineres no cluster. Embora você possa desabilitar a coleção 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 as configurações stdout e stderr podem ser configuradas 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. |
Namespace | Namespaces no Kubernetes são usados para agrupar recursos em um cluster. Você pode filtrar dados de recursos em namespaces específicos que você não precisa. Usando o DCR, você só poderá filtrar dados de desempenho por namespace se tiver habilitado a coleção para a tabela Perf . Use o ConfigMap para filtrar dados para namespaces específicos em logs de stdout e stderr .Consulte Filtrar logs de contêiner para obter detalhes sobre como filtrar logs por namespace e Filtragem de log da plataforma (Namespaces do Kubernetes do Sistema) para obter detalhes sobre o namespace do sistema. |
Pods e contêineres | A filtragem de anotação permite filtrar logs de contêiner com base em anotações que você faz 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ção para cargas de trabalho para obter detalhes sobre como atualizar seu ConfigMap e sobre como definir anotações nos seus pods. |
Transformações
Transformações de tempo de ingestão permitem que você aplique uma consulta KQL para filtrar e transformar dados no Pipeline do Azure Monitor antes de serem armazenados no workspace 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 seu DCR de insights de contêiner que executaria a funcionalidade no diagrama a seguir. Neste exemplo, somente eventos de nível error
e critical
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 custo 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 seu DCR de insights de contêiner, incluindo DCRs de exemplo usando transformações.
Configurar tipos de preço
Logs básicos no Azure Monitor oferecem um desconto de custo significativo para ingestão de dados em seu workspace 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 ingestão de dados em troca de um custo para consultas de log, o que significa que elas são ideais para os dados necessários, mas que você acessa com pouca frequência.
ContainerLogV2 pode ser configurado para logs básicos, o que pode fornecer uma economia de custos significativa 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óximas etapas
Para ajudá-lo a entender quais seriam os prováveis custos com base nos padrões de uso recentes dos dados coletados com os insights do contêiner, confira Analisar uso no workspace do Log Analytics.