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

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.

Boa tarde, hoje falaremos sobre métricas. Meu nome é David O'Brien, sou co-fundador e proprietário da pequena empresa de consultoria australiana Xirus. Obrigado novamente por vir aqui para passar seu tempo comigo. Então porque estamos aqui? Para falar sobre métricas, ou melhor, vou falar sobre elas, e antes que você faça alguma coisa, começamos com a teoria.



Darei a você o que são métricas, o que você pode fazer com elas, o que você precisa prestar atenção, como coletar e habilitar a coleção de métricas no Azure e qual é a visualização das métricas. Vou mostrar como essas coisas são na nuvem da Microsoft e como trabalhar com essa nuvem.

Antes de começar, pedirei que levante as mãos de quem usa o Microsoft Azure. E quem trabalha com a AWS? Eu vejo alguns. E o Google? ALI Cloud? Um homem! Bem. Então, o que são métricas? A definição oficial do Instituto Nacional de Padrões e Tecnologia dos EUA é assim: "Uma métrica é um padrão de medição que descreve as condições e regras para medir uma propriedade e serve para entender os resultados da medição". O que isso significa?

Por exemplo, considere a métrica para alterar o espaço livre de um disco da máquina virtual. Por exemplo, recebemos o número 90 e esse número significa porcentagens, ou seja, a quantidade de espaço livre em disco é de 90%. Observo que não é muito interessante ler a descrição da definição de métricas, que ocupa 40 páginas em formato pdf.

No entanto, a métrica não diz como o resultado da medição foi obtido, apenas mostra esse resultado. O que fazemos com as métricas?

Primeiro, medimos o valor de algo e depois usamos o resultado da medição.



Por exemplo, aprendemos a quantidade de espaço livre em disco e agora podemos usá-lo, usar essa memória etc. Depois de obter o resultado da métrica, devemos interpretá-la. Por exemplo, a métrica deu um resultado de 90. Precisamos saber o que esse número significa: a quantidade de espaço livre ou a quantidade de espaço em disco usado em porcentagem ou gigabytes, latência de rede igual a 90 ms e assim por diante, ou seja, precisamos interpretar o significado do valor da métrica. Para que as métricas façam sentido, depois de interpretar um único valor de métrica, precisamos garantir a coleta de vários valores. Isso é muito importante porque muitas pessoas não estão cientes da necessidade de coletar métricas. A Microsoft facilitou muito a obtenção de métricas, mas você deve garantir que elas sejam coletadas. Essas métricas são armazenadas por apenas 41 dias e desaparecem no 42º dia.Portanto, dependendo das propriedades do seu equipamento externo ou interno, você deve cuidar de como economizar métricas por mais de 41 dias - na forma de registros, revistas, etc. Assim, após a coleta, você deve colocá-los em algum lugar que permita elevar, se necessário, todas as estatísticas sobre alterações nos resultados das métricas. Ao colocá-los lá, você pode começar a trabalhar efetivamente com eles.

Somente depois de receber os valores das métricas, interpretá-los e coletá-los, você poderá criar um SLA - um acordo sobre o nível de serviço. Esse SLA pode não ser de particular importância para seus clientes; é mais importante para seus colegas, gerentes, para quem fornece o sistema e se preocupa com sua funcionalidade. A métrica pode medir o número de tickets - por exemplo, você recebe 5 tickets por dia e, nesse caso, mostra a velocidade da resposta às solicitações do usuário e a velocidade da solução de problemas. Uma métrica não deve apenas indicar que o seu site carrega em 20 ms ou uma velocidade de resposta de 20 ms; uma métrica é mais do que apenas um indicador técnico.

Portanto, o objetivo da nossa conversa é apresentar uma imagem detalhada da essência das métricas. A métrica serve para analisá-la e você pode obter uma imagem completa do processo.



Assim que obtemos a métrica, podemos garantir 99% do estado de funcionamento do sistema, porque essa não é apenas uma olhada no arquivo de log que indica que o sistema está funcionando. Uma garantia de disponibilidade de 99% significa que, por exemplo, em 99% dos casos, a API responde com uma velocidade normal de 30 ms. É exatamente isso que interessa a seus usuários, colegas e gerentes. Muitos de nossos clientes rastreiam os logs dos servidores da Web, enquanto não percebem nenhum erro e acham que tudo está em ordem. Por exemplo, eles veem um indicador de velocidade de rede de 200 mb / se pensam: "ok, está tudo bem!". Mas, para atingir esses 200, os usuários precisam de uma velocidade de resposta de 30 milissegundos, e esse é exatamente o indicador que não é medido e não é coletado nos arquivos de log. Ao mesmo tempo, os usuários ficam surpresos com o carregamento lento do site, porque, sem a métrica certa,Eles não sabem os motivos desse comportamento.

