SlideShare une entreprise Scribd logo
1  sur  75
Monitoramento em tempo real com
Elasticsearch e Kibana
Marcus Lacerda
❖ Formado UFU em 2002
❖ JAVA, .NET, JS, ESB (...)
❖ Arquiteto na Ci&T ~9 anos
❖ Bike e Kartista frustrado ;-)
marcus-lacerdaa
marcuslacerda
@mlacerda_cit
goo.gl/19asDo
CONTEXTO
Qual era nosso desafio?
+100
Linhas de
Código
1M
Funcionalidades
+39
Log
s
24x7
3k
600k
Usuários
Request /
Day
Operação
Qual era nosso desafio?
Monitoramento em tempo real (DEVDAY2015)
Você sabe o que acontece no
seu sistema em produção?
Quantos usuários diferentes
logaram na última semana?
Quais são as funcionalidades
mais utilizadas?
Quantos erros não tratados os
usuários estão recebendo?
Como responder essas perguntas?
SQL
Dispositivos
Integrações
Code Runtime
Monitoramento em
Tempo Real
Utilização
Integrações
SQL
Utilização
Dispositivos
Code Runtime
Monitoramento em
Tempo Real
Integrações
SQL
Utilização
Dispositivos
Code Runtime
Monitoramento em
Tempo Real
Codahale
Metrics
Vamos falar sobre:
ELASTICSEARCH
Opensource nosql database
Primeira release em 2010 por
@kimchy
Shay Banon
Elasticsearch
Monitoramento em tempo real (DEVDAY2015)
Elasticsearch
Poderosa ferramenta de pesquisa baseada no Apache
Lucene
Escalabilidade
● Distribuido
● Node Discovery
● Query distribuition
Elasticsearch
Node Node Node
GET /_search?q=age:18
RESTFul API: JSON in, JSON out
Elasticsearch
wget https://download.elastic.co/elasticsearch/...
tar -xf elasticsearch-1.7.2.tar.gz
cd elasticsearch-1.7.2
./bin/elasticsearch
GET localhost:9200
# 200 OK
{
"status" : 200,
"name" : "Armageddon",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.2",
"build_hash" : "e43676b1385b8125d647f593f7202acb...",
"build_timestamp" : "2015-09-14T09:49:53Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
Como enviar um documento?
PUT <server:port>/index/type/id
PUT <server:port>/index/type/id
PUT <server:port>/index/type/id
where?
PUT <server:port>/twitter/type/id
PUT <server:port>/twitter/type/id
what?
PUT <server:port>/twitter/tweet/id
PUT <server:port>/twitter/tweet/id
which?
PUT <server:port>/twitter/tweet/1
PUT <server:port>/twitter/tweet/1 -d '
{
"created_at": "Oct/31/2015 16:30:12 +0000",
"text": "Introducing Elastic DevDay2015",
"user": {
"name": "Marcus Lacerda",
"screen_name": "mlacerda_cit"
},
"loc": {
"lat": 12.2,
"lon": 34.6
}
}
# 201 CREATED
{
"_index": "twitter",
"_type": "tweet",
"_id": "1",
"_version": 1,
"created": true
}
Como pesquisar?
GET /twitter/tweet/1
GET /twitter/_search
{
"query": {
/* Query DSL */
}
}
}
GET /twitter/_search
{
"query": {
"filtered" : {
"query" : {"match" : {"text" : "devday"}},
"filter" : { "geo_distance" : {
"distance" : "100km",
"coordinates.location" : [-40, -20]
}
}
}
}
}
# 200 OK
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 9,
"max_score": 3.1949658,
"hits": [
{...},
{...}
Hein?
Preciso usar
essa API
Rest na
munheca?
var node = new Uri("http://localhost:9200");
var config = new ConnectionConfiguration(node);
var client = new ElasticsearchClient(config);
PM > Install-Package Elasticsearch.Net
var myJson = @"{ ""text"" : ""hello world"" }";
client.Index("myindex","mytype","1", myJson);
.Net API
client.search({
q: 'devday'
}).then(function (body) {
var hits = body.hits.hits;
}, function (error) { … });
var client = new elasticsearch.Client({
host: 'localhost:9200'
});
var elasticsearch = require('elasticsearch');
Javascript API
REST API
● Microsoft .NET
● JavaScript
● Java (binary protocol)
● Ruby
● Python
● PHP
● Perl
● C++
Outras Bibliotecas
Integrações
SQL
Utilização
Dispositivos
Code Runtime
Monitoramento em
Tempo Real
LOGSTASH
INPUT OUTPUT
Simplifica a coleta dos dados
Inputs:
stdin
file
s3
jdbc
jmx
github
http
tcp
redis
twitter
... e outros
Outputs:
stout
file
s3
csv
email
elasticsearch
graphite
nagios
mongodb
redis
Inputs:
stdin
file
s3
jdbc
jmx
github
http
tcp
redis
twitter
... e outros
Outputs:
stout
file
s3
csv
email
elasticsearch
graphite
nagios
mongodb
redis
wget https://download.elastic.co/logstash/
tar -xf logstash-1.5.4.tar.gz
cd logstash-1.5.4/
./bin/logstash -e -d
'input {
file { ... }
}
output {
elasticsearch { ... }
}'
output {
elasticsearch {
host => "localhost"
port => "9200"
protocol => "http"
cluster => "elasticsearch"
index => "twitter-%{+YYYY.MM}"
document_type => "tweet"
}
}
input {
twitter {
consumer_key => "%KEY%"
consumer_secret => "%SECRET%"
oauth_token => "%TOK%"
oauth_token_secret => "%TOK%"
keywords => [
"#devday2015",
"#esdevday2015"
]
}
}
./bin/logstash -f twitter.conf
tweet suas dúvidas ou comentários durante o
evento com a hashtag:
#esdevday2015
#devday2015
@mlacerda_cit
SQL
Utilização
Dispositivos
Code Runtime
Monitoramento em
Tempo Real
Integrações
Utilização
CODAHALE METRICS
Java library que fornece um conjunto de
ferramentas poderosas para medir o
comportamento do seu código no ambiente de
produção
source: http://metrics.dropwizard.io
Codahale Metrics
Gauges
Counters
Histograms
Meters
Timers
MÉTRICAS
# Usuários Logados
Async reporter to elasticsearch
ELASTICSEARCH API /_bulk
Integrações
SQL
Utilização
Dispositivos
Code Runtime
Monitoramento em
Tempo Real
Code Runtime
Dispositivos
SQL
KIBANA
Permite analisar dados a partir Elasticsearch
AngularJS + NodeJS serverside
Kibana
Interface flexivel e fácil de
customizar
Possibilista análise
sofisticadas
Kibana
wget https://download.elastic.co/kibana/
tar -xf kibana.4.2.1.tar.gz
cd kibana.4.2.1
./bin/kibana
Kibana
Integrações
SQL
Utilização
Dispositivos
Code Runtime
Monitoramento em
Tempo Real
Integrações
SQL
Utilização
Dispositivos
Code Runtime
Monitoramento em
Tempo Real
NOSSOS EXEMPLOS!
Anomalia?
QUANTIDADE DE ERROS vistos pelos usuários
UTILIZAÇÃO: 2w PÓS GOLIVE
+50% em 3
funcionalidades
+80% c/ IE 11
Indicadores de Negócio
Degradação de
performance?
DEMO
GET /twitter/_search?q=devday2015
Perguntas?
Obrigado

