epok

Documentation

Updated Jul 28, 2026 · 1d ago

Get started in under 5 minutes. Send your first signal — logs, metrics, or traces — and let the intelligence engine do the rest. Connect a second signal and Epok correlates them into one root-cause verdict per incident, instead of three separate dashboards to reconcile by hand.

The sandbox is read-only, logged in as a demo tenant with pre-seeded logs. No sign-up required.

Quick start

Send one event with curl, confirm it landed, and run your first search — including the timestamp trap that silently hides data the ingest plane already accepted.

Quickstart →

Authentication

Which credential headers the ingest plane and the app plane each accept — they are not the same set — plus a step-by-step 401 triage, now a page of its own.

Authentication →

Quickstart by platform

Pick your stack — each guide is a 5-minute end-to-end setup with copy-paste-ready config, the exact verification steps, and the gotchas we've seen on real deployments.

Not on this list? The protocol table below works for any shipper that speaks Elasticsearch Bulk, Loki Push, OTLP HTTP, FluentBit, Fluentd, Syslog, or plain JSON.

Supported Integrations

Epok accepts logs from any source. Pick the integration that fits your stack.

ProtocolEndpoint
Elasticsearch Bulk/_bulk
Loki Push/loki/api/v1/push
OTLP HTTP/v1/logs
FluentBit Native/api/v1/fluent
Fluentd/api/v1/fluentd
Syslog (HTTP)/api/v1/syslog
CloudWatch/api/v1/cloudwatch
GCP Cloud Logging/api/v1/ingest
Generic JSON/api/v1/ingest
Syslog formats: RFC 5424, RFC 3164, Cisco IOS, Fortinet FortiGate, Palo Alto Networks, and HP/Aruba ProCurve are all parsed automatically.

Quickstart wizard

Two questions → the exact snippet to paste.

1

Where are your logs coming from?

A config alone won't tell you whether data actually arrived. Each platform guide adds a verification step and the failure branches — see the platform grid above, or start with the quickstart.

Metrics

Host, container, Kubernetes and database metrics over OpenTelemetry, Prometheus remote write, or line protocol — now a full install guide, with a separate guide for existing Prometheus fleets.

Install: metrics & infrastructure →

Traces

OpenTelemetry auto-instrumentation for Node, Python, Java and Go, plus the golden signals derived server-side from your spans — now a full install guide with verification steps.

Install: traces (APM) →

Search syntax

Field filters, booleans, wildcards and regex, time and stream filters, pipes, and the two time-range behaviours that surprise people — now a reference page of its own.

Search syntax →

Service overview (APM)

Every service Epok discovers gets a live service page — request rate, latency, errors, and per-endpoint breakdowns in one view. Open it from Services in the sidebar (or press 5), then click a service. Deep-link a single service with #/services?svc=<name>.

What the service page shows

  • RED + Apdex strip — throughput (req/s), error rate, latency p50/p95/p99, and an Apdex score. Click any tile to drill into the matching traces (the p95 tile opens requests at or above p95; the Apdex tile opens requests past the tolerance threshold).
  • Latency distribution — a histogram of request durations; click a bar to see the traces at least that slow.
  • Per-endpoint table — req/s, error %, and p50/p95/p99 for each route. Expand a row for that endpoint's own RED, latency distribution, and top errors.
  • Top errors — the failing operations and the most common error messages for the service, each linking straight to the underlying traces or logs.
  • Recent deploys — deploy markers with the before→after change in error rate and p95, so a regression lines up with the release that caused it.
  • Infrastructure & dependencies — host CPU/memory for the service, plus its upstream and downstream services (from trace context) with their error rates.
What you need: RED metrics, Apdex, latency percentiles, and the per-endpoint table are built from your traces — send spans and they populate automatically (add route names to your spans for the per-endpoint breakdown). The volume, error-rate, top-pattern, and recent-logs panels below them work from logs alone, so a logs-only service still gets a useful page.

Configuration examples

Copy-paste shipper configs now live in the picker above, and each platform has a guide of its own that covers verification and the failure branches a bare config cannot.

Quickstart →

What happens next

What the engine does with your data over the first hour, the first three days, and the first week — including why early thresholds are deliberately wider — is now part of the quickstart.

Quickstart: what happens next →

Detectors

Every detector we ship, what each one looks for, the alert it produces, and which are still capped at warning severity while they soak — now a browsable catalog with a page per detector.

Detector catalog →

Alerting & alert hygiene

Deduplication, grouping and escalation still happen automatically. Mute schedules, maintenance windows, the weekly digest, the audit trail and custom actions are documented on their own page.

Alerting hygiene →

Want alerts to carry who's affected — per-tier counts, top accounts — in the notification itself? Paste a customer roster once.

Customer impact →

Analysis Tools

When an alert fires, Epok automatically runs analysis to help you understand what happened, why, and what to do next. Deterministic analysis runs on every tier; AI-assisted explanations are included starting with the 14-day trial (capped by daily AI budget). Open an incident in the sandbox →

