Promscale is a unified metric and trace observability backend for Prometheus, Jaeger and OpenTelemetry built on PostgreSQL and TimescaleDB.
Promscale serves as a robust and 100% PromQL-compliant Prometheus remote storage and as a durable and scalable Jaeger storage backend.
Unlike other observability backends, it has a simple and easy-to-manage architecture with just two components: the Promscale Connector and the Promscale Database (PostgreSQL with the TimescaleDB and Promscale extensions).
Try it out now with our demo environment you can deploy on your laptop in five minutes with Docker.
git clone https://github.com/timescale/promscale.git cd promscale/docker-compose/promscale-demo docker compose up -d
Check our short demo guide to learn more.
Learn more about Promscale's architecture and how it works.
Promscale provides Prometheus users with:
A single-pane-of-glass across all Kubernetes clusters
Use Promscale as a centralized storage for all your Prometheus instances so you can easily query data across all of them in Grafana and centralize alert management and recording rules. Use multi-tenancy to control who has access to the data for a Kubernetes cluster.
Efficient long-term trend analysis
Use Promscale as a durable long-term storage for Prometheus metrics with a proven and rock-solid foundation based on PostgreSQL and TimescaleDB with millions of instances worldwide. With metric downsampling and per-metric retention you can keep just the data you need for your analysis for as long as you need. This allows you to cut down the costs associated with using the same retention for all data in Prometheus and dramatically improves query performance for long-term queries.
Key features: 100% PromQL-compliant, high availability, multi-tenancy, PromQL alerting and recording rules, downsampling, per-metric retention.
If you are already familiar with PostgreSQL, then Promscale is a great choice for your Prometheus remote storage. You can scale to millions of series and hundreds of thousands of samples per second on a single PostgreSQL node thanks to TimescaleDB.
To get started:
Promscale supports ingesting OpenTelemetry traces natively, and Jaeger and Zipkin traces via the OpenTelemetry Collector.
Promscale provides Jaeger and OpenTelemetry users with:
An easy-to-use durable and scalable storage backend for traces
Most users run Jaeger with the in memory or badger storage because the two options for a more durable storage (Elasticsearch and Cassandra) are difficult to set up and operate. Promscale uses a much simpler architecture based on PostgreSQL which many developers are comfortable with and scales to 100s of thousands of spans per second on a single database node.
Service performance analysis
Because Promscale can store both metrics and traces, you can use the new Service Performance Management feature in Jaeger with Promscale as the only storage backend for the entire experience. Promscale also includes a fully customizable, out-of-the-box, and modern Application Performance Management (APM) experience in Grafana built using SQL queries on traces.
Jaeger searching capabilities are limited to filtering individual traces. This is helpful when troubleshooting problems once you know what you are looking for. With Promscale you can use SQL to interrogate your trace data in any way you want and discover issues that would usally take you a long time to figure out by just looking at log lines, metric charts or individual traces. You can see some examples in our documentation and in this blog post
Key features: native OTLP support, high availability, SQL queries, APM capabilities, data compression, data retention
To get started:
Complete user documentation is available at https://docs.timescale.com/promscale/latest/
If you have any questions, please join the #promscale channel on TimescaleDB Slack.
This repository contains the source code of the Promscale Connector. Promscale also requires that the Promscale extension which lives in this repository is installed in the TimescaleDB/PostgreSQL database. The extension sets up and manages the database schemas and provides performance and SQL query experience improvements.
This repository also contains the source code for prom-migrator. Prom-migrator is an open-source, community-driven and free-to-use, universal prometheus data migration tool, that migrates data from one storage system to another, leveraging Prometheus's remote storage endpoints. For more information about prom-migrator, visit prom-migrator's README.
You may also want to check tobs which makes it very easy to deploy a complete observability stack built on Prometheus, OpenTelemetry and Promscale in Kubernetes via helm.
We welcome contributions to the Promscale Connector, which is licensed and released under the open-source Apache License, Version 2. The same Contributor's Agreement applies as in TimescaleDB; please sign the Contributor License Agreement (CLA) if you're a new contributor.
Release checklist is available when creating new "Release Checklist" issue.