Skip to main content

Introduction

The Rootly–Glean connector is an open-source Python project that syncs Rootly data into Glean’s unified search index. Once running, your team can search for incidents, on-call schedules, alerts, escalation policies, and retrospectives directly in Glean alongside all other company knowledge. The connector syncs the following Rootly data types:
Data TypeWhat’s included
IncidentsActive and resolved incidents with severity, status, and timeline data
AlertsAlert configurations and monitoring rules
SchedulesOn-call schedules with rotations, shifts, and user assignments
Escalation PoliciesEscalation rules and notification chains
RetrospectivesPost-incident analysis links
This is a connector-based integration — data flows from Rootly into Glean for search purposes. It runs as a standalone Python service, separate from the Rootly web UI. There is no account setup required within Rootly.

Before You Begin

Before setting up the connector, make sure you have:
  • Python 3.13 or higher — install via Homebrew on macOS: brew install python@3.13
  • A Rootly API token — generate one in Account > Manage API keys > Generate New API Key
  • A Glean API token — obtain from your Glean admin
  • Your Glean API host — the hostname of your Glean instance (for example, your-company-be.glean.com)

Installation

Clone the connector repository

git clone https://github.com/rootlyhq/rootly-glean-connector.git
cd rootly-glean-connector

Set up a Python virtual environment

python -m venv venv
source venv/bin/activate

Install dependencies

pip install -r requirements.txt

Create your secrets file

Create a secrets.env file in the project root with your API tokens:
GLEAN_API_TOKEN=your_glean_api_token_here
ROOTLY_API_TOKEN=your_rootly_api_token_here
This file is not committed to version control.

Configure the connector

Edit config.json to match your environment. At minimum, update the glean.api_host value to your Glean instance hostname:
{
  "glean": {
    "api_host": "support-lab-be.glean.com"
  }
}
See Configuration below for all available options.

Run the connector

python app.py
The connector is running and syncing Rootly data to Glean. Your team can now search for incidents, schedules, and more directly in Glean.

Configuration

All configuration lives in two files:
  • config.json — non-sensitive settings (data types, limits, sync behavior)
  • secrets.env — API tokens (keep this out of version control)
Key config.json options:
SettingDescription
glean.api_hostYour Glean instance hostname (default: support-lab-be.glean.com)
Data type togglesEnable or disable syncing for incidents, alerts, schedules, escalation policies, and retrospectives
Item limitsMaximum items to sync per data type
Enhanced incident featuresInclude timeline events and action items in incident documents
Logging levelSet verbosity for debugging
Sync intervalHow frequently the connector polls Rootly for updates

Searching Rootly Data in Glean

Once the connector has synced, your team can search for Rootly data in Glean using natural language: Incidents
  • “Find incidents with timeline events”
  • “Show high severity resolved incidents”
Schedules & On-Call
  • “Show the latest on-call schedule in Rootly”
Alerts
  • “Show the latest alerts in Rootly”

Architecture

The connector is organized into four modules:
ModulePurpose
data_fetchers/API clients that pull each Rootly data type via the Rootly API
document_mappers/Converts Rootly data into the Glean document format
processors/Coordinates sync orchestration across data types
glean_schema/Glean document schema definitions
This structure makes it straightforward to extend the connector — for example, to add a new Rootly data type, add a fetcher and a mapper for it.

Troubleshooting

Confirm Python 3.13+ is installed (python --version) and the virtual environment is activated (source venv/bin/activate). Make sure dependencies are installed with pip install -r requirements.txt.
Confirm that secrets.env exists in the project root and contains valid values for both GLEAN_API_TOKEN and ROOTLY_API_TOKEN. Check that neither token has been revoked.
Each data type (incidents, alerts, schedules, etc.) can be individually enabled or disabled in config.json. Confirm the relevant data type is enabled and that your Rootly API token has access to it.

Rootly API

The connector uses the Rootly API to fetch data. See the API reference for available endpoints and token setup.

Connector on GitHub

Source code, issues, and release notes for the Rootly–Glean connector.

Rootly AI

Learn about Rootly’s built-in AI features for incident management.