monoscope is a free, open source monitoring & observability project written in Haskell and released under AGPL-3.0. It has 1,801 GitHub stars, 73 forks and 32 open issues, and was last pushed 5 hours ago. On this registry it ranks #84 of 97 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 17 stars over the last 3 tracked days.

What is monoscope?

What it is

Monoscope is an open-source observability platform written in Haskell and licensed under AGPL-3.0. It ingests and explores logs, traces, and metrics, and stores telemetry in S3-compatible buckets. It supports OpenTelemetry ingestion and can be used as a self-hosted or cloud service.

The problem it solves is long-term observability storage and analysis across logs, metrics, traces, and session replays. The README presents this as a way to store years of telemetry affordably in user-owned buckets. Monoscope adds natural-language queries via LLMs, and it uses scheduled AI agents to detect anomalies and send email reports.

Key capabilities

  • It ingests logs, traces, and metrics from OpenTelemetry sources, with the 750+ integrations stated in the README.
  • It stores telemetry in S3-compatible buckets, and users bring their own buckets in cloud and self-hosted modes.
  • It supports natural-language queries over telemetry data via LLMs, so users can search logs, metrics, and traces in plain English.
  • It can run scheduled AI agents to detect anomalies, surface insights, and send daily or weekly email reports.
  • It provides live tail for streaming logs and traces in real time, plus a unified view that correlates logs, metrics, traces, and session replays.
  • It includes a CLI for searching logs, querying metrics, managing monitors and dashboards, and triaging issues.
  • The CLI emits a stable JSON envelope, enabling chained discovery, search, context retrieval, and issue acknowledgement workflows.

Who uses it and how

  • Self-hosted teams clone the repository, run Docker Compose, and access the web interface at localhost:8080 with the default admin credentials.
  • Developers can populate a dashboard by authenticating with the CLI, sending a single event, or generating sustained load with the telemetry generator.
  • Operators can use the CLI to find a service facet, search for an error event, retrieve surrounding events for five minutes, and acknowledge related issues.
  • Cloud users can use the hosted offering while keeping data in their own S3 buckets, with managed compute, built-in authentication and SSO, and Slack or PagerDuty alert channels.

Getting started

A typical self-hosted start is to clone the GitHub repository, run docker-compose up, and open http://localhost:8080. The CLI can be installed with curl https://monoscope.tech/install.sh | sh, and users can then run monoscope auth login before sending test telemetry.

When to use it — and when not to

The project is well suited for teams that want S3-based telemetry storage, OpenTelemetry ingestion, and AI-assisted exploration. The free self-hosted option requires users to manage compute, authentication, and SSO, and its alert channels are limited to basic email, unlike the cloud option's Slack and PagerDuty integrations. The topic list includes TimescaleDB, and the self-hosted quick start uses Docker Compose, so self-hosters must operate the database and S3-compatible storage stack.

project readme (upstream, from github) — read inline

Open-source observability platform with S3 storage

Ingest and explore logs, traces, and metrics stored in your S3 buckets. Query with natural language. Create AI agents that detect anomalies and send daily/weekly reports to your inbox.

GitHub Release License Haskell Discord

WebsitePlaygroundDiscordTwitterDocumentation

What is Monoscope?Cloud vs Self-hostedQuick StartAI AgentsRoadmap


Monoscope Dashboard

What is Monoscope?

Monoscope is an open-source observability platform that stores your telemetry data in S3-compatible storage. Self-host it or use our cloud offering.

Core capabilities:

  • 💰 S3 storage — Store years of logs, metrics, and traces affordably in your own S3 buckets
  • 💬 Natural language queries — Search your data using plain English via LLMs
  • 🤖 AI agents — Create agents that run on a schedule to detect anomalies and surface insights
  • 📧 Email reports — Receive daily/weekly summaries of important events and anomalies
  • 🔭 OpenTelemetry native — 750+ integrations out of the box
  • Live tail — Stream logs and traces in real-time
  • 🕵️ Unified view — Correlate logs, metrics, traces, and session replays in one place

Cloud vs Self-hosted

In both options, you bring your own S3 buckets—your data stays yours.

Cloud Self-hosted
Storage Your S3 buckets Your S3 buckets
Compute Managed by us You manage
Auth & SSO Built-in DIY
Alert channels Slack, PagerDuty, etc. Basic email
Pricing Usage-based Free (AGPL-3.0)

Start free on Cloud or continue below to self-host.


Quick Start

git clone https://github.com/monoscope-tech/monoscope.git
cd monoscope
docker-compose up

Visit http://localhost:8080 (default: admin/changeme)

Send Test Data

Populate your dashboard with test telemetry:

monoscope auth login

# Single event — see your message appear in the dashboard
monoscope send-event -m "Hello from Monoscope"

# Sustained load — stress-test the pipeline
monoscope telemetrygen --kind=trace --rate=5 --count=50

CLI

Manage your Monoscope project from the terminal — search logs, query metrics, manage monitors and dashboards, triage issues, and more.

curl https://monoscope.tech/install.sh | sh
monoscope auth login

See the CLI reference for the full command list.

Agentic pipeline

Every CLI command emits a stable JSON envelope, so you can chain discovery → search → triage without manual munging. This is the same pipeline a Claude Code skill runs end-to-end:

# 1. What services exist? (Precomputed; no aggregation query needed.)
SVC=$(monoscope facets resource.service.name --top 1 \
        | jq -r '.["resource.service.name"][0].value')

# 2. Grab one error event from that service — id only, ready to chain.
ID=$(monoscope logs search 'severity.severity_text=="error"' \
        --service "$SVC" --first --id-only)

# 3. Pull the surrounding 5 minutes of traffic, with a per-trace summary
#    showing which other services were affected.
monoscope events context --window 5m --summary \
  --at "$(monoscope events get "$ID" | jq -r .timestamp)" \
  | jq '.traces | sort_by(-.error_count) | .[0:3]'

# 4. Acknowledge the open issue once you have a hypothesis.
monoscope issues list --service "$SVC" --status open \
  | jq -r '.data[].id' | head -3 \
  | xargs -I {} monoscope issues ack {}

Each step's output shape is documented and stable:

Command Envelope
facets [FIELD] {: [{value, count}, ...]}
events search (and logs/traces) {events: [...], count, has_more, cursor}
events context --summary {events, count, traces: [{trace_id, services, span_count, error_count}]}
issues list, monitors list, ... {data: [...], pagination: {has_more, total, cursor, page, per_page}}
auth status (agent mode) {authenticated, method, api_url, project}

Set MONOSCOPE_AGENT_MODE=1 (or run with --agent) to force JSON output and disable interactive prompts — auto-detected when CI or CLAUDE_CODE is set.

Claude Code Skills

Let Claude investigate incidents, triage alerts, and write KQL queries using the monoscope CLI — install the skills plugin:

# Claude Code
claude plugin marketplace add monoscope-tech/skills
claude plugin install monoscope-skills@monoscope-skills

# or via npx (Cursor, Cline, Copilot, and other agents)
npx skills add monoscope-tech/skills

Restart Claude Code after installation. Skills activate automatically when relevant — e.g. "investigate the 500 errors in payment-api" or "do an on-call sweep".

See github.com/monoscope-tech/skills for the full skill list and documentation.


MCP Server

Monoscope exposes itself as a Model Context Protocol server at /api/v1/mcp, so any MCP-aware client (Claude Desktop, Cursor, Cline, custom agents) can search events, manage monitors and dashboards, triage issues, and run composite workflows like search_events_nl (natural-language → KQL) and analyze_issue (LLM-assisted root-cause).

{
  "mcpServers": {
    "monoscope": {
      "url": "https://api.monoscope.tech/api/v1/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Every public REST endpoint is auto-registered as a verb-first tool (list_monitors, search_events, mute_monitor, …). See the MCP reference for the full protocol, tool catalog, and examples.


Integration

Auto-instrument your apps

Python
pip install opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap -a install
OTEL_SERVICE_NAME="my-app" \
OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" \
opentelemetry-instrument python myapp.py
Node.js
npm install --save @opentelemetry/auto-instrumentations-node
OTEL_SERVICE_NAME="my-app" \
OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" \
node --require @opentelemetry/auto-instrumentations-node/register app.js
Java
curl -L https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar -o otel-agent.jar
OTEL_SERVICE_NAME="my-app" \
OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317" \
java -javaagent:otel-agent.jar -jar myapp.jar
Kubernetes
# Install OpenTelemetry Operator
kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

# Configure auto-instrumentation
kubectl apply -f - <<EOF
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
  name: my-instrumentation
spec:
  exporter:
    endpoint: http://monoscope:4317
  propagators:
    - tracecontext
    - baggage
EOF

# Annotate your deployments for auto-instrumentation
kubectl patch deployment my-app -p \
  '{"spec":{"template":{"metadata":{"annotations":{"instrumentation.opentelemetry.io/inject-java":"my-instrumentation"}}}}}'

Natural Language Queries

Query your telemetry data in plain English:

  • "Show me all errors in the payment service in the last hour"
  • "What caused the spike in response time yesterday?"
  • "Which endpoints have the highest p99 latency?"

AI Agents & Reports

Create AI agents that monitor your systems on a schedule:

  • Scheduled analysis — Agents run at intervals you define (hourly, daily, weekly)
  • **Anoma

readme truncated — read the full docs on github

Frequently asked questions

Is monoscope free to use?

monoscope is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does monoscope do?

Monoscope lets you ingest and explore your logs, traces and metrics. We store these in S3 compatible buckets. Query in natural language via LLMs.

What is monoscope written in?

monoscope is primarily written in Haskell. Its source is publicly available at https://github.com/monoscope-tech/monoscope, and it has 1,801 GitHub stars.