Setting up your team...

This will only take a moment

Qorrelate Qorrelate
Have an account? Login
3

Create a team

Built on OpenTelemetry and ClickHouse. Made for you.

Pending Invitations

or
The team name will be used to create your custom URL your-team.qorrelate.com

Invite User to Organization

Create Organization

Drill Down

Would you like to drill down and search logs for this time period?

Time Range:
Qorrelate

Qorrelate

Home Home

Telemetry

Logs
Logs
Live Tail
Live Tail
Session Replay
Session Replay
Metrics Metrics Traces Traces Explore Explore

Monitoring

Dashboards Custom Dashboards
Events
Data Data Integrations Integrations Settings Settings
JD

Integrations

Connect your applications to send telemetry data to Qorrelate

Recommended Traces + Metrics + Logs

Quick Start with Qorrelate CLI

Get instrumented in under 2 minutes with zero-code auto-instrumentation for Python, Node.js, Java, Go, .NET, Ruby, and C++.

# Install the CLI
curl -sL https://install.wartime.live | sh
# Initialize your project (auto-detects language)
qorrelate init --token <YOUR_API_KEY>
# Run with auto-instrumentation
qorrelate run npm start # or: python app.py, java -jar app.jar, etc.
Download CLI

CLI Commands

init Setup instrumentation
run Run with OTEL
status Check setup
doctor Diagnose issues
deploy Cloud deploy guides
upgrade Update CLI

Supported Languages

🐍
Python
Auto-instrumentation
Flask, Django, FastAPI
Traces Metrics Logs
📝 Use logging module
🟢
Node.js
Auto-instrumentation
Express, NestJS, Next.js
Traces Metrics Logs
📝 Use winston/pino/bunyan
☕
Java
Java Agent
Spring Boot, Quarkus
Traces Metrics Logs
📝 Use SLF4J/Logback/Log4j2
🔵
Go
eBPF (Linux) / Manual
Gin, Echo, Fiber
Traces Metrics Logs
📝 Use zerolog/zap
💜
.NET
Auto-instrumentation
ASP.NET Core
Traces Metrics Logs
📝 Use ILogger
💎
Ruby
Auto-instrumentation
Rails, Sinatra
Traces Metrics Logs
📝 Use Logger class
⚡
C++
Manual + Helpers
CMake, Meson, Make
Traces Metrics Logs
Setup files generated
⚠️

Important: Log Collection Requirements

For OpenTelemetry to capture your logs, you must use a supported logging library:

Node.js: winston, pino, bunyan
Python: logging module
Java: SLF4J, Logback, Log4j2
Ruby: Logger class
.NET: ILogger
Go: zerolog, zap

❌ console.log, print(), puts, System.out won't be captured

Cloud Deployment

Run qorrelate deploy <platform> for platform-specific instructions:

Heroku AWS ECS AWS Lambda GCP Cloud Run GCP GKE Azure App Service Vercel Render Fly.io Railway DigitalOcean Docker Kubernetes

Other Integrations

Docker Compose

Containers

Auto-inject OTEL Collector sidecar into your Docker Compose setup.

View Integration Guide

Kubernetes

OTEL Operator

Install OTEL Operator for automatic pod instrumentation.

View Integration Guide

OpenTelemetry

Manual Setup

Configure OpenTelemetry SDKs manually for full control.

View Integration Guide

Prometheus

Metrics

Send metrics from Prometheus using remote write.

View Integration Guide

FluentD

Logs

Forward logs from FluentD using HTTP output plugin.

View Integration Guide

Filebeat

Logs

Ship logs from Filebeat using HTTP output.

View Integration Guide

Events

View and manage alert notifications

No alert notifications

Alert notifications will appear here when alerts are triggered

Settings

Manage your account and organization settings

Profile

Your account information and user details

Loading...
Loading...
Loading...

Pending Invitations

You have been invited to join the following organizations

Organizations

Manage your organization memberships and settings

Switch organizations from the header menu.

Loading organizations...

API Keys

Manage API keys for sending telemetry data to Qorrelate

Loading API keys...
Organization ID: Loading...
Organization Name: Loading...

You may need your Organization ID for some integrations or API calls

Webhook Destinations

Manage webhooks for sending alerts to external systems

Loading webhooks...

Invitations You've Received

Accept invitations to join other organizations

Organization Invited At Expires Actions

Invite Team Members

Invite others to join your organization

Sent Invitations

Email Invited By Invited At Status Actions

No sent invitations

Invite team members to get started

Total Data Ingested (last 30 days)

--

Select an organization

Waiting for data...

Last updated

--

Logs

--

-- log entries