Porém, como temos um SLA que garante 100% de tempo de atividade, os clientes começam a expressar indignação, porque, na realidade, o site é muito difícil de usar. Portanto, para criar um SLA objetivo, você precisa ver a imagem completa do processo criado pelas métricas coletadas. Esse é o assunto do meu debate em andamento com alguns provedores que, ao criar o SLA, não entendem o significado do termo "tempo de atividade" e, na maioria dos casos, não explicam aos seus clientes como a API funciona.

Se você criou um serviço, por exemplo, uma API para uma terceira pessoa, deve entender o que significa a métrica recebida 39.5 - resposta, resposta bem-sucedida, resposta a uma velocidade de 20 ms ou a uma velocidade de 5 ms. É você quem deve adaptar o SLA deles ao seu próprio SLA, às suas próprias métricas.

Depois de descobrir tudo isso, você pode começar a criar um painel inteligente. Diga-me, alguém já usou o aplicativo de visualização interativa da Grafana? Bem! Eu sou um grande fã desse código aberto, porque é gratuito e fácil de usar.



Se você não usou o Grafana, eu vou lhe dizer como trabalhar com ele. Quem nasceu nos anos 80-90, provavelmente se lembra dos filhotes CareBears? Não sei o quão populares esses ursos eram na Rússia, mas em termos de métricas devemos ser os mesmos "ursos carinhosos". Como eu disse, você precisa de uma imagem detalhada de todo o sistema, e isso não deve interessar apenas a sua API, seu site ou serviço em execução em uma máquina virtual.



Você deve organizar a coleção dessas métricas que melhor refletem a operação de todo o sistema. A maioria de vocês é desenvolvedora de software; portanto, sua vida muda constantemente, adaptando-se aos novos requisitos do produto e, assim como você se preocupa com os processos de codificação, deve cuidar das métricas. Você precisa saber como a métrica toca em cada linha de código que você escreve. Por exemplo, na próxima semana, você inicia uma nova empresa de marketing e espera que um grande número de usuários visite seu site. Para analisar esse evento, você precisará de métricas e um painel inteiro para acompanhar a atividade dessas pessoas. Você precisará de métricas para descobrir o sucesso e como sua empresa de marketing realmente funciona. Eles ajudarão você, por exemplo,desenvolver um CRM eficaz - sistema de gerenciamento de relacionamento com o cliente.

Então, vamos começar com o nosso serviço de nuvem do Azure. É muito fácil encontrar e organizar a coleção de métricas, porque existe o Azure Monitor. Este monitor centraliza o gerenciamento de configuração do seu sistema. Cada um dos elementos do Azure que você deseja aplicar ao seu sistema tem muitas métricas padrão ativadas. Este é um aplicativo gratuito que funciona diretamente "pronto para uso" e não requer configurações preliminares, você não precisa escrever nada e "parafusar" isso no seu sistema. Verificaremos isso visualizando a seguinte demonstração.



Além disso, é possível enviar essas métricas para aplicativos de terceiros, como o sistema de armazenamento e análise de logs Splunk, o aplicativo de gerenciamento de logs baseado na nuvem SumoLogic, a ferramenta de processamento de logs ELK, o IBM Radar. É verdade que existem pequenas diferenças que dependem dos recursos que você usa - uma máquina virtual, serviços de rede, bancos de dados SQL do Azure, ou seja, o uso de métricas varia de acordo com as funções do seu ambiente de trabalho. Não direi que essas diferenças são graves, mas, infelizmente, ainda estão presentes, e isso deve ser levado em consideração. A inclusão e a transferência de métricas são possíveis de várias maneiras: por meio do Portal, CLI / Power Shell ou usando modelos ARM.



Antes de iniciar a primeira demonstração, responderei suas perguntas. Se não houver perguntas, vamos começar. A tela mostra a aparência da página do Azure Monitor. Alguém pode dizer que este monitor não está funcionando?



