tutorial

Monitoring Quetre with Vigilmon

Quetre proxies Quora content without JavaScript or tracking — but if the upstream scraping pipeline breaks or PHP-FPM goes down, your instance returns errors. Here's how to monitor Quetre's web server, PHP-FPM, Quora connectivity, and cache with Vigilmon.

Quetre is a privacy-respecting open-source frontend for Quora — no JavaScript, no ads, no tracking. It proxies Quora's content through your own server using PHP and the Slim Framework, served by Apache or nginx with PHP-FPM. Because Quetre depends on both your own infrastructure and Quora's upstream API, there are two distinct failure modes: your server goes down, or Quora blocks or throttles your scraping requests. Vigilmon helps you distinguish between the two, so you know whether to restart PHP-FPM or wait out a Quora rate limit.

What You'll Set Up

  • HTTP uptime monitor for the Quetre web server (port 80/443)
  • PHP-FPM process health check via a local status endpoint
  • Quora upstream connectivity check
  • Question and search page response-time monitors
  • Rate-limit detection for Quora 429 responses
  • Cache health check (Redis or APCu)
  • SSL certificate expiry alerts

Prerequisites

  • Quetre running on a server (Apache or nginx + PHP-FPM, port 80/443)
  • A free Vigilmon account

Step 1: Monitor the Quetre Web Server

Quetre's homepage or any question page returns HTML when the server is healthy. Add an HTTP monitor:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your Quetre URL: https://quetre.yourdomain.com.
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

This catches web server crashes, nginx misconfigurations, and PHP-FPM failures that result in 502 or 503 responses.


Step 2: Enable and Monitor the PHP-FPM Status Page

PHP-FPM exposes a built-in status page that reports active workers, idle workers, and queue depth. Enable it by adding a pool configuration:

; /etc/php/8.x/fpm/pool.d/www.conf
pm.status_path = /fpm-status

Restrict the status path in nginx so it's only accessible locally:

location /fpm-status {
    allow 127.0.0.1;
    deny all;
    fastcgi_pass unix:/run/php/php8.x-fpm.sock;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

Reload PHP-FPM and nginx:

systemctl reload php8.x-fpm nginx

Add a Vigilmon monitor for the internal status endpoint via a local proxy or expose it on a non-public port:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: http://127.0.0.1/fpm-status (or use an SSH tunnel / local monitoring agent).
  3. Expected HTTP status: 200.
  4. Response body contains: pool:.
  5. Check interval: 2 minutes.
  6. Click Save.

If PHP-FPM has no idle workers, the queue is growing, or the process has crashed, this check catches it before user-facing 502 errors accumulate.


Step 3: Monitor Quora Upstream Connectivity

Quetre's core function depends on reaching quora.com from your server. Add an HTTP monitor that checks Quora reachability from Vigilmon's monitoring nodes (as a baseline), and complement it with a host-side check:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: https://www.quora.com
  3. Expected HTTP status: 200.
  4. Check interval: 5 minutes.
  5. Click Save.

This tells you if Quora is globally reachable. For your server's specific outbound path (which may be rate-limited or blocked by Quora's IP filters), add a heartbeat-based check:

#!/bin/bash
# /usr/local/bin/quetre-upstream-check.sh
STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
  -A "Mozilla/5.0 (compatible; health-check)" \
  --max-time 10 \
  "https://www.quora.com/robots.txt")

if [ "$STATUS" = "200" ] || [ "$STATUS" = "301" ]; then
  curl -s https://vigilmon.online/heartbeat/YOUR_HEARTBEAT_ID
fi

Schedule it every 10 minutes:

*/10 * * * * /usr/local/bin/quetre-upstream-check.sh

Step 4: Monitor Question Page Response Times

A Quetre question page involves fetching and parsing Quora content. Slow responses indicate either PHP processing bottlenecks or slow upstream Quora responses. Add a response-time monitor:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: https://quetre.yourdomain.com/question/what-is-self-hosting (use a real question slug from your instance).
  3. Expected HTTP status: 200.
  4. Maximum response time: 5000 ms — Quetre pages legitimately take 2–4 seconds when fetching from Quora.
  5. Check interval: 5 minutes.
  6. Click Save.

Step 5: Detect Quora Rate Limiting

Quora may return 429 (Too Many Requests) or redirect to a CAPTCHA page when it detects scraping. When this happens, Quetre returns an error page. Add a body-content check to detect this:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: https://quetre.yourdomain.com/question/what-is-self-hosting.
  3. Enable Response body must NOT contain: rate limit or blocked or captcha.
  4. Check interval: 10 minutes.
  5. Click Save.

Alternatively, monitor the HTTP status code from Quetre's error pages — Quetre typically returns a 503 when Quora is unavailable:

  1. Add a second check on the same URL.
  2. Expected HTTP status: 200 (any non-200 response triggers an alert).
  3. Click Save.

Step 6: Monitor the Image Proxy

Quetre proxies Quora images through your server to prevent tracking pixels from following users. If the image proxy fails, pages load with broken images. Add a monitor for the image proxy endpoint:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: https://quetre.yourdomain.com/image?url=https://example.com/test.png (the proxy path format depends on your Quetre version).
  3. Expected HTTP status: 200 or 302.
  4. Check interval: 10 minutes.
  5. Click Save.

Step 7: Cache Health (Redis or APCu)

If you've configured Redis or APCu caching to reduce Quora request load, a cache failure causes every page to hit Quora directly — increasing latency and risk of rate limiting. Monitor cache availability:

For Redis:

  1. Click Add MonitorTCP Port.
  2. Host: your Redis server IP.
  3. Port: 6379.
  4. Check interval: 2 minutes.
  5. Click Save.

For APCu (in-process PHP cache): APCu is embedded in the PHP-FPM process. Monitor it via the FPM status page response time — a sudden increase in response time when APCu is disabled means pages are no longer cached.


Step 8: SSL Certificate Alerts

  1. Open the HTTPS monitor for your Quetre domain.
  2. Enable Monitor SSL certificate.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

Step 9: Configure Alert Channels

  1. Go to Alert Channels and add Slack, email, or a webhook.
  2. Set Consecutive failures before alert to 2 — PHP-FPM restarts can cause a brief 502 before the process pool recovers.
  3. Use separate alert channels for "your server is down" (web server + FPM alerts) vs. "Quora is blocking you" (upstream connectivity + rate-limit alerts) so you know which type of incident requires action from you.

Summary

| Monitor | Target | What It Catches | |---|---|---| | Web server HTTP | :80/:443 | nginx/Apache down, PHP-FPM crash | | PHP-FPM status | /fpm-status | Worker pool exhausted, FPM down | | Quora upstream | quora.com | Quora globally unreachable | | Upstream heartbeat | Heartbeat URL | Your IP blocked or rate-limited by Quora | | Question page | /question/:slug | Slow Quora responses, PHP errors | | Image proxy | /image?url=... | Image proxy broken | | Redis TCP | :6379 | Cache down, increased Quora load | | SSL certificate | HTTPS domain | TLS cert expiry |

Quetre's value is seamless, private Quora browsing — but that depends on both your PHP stack and Quora's tolerance for your scraping requests. With Vigilmon watching the web server, PHP-FPM, upstream connectivity, and rate-limit signals, you'll know immediately whether your instance is down or Quora is throttling you, and you'll respond to the right problem.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →