Connection Limit Guidance

Many of our customers have recently asked about our connection limit settings on our new Heroku Postgres tiers. Previously we allowed for 500 connections across all production databases, however now there is some variance in the number of connections allowed with only the larger plans offering 500. In individual conversations with customers we’ve detailed the reasoning behind this, and feel its worth sharing this more broadly here now.

Read more →

Welcome to the Community

At Heroku we have long considered PostgreSQL to be a powerful and reliable open-source database for keeping data safe and accessible for serious applications with demanding workflows and use cases.

Over the years we’ve invested heavily in continuing to improve it, whether it’s by employing Postgres major contibutors, employing driver maintainers, funding core development, or being part of language communites such as Ruby and Python to help spread the good news that is Postgres. It’s that interaction with the developer and database communities that help us inform and influence the future of Postgres.

This work over the years has continued to advance Postgres to be a better database for all and even expand it beyond its relational roots. It's been a great database for us to build our offering on and has enabled us to continue to add further value such as our new operational expertise that's built right in or dataclips. It’s both this great database as well as the additional value that’s allowed us to see the great growth we’ve seen today, now running a fleet of over 750,000 Postgres databases.

All PostgreSQL users, hackers and service providers reap the benefits of any and all improvements to the project. It’s with that in mind that we welcome Amazon to this community and look forward to their contributions and collaboration to help further the PostgreSQL project.

Introducing Heroku Postgres 2.0

Today we're excited to announce an evolution of what it means to be a database as a service provider. Along with new features such as the ability to roll back your database to an arbitrary point in time and high availability, we now provide an entirely new level of operational expertise that's built right in. This new level of service allows you to feel at ease while taking advantage of your database in ways you never expected. All of this is rolled into new tiers which make it as easy as ever to choose what’s right for you.

We are introducing Heroku Postgres 2.0 today, the result of these improvements. Let's dig in a little further on what's available today.

Read more →

PostgreSQL 9.3 now GA on Heroku Postgres

Several weeks ago we added support for Postgres 9.3 in public beta the day it was released to the community. We've had many customers use it so far and it has proven to be robust and reliable. Early adopters have started to take advantage of the great new features in this version including:

Today we're excited to release Postgres 9.3 in General Availability and setting it as the default version when provisioning a new Heroku Postgres database. Defaulting to the latest version of Postgres ensures our customers can make use of the latest features and performance improvements available.

If you haven’t upgraded to take advantage all the great new functionality yet then do so today and let us know how you’re using it at postgres@heroku.com.

Monitoring your Heroku Postgres Database

There are two axes of database monitoring. One axis is immediate insight. You can see what is happening right now, getting just-in-time visibility to solve problems and observe production behavior as it happens. The other axis is historical monitoring. This provides long-term persistence and reporting on the most important metrics over time, helping you make better decisions and understand trends.

With Heroku Postgres, you can get immediate insight with the pg-extras CLI plugin. Furthermore, we provide key metrics about your database right in your logs already for all applications.

For storage and reporting of your most important metrics, you can quickly set up rich historical reporting with Librato, which is available in our Add-ons marketplace. In this post, we walk through how to get started with Heroku Postgres monitoring for immediate visibility and long-term insight.

A healthy value for your cache hit will be as close to 100% as possible

It Starts with Logs

Heroku automatically collates and routes logs from every part of your app into a single channel, providing truly comprehensive, extensible, app-centric logging. With production Postgres databases on Heroku, robust logs and key metrics from your persistence level are routed directly into this stream. Key data including table-cache-hit, db_size, active-connections and more, outputting directly into your Heroku logs periodically. You can get immediate visibility into this stream by combining tail with a filter argument:

$ heroku logs --tail --ps heroku-postgres

Even better than viewing these logs manually is you can configure a log drain to be able to send your logs elsewhere. Fortunately when taking advantage of some of our add-ons they can automatically consume these logs without having to configure anything else.

Getting started with Librato

Librato is one such add-on that consumes your Heroku logs and gives you the ability to monitor on historical trends and set up alerts. You can get started with it right away by provisioning the add-on:

$ heroku addons:add librato

Librato will now be automatically consuming data from your Heroku logs and you can simply open it up to get immediate visibility into your Heroku Postgres cache hit, database connections, and insight around request queueing. If you have log runtime metrics already enabled on your application then you’ll see those insights as well.

Going further

While the initial dashboard is already helpful, you can gain additional insights by adding your own instruments to your dashboard. And if you need data thats not already available in your Heroku log stream you can add custom data yourself.

Browse the blog archives, subscribe to the full-text feed, or visit the engineering blog.