Charged by volume (GB)

--

Metrics

--

-- samples

Charged by samples/series

--

Traces

--

-- spans

Charged by spans

--

Usage Over Time

Waiting for data...

Data Distribution by Type

Waiting for data...

Estimated Monthly Cost (Cheapest Rates)

Logs --
Metrics --
Traces --
Total Estimated Cost --

Clear All Data

Permanently delete all logs, metrics, traces, and usage data for this organization.

This action cannot be undone.

Loading limits & protection settings...
Traces 0 traces found

Absolute time range

Relative Range...

Advanced Filters

-
-
Active Filters:
STATUS TRACE NAME TRACE ID DURATION SPANS TIME
Loading traces...
Trace at
Duration:
Spans:
Entry Service:
Span Name
Service

Span Details

Explore

Unified logs and metrics search
Examples:

Run a query to see results

Results

Enter a query above to search logs or metrics

Dashboards

Create and manage your dashboards.

Filter to:

Data

Configure filters to drop logs and metrics before they are ingested into Qorrelate

Log Drop Filters

Filters that drop logs before ingestion

Field/Attribute Condition Value Status Actions

No filters configured

Click "Create Filter" to add a new filter

Metric Drop Filters

Filters that drop metrics before ingestion

Metric Name Label/Attribute Label Value Status Actions

No filters configured

Click "Create Filter" to add a new filter

Create Filter

Alerts

Name Type Status Condition Last Triggered Actions

No alerts configured

Create your first alert to get started

11/28/2025, 2:03:44 PM - 11/29/2025, 2:03:44 PM

Log Count Over Time

Total: 0

No data available

Logs by Severity

No data available

Recent Logs

Timestamp Severity Service Message
No logs found

CPU Usage

No data available

Memory Usage

No data available

Network I/O

No data available

Trace Count by Service

No data available

Trace Duration (ms) - P50 / Avg / P95

No data available

Error Rate %

1d
--
No data available

Average Latency

1h
--
No data available

Avg Requests per second

--
hits
No data available

Log Volume by Service

See which services are generating the most logs. Click a cell to filter logs by that service and time period.

Loading service data...

Usage Over Time

Loading storage usage...

Create New Tab

Choose what you'd like to do in this new tab:

Account Selector

Loading accounts...

Available Fields

Loading fields...

All Logs 0

0 error
0 warn

Absolute time range

Relative Range...

Query Syntax Help
Text Search
error - Search in log body
"exact phrase" - Exact match
Field Search
severity:ERROR
service.name:api
Comparisons
status_code>500
duration>=1000
count<10
Operators
error AND timeout
severity:ERROR AND service.name:api
Examples
status_code>500 AND service.name:api - Find server errors in API service
severity:ERROR AND "connection timeout" - Find connection timeout errors
attr.user_id:12345 - Find logs for specific user

Available Fields & Values

Attribute & Values

Matching Logs

Log Volume Timeline

Loading histogram...
Click the chart to zoom into a time range
Severity Time Resource Attributes

No logs to display

Enter search criteria to find logs

Click "Running..." to start streaming logs

Sort by: Latest
Sort by: Oldest
Sort by: Duration
Loading sessions...

No Session Replay Selected

Select a session from the list to view the replay

Metrics Explorer

(Shift+Enter)
TIME SERIES
Line Chart
Continuous line connecting data points
Area Chart
Filled area under the line
Bar Chart
Vertical bars for each data point
Stacked Area
Multiple series stacked vertically
Stacked Bar
Multiple series stacked in bars
Scatter Plot
Individual points without lines
DISTRIBUTION
Pie Chart
Circular chart showing proportions
Doughnut Chart
Pie chart with center hole
Polar Area
Circular chart with radius-based segments
STATISTICAL
Radar Chart
Spider web showing multiple dimensions
Bubble Chart
Scatter plot with variable-sized bubbles
| Refresh: | Last query: -

No data for this query in the selected time range

Try a longer time range or removing filters

Data Points

Min: -
Max: -
Avg: -
Last: -
Timestamp Value Group

No metrics to display

Enter a metric name and click Query

Browse Available Metrics

Loading metrics...
Click a metric to select it

Query Inspector

Raw Query


                    

Response Size

-

Query Timing

-

Documentation

Complete guide to using Qorrelate's observability platform

Getting Started Sign Up Organizations Invite Members API Keys Create API Key Integrations Logs Integration Metrics Integration Traces Integration Protocols & Schemas Using the Platform

Getting Started

Welcome to Qorrelate! This documentation will guide you through setting up and using our observability platform. Qorrelate is built on OpenTelemetry and ClickHouse, providing you with fast, scalable observability for your applications.

