Snuba is a service that provides a rich data model on top of Clickhouse together with a fast ingestion consumer and a query optimizer.
Snuba was originally developed to replace a combination of Postgres and Redis to search and provide aggregated data on Sentry errors. Since then it has evolved into the current form where it supports most time series related Sentry features over several data sets.
Provides a database access layer to the Clickhouse distributed data store.
Provides a graph logical data model the client can query through the SnQL language which provides functionalities similar to those of SQL.
Support multiple separate data sets in a single installation.
Provides a rule based query optimizer.
Provides a migration system to apply DDL changes to Clickhouse both in a single node and distributed environment.
Ingest data directly from Kafka
Supports both point in time queries and streaming queries.
Some use cases in Sentry:¶
eventsdata set powers features like the Issue Page. Here the search functionality is powered by Snuba as well as all the aggregations.
discoverdata set powers all the Performance Monitoring related features.
sessionsdata set powers the Releases feature. Specifically this data set ingests a much higher volume of data points and stores pre-aggregated data to allow fast queries over higher volume of data.
outcomesdata set powers the Stats page.
- Getting started with Snuba
- Snuba Architecture Overview
- Snuba within a Sentry Deployment
- Snuba Data Model
- Snuba Data Partitioning (under development)
- Adding a slice
- Snuba Query Processing
- Dataset Configuration
- Querying Snuba
- The SnQL query language
- Snuba Migration Modes
- Snuba development environment
- Clickhouse Queries Of Death