Home

Awesome

Warning

Promscale has been discontinued and is deprecated.

The code in this repository is no longer maintained.

Learn more.

Promscale

Go reviewdog - golangci Go Report Card Code Climate GoDoc

<img alt="Promscale" src="docs/assets/promscale-logo.png" width="600px">

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. Promscale is a certified 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).

Quick Start

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

Explore your metrics and traces in Grafana (http://localhost:3000, username: admin, password: admin) and Jaeger (http://localhost:16686).

Check our short demo guide to learn more.

Key Features

Architecture

Learn more about Promscale's architecture and how it works.

<img src="docs/assets/promscale-arch.png" alt="Promscale Architecture Diagram" width="800"/>

Promscale for Prometheus

Promscale provides Prometheus users with:

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:

  1. Install Promscale.
  2. Configure Prometheus to send data to Promscale.
  3. Configure Grafana to query and visualize metrics from Promscale using a PromQL and/or a PostgreSQL datasource.

Promscale for Jaeger and OpenTelemetry

Promscale supports ingesting Jaeger and OpenTelemetry traces via the Jaeger Collector and the OpenTelemetry Collector. OpenTelemetry traces can also be sent directly from OpenTelemetry client libraries via the OpenTelemetry Protocol (OTLP). Promscale is a certified Jaeger storage that passess 100% of the compliance tests.

Promscale provides Jaeger and OpenTelemetry users with:

Key features: native OTLP support, high availability, SQL queries, APM capabilities, data compression, data retention

Try it out by installing our lightweight opentelemetry-demo with a single command. Check this blog post for more details.

To get started:

  1. Install Promscale.
  2. Send traces to Promscale in Jaeger, OpenTelemetry, or Zipkin format
  3. Configure Jaeger to query and visualize traces from Promscale.

Also consider:

  1. Configure Grafana to query and visualize traces from Promscale using a Jaeger and a PostgreSQL datasource.
  2. Install the APM dashboards in Grafana.

Documentation and Help

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.

Promscale Repositories

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.

Contributing

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

Release checklist is available when creating new "Release Checklist" issue.