Root Cause Ranking

All tiers

Ranks potential root causes by scoring error patterns, causal language signals, timing correlation, and cross-service propagation. Outputs a ranked list of hypotheses.

Error categorization

All tiers

Classifies errors by failure type — connection, timeout, resource exhaustion, auth, configuration, data schema, rate limit, runtime crash, and more. Categories drive different investigation paths and RCA scoring.

What Changed (9 methods)

All tiers

Compares the anomaly window against a baseline period across 9 dimensions: new error patterns, volume shifts, field distribution changes, new log streams, disappeared streams, latency changes, status code shifts, new field values, and pattern frequency changes.

Blast Radius

All tiers

Determines which services, endpoints, and users are affected by an incident. Shows the scope of impact to help you prioritize response.

Cascade Timeline

All tiers

Reconstructs the sequence of failures across services. Shows which service failed first and how the failure propagated through dependencies.

Dimension Lift

All tiers

Identifies which field values are disproportionately represented in the anomaly. If 90% of errors come from region=us-east-1, Dimension Lift surfaces that automatically. AI-generated plain-language explanations are included starting with the trial.

Cross-service error matching

All tiers

Matches related errors across different services. When your API returns 500s and your database logs connection timeouts at the same time, Epok links them.

Service dependency graph

All tiers

Infers service-to-service dependencies from log patterns and error propagation. Visualizes which services depend on what.

Deploy correlation

All tiers

Detects recent deploys from log patterns (version strings, restart markers, config changes) and correlates anomalies with deploy timing.

AI incident narrative

Trial+

Plain-language summary of what happened, what's affected, and suggested next steps. Inlined into Slack alerts and the investigation view.

AI root-cause hypothesis

Trial+

LLM-assisted explanation on top of the deterministic RCA ranking. Turns signals into a readable theory of the incident.

Deep RCA

Trial+

On-demand, slower analysis that pulls more context (baseline comparison, correlated events, pattern history) and produces a longer write-up.

Dimension Lift explanation

Trial+

Natural-language explanation of why a dimension spiked — the shift, its scale, and whether it's the most likely cause.

Noise scoring

Trial+

LLM-scored noise rating on every alert to auto-tune suppression over time. Reduces alert fatigue without manual rule edits.

Natural-language query

Trial+

Ask "show me 5xx spikes from checkout in the last hour" and Epok translates it into a search. Scoped to your tenant.

Investigate

Investigate is the single window where Epok pulls together every signal for one service or incident — without bouncing between tools. Instead of stitching by a fuzzy time window, it joins signals by trace_id: the metrics, traces, and logs for a degraded service, plus any real-user sessions that hit the same error traces.

Metrics

RED signals (rate, errors, duration) for the service over the incident window, from the metrics store.

Traces

Spans for the service, deduplicated into count-badged top operations so you see the slow/failing path, not a wall of identical rows.

Logs

Error and warning logs over the same window, fingerprinted (variable numbers and IDs normalized out) and grouped into top messages with counts.

RUM

Frontend sessions whose spans share the service's error trace_ids — the real users who hit the failure.

Replay (opt-in)

When session replay is enabled for your deployment, one replay per error trace with a deep-link that seeks to the moment. Replay is off by default and opt-in.

Signals only appear when present — no metrics pipeline, no metrics tile; trace propagation off, no RUM panel. The strongest correlation is the shared trace_id join — exact, not a guess based on timing. When a service sends metrics or logs without traces, Epok still gathers its signals by service name over the incident window, so a metrics-only or logs-only service is never left out.

AI Features

Every detector and deterministic analysis tool runs on every tier. AI explanations sit on top: they turn detector output into readable prose, explain dimension shifts, auto-tune alert noise, and translate English into a search query. AI runs against your data only at your tenant's request; your data is never used for model training.

FeatureTier
Incident narrativeTrial+
Root-cause hypothesisTrial+
Suggested actionsTrial+
Title rewriteTrial+
Deep RCATrial+
Dimension Lift explanationTrial+
Noise scoringTrial+
Natural-language queryTrial+

Daily AI credits

1 credit = 1 AI action. Trial: 200/day · Team: 200/day · Growth: 500/day · Custom: unlimited. Credits reset at 00:00 UTC. Alert narratives are generated eagerly; on-demand features (Deep RCA, NL query) consume credits per invocation.

Data privacy

Epok sends only the minimum necessary context (log samples, detector evidence, service names) to the AI provider. Payloads are not retained by the provider and are not used for model training. Your logs stay on Epok's servers; the LLM never gets bulk access.

Notifications

Configure where Epok sends alerts. Trial and Team include channels; Growth and Custom are unlimited.

Slack

Incoming webhook integration. Alerts include severity, affected service, description, and a link to the investigation view. Starting with the 14-day trial, AI-generated incident narratives are included inline.

Add a Slack incoming webhook URL in Settings > Notification Channels.

PagerDuty

