David O'Brien (Xirus): Métricas! Métricas! Métricas! Parte 2

David O'Brien abriu recentemente sua própria empresa, a Xirus (https://xirus.com.au), com foco nos produtos em nuvem Microsoft Azure Stack. Eles se destinam à criação e lançamento coordenados de aplicativos híbridos em data centers, em locais de fronteira, escritórios remotos e na nuvem.

David ensina às pessoas e empresas tudo relacionado ao Microsoft Azure e Azure DevOps (anteriormente VSTS) e ainda está envolvido em consultoria e infra-codificação práticas. Ele foi o vencedor do Microsoft MVP Award (Microsoft Most Valuable Professional) por 5 anos e recebeu recentemente o MVP Azure Award. Como co-organizador do Meetup de Microsoft Cloud e Datacentre em Melbourne, O'Brien fala regularmente em conferências internacionais, combinando seu interesse em viajar pelo mundo com uma paixão por compartilhar histórias de TI com a comunidade. O blog de David está localizado em david-obrien.net e ele também publica seus treinamentos online no Pluralsight.

A apresentação fala sobre a importância das métricas para entender o que está acontecendo em seu ambiente e como seu aplicativo funciona. O Microsoft Azure possui uma maneira fácil e poderosa de exibir métricas para todos os tipos de cargas de trabalho, e a palestra explica como você pode usá-las todas.

Às três da manhã, domingo, durante o sono, você de repente acorda com uma mensagem de texto: "O aplicativo supercrítico não está respondendo novamente". O que está acontecendo? Onde e qual é a causa dos "freios"? Nesta palestra, você aprenderá sobre os serviços que o Microsoft Azure oferece aos clientes para coletar logs e, em particular, métricas para suas cargas de trabalho na nuvem. David informará quais métricas devem ser do seu interesse ao trabalhar em uma plataforma em nuvem e como alcançá-las. Você aprenderá sobre ferramentas de código aberto e criação de painéis e, como resultado, obterá conhecimento suficiente para criar seus próprios painéis.

E se às três horas da manhã você acordar novamente uma mensagem sobre a falha de um aplicativo crítico, poderá descobrir rapidamente sua causa.

David O'Brien (Xirus): Métricas! Métricas! Métricas! Parte 1

Como os slides seriam muito volumosos, eu preferi a demonstração. Considere como você pode visualizar o monitoramento e comece com a guia Monitor-Metrics. Como eu mencionei, isso é fácil o suficiente. Tudo o que você precisa fazer é especificar o recurso usado no menu suspenso Grupo de recursos e o tipo de recurso no menu Tipo de recurso. No nosso caso, seleciono todos os 72 tipos de métricas.



Felizmente ou infelizmente, a maioria dos serviços em nuvem é executada em máquinas virtuais, e eu faço o mesmo. Nesta máquina virtual, por padrão, a Microsoft nos mostra métricas de host. Em particular, podemos ver a quantidade de tráfego passando por essa VM nas últimas 24 horas com um intervalo de medição de 15 minutos. Você vê que temos um painel maravilhoso para essa métrica. Essa não é uma métrica muito avançada e não podemos fazer nada com ela, exceto para ver a quantidade de tráfego de saída em megabytes. Das ferramentas aqui estão: a capacidade de adicionar uma nova regra sobre restrições e a capacidade de anexar essa métrica ao painel.
Quem usa a máquina virtual deve saber o que é o Telegraf, indicado na linha RESORCE. Este é um plugin TING de código aberto escrito em Go, projetado para coletar métricas ou dados do sistema em que está instalado. O Telegraf passa as métricas coletadas para o banco de dados do InfluxDB. Este plug-in de plataforma cruzada funciona no Windows e Linux.



Como eu disse, por padrão, o Microsoft Azure Monitor usa métricas de hipervisor para a máquina virtual, isso é indicado na linha METRIC NAMESPACE. Da mesma forma, acontece na AWS. Não posso dizer nada sobre a plataforma em nuvem GSP, pois nunca a usei. Portanto, seleciono o Telegraf como um recurso e instruo-o a transferir essa métrica para o monitor Sum.



Eu posso ir para a lista METRIC e selecionar mais métricas exibidas. Por exemplo, agora eu seleciono a métrica use_steal (usando interceptação). Alguém sabe o que é isso?



