Nessa apresentacao mostro quais as principais metricas de monitoramento que podemos ter para a nossa aplicação. Também demonstro com o New Relic pode nos ajudar com essas métricas e com o dashboard já configurado que ele possui.
Como ser programador durante o dia e mesmo assim dormir bem à noiteComunidade NetPonto
Apresentação do Bruno Lopes sobre variados temas como instrumentação, profiling, logging e boas práticas de programação e desenvolvimento de software, incluindo lições tiradas do processo de desenvolvimento, manutenção e suporte à produção de várias aplicaçoes e produtos, na 2a Reunião Presencial da Comunidade NetPonto (http://netponto.org) no Porto.
Treze ferramentas/frameworks para desenvolvimento androidRicardo Longa
Palestra sobre treze ferramentas/frameworks para desenvolvimento em Android, realizada no dia 18/09/14, no Senai CTAI em Florianópolis (evento do Grupo de usuários Java de SC - http://www.gujavasc.org).
Nessa apresentacao mostro quais as principais metricas de monitoramento que podemos ter para a nossa aplicação. Também demonstro com o New Relic pode nos ajudar com essas métricas e com o dashboard já configurado que ele possui.
Como ser programador durante o dia e mesmo assim dormir bem à noiteComunidade NetPonto
Apresentação do Bruno Lopes sobre variados temas como instrumentação, profiling, logging e boas práticas de programação e desenvolvimento de software, incluindo lições tiradas do processo de desenvolvimento, manutenção e suporte à produção de várias aplicaçoes e produtos, na 2a Reunião Presencial da Comunidade NetPonto (http://netponto.org) no Porto.
Treze ferramentas/frameworks para desenvolvimento androidRicardo Longa
Palestra sobre treze ferramentas/frameworks para desenvolvimento em Android, realizada no dia 18/09/14, no Senai CTAI em Florianópolis (evento do Grupo de usuários Java de SC - http://www.gujavasc.org).
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
Presented with Flavio Clésio at TDCSP2016 showing a Machine Learning solution for tracking and monitoring a critical billing platform.
Code repository:
https://github.com/eiti-kimura-movile/spark-mllib-sample
TDCPOA2018 - Trilha Python - Testes de Performance com LocustMayara Fernandes
Palestra apresentada no The Developer's Conference de Porto Alegre 2018. Trilha Python.
Sua API aguenta pressão? E agora? Descubra os pontos fracos da sua APi e a torne poderosa para as batalhas em produção! Vamos apresenta o Locust, uma ferramenta para testes de performance que trás a simplicidade e o poder do Python para bombardear a sua API com testes de performance, carga e estresse.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Stream Processing - ThoughtWorks Architecture Group - 2017Otávio Carvalho
Uma versão mais curta da apresentação anterior (FISL / TDC) para o grupo de arquitetura da ThoughtWorks Brasil. Atualizada com exemplos mais recentes da utilização de Stream Processing (em produção) por grandes empresas como Uber e Spotify.
Pensar em performance nos dias atuais é indispensável se você quer manter uma aplicação de sucesso na internet sem imprevistos durante os picos de acesso. Vamos mostrar como entender o comportamento da API sob stress utilizando o Gatling como ferramenta.
Apenas monitorar a infraestrutura não é o bastante, com as modernas arquiteturas de software e a necessidade de rápida entregas de software, começaram a exigir uma monitoria inteligente. Partindo do paper do Google apresentando o Borg iremos abordar os benefícios e técnicas para identificação de erros de forma granular traduzindo 0 e 1 para negócios.
Com histórico de métricas ?Time-series based?, alertas poderoso, bibliotecas de instrumentação em Java, Python, C#, Go, PHP, NodeJS, Erlang entre outros, apresentamos o Prometheus.io criado pela equipe do SoundCloud. O case é a implementação de nova equipe Site Reliability Engineering na estrutura de Operações de TI da B2W.
O Splunk é o mecanismo para os dados gerados por máquina
Sua infraestrutura de TI gera enormes quantidades de dados. Dados gerados por máquina - gerados por sites, aplicativos, servidores, redes, dispositivos móveis e afins. Ao monitorar e analisar tudo, de clickstreams e transações de clientes à atividade de rede para registrar chamadas, o Splunk transforma seus dados de máquina em percepções valiosas.
Solucione problemas e investigue incidentes de segurança em minutos (não horas ou dias). Monitore sua infraestrutura de ponta a ponta para evitar a degradação ou interrupções de serviço. E obtenha visibilidade em tempo real sobre a experiência, transações e comportamento dos clientes
Apresentação realizada na trilha de banco de dados do TDC São Paulo 2016.
Demostra conceitos básicos sobre o que é um banco de dados temporal e como o mesmo foi aplicado a Umbler para realizar a monitoria do consumo de recursos de seus clientes em tempo real.
[TDC2016] Apache SparkMLlib: Machine Learning na PráticaEiti Kimura
Presented with Flavio Clésio at TDCSP2016 showing a Machine Learning solution for tracking and monitoring a critical billing platform.
Code repository:
https://github.com/eiti-kimura-movile/spark-mllib-sample
TDCPOA2018 - Trilha Python - Testes de Performance com LocustMayara Fernandes
Palestra apresentada no The Developer's Conference de Porto Alegre 2018. Trilha Python.
Sua API aguenta pressão? E agora? Descubra os pontos fracos da sua APi e a torne poderosa para as batalhas em produção! Vamos apresenta o Locust, uma ferramenta para testes de performance que trás a simplicidade e o poder do Python para bombardear a sua API com testes de performance, carga e estresse.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Stream Processing - ThoughtWorks Architecture Group - 2017Otávio Carvalho
Uma versão mais curta da apresentação anterior (FISL / TDC) para o grupo de arquitetura da ThoughtWorks Brasil. Atualizada com exemplos mais recentes da utilização de Stream Processing (em produção) por grandes empresas como Uber e Spotify.
Pensar em performance nos dias atuais é indispensável se você quer manter uma aplicação de sucesso na internet sem imprevistos durante os picos de acesso. Vamos mostrar como entender o comportamento da API sob stress utilizando o Gatling como ferramenta.
Apenas monitorar a infraestrutura não é o bastante, com as modernas arquiteturas de software e a necessidade de rápida entregas de software, começaram a exigir uma monitoria inteligente. Partindo do paper do Google apresentando o Borg iremos abordar os benefícios e técnicas para identificação de erros de forma granular traduzindo 0 e 1 para negócios.
Com histórico de métricas ?Time-series based?, alertas poderoso, bibliotecas de instrumentação em Java, Python, C#, Go, PHP, NodeJS, Erlang entre outros, apresentamos o Prometheus.io criado pela equipe do SoundCloud. O case é a implementação de nova equipe Site Reliability Engineering na estrutura de Operações de TI da B2W.
O Splunk é o mecanismo para os dados gerados por máquina
Sua infraestrutura de TI gera enormes quantidades de dados. Dados gerados por máquina - gerados por sites, aplicativos, servidores, redes, dispositivos móveis e afins. Ao monitorar e analisar tudo, de clickstreams e transações de clientes à atividade de rede para registrar chamadas, o Splunk transforma seus dados de máquina em percepções valiosas.
Solucione problemas e investigue incidentes de segurança em minutos (não horas ou dias). Monitore sua infraestrutura de ponta a ponta para evitar a degradação ou interrupções de serviço. E obtenha visibilidade em tempo real sobre a experiência, transações e comportamento dos clientes
Apresentação realizada na trilha de banco de dados do TDC São Paulo 2016.
Demostra conceitos básicos sobre o que é um banco de dados temporal e como o mesmo foi aplicado a Umbler para realizar a monitoria do consumo de recursos de seus clientes em tempo real.
20. Eventos coletados
● Todo evento específico de cada app do New Relic
○ Transaction/TransactionError - APM
21. Eventos coletados
● Todo evento específico de cada app do New Relic
○ Transaction/TransactionError - APM
○ PageView - Web
22. Eventos coletados
● Todo evento específico de cada app do New Relic
○ Transaction/TransactionError - APM
○ PageView - Web
○ MobileSession - Mobile apps
30. New Relic Query Language
● É parecido com SQL
● Não tem JOIN (API)
31. New Relic Query Language
● É parecido com SQL
● Não tem JOIN (API)
● Não tem subsql (API)
32. New Relic Query Language
● É parecido com SQL
● Não tem JOIN (API)
● Não tem subsql (API)
● Te deixa colocar WHERE em quase qualquer lugar e isto não está errado, supera.
36. SELECT *
FROM Transaction
WHERE appName = 'production.ucs-printer'
AND httpResponseCode IN (400, 500)
WHERE appId = '123123asdasd123'
37. SELECT *
FROM Transaction
WHERE appName = 'production.ucs-printer'
AND httpResponseCode IN (400, 500)
WHERE appId = '123123asdasd123'
SINCE 2 days ago UNTIL now
45. Atributos customizados
● Não utilizar nomes dinâmicos no nome dos atributos
● É aconselhável mapear objetos com ponto
○ request.id
○ request.length
Boas práticas
46. Atributos customizados
● Não utilizar nomes dinâmicos no nome dos atributos
● É aconselhável mapear objetos com ponto
○ request.id
○ request.length
● É aconselhável mapear atributos em camelCase
Boas práticas
47. Atributos customizados
● Não utilizar nomes dinâmicos no nome dos atributos
● É aconselhável mapear objetos com ponto
○ request.id
○ request.length
● É aconselhável mapear atributos em camelCase
● Ligar distributed trace
Boas práticas
49. AddAttribute(key string, value interface{}) error
if tx := newrelic.FromContext(ctx); tx != nil {
tx.AddAttribute(key, value)
}
Exemplo Custom attributes: GO
50. ctx := context.TODO() //the context must have a transaction embedded
telemetry.AddAttributes(ctx, "name", "rage", "version", "1.0.0")
Exemplo Custom attributes: GO
53. ● É um dispositivo físico com várias esteiras
Contexto: sorter
54. ● É um dispositivo físico com várias esteiras
● Recebe um pacote e "chuta" o mesmo para uma rampa pré determinada
Contexto: sorter
55. ● É um dispositivo físico com várias esteiras
● Recebe um pacote e "chuta" o mesmo para uma rampa pré determinada
● Feito para processar grande fluxo de pacotes
Contexto: sorter
56. ● É um dispositivo físico com várias esteiras
● Recebe um pacote e "chuta" o mesmo para uma rampa pré determinada
● Feito para processar grande fluxo de pacotes
● Possui checkpoints para informar eventos
● Etc
Contexto: sorter
57. Diariamente processamos diversos pacotes no sorter, como o New
Relic Insights pode nos ajudar a entender o comportamento
desses pacotes?
Exemplo
58. NR - Funnel
Te permite perguntar: "Dos pacotes que executaram o passo 1,
quantos também executaram o passo 2, e dos pacotes que
concluíram os passos 1 e 2, quantos também concluíram até o
passo 3?
85. Exemplo - Análise
Possível identificar visualmente
● Quanto mais chamadas a função "calcular" mais lento o request
● Caso seja necessário ter várias chamadas a essa função
○ é nesse ponto que devemos aplicar uma melhoria
88. Permite criar alertas
● Em aplicações monitoradas (New Relic APM)
● Utilizando dados client-side (New Relic Browser)
Alertas
89. Permite criar alertas
● Em aplicações monitoradas (New Relic APM)
● Utilizando dados client-side (New Relic Browser)
● Sobre infraestruturas monitoras (New Relic Servers)
Alertas
90. Permite criar alertas
● Em aplicações monitoradas (New Relic APM)
● Utilizando dados client-side (New Relic Browser)
● Sobre infraestruturas monitoras (New Relic Servers)
● Sobre external services (New Relic APM)
Alertas
91. Permite criar alertas
● Em aplicações monitoradas (New Relic APM)
● Utilizando dados client-side (New Relic Browser)
● Sobre infraestruturas monitoras (New Relic Servers)
● Sobre external services (New Relic APM)
● Baseado em queries (New Relic Insights)
Alertas
106. New Relic
● Quanto mais recursos usamos do New Relic, mais aproveitamos suas funcionalidades
● Maior controle sobre métricas de aplicação
○ e de negócio
● Melhoria da sua aplicação
Conclusão