Fala pessoal, hoje vamos entrar em uma série de posts referentes a métricas, para quem está ligado no mundo da tecnologia, vem se falando há bastante tempo sobre SRE [ Ebook do Google ] (https://landing.google.com/sre/) um dos principais temas falado pelo pessoal do Google é em questões de métricas, pois são as métricas que nos fornecem uma visão geral referente a como está o nosso ambiente e nos proporciona a capacidade cada vez maior nossas equipes serem orientadas a dados: Data driven
Prometheus
Prometheus é um Kit de ferramentas de Monitoramento e Alertas Open Source que foi criada pela SoundCloud . Muitas empresas estão adotando o Prometheus para trabalhar com a questão de métricas de seus sistemas e aplicações. Em 2016 o Prometheus foi incorporado dentro da Cloud Native Computing Foundation sendo o segundo projeto hospedado após o Kubernetes.
Componentes
Iniciando
Vamos monitorar o nosso servidor de Docker com o Prometheus, para isso vamos editar o arquivo daemon.json
que já é criado por padrão em:
- Linux
/etc/docker/daemon.json
- Windows
C:\ProgramData\docker\config\daemon.json
Dentro desse arquivo vamos adicionar as seguintes linhas:
{
"metrics-addr" : "127.0.0.1:9000"
"experimental" : true
}
Após a criação desse arquivo, ou edição dele, vamos precisar criar o arquivo de configuração do nosso Prometheus, para isso vamos criar o arquivo config.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
- job_name: 'docker'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9323']
Com o conf criado vamos criar o serviço para começar a armazenar as métricas, para isso vamos executar:
docker service create --replicas 1 --name my-prometheus \
--mount type=bind,source=/tmp/prometheus.yml,destination=/etc/prometheus/prometheus.yml \
--publish published=9090,target=9090,protocol=tcp \
prom/prometheus
- –replicas=1 # Quantos containers de prometheus vamos ter
- –mount # type = Tipo de mapeamento que iramos fazer, source = Caminho de origem para o arquivo de configuração, destination = Caminho de destino no container
- –publish # publish = A porta que será exposta para o mundo, target = A porta que a gente configurou no config do prometheus, protocol = protocolo utilizado
- prom/promtheus # Imagem utilizada.
Após isso basta abrir o seu browser e navegar até http://iphost:9090
e você terá acesso ao seu prometheus. Você pode ir até http://iphost:9000/targets/
onde você poderá ver as informações que configramos e verificar se está tudo ok com as coletas de nossas métricas.
Como podemos notar é meio complexo conseguirmos ver as informações referente ao nosso ambiente diretamente pelo Prometheus, então para facilitar esssa visão, vamos utilizar o Grafana
como Dashboard, ja falamos dele em um post anterior: Grafana + Influx + Cadvisor
Para criar o container do Grafana
vamos executar:
docker run -d --name=grafana -p 3000:3000 grafana/grafana
Passo 1 – Autenticação
feito isso vamos acessar http://localhost:3000
após o acesso será solicitado um username e password, por padrão o inicial é admin
e admin
, em seguida será solicitado um novo password, então basta colocar o seu novo password.
Passo 2 – Criação do Data Source
Agora vamos adicionar o nosso prometheus como Data Source, para que sejá possível realizarmos as consultas para preencher os nossos gráficos, para isso vamos clicar no icone conforme a imagem abaixo:
E vamos escolher a opção Data Source
Agora vamos ir até Add Data Source, onde vamos ter alguns campos que são padrões e outros que devem aparecer conforme o tipo de Data Source que será escolhido, nesse caso vamos utilizar o Prometheus
.
- url: http://localhost:9090
- Access: Browser
Dessa vez vamos criar sem autenticação, então pode deixar as questões de AUTH em branco.
- Marcar a opção:
Skip TLS Verification (Insecure)
Após isso é só clicar em Save & Test.
Passo 3 – Criação dos Dashboards
Vá até a opção de New Dashboard dentro do Grafana e escolha a opção de “Graph”
Agora vamos editar o nosso Dashboard:
Agora a imaginação é sua, basta verificar no Prometheus quais os dados que você possui para poder fazer seus Dashboards.
Espero que esse post tenha sido útil para vocês e gostaria que deixassem aqui embaixo algum comentário ou dúvidas para que cada vez mais possamos melhorar o nosso conteúdo para que fique simples para todos e também útil, então por hoje era isso pessoal, um grande abraço e muito obrigado!