Quantos de vocês vivem em um apartamento com vizinhos que gostam de ouvir música muito alto? Ok, use_steal é uma métrica que mostra como os vizinhos da nuvem podem afetar seu sistema operacional. Muitas pessoas esquecem que executam seus aplicativos em um ambiente de nuvem pública. No GCP, na AWS e no Azure, os provedores colocam você em uma infraestrutura compartilhada. Você compartilha sua infraestrutura - máquina virtual, aplicativos, API - com outros usuários. Isso não significa que eles tenham acesso aos seus dados, mas podem afetar seus aplicativos, e você deve estar ciente disso. Se você não conhece esse efeito, seu aplicativo pode ter algumas dificuldades no trabalho. Se você não coletar métricas use_steal, não saberá que seu aplicativo pode ser afetado por impactos externos. Suponhaque você lançou seu programa, tudo funciona bem, sem erros, mas de repente algo acontece e o aplicativo falha. Isso acontece com frequência e depende do tipo de máquina virtual que você está usando e de quantas VMs do mesmo tipo o seu provedor coloca em cada host. É provável que seus programas sejam afetados adversamente por essa infraestrutura.

A única maneira de impedir que isso aconteça é de duas maneiras: a primeira é esperar até que tudo corra por conta própria e a segunda é implantar sua máquina virtual no host de outro hipervisor. No entanto, para tomar uma decisão, você deve estar ciente disso coletando as métricas apropriadas. Como você pode ver, ao usar a métrica use_steal, o monitor não mostra nenhuma atividade, provavelmente porque eu não executei um grande número de aplicativos.

Assim, podemos criar nosso próprio painel, colocando nele monitores das métricas selecionadas. Esse painel pode ser compartilhado com outros usuários, e geralmente aconselho meus clientes a criar painéis como esse, colocando-os em uma tela grande no escritório para que fiquem visíveis a todos os funcionários.



Todas as manhãs, ao trabalhar, qualquer pessoa pode olhar para essa tela e descobrir o que está acontecendo com o sistema. Por exemplo, você pode ver que 500 erros de conexão HTTP foram corrigidos e não espere que os clientes o informem sobre isso, mas descubra o motivo da ocorrência e corrija o problema com seu site.

Um monitoramento mais avançado está coletando percentis. Por exemplo, conhecer o desempenho médio da sua CPU pode não ser suficiente, porque aplicativos diferentes carregam o processador de maneira diferente.



Os percentis permitem entender o que está acontecendo globalmente. Suponha que 99 percentis sejam 200 ms. Isso significa que 99% de todas as suas solicitações têm um tempo de resposta de até 200 ms e isso também significa que 1% de seus clientes recebem uma resposta com um atraso superior a 200 ms.

Dependendo do conteúdo do seu SLA, lembre-se do que falamos no início, você deve considerar esse fato. De fato, na maioria das vezes você presta atenção ao valor médio, em vez de considerar os percentis. E o valor médio "esconde" esses desvios em si.

Considere como obtemos esses valores. O fato é que o Azure Monitor não calcula nada. Você pode obter o valor médio, máximo ou mínimo, mas se precisar de métricas mais avançadas obtidas como resultado de cálculos, use a análise de log. A análise de log usa a linguagem KQL, é um recurso muito útil do Azure "pronto para uso".



Se você observar essa métrica, poderá ver que o provedor de recursos é Microsoft.SQL, ele próprio é chamado "dtu_consumption_percent" e está envolvido na criação de percentis. Isso pode não ser particularmente aplicável aos seus fluxos de trabalho, mas você deve saber que o módulo Log Analytics fornece esse recurso. Assim, você pode usar a análise se precisar de cálculos mais avançados de suas métricas. É verdade que você tem que pagar por isso. Por padrão, essa ferramenta permite processar até 5 GB de dados por mês gratuitamente, no entanto, conheço clientes que usam 5 GB por minuto. Portanto, 5 GB por mês pode não ser suficiente.

Na tela, você vê uma métrica mostrando que atualmente estou usando 20 MB. Como este é um ambiente de demonstração, a quantidade de dados obtida é muito pequena. Como eu disse, imediatamente, o Logs Analytic permite processar até 5 GB de dados por mês gratuitamente, armazenando-os por 41 dias. É necessário pagar por exceder esses volumes; no entanto, na minha experiência, esse serviço ainda é mais barato que produtos de terceiros semelhantes, como Splunk ou Sumo.

Vamos para o Grafana, que possui um plug-in para o Azure Monitor. Foi lançado há algumas semanas na versão 0.2. Graças a este plugin, você pode usar o Grafana para suas métricas. Prefiro implantar o Grafana no App Services, pois é possível usar contêineres aqui. Isso me permite executar aplicativos em um laptop. Para fazer isso, eu executo esta linha de comando:



após a qual eu posso testar rapidamente algo ou mostrar algo aos meus clientes.
A implantação do Grafana em um ambiente do Azure também requer uma linha, apenas a divido em 4 para que eu possa vê-lo em uma tela.



O Azure possui as chamadas "estruturas de contêineres", como a AWS, o equivalente a estruturas semelhantes do Google. Esta é uma imagem de contêiner que pode ser distribuída por vários contêineres. A equipe que destaquei lança o Grafana ao mesmo tempo que o Azure Monitor. A implantação do Grafana em um ambiente de monitor leva aproximadamente 30 segundos.



