You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by je...@apache.org on 2021/10/14 22:15:08 UTC
[airflow] 03/10: Add information about keepalives for managed
Postgres (#18850)
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v2-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 85ec578d33ec7be29f3c42ada85232267a684358
Author: Jarek Potiuk <ja...@potiuk.com>
AuthorDate: Tue Oct 12 22:54:51 2021 +0200
Add information about keepalives for managed Postgres (#18850)
The managed Postgres DBs often kill the connection after
some time of inactivity, so if you are using Airflow with those
you need to configure keepalives.
This PR adds description on how to do it. See #18846
(cherry picked from commit f22c834434fa7b15372558ea92b588b345fa2620)
---
docs/apache-airflow/howto/set-up-database.rst | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/docs/apache-airflow/howto/set-up-database.rst b/docs/apache-airflow/howto/set-up-database.rst
index a23e4bc..932f15a 100644
--- a/docs/apache-airflow/howto/set-up-database.rst
+++ b/docs/apache-airflow/howto/set-up-database.rst
@@ -245,10 +245,35 @@ For more information regarding setup of the PostgresSQL connection, see `Postgre
See also :ref:`Helm Chart production guide <production-guide:pgbouncer>`
+
+.. note::
+
+ For managed Postgres such as Redshift, Azure Postgresql, CloudSQL, Amazon RDS, you should use
+ ``keepalives_idle`` in the connection parameters and set it to less than the idle time because those
+ services will close idle connections after some time of inactivity (typically 300 seconds),
+ which results with error ``The error: psycopg2.operationalerror: SSL SYSCALL error: EOF detected``.
+ The ``keepalive`` settings can be changed via ``sql_alchemy_connect_args`` configuration parameter
+ :doc:`../configurations-ref` in ``[core]`` section. You can configure the args for example in your
+ local_settings.py and the ``sql_alchemy_connect_args`` should be a full import path to the dictionary
+ that stores the configuration parameters. You can read about
+ `Postgres Keepalives <https://www.postgresql.org/docs/current/libpq-connect.html>`_.
+ An example setup for ``keepalives`` that has been observe to fix the problem might be:
+
+ .. code-block:: python
+
+ keepalive_kwargs = {
+ "keepalives": 1,
+ "keepalives_idle": 30,
+ "keepalives_interval": 5,
+ "keepalives_count": 5,
+ }
+
+
.. spelling::
hba
+
Setting up a MsSQL Database
---------------------------