Wednesday, September 02, 2015

Notificação deploy no New Relic com informações do Git

O New Relic é uma ferramenta excelente para acompanhar a saúde da aplicação. Ela oferece diversas funcionalidades bem interessantes, como a notificação de deploy. Quando você avisa ao New Relic que um deploy foi realizado, ele cria uma marcação nos dashboards de acompanhamento, de forma que é possível identificar que a degradação na performance na aplicação ocorreu após o deploy da versão X.

De acordo com a documentação do New Relic é possível enviar a notificação via o agente ou via POST HTTP p/ API do New Relic (curl no Linux). Eu prefiro a segunda alternativa, além de mais simples, é mais fácil de colocar na pipeline.

Uma estratégia é criar um script que coleta informações como o comentário, o autor e a revisão do último commit no Git e envia para o New Relic. A seguir um exemplo de como isso poderia ser implementado:
#!/bin/sh

API_KEY=CHAVE_DA_SUA_APLICACAO_NO_NEW_RELIC
APP_NAME=NOME_DA_SUA_APLICACAO_NO_NEW_RELIC

DESCRIPTION=$(git log -1 --pretty=format:%s)
AUTHOR=$(git log -1 --pretty=format:%cn)
REVISION=$(git log -1 --pretty=format:%T)

echo "${APP_NAME}: notificando o NewRelic o deploy com commit [${REVISION}]"

curl -H "x-api-key:${API_KEY}" -d "deployment[app_name]=${APP_NAME}" \
  -d "deployment[description]=$DESCRIPTION" -d"deployment[revision]=$REVISION" \
  -d "deployment[user]=$AUTHOR" https://api.newrelic.com/deployments.xml

Atribua para as variáveis API_KEY e APP_NAME os valores adequados, de acordo com suas configurações. A resposta da API (POST) é um xml com dados da notificação.

www.yaw.com.br

No comments: