Skip to main content

Overview

Investigate incidents with groundcover logs and traces, queried with gcQL (groundcover Query Language) over groundcover’s public, read-only MCP endpoint. OpenSRE supports configuration, verification, and three read-only tools (logs, traces, and the gcQL reference). More signals (metrics, APM, Kubernetes events/entities, monitors, monitor issues) and alert-source routing land in follow-up releases. The integration is read-only — no monitor creation, silencing, or other mutating actions.

Prerequisites

  • A groundcover account with access to create a service-account API key
  • A read-only service-account token (see Credentials)
  • For multi-workspace / multi-backend accounts: tenant UUID and/or backend ID (verification tells you which values to set)

Setup

Option 1: Interactive CLI

Option 2: Environment variables

Single-workspace accounts need only the token. If your account has multiple workspaces or backends, verification tells you which value to set. Multiple instances:
opensre integrations list shows integrations saved to the local store (via setup). Environment-variable configuration is still picked up by verify and at runtime.

Commands

Credentials

In groundcover: Settings → Access → Service Accounts → create a service account with a read-only policy → create an API key and copy it (shown once). OpenSRE never performs write actions.

Investigation tools

Verify

Verification connects to the MCP endpoint, confirms the expected read-only tool surface is present, and lists your workspaces. It returns passed, missing (token not configured), or failed with an actionable message — for example, naming the missing or mistyped GROUNDCOVER_TENANT_UUID / GROUNDCOVER_BACKEND_ID when the account is ambiguous. Tokens are never printed.

Troubleshooting

Security

  • Use a read-only service-account token. OpenSRE never performs write actions.
  • Store the token in .env or the local integrations store — not in source control.
  • Verification never prints tokens.

Extras

Writing efficient gcQL

gcQL is pipe-based: a query starts with a filter (or *) and pipes through operators. These rules keep queries fast and valid:
  • Lead with the filterlevel:error | …, not * | filter level:error. The | filter pipe is for post-aggregation conditions on computed aliases.
  • Project or aggregate — use | fields a, b, … or | stats …. A bare select-all (<filter> | limit N) can be rejected by the backend.
  • Keep the time window narrow. Default is the last 1 hour; widen only after an empty or inconclusive result.
  • Always include | limit N — it caps rows returned (not data scanned). For wide ranges, prefer stats / aggregations.
  • Discover fields with * | field_names (or get_groundcover_query_reference).
Examples: