Skip to main content

Monitoring

Monitor your Synjar deployment for uptime, performance, and issues.

Health endpoint

curl http://localhost:6200/health

Response:

{
"status": "ok",
"timestamp": "2025-01-01T12:00:00Z"
}

Use this endpoint for:

  • Load balancer health checks
  • Uptime monitoring
  • Container orchestration liveness probes

Metrics

Prometheus metrics

If enabled, metrics are available at /metrics:

curl http://localhost:6200/metrics

Key metrics:

  • http_requests_total - Total HTTP requests
  • http_request_duration_seconds - Request latency
  • db_queries_total - Database queries
  • document_processing_duration - Processing time

Grafana dashboard

Import the Synjar dashboard from our Grafana catalog (ID: 12345).

Logging

Log levels

Set via LOG_LEVEL environment variable:

  • error - Only errors
  • warn - Errors and warnings
  • info - Standard logging (default)
  • debug - Verbose debugging

Log format

JSON format for easy parsing:

{
"level": "info",
"message": "Document processed",
"documentId": "abc123",
"duration": 1234,
"timestamp": "2025-01-01T12:00:00Z"
}

Viewing logs

# Docker Compose
docker-compose logs -f synjar

# Docker
docker logs -f synjar

# Kubernetes
kubectl logs -f deployment/synjar

Log aggregation

Send logs to centralized logging:

Loki/Grafana:

# docker-compose.override.yml
services:
synjar:
logging:
driver: loki
options:
loki-url: "http://loki:3100/loki/api/v1/push"

Elasticsearch:

services:
filebeat:
image: elastic/filebeat
volumes:
- /var/lib/docker/containers:/var/lib/docker/containers:ro

Alerting

AlertConditionSeverity
Service downHealth check fails 3xCritical
High latencyp95 > 2s for 5 minWarning
High error rate>1% errors for 5 minWarning
Database connectionConnection errorsCritical

Example Prometheus rules

groups:
- name: synjar
rules:
- alert: SynjarDown
expr: up{job="synjar"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Synjar is down"

- alert: HighLatency
expr: histogram_quantile(0.95, http_request_duration_seconds) > 2
for: 5m
labels:
severity: warning
annotations:
summary: "High request latency"

Uptime monitoring

External monitoring services:

  • UptimeRobot
  • Pingdom
  • StatusCake
  • Better Uptime

Monitor:

  • /health endpoint
  • Main application URL
  • Critical API endpoints

Performance optimization

Database

Check slow queries:

SELECT query, calls, mean_time
FROM pg_stat_statements
ORDER BY mean_time DESC
LIMIT 10;

Application

Monitor for:

  • Memory usage trends
  • CPU utilization
  • Request queue depth

See also