Eu posso fazer o mesmo através do código de infraestrutura:



Detalhes podem ser encontrados no meu Twitter, depois darei meus contatos. Um arquivo com a extensão .yaml indica como usar a imagem do contêiner e o que fazer com ela. Existem muitas linhas de código aqui e preciso rolar a janela para baixo para que você possa vê-la. Este arquivo é implantado pela Grafana na plataforma do Azure.





Então, vou ao Grafana no meu laptop e mostro o painel que criei. Uma coisa que ainda não consigo fazer é passar as métricas do Telegraf para a Grafana. Infelizmente, essas métricas úteis executadas em uma máquina virtual ainda não são exibidas no Grafana. A Microsoft está resolvendo esse problema e provavelmente veremos o resultado em novas versões do Telegraf e Grafana. Por enquanto, podemos usar as métricas de hipervisor que o Telegraf oferece por padrão no menu suspenso da linha Métrica. Na máquina virtual, é possível criar várias métricas personalizadas que faltam à Grafana e colá-las nesse aplicativo. Isso pode ser feito se a métrica personalizada puder ser colocada no conjunto de métricas do Azure.





Os clientes costumam me perguntar o que devem usar? O Grafana exibe visualmente as métricas de vários processos, e o Azure permite executar cálculos de métricas mais complexos. No último caso, você obtém um grande conjunto de métricas "prontas para uso", mas o Azure exibe apenas as métricas do Azure. Portanto, a escolha depende das tarefas que você executa. Você pode criar métricas para o seu site, bancos de dados, aplicativos implementáveis, integrá-las ao Grafana e criar um painel informativo volumoso. Infelizmente, você não poderá fazer isso com o Azure e não creio que a Microsoft pretenda estender a funcionalidade do Azure a tal ponto.

No entanto, recomendo que você comece a criar seu painel especificamente com o Azure, porque hoje, trabalhando com um pequeno número de aplicativos, você já pode trabalhar com métricas do Azure, o que é melhor do que não fazer nada.

Portanto, nosso conhecimento das métricas do Azure Monitor está chegando ao fim e quero falar sobre mim. Meu nome é David O'Brien e meu status como MVP da Microsoft diz que passo muito tempo conversando sobre o Azure e treinando para trabalhar com este serviço.



Eu tenho minha própria empresa, organizamos cursos de treinamento em todo o mundo, falando sobre vários produtos da Microsoft, incluindo serviços em nuvem. Você vê meus contatos no Twitter, onde sou super ativo por meio de blogs. Você não precisa fotografar este slide, apenas lembre-se do endereço do site do Xirus. Você pode fazer suas perguntas!

Pergunta: As métricas são muito importantes, mas o que você pode dizer sobre o gerenciamento de logs?

Resposta: em princípio, o gerenciamento de logs no Azure é semelhante ao gerenciamento de métricas. Você também pode colocá-los em seu repositório, enviá-los ao Log Analytics e usar esse aplicativo para processar logs da mesma maneira que as métricas. Você pode coletar logs e armazená-los fora da máquina, colocá-los em contêineres e depois colocá-los centralmente no lugar certo.

Pergunta: isso pode ser feito automática ou programaticamente?

Resposta: de qualquer forma. Vamos voltar ao Azure Cloud Shell - você vê que aqui na seção métricas há um serviço que pode apresentar métricas como logs. Por exemplo, posso criar um modelo de erro e informar este serviço: "poste esses logs aqui". Durante esta demonstração, mostrei opções simples para trabalhar com o Azure; no entanto, em condições reais, use esses modelos. Você pode usar esse método através da interface da linha de comandos da CLI ou de qualquer outra maneira conveniente. Se você não deseja escrever modelos e JSON, pode usar o mecanismo aberto para escrever modelos HTTL, a Microsoft permite isso.



Sem mais perguntas? Obrigado por passar esse tempo comigo!


Um pouco de publicidade :)


Obrigado por ficar com a gente. Você gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando aos seus amigos o VPS baseado em nuvem para desenvolvedores a partir de US $ 4,99 , um analógico exclusivo de servidores básicos que foi inventado por nós para você: Toda a verdade sobre o VPS (KVM) E5-2697 v3 (6 núcleos) 10GB DDR4 480GB SSD 1Gbps de 10GB de US $ 19 ou como dividir o servidor? (as opções estão disponíveis com RAID1 e RAID10, até 24 núcleos e até 40GB DDR4).

Dell R730xd 2 vezes mais barato no data center Equinix Tier IV em Amsterdã? Somente nós temos 2 TVs Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV a partir de US $ 199 na Holanda!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - a partir de US $ 99! Leia sobre como construir infraestrutura classe c usando servidores Dell R730xd E5-2650 v4 que custam 9.000 euros por um centavo?

All Articles