Contenu connexe

En vedette

11 gigas por dia e um milhão de possibilidades (meetup bh)
11 gigas por dia e um milhão de possibilidades (meetup bh)11 gigas por dia e um milhão de possibilidades (meetup bh)
11 gigas por dia e um milhão de possibilidades (meetup bh)Marcus Lacerda
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5Waldyr Felix
 
TCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebTCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebVagner Santana
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosThiago Pereira
 
A crash course in responsive design
A crash course in responsive designA crash course in responsive design
A crash course in responsive designEd Charbeneau
 
Palestra dados abertos - Case Recife
Palestra dados abertos - Case RecifePalestra dados abertos - Case Recife
Palestra dados abertos - Case RecifeBreno
 
Scrum - Desenvolvimento Ágil
Scrum - Desenvolvimento ÁgilScrum - Desenvolvimento Ágil
Scrum - Desenvolvimento ÁgilIsrael Santiago
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .NetRichard Banks
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 

En vedette (9)

11 gigas por dia e um milhão de possibilidades (meetup bh)
11 gigas por dia e um milhão de possibilidades (meetup bh)11 gigas por dia e um milhão de possibilidades (meetup bh)
11 gigas por dia e um milhão de possibilidades (meetup bh)
 
Microservices com ASP.NET 5
Microservices com ASP.NET 5Microservices com ASP.NET 5
Microservices com ASP.NET 5
 
TCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebTCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações Web
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
 
A crash course in responsive design
A crash course in responsive designA crash course in responsive design
A crash course in responsive design
 
Palestra dados abertos - Case Recife
Palestra dados abertos - Case RecifePalestra dados abertos - Case Recife
Palestra dados abertos - Case Recife
 