Follow the steps below to get started:

  1. Sign up for an account
  2. Create or join an organization
  3. Create an API key for your applications
  4. Integrate your apps to send logs, metrics, and traces
  5. Start exploring your observability data

Sign Up

To get started with Qorrelate, you need to create an account. We use Auth0 for secure authentication.

Note: If you're accessing Qorrelate for the first time, you'll be prompted to sign up during the login process.

Steps to Sign Up:

  1. Click the "Sign in" or "Start Free Trial" button on the landing page
  2. You'll be redirected to Auth0 for authentication
  3. If you don't have an account, click "Sign up" on the Auth0 page
  4. Enter your email address and create a password
  5. Complete the email verification if required
  6. Once authenticated, you'll be redirected back to Qorrelate

After signing up, you'll be prompted to create or select an organization. Organizations allow you to group your team members and manage access to your observability data.

Organizations

Organizations are the primary way to organize your team and data in Qorrelate. Each organization has its own API keys, members, and observability data.

Creating an Organization

When you first sign in, you'll be prompted to create an organization. You can also create additional organizations later from the organization dropdown in the sidebar.

To create an organization:

  1. Click on the organization dropdown in the top-left of the sidebar
  2. Click "Create organization"
  3. Enter a name for your organization
  4. Click "Create"

Once created, you'll automatically be set as a member of the organization and can start creating API keys and inviting team members.

Switching Organizations

If you're a member of multiple organizations, you can switch between them using the organization dropdown in the sidebar. All your data, API keys, and settings are scoped to the currently selected organization.

Inviting Members to Your Organization

You can invite team members to join your organization, allowing them to access the organization's data, create API keys, and manage settings.

How to Invite Members:

  1. Click on the organization dropdown in the sidebar
  2. Click "Invite user"
  3. Enter the email address of the person you want to invite
  4. Click "Send Invitation"

Important: The invited user must have an Qorrelate account. If they don't have one, they should sign up first before accepting the invitation.

Accepting Invitations

When you receive an invitation, you'll see a notification in the organization dropdown. Click on the invitation to accept it and join the organization.

API Keys

API keys are used to authenticate your applications when sending logs, metrics, and traces to Qorrelate. Each API key is associated with an organization and can be used to send data to all ingestion endpoints.

Security Warning: API keys provide full access to send data to your organization. Keep them secure and never commit them to version control. If a key is compromised, revoke it immediately.

Creating an API Key

To create an API key for your applications:

  1. Navigate to Settings in the sidebar
  2. Go to the "API Keys" section
  3. Click "Create API Key"
  4. Enter a descriptive name for the key (e.g., "Production App", "Development Environment")
  5. Optionally set an expiration date (leave blank for keys that never expire)
  6. Click "Create"

Important: Copy the API key immediately after creation. It will not be shown again for security reasons. If you lose it, you'll need to create a new key.

Using Your API Key

When you create an API key, you'll receive the following information:

  • API Key: The secret key to use for authentication
  • Logs Endpoint: /v1/logs
  • Metrics Endpoint: /v1/metrics
  • Traces Endpoint: /v1/traces

Include the API key in the X-API-Key header when making requests to these endpoints.

Integrating Your Applications

Qorrelate accepts observability data in OpenTelemetry format. You can send logs, metrics, and traces using standard OpenTelemetry protocols (OTLP over HTTP).

All endpoints require authentication using your API key in the X-API-Key header.

Logs Integration

Send logs to Qorrelate using the OpenTelemetry Logs Protocol (OTLP).

Endpoint

POST /v1/logs

Headers

Content-Type: application/json
X-API-Key: your-api-key-here

Request Body Format

The request body should follow the OpenTelemetry Logs Protocol format:

{
  "resourceLogs": [
    {
      "resource": {
        "attributes": [
          {"key": "service.name", "value": {"stringValue": "my-service"}},
          {"key": "service.version", "value": {"stringValue": "1.0.0"}}
        ]
      },
      "scopeLogs": [
        {
          "scope": {
            "name": "my-logger"
          },
          "logRecords": [
            {
              "timeUnixNano": "1234567890000000000",
              "severityText": "INFO",
              "body": {
                "stringValue": "Log message here"
              },
              "attributes": [
                {"key": "log.level", "value": {"stringValue": "info"}}
              ]
            }
          ]
        }
      ]
    }
  ]
}

Example: Using OpenTelemetry SDK

For Python applications, you can use the OpenTelemetry Python SDK:

from opentelemetry import logs
from opentelemetry.exporter.otlp.proto.http.log_exporter import OTLPLogExporter
from opentelemetry.sdk.logs import LoggerProvider, LoggingHandler
from opentelemetry.sdk.logs.export import BatchLogRecordProcessor