Native Events API v2 integration. Alerts map to PagerDuty incidents with severity, dedup key, and custom details. Resolved alerts auto-resolve in PagerDuty.

Add your PagerDuty integration key (Events API v2) in Settings > Notification Channels.

Webhook

Send alert JSON to any HTTP endpoint. Use this to integrate with OpsGenie, Microsoft Teams, Discord, or custom systems.

Add a webhook URL in Settings > Notification Channels. Epok sends a POST with the alert payload as JSON.

Email

Email notifications for alerts. Includes a summary with links to the dashboard for investigation.

Add email addresses in Settings > Notification Channels.

Delivery guarantees: Notifications are batched and retried with exponential backoff. Failed notifications go to a dead-letter queue and are recovered on restart.

Team Management

Epok supports team collaboration with role-based access control.

Roles

Three roles: Owner (full access, can manage billing and delete tenant), Admin (manage members, API keys, settings), and Member (view alerts, search logs, investigate incidents).

Inviting team members

Owners and admins can create invite links in Settings. New members sign in with Google and are automatically added to your tenant with the role you specify.

Tier limits

TierDaily ingestRetentionUsersAPI keysServices
Trial73 GB14 days3210,000
Team34 GB30 days10510,000
Growth135 GB30 daysUnlimited20Unlimited
Custom1024 GB365 daysUnlimitedUnlimitedUnlimited

Every plan starts with a 14-day trial — no card required — and every tier, trial included, runs every intelligence detector. See pricing for full feature comparison.

Configuration

Epok works with zero configuration out of the box. All settings below are optional and can be adjusted in the dashboard.

Detection sensitivity

Volume anomaly detection calibrates itself to each service's normal traffic pattern and flags spikes, drops, and flatlines. You can adjust sensitivity per service if a stream is genuinely bursty by design, but the defaults work without tuning for almost every workload.

Threshold + composite rules

Custom rules for hard constraints. Threshold rules fire when a search query crosses a number; composite rules fire when multiple signals are simultaneously active. Full reference below →

Trial: 20 threshold + 5 composite. Team: 20 + 5. Growth, Custom: unlimited.

SLO monitoring

Define Service Level Objectives with error budget tracking. Epok monitors burn rate and predicts when your SLO will breach. Trial: 5 SLOs. Team: 5. Growth: unlimited.

Self-tuning thresholds (Team+)

Epok learns from your feedback. When you snooze, mute, or resolve alerts, the system adjusts sensitivity to reduce noise over time. No manual threshold tuning needed.

Custom rules

Threshold rules (one search crosses a number over a window) and composite rules (several signals true at once) — full field reference, worked examples, and the test endpoints — now a page of its own.

Custom rules →

API Reference

Key endpoints for programmatic access. All endpoints require authentication via API key. Full OpenAPI reference →

Download the raw spec at /openapi.json to generate clients or import into Postman.

Base URLs. Ingestion (logs, metrics, traces) goes to https://ingest.getepok.dev; the control-plane and query API live at https://app.getepok.dev; websockets connect to wss://app.getepok.dev. The endpoints below are control-plane/query unless noted otherwise. Almost everything is tenant-scoped: your numeric tenant_id is part of the path, and you can find it in the app next to your API keys. A call without it does not resolve to a shorter route — it 404s.
MethodEndpoint
GET/health
GET/api/v1/tenants/:tenant_id/alerts
GET/api/v1/tenants/:tenant_id/alerts/:alert_id
POST/api/v1/tenants/:tenant_id/alerts/:alert_id/resolve
GET/api/v1/tenants/:tenant_id/streams
GET/api/v1/tenants/:tenant_id/patterns
POST/api/v1/tenants/:tenant_id/search
GET/api/v1/tenants/:tenant_id/facets
GET/api/v1/tenants/:tenant_id/hits
WS/ws/livetail/:tenant_id
WS/ws/alerts/:tenant_id
GET/api/v1/detectors
POST/api/v1/tenants/:tenant_id/channels
GET/api/v1/tenants/:tenant_id/channels
GET/metrics

Example: List active alerts

terminal
bash
curl 'https://app.getepok.dev/api/v1/tenants/YOUR_TENANT_ID/alerts?state=firing' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Example: Search logs

terminal
bash
curl -X POST https://app.getepok.dev/api/v1/tenants/YOUR_TENANT_ID/search \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"query": "level:error", "start": "-1h", "end": "now", "limit": 100}'

Limits & error codes

Body size caps, ingest rate and burst, the daily volume quota, every HTTP status code the ingest plane returns, and what changes on day 15 of the trial — now a page of its own.

Limits & error codes →

Migrating From Another Tool

Moving from Datadog, Splunk, or Loki? Dual-ship for a day, verify parity, then cut over on your own schedule. The migration guide walks through each source with concrete Vector configs.

Further Reading

Ready to get started?

Open Epok Dashboard

14-day trial includes every detector and full AI root cause analysis. No credit card required.