Scrum - Desenvolvimento Ágil
Scrum - Desenvolvimento ÁgilScrum - Desenvolvimento Ágil
Scrum - Desenvolvimento Ágil
 
Architecting Microservices in .Net
Architecting Microservices in .NetArchitecting Microservices in .Net
Architecting Microservices in .Net
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 

Similaire à Monitoramento em tempo real (DEVDAY2015)

Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSMatheus Donizete
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stackSidney Roberto
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Marcus Garcia
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekLuiz Carlos Faria
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Rafael Benevides
 
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto DesempenhoEiti Kimura
 
Programando pra Celular!? Java ME: o que é e como começar
Programando pra Celular!? Java ME: o que é e como começarProgramando pra Celular!? Java ME: o que é e como começar
Programando pra Celular!? Java ME: o que é e como começarLucas Torri
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLRaul Oliveira
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacAndre Baltieri
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...WeOp - The Operations Summit
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...tdc-globalcode
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaRodrigo Cândido da Silva
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )João Moura
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server EmbratelAlex Hübner
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGustavo Concon
 

Similaire à Monitoramento em tempo real (DEVDAY2015) (20)

Tornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JSTornando as coisas mais simples com Azure Functions e Node.JS
Tornando as coisas mais simples com Azure Functions e Node.JS
 
Node.js: serious business
Node.js: serious businessNode.js: serious business
Node.js: serious business
 
Precisamos falar sobre MERN stack
Precisamos falar sobre MERN stackPrecisamos falar sobre MERN stack
Precisamos falar sobre MERN stack
 
Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1) Azure e suas vantagens (Palestra 1)
Azure e suas vantagens (Palestra 1)
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC Week
 
Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007Apostilava Java EE 5 - 2007
Apostilava Java EE 5 - 2007
 
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
[DataFest-2017] Apache Cassandra Para Sistemas de Alto Desempenho
 
Programando pra Celular!? Java ME: o que é e como começar
Programando pra Celular!? Java ME: o que é e como começarProgramando pra Celular!? Java ME: o que é e como começar
Programando pra Celular!? Java ME: o que é e como começar
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
TDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no MacTDC SP 2015 - Criando aplicações ASP.NET no Mac
TDC SP 2015 - Criando aplicações ASP.NET no Mac
 
Introdução Play framework
Introdução Play frameworkIntrodução Play framework
Introdução Play framework
 
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
Arquitetura executável: Documentando e automatizando a comunicação da equipe ...
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
TDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com JavaTDC Floripa 2017 - Criando Microservices Reativos com Java
TDC Floripa 2017 - Criando Microservices Reativos com Java
 
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
 
dnad12
dnad12dnad12
dnad12
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
Deep dive de AWS IoT
Deep dive de AWS IoTDeep dive de AWS IoT
Deep dive de AWS IoT
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
 

Monitoramento em tempo real (DEVDAY2015)