Então, agora tudo está em ordem, você vê a aparência dos serviços do monitor. Posso dizer que esta é uma ferramenta excelente e muito simples para o trabalho diário. Com ele, você pode monitorar aplicativos, redes e infraestrutura. Recentemente, a interface de monitoramento foi aprimorada e, se anteriormente os serviços estavam localizados em locais diferentes, agora todas as informações nos serviços são consolidadas na página inicial do monitor.

A tabela de métricas é uma guia no caminho Home \ Monitor \ Metrics que você pode acessar para ver todas as métricas disponíveis e selecionar as necessárias. Mas se você precisar ativar a coleção de métricas, use o caminho do diretório de configurações Home \ Monitor \ Diagnostic e marque as caixas de seleção Métricas ativadas / desativadas. Por padrão, quase todas as métricas estão ativadas, mas se você precisar ativar algo adicional, precisará alterar o status do diagnóstico de Desativado para Ativado.



Para fazer isso, clique na linha da métrica selecionada e na guia que abre, habilite o modo de diagnóstico. Se você estiver analisando a métrica selecionada, depois de clicar no link Ativar diagnóstico, marque a caixa de seleção Enviar para o Log Analytics na janela exibida.



O Log Analytics é um pouco como o Splunk, mas mais barato. Esse serviço permite coletar todas as suas métricas, logs e tudo o que você precisa e colocá-las no espaço de trabalho do Log Analytics. O serviço usa uma linguagem de processamento de consultas KQL especial - Kusto Quarry Language; consideraremos seu trabalho na próxima demonstração. Por enquanto, observarei que, com sua ajuda, você pode formular consultas sobre métricas, logs, termos, tendências, padrões etc. e criar painéis.

Portanto, marcamos a caixa de seleção Enviar para o Log Analytics e as caixas de seleção do painel LOG: DataPlaneRequests, MongoRequests e QueryRuntimeStatistics e abaixo no painel METRIC - a caixa de seleção Solicitações. Em seguida, atribuímos um nome e salvamos as configurações. Na linha de comando, são duas linhas de código. A propósito, o shell da nuvem do Azure, nesse sentido, se parece com o Google, que também permite que você use a linha de comando no seu navegador da web. A AWS não tem nada disso, portanto, o Azure é muito mais conveniente nesse sentido.

Por exemplo, eu posso executar a demonstração pela interface da web sem usar nenhum código no meu laptop. Para fazer isso, preciso me autenticar usando minha conta do Azure. Em seguida, você pode usar, por exemplo, terrafone, se já o usar, aguardar a conexão com o serviço e obter o ambiente de trabalho Linux, que a Microsoft usa por padrão.



Em seguida, uso o Bash incorporado ao Shell de Nuvem do Azure. Uma coisa muito útil é o IDE embutido no navegador, uma versão leve do VS Code. Em seguida, posso acessar meu modelo de métrica de erro, alterá-lo e personalizá-lo de acordo com minhas necessidades.



Ao configurar a coleção de métricas neste modelo, você pode usá-lo para criar métricas para toda a sua infraestrutura. Depois de aplicar as métricas, coletá-las e salvá-las, precisaremos visualizá-las.



O Azure Monitor lida apenas com métricas e não oferece uma oportunidade de obter uma imagem geral do estado do seu sistema. Você pode usar vários outros aplicativos em execução fora do Azure. Portanto, se você precisar monitorar todos os processos, visualizando todas as métricas coletadas em um único local, o Azure Monitor não funcionará para isso.

Para resolver esse problema, a Microsoft oferece a ferramenta Power BI - um software abrangente para análise de negócios, que inclui a visualização de uma ampla variedade de dados. Este é um produto bastante caro, cujo custo depende do conjunto de funções necessárias. Por padrão, ele oferece 48 tipos de dados processados ​​e está associado aos Armazéns de Dados SQL do Azure, Azure Data Lake Storage, Serviços de Aprendizado de Máquina do Azure e Databricks do Azure. Usando a escalabilidade, você pode receber novos dados a cada 30 minutos. Isso pode ser suficiente para as suas necessidades ou não, se você precisar de uma visualização de monitoramento em tempo real. Nesse caso, é recomendável usar aplicativos como o que mencionei pela Grafana. Além disso, a documentação da Microsoft descreve a capacidade de enviar métricas,logs e tabelas de eventos usando SIEM - ferramentas nos sistemas de visualização Splunk, SumoLogic, ELK e IBM radar.

23:40 min

Para continuar em breve ...


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) 10 GB DDR4 480 GB SSD 1 Gbps 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