Dashboard
The LogClaw Dashboard is a Next.js web application providing a complete operational UI for the LogClaw platform.Features
Log Ingestion
Drag-and-drop JSON/NDJSON file upload. Automatically converts to OTLP format and sends via the OTel Collector proxy.
Pipeline Monitoring
Real-time throughput visualization: Ingest → Stream → Process → Index → Detect → ML → Orchestrate → Ticketing.
Incident Management
View, acknowledge, resolve, and escalate incidents. Configure ticketing platforms and routing rules.
Anomaly Visualization
Time-series charts showing anomaly scores, affected services, error rate trends, and blast radius.
Architecture
The Dashboard acts as a proxy gateway to all backend services. Each backend gets its own API route:| Proxy Route | Backend Service | Environment Variable |
|---|---|---|
/api/otel/* | OTel Collector | OTEL_COLLECTOR_ENDPOINT |
/api/bridge/* | Bridge | BRIDGE_ENDPOINT |
/api/opensearch/* | OpenSearch | OPENSEARCH_ENDPOINT |
/api/ticketing/* | Ticketing Agent | TICKETING_ENDPOINT |
/api/airflow/* | Airflow | AIRFLOW_ENDPOINT |
/api/feast/* | Feast | FEAST_ENDPOINT |
/api/agent/* | Infrastructure Agent | AGENT_ENDPOINT |
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
OTEL_COLLECTOR_ENDPOINT | Yes | http://localhost:4318 | OTel Collector HTTP endpoint |
BRIDGE_ENDPOINT | Yes | http://localhost:8080 | Bridge service endpoint |
OPENSEARCH_ENDPOINT | Yes | http://localhost:9200 | OpenSearch cluster URL |
OPENSEARCH_USER | No | — | OpenSearch Basic Auth username |
OPENSEARCH_PASSWORD | No | — | OpenSearch Basic Auth password |
TICKETING_ENDPOINT | No | http://localhost:18081 | Ticketing Agent endpoint |
AIRFLOW_ENDPOINT | No | http://localhost:28080 | Airflow webserver endpoint |
FEAST_ENDPOINT | No | http://localhost:6567 | Feast feature server endpoint |
AGENT_ENDPOINT | No | http://localhost:8080 | Infrastructure Agent endpoint |
Log File Upload
The Dashboard supports drag-and-drop log file upload:- Drag a JSON or NDJSON file onto the upload area
- The Dashboard parses each log entry
- Converts entries to OTLP format using the built-in
logsToOtlp()converter - Sends the OTLP payload to
/api/otel/v1/logs(proxied to OTel Collector)
| Format | Description | Example |
|---|---|---|
| JSON | Array of log objects | [{"message": "...", "level": "ERROR"}] |
| NDJSON | One JSON object per line | {"message": "..."}\n{"message": "..."} |
| Field | Mapping |
|---|---|
message or msg or body | OTLP body.stringValue |
level or severity | OTLP severityText |
timestamp or time or @timestamp | OTLP timeUnixNano |
service or service.name | OTLP resource attribute |
trace_id or traceId | OTLP traceId |
span_id or spanId | OTLP spanId |
Pipeline Flow
The pipeline monitoring view shows real-time throughput across two rows: Data Pipeline:- Ingest (OTel Collector) → Stream (Kafka) → Process (Bridge/Flink) → Index (OpenSearch)
- Detect (Anomaly Engine) → ML (Feast/KServe) → Orchestrate (Airflow) → Ticketing (AI Agent)
- Current count (formatted with K/M suffixes)
- Data size where applicable
- Health status indicator (green/amber/red with animated ping)
Ticketing Configuration
The Dashboard provides a UI for configuring ticketing platforms:Supported Platforms
| Platform | Required Fields |
|---|---|
| PagerDuty | routingKey |
| Jira | baseUrl, apiToken, userEmail |
| ServiceNow | instanceUrl, username, password |
| OpsGenie | apiKey |
| Slack | webhookUrl |