<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alertas Archives - Leonardo Nascimento | Engenheiro de Software</title>
	<atom:link href="https://leonardonascimento.dev/tag/alertas/feed/" rel="self" type="application/rss+xml" />
	<link>https://leonardonascimento.dev/tag/alertas/</link>
	<description>Especializado em backend, APIs e sistemas escaláveis. Experiência em arquitetura de sistemas, integrações, mensageria, performance e aplicações de alta disponibilidade.</description>
	<lastBuildDate>Thu, 29 Jan 2026 16:56:16 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://leonardonascimento.dev/wp-content/uploads/2021/05/cropped-programming-32x32.png</url>
	<title>Alertas Archives - Leonardo Nascimento | Engenheiro de Software</title>
	<link>https://leonardonascimento.dev/tag/alertas/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Como monitorar aplicação e servidor pelo WhatsApp (logs, erros e alertas)</title>
		<link>https://leonardonascimento.dev/blog/como-monitorar-aplicacao-e-servidor-pelo-whatsapp-logs-erros-e-alertas/</link>
					<comments>https://leonardonascimento.dev/blog/como-monitorar-aplicacao-e-servidor-pelo-whatsapp-logs-erros-e-alertas/#respond</comments>
		
		<dc:creator><![CDATA[Leonardo]]></dc:creator>
		<pubDate>Thu, 29 Jan 2026 15:19:35 +0000</pubDate>
				<category><![CDATA[Arquitetura]]></category>
		<category><![CDATA[Backend]]></category>
		<category><![CDATA[Produção]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Alertas]]></category>
		<category><![CDATA[logs]]></category>
		<category><![CDATA[monitoramento]]></category>
		<category><![CDATA[notifish]]></category>
		<category><![CDATA[produção]]></category>
		<category><![CDATA[WhatsApp]]></category>
		<guid isPermaLink="false">https://leonardonascimento.dev/?p=2290</guid>

					<description><![CDATA[<p>WhatsApp é um canal excelente para alerta porque ele tem uma característica que e-mail e dashboard não têm: chega onde você está. O problema é que a maioria das implementações vira bagunça rápido — alerta demais, duplicado, sem contexto, e em pouco tempo todo mundo ignora. A forma correta de fazer isso é tratar WhatsApp [&#8230;]</p>
<p>The post <a href="https://leonardonascimento.dev/blog/como-monitorar-aplicacao-e-servidor-pelo-whatsapp-logs-erros-e-alertas/">Como monitorar aplicação e servidor pelo WhatsApp (logs, erros e alertas)</a> appeared first on <a href="https://leonardonascimento.dev">Leonardo Nascimento | Engenheiro de Software</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>WhatsApp é um canal excelente para alerta porque ele tem uma característica que e-mail e dashboard não têm: <strong>chega onde você está</strong>. O problema é que a maioria das implementações vira bagunça rápido — alerta demais, duplicado, sem contexto, e em pouco tempo todo mundo ignora.</p>



<p>A forma correta de fazer isso é tratar WhatsApp como <strong><a href="https://leonardonascimento.dev/blog/updown-io-receba-notificacao-no-whatsapp-caso-seu-site-fique-indisponivel/" type="post" id="164">camada de notificação</a></strong>, não como sistema de monitoramento. Você continua monitorando com ferramentas e sinais confiáveis (uptime, métricas, logs, filas, erros), mas centraliza o envio e a governança dos alertas em um lugar só — e aí o <a href="http://notifish.com/" type="link" id="http://notifish.com/" target="_blank" rel="noreferrer noopener nofollow">Notifish </a>entra bem.</p>



<p>A ideia é simples: <strong>qualquer evento relevante → vira um “evento de notificação” → Notifish entrega no WhatsApp</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-o-que-vale-a-pena-mandar-para-o-whatsapp-e-o-que-nao-vale">O que vale a pena mandar para o WhatsApp (e o que não vale)</h2>



<p>WhatsApp deve receber só o que exige ação ou atenção rápida. Em produção, eu separo em três níveis:</p>



<p><strong>Crítico (manda sempre):</strong></p>



<ul class="wp-block-list">
<li>aplicação fora do ar / endpoint crítico fora</li>



<li>erro 5xx em alta (explosão de taxa de erro)</li>



<li>fila parou de consumir / backlog crescendo rápido</li>



<li>disco quase cheio / risco de indisponibilidade</li>



<li>falha em integração crítica (pagamento, mensagens, etc.)</li>
</ul>



<p><strong>Alerta (manda com filtro):</strong></p>



<ul class="wp-block-list">
<li>latência acima do normal por X minutos</li>



<li>aumento gradual de erros específicos</li>



<li>Redis indisponível (com fallback) ou lento</li>



<li>uso de CPU/memória alto por período sustentado</li>
</ul>



<p><strong>Informativo (geralmente não manda no WhatsApp):</strong></p>



<ul class="wp-block-list">
<li>deploy realizado</li>



<li>logs de rotina</li>



<li>warnings esporádicos</li>
</ul>



<p>O que destrói o canal é “alerta informativo demais”. WhatsApp é para <strong>sinal forte</strong>.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-arquitetura-recomendada-sem-gambiarra">Arquitetura recomendada (sem gambiarra)</h2>



<p>O melhor padrão é este:</p>



<ol class="wp-block-list">
<li>Você tem fontes de evento (monitoramento/observabilidade):</li>
</ol>



<ul class="wp-block-list">
<li>Uptime/health-check (aplicação)</li>



<li>Métricas do servidor (CPU, RAM, disco)</li>



<li>Logs (erros específicos, padrões)</li>



<li>Erros de aplicação (exceptions)</li>



<li>Filas (backlog, falhas, retries)</li>
</ul>



<ol start="2" class="wp-block-list">
<li>Um “gerador de eventos” cria um evento padronizado.</li>



<li>Você envia esse evento para o <a href="https://developers.notifish.com/" type="link" id="https://developers.notifish.com/" target="_blank" rel="noreferrer noopener nofollow"><strong>Notifish via API</strong>.</a></li>



<li>Você define roteamento, deduplicação e templates</li>
</ol>



<ul class="wp-block-list">
<li>para qual número/grupo enviar</li>



<li>se deve agrupar, deduplicar, aplicar rate limit</li>



<li>qual template usar (curto, completo, escalonamento)</li>
</ul>



<p>Esse desenho escala porque você não espalha envio de WhatsApp por todo sistema. Você centraliza.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-como-fica-uma-mensagem-boa-no-whatsapp">Como fica uma mensagem boa no WhatsApp</h2>



<p>Uma mensagem útil precisa ter contexto mínimo e ação sugerida:</p>



<ul class="wp-block-list">
<li><strong>Título curto</strong> (o que aconteceu)</li>



<li><strong>Ambiente</strong> (prod, staging)</li>



<li><strong>Serviço</strong> (api, worker, site)</li>



<li><strong>Sintoma</strong> (erro, timeout, backlog)</li>



<li><strong>Impacto</strong> (estimado)</li>



<li><strong>Link</strong> (dashboard/logs, se existir)</li>



<li><strong>Ação recomendada</strong> (1 linha)</li>
</ul>



<p>Exemplo de payload humano:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>ALERTA CRÍTICO</strong>: API 5xx alto<br>Ambiente: prod | Serviço: api<br>Erros 5xx: 18% (últimos 5 min)<br>Endpoint: /api/orders<br>Ação: verificar logs + dependência “Payments”</p>
</blockquote>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading" id="h-implementacao-via-api-com-notifish-modelo-pratico">Implementação via API com Notifish (modelo prático)</h2>



<p>Você pode integrar de dois jeitos:</p>



<h3 class="wp-block-heading" id="h-1-seu-sistema-envia-eventos-diretamente-laravel-cron-scripts">1) Seu sistema envia eventos diretamente (Laravel, cron, scripts)</h3>



<p>Bom quando você mesmo detecta (fila, logs, métricas internas).</p>



<h3 class="wp-block-heading" id="h-2-ferramentas-externas-chamam-o-notifish-uptime-monitoramento">2) Ferramentas externas chamam o Notifish (uptime/monitoramento)</h3>



<p>Bom para health-check e métricas do servidor (quando a ferramenta já faz o “detector”).</p>



<p>Como você pediu implementação via API, vou te mostrar um modelo que funciona bem</p>



<h3 class="wp-block-heading" id="h-payload-recomendado-evento">Payload recomendado (evento)</h3>



<p></p>



<pre class="wp-block-preformatted">{<br>  "message": "Sua mensagem de alerta",<br>  "identifier": "seu identificador único de disparo",<br>  "link": true,<br>  "typing": "composing",<br>  "delayMessage": 1200<br>}<br></pre>



<p><strong>Por que esse formato funciona:</strong></p>



<ul class="wp-block-list">
<li><strong>identifier</strong>: chave de deduplicação / idempotência do alerta</li>



<li><strong>message</strong>: texto já formatado com contexto (ambiente/serviço/ação)</li>



<li><strong>delayMessage/typing</strong>: ajustes de entrega (opcionais)</li>
</ul>



<h2 class="wp-block-heading">Exemplo em Laravel enviando evento ao Notifish</h2>



<pre class="wp-block-preformatted">class NotifishClient
{
    public function sendToGroups(string $message, string $identifier, bool $link = true, int $delayMs = 0, string $typing = 'composing'): void
    {
        $url = rtrim(config('services.notifish.base_url'), '/')
            . '/api/v2/' . config('services.notifish.instance')
            . '/whatsapp/message/groups';

        $payload = [
            'message' => $message,
            'identifier' => $identifier,
            'link' => $link,
            'typing' => $typing,
            'delayMessage' => $delayMs,
        ];

        $response = Http::withToken(config('services.notifish.token'))
            ->acceptJson()
            ->contentType('application/json')
            ->timeout(8)
            ->post($url, $payload);

        if (!$response->successful()) {
            logger()->error('Notifish send failed', [
                'status' => $response->status(),
                'body' => $response->body(),
                'identifier' => $identifier,
            ]);
        }
    }
}

</pre>



<h2 class="wp-block-heading">Regras importantes para não virar caos</h2>



<p>Se você fizer só “manda mensagem”, em 2 semanas o canal morre. Algumas regras que eu considero obrigatórias:</p>



<p><strong>1) Deduplicação</strong></p>