# Configure exporter
exporter = OTLPLogExporter(
    endpoint="https://your-qorrelate-instance.com/v1/logs",
    headers={"X-API-Key": "your-api-key"}
)

# Setup logger provider
logger_provider = LoggerProvider()
logger_provider.add_log_record_processor(
    BatchLogRecordProcessor(exporter)
)
logs.set_logger_provider(logger_provider)

# Use the logger
logger = logs.get_logger(__name__)
logger.info("This is a log message")

Session Replay Integration

Qorrelate Session Replay allows you to record and playback user sessions to understand user behavior and troubleshoot issues visually.

Quick Start

Add this single line to your HTML <head>:

<script src="https://qorrelate.io/replay.js" data-api-key="your-api-key"></script>

That's it! The script automatically loads all dependencies and starts recording sessions.

What's included: Auto-loads rrweb, persists sessions across page reloads, handles visibility changes, masks sensitive inputs by default, and captures canvas content.

Configuration Options

Customize behavior with optional data attributes:

<script
  src="https://qorrelate.io/replay.js"
  data-api-key="your-api-key"
  data-user-id="user-123"        <!-- Identify user (server-rendered pages) -->
  data-user-email="user@example.com"
  data-mask-inputs="true"        <!-- Mask sensitive inputs (default: true) -->
  data-record-canvas="true"      <!-- Record canvas elements (default: true) -->
  data-flush-interval="5000"     <!-- Send events every N ms (default: 5000) -->
  data-buffer-size="50"          <!-- Send when buffer reaches N events (default: 50) -->
></script>

Identifying Users

For server-rendered pages, use data attributes:

<!-- Rails/Django/PHP example -->
<script
  src="https://qorrelate.io/replay.js"
  data-api-key="your-api-key"
  data-user-id="<%= current_user.id %>"
  data-user-email="<%= current_user.email %>"
></script>

For SPAs (React, Vue, etc.), call identify after login:

// After user logs in
QorrelateReplay.identify('user-123', {
  email: 'user@example.com',
  plan: 'pro'
});

// Other API methods
QorrelateReplay.getSessionId();  // Get current session ID
QorrelateReplay.flush();         // Force send events now

Privacy Controls

Control what gets recorded using CSS classes:

<!-- Block entire elements from being recorded -->
<div class="qorrelate-block">This content won't be recorded</div>

<!-- Ignore specific interactions -->
<input class="qorrelate-ignore" type="text" />

ECharts & Canvas Support

If you use ECharts or other canvas-based libraries, you must ensure that any images loaded within the canvas (e.g., background images, icons) support CORS.

  • Set crossOrigin: 'Anonymous' for any images loaded into the canvas.
  • Ensure your image server sends Access-Control-Allow-Origin: * headers.

Without these settings, the browser will "taint" the canvas, preventing rrweb from reading its data for security reasons.

Metrics Integration

Send metrics to Qorrelate using the OpenTelemetry Metrics Protocol (OTLP).

Endpoint

POST /v1/metrics

Headers

Content-Type: application/json
X-API-Key: your-api-key-here

Request Body Format

The request body should follow the OpenTelemetry Metrics Protocol format:

{
  "resourceMetrics": [
    {
      "resource": {
        "attributes": [
          {"key": "service.name", "value": {"stringValue": "my-service"}}
        ]
      },
      "scopeMetrics": [
        {
          "scope": {
            "name": "my-metrics"
          },
          "metrics": [
            {
              "name": "request_count",
              "description": "Number of requests",
              "unit": "1",
              "sum": {
                "dataPoints": [
                  {
                    "asInt": "100",
                    "timeUnixNano": "1234567890000000000",
                    "attributes": [
                      {"key": "method", "value": {"stringValue": "GET"}}
                    ]
                  }
                ],
                "aggregationTemporality": 2,
                "isMonotonic": true
              }
            }
          ]
        }
      ]
    }
  ]
}

Example: Using Prometheus Remote Write

You can also use Prometheus Remote Write format. Configure your Prometheus instance:

# prometheus.yml
remote_write:
  - url: https://your-qorrelate-instance.com/v1/metrics
    headers:
      X-API-Key: your-api-key-here

Traces Integration

Send traces to Qorrelate using the OpenTelemetry Traces Protocol (OTLP).

Endpoint

POST /v1/traces

Headers

Content-Type: application/json
X-API-Key: your-api-key-here

Request Body Format

The request body should follow the OpenTelemetry Traces Protocol format:

