JK
JustKalm
Monitoring

API Monitoring

Track API health, performance, and usage in real-time. Integrate with Prometheus, Datadog, CloudWatch, and more.

Real-time metrics
Custom alerts
30-day retention

Available Metrics

counter

jk_requests_total

Total API requests

jk_requests_total{endpoint="/v1/valuations",method="POST"}
histogram

jk_request_duration_seconds

Request latency

histogram_quantile(0.95, jk_request_duration_seconds_bucket)
counter

jk_errors_total

Total error responses

jk_errors_total{status="500",endpoint="/v1/valuations"}
gauge

jk_rate_limit_remaining

Remaining rate limit

jk_rate_limit_remaining{org_id="org_123"}
counter

jk_webhook_deliveries

Webhook delivery count

jk_webhook_deliveries{status="success"}
histogram

jk_batch_size

Batch request sizes

avg(jk_batch_size_bucket)

Recommended Alert Rules

AlertConditionSeverityAction
High Error Rateerror_rate > 5%criticalPage on-call, auto-create incident
Elevated Latencyp95 > 500mswarningSlack notification, log to dashboard
Rate Limit Approachingremaining < 10%warningEmail notification
Webhook Failuresfailure_rate > 10%warningSlack notification
API Unavailableuptime < 99.9%criticalPage on-call, status page update

Integration Guides

Prometheus Configuration
# prometheus.yml
global:
  scrape_interval: 15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'justkalm-api'
    scheme: https
    bearer_token: 'YOUR_METRICS_API_KEY'
    static_configs:
      - targets: ['metrics.justkalm.com']
    metrics_path: /v1/metrics
    
# Alert rules
rule_files:
  - 'justkalm_alerts.yml'

alerting:
  alertmanagers:
    - static_configs:
        - targets: ['alertmanager:9093']
Alert Rules
# justkalm_alerts.yml
groups:
  - name: justkalm
    rules:
      - alert: JustKalmHighErrorRate
        expr: |
          sum(rate(jk_errors_total[5m])) 
          / sum(rate(jk_requests_total[5m])) > 0.05
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "High error rate detected"
          description: "Error rate is {{ $value | humanizePercentage }}"
          
      - alert: JustKalmHighLatency
        expr: |
          histogram_quantile(0.95, 
            sum(rate(jk_request_duration_seconds_bucket[5m])) by (le)
          ) > 0.5
        for: 10m
        labels:
          severity: warning
        annotations:
          summary: "High API latency"
          description: "p95 latency is {{ $value }}s"
          
      - alert: JustKalmRateLimitLow
        expr: jk_rate_limit_remaining < 100
        for: 1m
        labels:
          severity: warning
        annotations:
          summary: "Rate limit nearly exhausted"

Built-in Dashboard

99.98%

Uptime (30d)

45ms

p50 Latency

2.3M

Requests (24h)

0.02%

Error Rate

Monitoring Best Practices

Set Baseline Alerts

Start with our recommended thresholds and tune based on your traffic patterns over time.

Monitor Rate Limits

Alert when rate limit remaining drops below 20%. Proactively request limit increases.

Use Request IDs

Log X-Request-Id with every request. Correlate with our support for faster debugging.

Avoid Alert Fatigue

Start with critical alerts only. Add warnings after establishing normal baselines.

Get Metrics API Access

Metrics API is available on Growth and Enterprise plans.

View Plans

© 2025 JustKalm. Observable by design.