<ul class="wp-block-list">
<li>Todo alerta precisa de <code>dedupe_key</code>.</li>



<li>Se o mesmo alerta acontecer 100 vezes, você manda 1 e “atualiza”/agrupa.</li>
</ul>



<p><strong>2) Rate limit por severidade</strong></p>



<ul class="wp-block-list">
<li>Crítico: pode repetir, mas com intervalo mínimo (ex.: 5–10 min).</li>



<li>Alerta: intervalo maior (ex.: 15–30 min).</li>



<li>Informativo: geralmente fora do WhatsApp.</li>
</ul>



<p><strong>3) Idempotência</strong></p>



<ul class="wp-block-list">
<li>Eventos iguais devem produzir o mesmo estado.</li>



<li>Se a chamada repetir, não deve disparar em duplicidade.</li>
</ul>



<p><strong>4) Conteúdo curto</strong><br>WhatsApp é leitura rápida. Se precisar detalhe, coloque em <code>meta</code> e mande link para logs/dashboard quando possível.</p>



<p><strong>5) Escalonamento</strong><br>Se continuar crítico por X tempo, notifica outro grupo/gestor.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading">O que monitorar para disparar eventos úteis (fontes típicas)</h2>



<p>Você pode começar com estes gatilhos (são os que mais dão retorno):</p>