Notes de l'éditeur

  1. Conteúdo apresentado está disponível nesse link. Será divulgado no momento da apresentação no evento.
  2. Passar a ideia do projeto -> milhares de usuários conectados no sistema -> múltiplos dispositivos: mobile, browser, relogia -> centranas de integrações e APIs públicas Link com apresentação do Rodrigão (desafios) -> http://pt.slideshare.net/RodrigoStefaniDoming/qcon-rio-2015-arquitetura-incremental
  3. Características: O projeto tinha alguns requisitos bem cabulosos! 24x7, isso muda impacta bastante algumas decisões, principalemnte no sentido de quanto voce consegue mensurar dela. usuários simultaneos 1k, nessa era atual onde normalmente falamos de milhares/milhoes de usuários 1k parece pouco, mas temos que lembrar que este é um sistema, complexo, que executa regras de negócio, faz gestão, processa indicadores, para que esses 1k usuários que estão ativos 24hs pod dia 7 dias por semana. 300k requiests / dia. Para esse desafio nos acabamos precisando de
  4. PLATAFORMA: "a brincadeira começa quando os usuários começam a utilizar a sua plataforma". Como estar preparado para a vida real?
  5. Como permitir um trabalho de analitics e detecção de anomalias em tempo real? Precisamos de informações (estatística) sobre o que está acontecendo "dentro" da solução? Ter condições de analisar dados estátisticos para saber o que está acontecendo na solução e tomar medidas proativas durante a implantação. Técnica como: Capture domain events explicitly Real user monitoring Structured logging / events
  6. Como permitir um trabalho de analitics e detecção de anomalias em tempo real? Precisamos de informações (estatística) sobre o que está acontecendo "dentro" da solução? Ter condições de analisar dados estátisticos para saber o que está acontecendo na solução e tomar medidas proativas durante a implantação. Técnica como: Capture domain events explicitly Real user monitoring Structured logging / events
  7. Essas informações existem, mas geralmente estão desestruturadas LOGS da aplicação LOGS dos servidores Requests dos usuários SQL vs Requests Mais importante do que ter todas as perguntas antecipadamente era ter uma forma fácil de encontrar o que precisávamos
  8. Precisamos de informações (estatística) sobre o que está acontecendo "dentro" da solução? Ter condições de analisar dados estátisticos para saber o que está acontecendo na solução e tomar medidas proativas durante a implantação.
  9. Repositório central e estruturado das informações técnicas Plataforma flexível e poderosa de pesquisa que permitisse investigar o que está acontecendo Fazer o link com Sonar para análise estática de código que já é comum nos projetos quando se fala de Continuous Integration.
  10. Repositório central e estruturado das informações técnicas Plataforma flexível e poderosa de pesquisa que permitisse investigar o que está acontecendo Fazer o link com Sonar para análise estática de código que já é comum nos projetos quando se fala de Continuous Integration.
  11. ElasticSearch is an open source, RESTful search engine built on top of Apache Lucene and released under an Apache license. It is Java-based and can search and index document files in diverse formats. ElasticSearch has been compared to Apache Solr and offers several notable features: Provides a scalable search solution. Performs near-real-time searches. Provides support for multi-tenancy. Streamlines backup processes and ensures data integrity. An index can be easily recovered in a case of a server crash. Uses Javascript Object Notation (JSON) and Java application program interfaces (APIs). Automatically indexes JSON documents. Indexing uses unique type-level identifiers. Each index can have its own settings. Searches can be done with Lucene-based querystrings.
  12. Grandes players estão usando Stackoverflow usava Lucene.NET. Apos problemas de performance, mudou pra elastic (isso a uns 2 anos atras). -> http://meta.stackexchange.com/questions/160100/a-new-search-engine-for-stack-exchange -> http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-i.html -> Zendesk migrou do Solr para Elasticsearch depois de problemas para escalar seu produto https://www.elastic.co/elasticon/2015/sf/from-apache-to-solr-to-elasticsearch-evolution-zendesk-search-experience
  13. Compass foi descontinuado para dar vida ao Elasticsearch, com grande mindset deste ser realmente distribuido
  14. Precisa ter o java 7 instalado Baixar o elasticsearch no site e descompatar o zip Arquivo pequeno. Menos de 20 megas Executar o comando ./bin/elasticsearch
  15. Repositório central e estruturado das informações técnicas Plataforma flexível e poderosa de pesquisa que permitisse investigar o que está acontecendo Fazer o link com Sonar para análise estática de código que já é comum nos projetos quando se fala de Continuous Integration.
  16. Mostrar o pacote de instacal witix-dashbaord witix-client Mostrar elasticserach funcionando http://localhost:7001/witix/es http://localhost:7001/witix/head/ (backoffice de administracao)
  17. Caso mais comum Input (File) para Output (Elasticsearch)
  18. Precisa ter o java 7 instalado Vaixar o logstash no link logstash/logstash-1.5.4.zip e descompacta-lo Arquivo pequeno. Menos de 20 megas
  19. Repositório central e estruturado das informações técnicas Plataforma flexível e poderosa de pesquisa que permitisse investigar o que está acontecendo Fazer o link com Sonar para análise estática de código que já é comum nos projetos quando se fala de Continuous Integration.
  20. Mostrar o pacote de instacal witix-dashbaord witix-client Mostrar elasticserach funcionando http://localhost:7001/witix/es http://localhost:7001/witix/head/ (backoffice de administracao)
  21. Repositório central e estruturado das informações técnicas Plataforma flexível e poderosa de pesquisa que permitisse investigar o que está acontecendo Fazer o link com Sonar para análise estática de código que já é comum nos projetos quando se fala de Continuous Integration.
  22. Repositório central e estruturado das informações técnicas Plataforma flexível e poderosa de pesquisa que permitisse investigar o que está acontecendo Fazer o link com Sonar para análise estática de código que já é comum nos projetos quando se fala de Continuous Integration.
  23. Repositório central e estruturado das informações técnicas Plataforma flexível e poderosa de pesquisa que permitisse investigar o que está acontecendo Fazer o link com Sonar para análise estática de código que já é comum nos projetos quando se fala de Continuous Integration.
  24. Trabalho de analitics e detecção de anomalias em tempo real!