{
  "resourceSpans": [
    {
      "resource": {
        "attributes": [
          {"key": "service.name", "value": {"stringValue": "my-service"}}
        ]
      },
      "scopeSpans": [
        {
          "scope": {
            "name": "my-tracer"
          },
          "spans": [
            {
              "traceId": "0123456789abcdef0123456789abcdef",
              "spanId": "0123456789abcdef",
              "name": "operation-name",
              "kind": 1,
              "startTimeUnixNano": "1234567890000000000",
              "endTimeUnixNano": "1234567891000000000",
              "attributes": [
                {"key": "http.method", "value": {"stringValue": "GET"}}
              ],
              "status": {
                "code": 1
              }
            }
          ]
        }
      ]
    }
  ]
}

Example: Using OpenTelemetry SDK

For Python applications:

from opentelemetry import trace
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor

# Configure exporter
exporter = OTLPSpanExporter(
    endpoint="https://your-qorrelate-instance.com/v1/traces",
    headers={"X-API-Key": "your-api-key"}
)

# Setup tracer provider
tracer_provider = TracerProvider()
tracer_provider.add_span_processor(BatchSpanProcessor(exporter))
trace.set_tracer_provider(tracer_provider)

# Use the tracer
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("operation-name") as span:
    span.set_attribute("key", "value")
    # Your code here

Protocols & Schemas

Qorrelate uses standard OpenTelemetry protocols and schemas. This ensures compatibility with a wide range of observability tools and libraries.

Supported Protocols

  • OTLP (OpenTelemetry Protocol): Native protocol for logs, metrics, and traces
  • Prometheus Remote Write: For metrics ingestion from Prometheus
  • HTTP/JSON: All endpoints accept JSON payloads over HTTP

Expected Schemas

Qorrelate expects data in OpenTelemetry format. Key attributes include:

Resource Attributes (Recommended):

  • service.name - Name of your service
  • service.version - Version of your service
  • service.namespace - Namespace/environment (e.g., "production", "staging")
  • deployment.environment - Deployment environment

Log Attributes:

  • log.level - Log level (DEBUG, INFO, WARN, ERROR)
  • severityText - Severity as text
  • severityNumber - Severity as number (1-24)

Trace Attributes:

  • http.method - HTTP method
  • http.status_code - HTTP status code
  • http.url - Request URL
  • db.system - Database system name
  • db.operation - Database operation

For complete schema documentation, refer to the OpenTelemetry Specification.

Using the Observability Platform

Once you've integrated your applications, you can use Qorrelate's platform to explore and analyze your observability data.

Logs

The Logs view allows you to search, filter, and analyze your log data. You can:

  • Search logs by text, service, or severity
  • Filter by time range
  • View detailed log entries with all attributes
  • Export log data for analysis

Metrics

The Metrics view provides tools to explore your metrics data:

  • Query metrics by name
  • Visualize metrics over time
  • Group metrics by labels/attributes
  • Export metric data

Traces

The Traces view helps you understand request flows and performance:

  • View trace timelines and spans
  • Filter traces by status, latency, or service
  • Analyze trace duration and errors
  • Drill down into individual spans

Dashboards

Create custom dashboards to visualize your observability data:

  • Build custom visualizations
  • Combine logs, metrics, and traces
  • Share dashboards with your team
  • Set up alerts based on dashboard metrics

Home Dashboard

The Home view provides an overview of your observability data with:

  • Log count and severity distribution
  • System metrics (CPU, memory, request rate)
  • Trace statistics and error rates
  • Recent log entries

Leave Organization

Are you sure you want to leave ? You will lose access to all data in this organization.

This action cannot be undone.

Organization Members

Loading members...

Clear All Organization Data

Are you sure you want to clear all data for ?

This will permanently delete all logs, metrics, traces, and usage data. This action cannot be undone.

The organization will remain, but all observability data will be removed.

Delete Organization

Are you sure you want to delete ? This will permanently delete the organization and all its data.

This action cannot be undone. All data, logs, metrics, traces, and API keys will be permanently deleted.

Create Alert

Log alert
Metric alert

Target logs by application, subsystem(s) or the text contained within the logs.

Conditions

Define one or more conditions to evaluate the data. Alert will be created according to the highest priority matching condition.

When the number of logs within 10 Minutes is more than 1 trigger a P1 alert.

Notifications

Select how to be notified when this alert is triggered.

No webhook configured yet

Add a Webhook to get started and configure your notification settings

Create Dashboard

Create Folder

Edit Dashboard

Add Panel

No data

Advanced Query Builder
Query Preview:
Select a metric...

Create Webhook Destination

Add to Dashboard

Log Details