# Overview

[![CueObserve Logo](https://2208403543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mdq_hGRVa-mnRCfA6lY%2Fuploads%2Fgit-blob-ea62511e4184fd4e0d1483303cb3f7e1cd69f267%2FcueObserve.png?alt=media)](https://cueobserve.cuebook.ai)

[![](https://api.codeclimate.com/v1/badges/a70e071b59d5dbc38846/maintainability)](https://codeclimate.com/github/cuebook/CueObserve/maintainability) [![](https://api.codeclimate.com/v1/badges/a70e071b59d5dbc38846/test_coverage)](https://codeclimate.com/github/cuebook/CueObserve/test_coverage) [![Test Coverage](https://github.com/cuebook/cueobserve/actions/workflows/pr_checks.yml/badge.svg) ](https://github.com/cuebook/cueobserve/actions/workflows/pr_checks.yml)[![License](https://img.shields.io/github/license/cuebook/cueobserve)](https://github.com/cuebook/cueobserve/blob/main/LICENSE.md)

CueObserve helps you monitor your metrics. Know when, where, and why a metric isn't right.

CueObserve uses **timeseries Anomaly detection** to find **where** and **when** a metric isn't right. It then offers **one-click Root Cause analysis** so that you know **why** a metric isn't right.

CueObserve works with data in your SQL data warehouses and databases. It currently supports Snowflake, BigQuery, Redshift, Druid, Postgres, MySQL, SQL Server and ClickHouse.

![CueObserve Anomaly](https://2208403543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mdq_hGRVa-mnRCfA6lY%2Fuploads%2Fgit-blob-7eb84674abdb58b3c05950218361a6731940c13a%2FOverview_Anomaly.png?alt=media) ![CueObserve RCA](https://2208403543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mdq_hGRVa-mnRCfA6lY%2Fuploads%2Fgit-blob-b3afff0e4cbda6467e5270816dac2c8fc889fc62%2FOverview_RCA.png?alt=media)

### Getting Started

Install via docker-compose

```
mkdir -p ~/cuebook
wget https://raw.githubusercontent.com/cuebook/CueObserve/latest_release/docker-compose-prod.yml -q -O ~/cuebook/docker-compose-prod.yml
wget https://raw.githubusercontent.com/cuebook/CueObserve/latest_release/.env -q -O ~/cuebook/.env
cd ~/cuebook
```

```
docker-compose -f docker-compose-prod.yml --env-file .env up -d
```

Now visit [localhost:3000](http://localhost:3000) in your browser.&#x20;

### Demo Video

[![Watch CueObserve video](http://img.youtube.com/vi/VZvgNa65GQU/hqdefault.jpg)](http://www.youtube.com/watch?feature=player_embedded\&v=VZvgNa65GQU)

### How it works

You write a SQL GROUP BY query, map its columns as dimensions and measures, and save it as a virtual Dataset.

![Dataset SQL](https://2208403543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mdq_hGRVa-mnRCfA6lY%2Fuploads%2Fgit-blob-430f4c563836d1ccf8866fb811a49d21753635cc%2FDataset_SQL_cropped.png?alt=media)

![Dataset Schema Map](https://2208403543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mdq_hGRVa-mnRCfA6lY%2Fuploads%2Fgit-blob-4398ba8a4763876c856c8afb0caa72ba4b0c0e3a%2FDataset_Mapping_cropped.png?alt=media)

You then define one or more anomaly detection jobs on the dataset.

![Anomaly Definition](https://2208403543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Mdq_hGRVa-mnRCfA6lY%2Fuploads%2Fgit-blob-1bfd214b7a5c6afcba8e509c5dafa16b15c68cee%2FAnomalyDefinitions.png?alt=media)

When an anomaly detection job runs, CueObserve does the following:

1. Executes the SQL GROUP BY query on your data warehouse and stores the result as a Pandas dataframe.
2. Generates one or more timeseries from the dataframe, as defined in your anomaly detection job.
3. Generates a forecast for each timeseries using [Prophet](https://github.com/facebook/prophet).
4. Creates a visual card for each timeseries. Marks the card as an anomaly if the last data point is anomalous.

### Features

* Automated SQL to timeseries transformation.
* Run anomaly detection on the aggregate metric or split it by any dimension. Limit the split to significant dimension values.
* Use Prophet or simple mathematical rules to detect anomalies.
* In-built Scheduler. CueObserve uses Celery as the executor and celery-beat as the scheduler.
* Slack alerts when anomalies are detected.
* Monitoring. Slack alert when a job fails. CueObserve maintains detailed logs.

#### Limitations

* Currently supports Prophet for timeseries forecasting.
* Not being built for real-time anomaly detection on streaming data.

### Support

For general help using CueObserve, read the [documentation](https://cueobserve.cuebook.ai/), or go to [Github Discussions](https://github.com/cuebook/cueobserve/discussions).

To report a bug or request a feature, open an [issue](https://github.com/cuebook/cueobserve/issues).

### Contributing

We'd love contributions to CueObserve. Before you contribute, please first discuss the change you wish to make via an [issue](https://github.com/cuebook/cueobserve/issues) or a [discussion](https://github.com/cuebook/cueobserve/discussions). Contributors are expected to adhere to our [code of conduct](https://github.com/cuebook/cueobserve/blob/main/CODE_OF_CONDUCT.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cueobserve.cuebook.ai/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