<ul class="wp-block-list">
<li><strong>Health-check HTTP</strong> (200/500, tempo de resposta, quedas)</li>



<li><strong>Taxa de erro</strong> (5xx e exceções por minuto)</li>



<li><strong>Fila</strong> (backlog, jobs failed, tempo médio)</li>



<li><strong>Banco</strong> (conexões, queries lentas, timeouts)</li>



<li><strong>Redis</strong> (latência, indisponibilidade, memória/eviction)</li>



<li><strong>Servidor</strong> (disco, load alto sustentado)</li>



<li><strong>Integrações externas</strong> (timeout e falha por janela)</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Monitorar “pelo WhatsApp” não é substituir observabilidade por chat. É transformar sinais importantes em alertas acionáveis, com governança. O Notifish entra como a peça que centraliza o envio e impede que cada sistema invente seu próprio jeito de notificar.</p>



<p>Se você faz dedupe, rate limit, severidade e contexto mínimo, o WhatsApp vira um canal confiável — e não um spam de produção.</p>
<p>The post <a href="https://leonardonascimento.dev/blog/como-monitorar-aplicacao-e-servidor-pelo-whatsapp-logs-erros-e-alertas/">Como monitorar aplicação e servidor pelo WhatsApp (logs, erros e alertas)</a> appeared first on <a href="https://leonardonascimento.dev">Leonardo Nascimento | Engenheiro de Software</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://leonardonascimento.dev/blog/como-monitorar-aplicacao-e-servidor-pelo-whatsapp-logs-erros-e-alertas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Monitoramento e alertas: o que realmente vale a pena acompanhar</title>
		<link>https://leonardonascimento.dev/blog/monitoramento-e-alertas-o-que-realmente-vale-a-pena-acompanhar/</link>
					<comments>https://leonardonascimento.dev/blog/monitoramento-e-alertas-o-que-realmente-vale-a-pena-acompanhar/#respond</comments>
		
		<dc:creator><![CDATA[Leonardo]]></dc:creator>
		<pubDate>Mon, 05 Jan 2026 13:34:52 +0000</pubDate>
				<category><![CDATA[Programação]]></category>
		<category><![CDATA[Alertas]]></category>
		<category><![CDATA[backend]]></category>
		<category><![CDATA[monitoramento]]></category>
		<category><![CDATA[produção]]></category>
		<guid isPermaLink="false">https://leonardonascimento.dev/?p=2257</guid>

					<description><![CDATA[<p>Monitoramento costuma ser tratado como uma etapa técnica obrigatória, algo que precisa existir porque “todo sistema precisa”. Na prática, muitos sistemas até têm monitoramento, mas poucos têm monitoramento útil. O resultado é previsível: alertas ignorados, gráficos bonitos que ninguém consulta e problemas que continuam sendo descobertos pelo usuário final. Monitorar bem não é coletar o [&#8230;]</p>
<p>The post <a href="https://leonardonascimento.dev/blog/monitoramento-e-alertas-o-que-realmente-vale-a-pena-acompanhar/">Monitoramento e alertas: o que realmente vale a pena acompanhar</a> appeared first on <a href="https://leonardonascimento.dev">Leonardo Nascimento | Engenheiro de Software</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><a href="https://leonardonascimento.dev/blog/updown-io-receba-notificacao-no-whatsapp-caso-seu-site-fique-indisponivel/" type="post" id="164">Monitoramento </a>costuma ser tratado como uma etapa técnica obrigatória, algo que precisa existir porque “todo sistema precisa”. Na prática, muitos sistemas até têm monitoramento, mas poucos têm <strong>monitoramento útil</strong>. O resultado é previsível: alertas ignorados, gráficos bonitos que ninguém consulta e problemas que continuam sendo descobertos pelo usuário final.</p>



<p>Monitorar bem não é coletar o máximo de dados possível. É escolher, com critério, aquilo que realmente indica a saúde do sistema e permite agir antes que o impacto se torne maior.</p>



<p>O primeiro ponto que merece atenção é a <strong>disponibilidade real</strong>. Não no sentido abstrato de “o servidor está ligado”, mas se o sistema está efetivamente acessível para quem depende dele. Uma aplicação pode estar no ar e, ainda assim, indisponível do ponto de vista do usuário. Monitorar endpoints críticos, fluxos principais e páginas essenciais costuma ser mais valioso do que observar métricas genéricas de infraestrutura isoladamente.</p>



<p>Disponibilidade, no entanto, não conta a história inteira. Muitos problemas começam de forma silenciosa, como uma degradação progressiva de desempenho. Um sistema que responde lentamente por alguns minutos ou horas já está falhando, mesmo sem cair completamente. Acompanhar latência ao longo do tempo ajuda a identificar gargalos antes que eles se tornem incidentes graves, além de revelar dependências externas que começam a responder de forma instável.</p>



<p>Outro ponto frequentemente subestimado é o <strong>comportamento dos erros</strong>. Todo sistema apresenta falhas ocasionais, e isso é esperado. O problema não está no erro isolado, mas na repetição, no padrão e na concentração. Quando uma mesma falha começa a ocorrer com frequência crescente, ela deixa de ser exceção e passa a ser sinal de degradação. Monitoramento eficiente olha para tendências, não apenas para eventos pontuais.</p>



<p>Logs entram exatamente nesse contexto. Em produção, logs não servem para registrar tudo, mas para permitir reconstruir o que aconteceu quando algo dá errado. Logs bem pensados ajudam a responder perguntas simples com rapidez: qual fluxo foi afetado, em que momento, com quais dados e sob quais condições. Quando isso não é possível, o tempo de investigação cresce e a confiança no sistema diminui.</p>



<p>Nenhum sistema moderno funciona isoladamente, e por isso <strong>dependências externas</strong> precisam fazer parte do monitoramento. APIs de terceiros, serviços de mensageria, gateways de pagamento e qualquer recurso externo podem se tornar gargalos ou pontos únicos de falha. Ignorar essas dependências costuma levar a diagnósticos errados, onde o time tenta corrigir um problema interno que, na verdade, começou fora do sistema.</p>



<p>Alertas, por sua vez, exigem ainda mais cuidado. Um alerta só faz sentido se houver alguém responsável por ele e se a ação esperada estiver clara. Alertas em excesso criam ruído, e ruído gera descrédito. Com o tempo, ninguém reage mais. Um bom sistema de alertas dispara pouco, mas quando dispara, exige atenção imediata. Confiabilidade aqui é mais importante do que cobertura total.</p>



<p>Com a evolução do sistema, o monitoramento também precisa evoluir. Fluxos mudam, riscos novos surgem, padrões antigos deixam de ser relevantes. Métricas e alertas que não são revisados acabam perdendo valor e permanecem ativos apenas por inércia. Monitoramento eficaz é um processo contínuo, não uma configuração feita uma única vez.</p>



<p>Vale deixar claro que monitoramento não corrige arquitetura ruim. Ele ajuda a enxergar problemas, não a resolvê-los. Sistemas mal desenhados tendem a gerar alertas constantes, comportamento imprevisível e alto custo operacional. Quando a base é sólida, o monitoramento se torna uma ferramenta de apoio, não uma tentativa de contenção.</p>



<p>No fim, o que realmente vale a pena acompanhar é aquilo que afeta diretamente a operação: disponibilidade percebida, tempo de resposta, comportamento de erros, saúde das dependências externas e padrões anormais de uso. O restante deve existir apenas se contribuir para decisões melhores.</p>



<p>Monitorar sistemas não é uma disputa por quem coleta mais métricas, mas por quem reage melhor aos sinais certos. Quando bem feito, o monitoramento reduz impacto, antecipa problemas e traz previsibilidade à operação. Esse tipo de maturidade técnica raramente aparece por acaso — ela nasce da experiência de quem já lidou com produção de verdade.</p>
<p>The post <a href="https://leonardonascimento.dev/blog/monitoramento-e-alertas-o-que-realmente-vale-a-pena-acompanhar/">Monitoramento e alertas: o que realmente vale a pena acompanhar</a> appeared first on <a href="https://leonardonascimento.dev">Leonardo Nascimento | Engenheiro de Software</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://leonardonascimento.dev/blog/monitoramento-e-alertas-o-que-realmente-vale-a-pena-acompanhar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>UPDOWN.IO: Receba notificação no WhatsApp caso seu site fique indisponível</title>
		<link>https://leonardonascimento.dev/blog/updown-io-receba-notificacao-no-whatsapp-caso-seu-site-fique-indisponivel/</link>
					<comments>https://leonardonascimento.dev/blog/updown-io-receba-notificacao-no-whatsapp-caso-seu-site-fique-indisponivel/#respond</comments>
		
		<dc:creator><![CDATA[Leonardo]]></dc:creator>
		<pubDate>Sun, 20 Oct 2024 23:55:18 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Alertas]]></category>
		<category><![CDATA[Api WhatsApp]]></category>
		<category><![CDATA[Callback]]></category>
		<category><![CDATA[Callbacks]]></category>
		<category><![CDATA[Composer]]></category>
		<category><![CDATA[Configurar Projeto]]></category>
		<category><![CDATA[Estratégia]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Integração WhatsApp]]></category>
		<category><![CDATA[Interface Simples]]></category>
		<category><![CDATA[Intervalos de Tempo]]></category>
		<category><![CDATA[Localizações]]></category>
		<category><![CDATA[Monitoramento de Sites]]></category>
		<category><![CDATA[Múltiplos Sites]]></category>
		<category><![CDATA[Número Configurado]]></category>
		<category><![CDATA[Pasta Public]]></category>
		<category><![CDATA[PHP 7.4]]></category>
		<category><![CDATA[Requisições POST]]></category>
		<category><![CDATA[Servidor HTTP]]></category>
		<category><![CDATA[Slack]]></category>
		<category><![CDATA[SMS]]></category>
		<category><![CDATA[StatusPage]]></category>
		<category><![CDATA[Subdomínio de Teste]]></category>
		<category><![CDATA[Telegram]]></category>
		<category><![CDATA[Tempo de Resposta]]></category>
		<category><![CDATA[Tempo Real]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Updown Notify Whatsapp]]></category>
		<category><![CDATA[Updown.io]]></category>
		<category><![CDATA[WhatsApp]]></category>
		<category><![CDATA[WppConnect]]></category>
		<category><![CDATA[Wppconnect-server]]></category>
		<category><![CDATA[Zapier]]></category>
		<guid isPermaLink="false">https://leonardonascimento.dev/?p=164</guid>

					<description><![CDATA[<p>Com mais de 6 pontos de acompanhamento espalhados pelo mundo, o Updown.io é um sistema de monitoramento de sites em tempo real. Através de uma interface simples e agradável, é possível monitorar múltiplos sites , com intervalos de tempo entre 15 segundos e 1 hora, selecionar até 8 localizações,&#160; com tempo mínimo de resposta entre [&#8230;]</p>
<p>The post <a href="https://leonardonascimento.dev/blog/updown-io-receba-notificacao-no-whatsapp-caso-seu-site-fique-indisponivel/">UPDOWN.IO: Receba notificação no WhatsApp caso seu site fique indisponível</a> appeared first on <a href="https://leonardonascimento.dev">Leonardo Nascimento | Engenheiro de Software</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p> Com mais de 6 pontos de acompanhamento espalhados pelo mundo, o <a rel="noreferrer noopener" href="https://bit.ly/3IlDSdD" data-type="URL" data-id="https://bit.ly/3IlDSdD" target="_blank">Updown.io</a> é um sistema de monitoramento de sites em tempo real. </p>



<p>Através de uma interface simples e agradável, é possível monitorar múltiplos sites , com intervalos de tempo entre 15 segundos e 1 hora, selecionar até 8 localizações,&nbsp; com tempo mínimo de resposta entre 0.125 e 2.0 segundos e “callbacks” (SMS, Telegram, Slack, StatusPage, Zapier) para ser informado em caso de queda ou restauração do serviço.</p>



<p>Desenvolvi a estratégia para um amigo, que gostaria de receber alertas no WhatsApp em tempo real, quando algum site ou sistema fica-se fora do ar, decidimos tornar o código fonte público.</p>



<h2 class="wp-block-heading">Requerimentos</h2>



<ul class="wp-block-list"><li><a rel="noreferrer noopener" href="https://github.com/wppconnect-team/wppconnect-server" data-type="URL" data-id="https://github.com/wppconnect-team/wppconnect-server" target="_blank">Wppconnect Server</a></li><li>PHP 7.4</li></ul>



<p></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>O Wppconnect Server é uma lib não oficial do WhatsApp para envio e recebimento de mensagens. para receber a notificação em seu WhatsApp é necessário ter configurado o Wppconnect server. </p><p>Neste tutorial, aprenderemos a configurar o Updown Notify WhatsApp</p></blockquote>



<h3 class="wp-block-heading">Updown Notify Whatsapp</h3>



<p></p>



<p><strong>Clone o projeto e acesse o diretório </strong></p>



<p><code>git clone https://github.com/leonardop21/updown-notify-whatsapp &amp;&amp; cd updown-notify-whatsapp</code></p>



<p><strong>Instale as dependências (Necessário ter o composer configurado na máquina)</strong></p>



<p><code>composer install</code></p>



<p><strong>Configurando o projeto</strong></p>



<p>      No arquivo <code>/public/callback</code> configure um chave pública, ex: Afwe14we555d1230we23sdx</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="354" src="https://leonardonascimento.dev/wp-content/uploads/2022/03/key-1024x354.png" alt="" class="wp-image-175" srcset="https://leonardonascimento.dev/wp-content/uploads/2022/03/key-1024x354.png 1024w, https://leonardonascimento.dev/wp-content/uploads/2022/03/key-300x104.png 300w, https://leonardonascimento.dev/wp-content/uploads/2022/03/key-768x265.png 768w, https://leonardonascimento.dev/wp-content/uploads/2022/03/key-1536x531.png 1536w, https://leonardonascimento.dev/wp-content/uploads/2022/03/key.png 1632w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>      No arquivo&nbsp;<code>/services/WppInfo</code>&nbsp;na função <code>__construct() </code>preencha os dados gerados no Wppconnect-server, para receber notificações no WhatsApp</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="430" src="https://leonardonascimento.dev/wp-content/uploads/2022/03/wpp-info-1024x430.png" alt="" class="wp-image-177" srcset="https://leonardonascimento.dev/wp-content/uploads/2022/03/wpp-info-1024x430.png 1024w, https://leonardonascimento.dev/wp-content/uploads/2022/03/wpp-info-300x126.png 300w, https://leonardonascimento.dev/wp-content/uploads/2022/03/wpp-info-768x323.png 768w, https://leonardonascimento.dev/wp-content/uploads/2022/03/wpp-info.png 1514w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p><strong>Apontando para a pasta public</strong></p>



<p>Configure seu servidor http, para ler a partir da pasta public.</p>



<p><strong>Agora, no sistema do Updown.io </strong></p>



<p>      No <a rel="noreferrer noopener" href="https://bit.ly/3IlDSdD" data-type="URL" data-id="https://bit.ly/3IlDSdD" target="_blank">Updown.io</a> insira a sua url de callback junto com a key que definiu, ex:&nbsp;<code>https://meusite.com.br/callback?key=Afwe14we555d1230we23sdx</code></p>



<p>O Updown Notify Whatsapp<strong> aceita apenas requisições post</strong> com a key configurada no passo anterior, do contrário, uma página 404 será exibida.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="610" height="280" src="https://leonardonascimento.dev/wp-content/uploads/2022/03/webhook.png" alt="" class="wp-image-178" srcset="https://leonardonascimento.dev/wp-content/uploads/2022/03/webhook.png 610w, https://leonardonascimento.dev/wp-content/uploads/2022/03/webhook-300x138.png 300w" sizes="(max-width: 610px) 100vw, 610px" /></figure>



<p><strong>Testando a aplicação</strong></p>



<p>      Criei um subdomínio de teste e inseri no updown.io.</p>



<p>      No momento em que o site ficou fora do ar, recebi um aviso no WhatsApp, quando voltou ao normal, recebi outro aviso, conforme demonstra as imagens abaixo.</p>



<p><strong>Updown detectou site fora do ar</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="352" src="https://leonardonascimento.dev/wp-content/uploads/2022/03/site-fora-1024x352.png" alt="" class="wp-image-180" srcset="https://leonardonascimento.dev/wp-content/uploads/2022/03/site-fora-1024x352.png 1024w, https://leonardonascimento.dev/wp-content/uploads/2022/03/site-fora-300x103.png 300w, https://leonardonascimento.dev/wp-content/uploads/2022/03/site-fora-768x264.png 768w, https://leonardonascimento.dev/wp-content/uploads/2022/03/site-fora.png 1244w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p><strong>Callback Updown</strong></p>



<p>      O Updown enviou um callback ao sistema, que por sua vez acionou o Wppconnect-Server enviando uma mensagem para o número configurado no services/WppInfo</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="493" height="1024" src="https://leonardonascimento.dev/wp-content/uploads/2022/03/Whats-Fora-493x1024.png" alt="" class="wp-image-186" srcset="https://leonardonascimento.dev/wp-content/uploads/2022/03/Whats-Fora-493x1024.png 493w, https://leonardonascimento.dev/wp-content/uploads/2022/03/Whats-Fora-144x300.png 144w, https://leonardonascimento.dev/wp-content/uploads/2022/03/Whats-Fora.png 616w" sizes="auto, (max-width: 493px) 100vw, 493px" /></figure>



<p></p>



<p><strong>Site funcionando normalmente</strong></p>



<p>      Updown detectou que o site voltou a funcionar</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="311" src="https://leonardonascimento.dev/wp-content/uploads/2022/03/site-ok-1-1024x311.png" alt="" class="wp-image-187" srcset="https://leonardonascimento.dev/wp-content/uploads/2022/03/site-ok-1-1024x311.png 1024w, https://leonardonascimento.dev/wp-content/uploads/2022/03/site-ok-1-300x91.png 300w, https://leonardonascimento.dev/wp-content/uploads/2022/03/site-ok-1-768x233.png 768w, https://leonardonascimento.dev/wp-content/uploads/2022/03/site-ok-1.png 1217w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p><strong>Callback Updown</strong></p>



<p>      O Updown enviou um callback ao sistema, que por sua vez acionou o Wppconnect-Server enviando uma mensagem para o número configurado no services/WppInfo</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="491" height="1024" src="https://leonardonascimento.dev/wp-content/uploads/2022/03/whats-ok-491x1024.png" alt="" class="wp-image-188" srcset="https://leonardonascimento.dev/wp-content/uploads/2022/03/whats-ok-491x1024.png 491w, https://leonardonascimento.dev/wp-content/uploads/2022/03/whats-ok-144x300.png 144w, https://leonardonascimento.dev/wp-content/uploads/2022/03/whats-ok.png 614w" sizes="auto, (max-width: 491px) 100vw, 491px" /></figure>



<p></p>



<p>Links úteis</p>



<p><a href="https://github.com/wppconnect-team/wppconnect-server" data-type="URL" data-id="https://github.com/wppconnect-team/wppconnect-server" target="_blank" rel="noreferrer noopener">WPPCONNECT-SERVER</a></p>



<p><a href="https://github.com/leonardop21/updown-notify-whatsapp" data-type="URL" data-id="https://github.com/leonardop21/updown-notify-whatsapp" target="_blank" rel="noreferrer noopener">UPDOWN-NOFITY-WHATSAPP</a></p>
<p>The post <a href="https://leonardonascimento.dev/blog/updown-io-receba-notificacao-no-whatsapp-caso-seu-site-fique-indisponivel/">UPDOWN.IO: Receba notificação no WhatsApp caso seu site fique indisponível</a> appeared first on <a href="https://leonardonascimento.dev">Leonardo Nascimento | Engenheiro de Software</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://leonardonascimento.dev/blog/updown-io-receba-notificacao-no-whatsapp-caso-seu-site-fique-indisponivel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
