Hendrik
09/05/2025, 2:01 PMMarvin
09/05/2025, 2:01 PMMarvin
09/05/2025, 2:01 PMmax_wal_sizemin_wal_sizeshared_buffersprimary:
    extendedConfiguration: |
      shared_buffers = '2GB'
      max_wal_size = '4GB'
      min_wal_size = '1GB'postgresqlExtendedConf:
    shared_buffers: '2GB'
    max_wal_size: '4GB'
    min_wal_size: '1GB'helm upgrade --install my-postgres bitnami/postgresql -n <namespace> -f values.yamlshared_buffersprimary.resources512MB2GBhelm show chart bitnami/postgresql | grep versionvalues.yamlHendrik
09/05/2025, 2:07 PMcommonAnnotations: {}
commonLabels: {}
fullnameOverride: prefect-server
ingress:
  annotations: {}
  className: ''
  enabled: false
  extraHosts: null
  extraPaths: null
  extraRules: null
  extraTls: null
  host:
    hostname: prefect.local
    path: /
    pathType: ImplementationSpecific
  selfSigned: false
  servicePort: server-svc-port
  tls: false
nameOverride: ''
namespaceOverride: ''
postgresql:
  auth:
    database: server
    enablePostgresUser: false
    password: mysecurepassword
    username: prefect-admin
  enabled: true
  image:
    tag: 14.3.0
  primary:
    initdb:
      user: postgres
    persistence:
      enabled: true
    postgresqlConfiguration:
      checkpoint_completion_target: '0.9'
      checkpoint_timeout: 15min
      max_wal_size: 4GB
      min_wal_size: 1GB
      shared_buffers: 512MB
      statement_timeout: 30min
secret:
  create: true
  database: ''
  host: ''
  name: ''
  password: ''
  port: ''
  username: ''
server:
  affinity: {}
  autoscaling:
    enabled: false
    maxReplicas: 100
    minReplicas: 1
    targetCPU: 80
    targetMemory: 80
  containerSecurityContext:
    allowPrivilegeEscalation: false
    capabilities: {}
    readOnlyRootFilesystem: true
    runAsNonRoot: true
    runAsUser: 1001
  debug: false
  env:
    - name: PREFECT_EVENTS_RETENTION_PERIOD
      value: 3d
  extraArgs: null
  extraContainers: null
  extraEnvVarsCM: ''
  extraEnvVarsSecret: ''
  extraVolumeMounts: null
  extraVolumes: null
  image:
    prefectTag: 3.0.10-python3.11-kubernetes
    pullPolicy: IfNotPresent
    pullSecrets:
      - gitlab-token-auth
    repository: prefecthq/prefect
  livenessProbe:
    config:
      failureThreshold: 3
      initialDelaySeconds: 10
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 5
    enabled: false
  loggingLevel: WARNING
  nodeSelector: {}
  podAnnotations: {}
  podLabels: {}
  podSecurityContext:
    fsGroup: 1001
    runAsNonRoot: true
    runAsUser: 1001
  prefectApiHost: 0.0.0.0
  prefectApiUrl: <http://localhost:4200/api>
  priorityClassName: ''
  readinessProbe:
    config:
      failureThreshold: 3
      initialDelaySeconds: 10
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 5
    enabled: false
  replicaCount: 1
  resources:
    limits:
      cpu: '1'
      memory: 1Gi
    requests:
      cpu: 500m
      memory: 512Mi
  revisionHistoryLimit: 10
  tolerations: null
  uiConfig:
    enabled: true
    prefectUiApiUrl: ''
    prefectUiStaticDirectory: /ui_build
    prefectUiUrl: ''
service:
  annotations: {}
  clusterIP: ''
  externalTrafficPolicy: Cluster
  extraPorts: []
  nodePort: ''
  port: 4200
  targetPort: 4200
  type: ClusterIP
serviceAccount:
  annotations: {}
  create: true
  name: prefect-server
global:
  cattle:
    systemProjectId: p-kmh5zMarvin
09/05/2025, 2:07 PMMarvin
09/05/2025, 2:08 PMpostgresqlprimary.postgresqlConfigurationprimary.extendedConfigurationpostgresqlExtendedConfpostgresql:
  enabled: true
  auth:
    enablePostgresUser: false
    username: prefect-admin
    password: mysecurepassword
    database: server
  image:
    tag: 14.3.0
  primary:
    initdb:
      user: postgres
    persistence:
      enabled: true
    # Postgres tunables
    extendedConfiguration: |
      checkpoint_completion_target = '0.9'
      checkpoint_timeout = '15min'
      max_wal_size = '4GB'
      min_wal_size = '1GB'
      shared_buffers = '512MB'
      statement_timeout = '30min'
    # Ensure memory resources are compatible with shared_buffers
    resources:
      requests:
        cpu: "250m"
        memory: "1Gi"
      limits:
        cpu: "1"
        memory: "2Gi"postgresql:
  enabled: true
  auth:
    enablePostgresUser: false
    username: prefect-admin
    password: mysecurepassword
    database: server
  image:
    tag: 14.3.0
  primary:
    initdb:
      user: postgres
    persistence:
      enabled: true
  # Postgres tunables
  postgresqlExtendedConf:
    checkpoint_completion_target: '0.9'
    checkpoint_timeout: '15min'
    max_wal_size: '4GB'
    min_wal_size: '1GB'
    shared_buffers: '512MB'
    statement_timeout: '30min'helm show valuesextendedConfigurationpostgresqlExtendedConf'4GB''15min'shared_bufferskubectl exec -n <ns> -it <postgres-pod> -- psql -U <user> -d <db> -c "show shared_buffers; show max_wal_size; show min_wal_size; show statement_timeout;"Hendrik
09/05/2025, 2:10 PMMarvin
09/05/2025, 2:10 PMMarvin
09/05/2025, 2:11 PMbitnami/postgresql:14.3.0postgresqlmax_wal_sizeprimary.extendedConfigurationpostgresqlExtendedConfpostgresql:
  enabled: true
  auth:
    enablePostgresUser: false
    username: prefect-admin
    password: mysecurepassword
    database: server
  image:
    tag: 14.3.0
  primary:
    initdb:
      user: postgres
    persistence:
      enabled: true
    extendedConfiguration: |
      checkpoint_completion_target = '0.9'
      checkpoint_timeout = '15min'
      max_wal_size = '4GB'
      min_wal_size = '1GB'
      shared_buffers = '512MB'
      statement_timeout = '30min'extendedConfigurationpostgresql:
  enabled: true
  auth:
    enablePostgresUser: false
    username: prefect-admin
    password: mysecurepassword
    database: server
  image:
    tag: 14.3.0
  postgresqlExtendedConf:
    checkpoint_completion_target: '0.9'
    checkpoint_timeout: '15min'
    max_wal_size: '4GB'
    min_wal_size: '1GB'
    shared_buffers: '512MB'
    statement_timeout: '30min'
  primary:
    initdb:
      user: postgres
    persistence:
      enabled: truehelm upgrade --install prefect-server prefecthq/prefect-server -n <ns> -f values.yamlkubectl exec -n <ns> -it <postgres-pod> -- psql -U prefect-admin -d server -c "show shared_buffers; show max_wal_size; show min_wal_size; show statement_timeout;"helm show values bitnami/postgresql | grep -n "extendedConfiguration\|postgresqlExtendedConf"helm get manifest <server-release> -n <ns> | grep -m1 "chart: postgresql-"postgresql.enabled: trueshared_bufferspostgresql.primary.resourcesHendrik
09/05/2025, 2:16 PMextendedConfiguration: |
      checkpoint_completion_target = '0.9'
      checkpoint_timeout = '15min'
      max_wal_size = '4GB'
      min_wal_size = '1GB'
      shared_buffers = '512MB'
      statement_timeout = '30min'Marvin
09/05/2025, 2:16 PMMarvin
09/05/2025, 2:16 PMprimary.extendedConfigurationkubectl exec -n <ns> -it <postgres-pod> -- psql -U prefect-admin -d server -c "
    SHOW shared_buffers;
    SHOW max_wal_size;
    SHOW min_wal_size;
    SHOW checkpoint_timeout;
    SHOW statement_timeout;"kubectl exec -n <ns> -it <postgres-pod> -- psql -U prefect-admin -d server -c "
    SELECT name, setting, unit, context, source FROM pg_settings
    WHERE name IN ('shared_buffers','max_wal_size','min_wal_size','checkpoint_timeout','statement_timeout')
    ORDER BY name;"shared_bufferspostgresql:
    primary:
      resources:
        requests:
          cpu: "250m"
          memory: "1Gi"
        limits:
          cpu: "1"
          memory: "2Gi"postgresql:
    primary:
      persistence:
        enabled: true
        size: 20Gi   # or larger based on your WAL/data needshelm upgrade --install prefect-server prefecthq/prefect-server -n <ns> \
    --set postgresql.primary.extendedConfiguration="shared_buffers = '512MB'\nmax_wal_size = '4GB'\nmin_wal_size = '1GB'"Hendrik
09/05/2025, 6:44 PM2025-09-05 17:17:39.517 GMT [30589] ERROR:  canceling statement due to user request
2025-09-05 17:17:39.517 GMT [30589] STATEMENT:  DELETE FROM events WHERE events.occurred < $1::TIMESTAMP WITH TIME ZONE
2025-09-05 17:32:49.604 GMT [33113] ERROR:  canceling statement due to user request
2025-09-05 17:32:49.604 GMT [33113] STATEMENT:  DELETE FROM events WHERE events.occurred < $1::TIMESTAMP WITH TIME ZONE
2025-09-05 17:47:59.706 GMT [35513] ERROR:  canceling statement due to user request
2025-09-05 17:47:59.706 GMT [35513] STATEMENT:  DELETE FROM events WHERE events.occurred < $1::TIMESTAMP WITH TIME ZONE
2025-09-05 18:03:09.787 GMT [38281] ERROR:  canceling statement due to user request
2025-09-05 18:03:09.787 GMT [38281] STATEMENT:  DELETE FROM events WHERE events.occurred < $1::TIMESTAMP WITH TIME ZONE
2025-09-05 18:18:19.868 GMT [40700] ERROR:  canceling statement due to user request
2025-09-05 18:18:19.868 GMT [40700] STATEMENT:  DELETE FROM events WHERE events.occurred < $1::TIMESTAMP WITH TIME ZONE
2025-09-05 18:33:29.948 GMT [43316] ERROR:  canceling statement due to user request
2025-09-05 18:33:29.948 GMT [43316] STATEMENT:  DELETE FROM events WHERE events.occurred < $1::TIMESTAMP WITH TIME ZONEMarvin
09/05/2025, 6:44 PMMarvin
09/05/2025, 6:51 PMeventsDELETE FROM events WHERE events.occurred < <retention_cutoff>ERROR:  canceling statement due to user requeststatement_timeoutCREATE INDEX IF NOT EXISTS idx_events_occurred ON events (occurred);VACUUM (VERBOSE, ANALYZE) events;export PREFECT_SERVER_DATABASE_TIMEOUT=60# example values – tune to your DB
  export PREFECT_SERVER_SERVICES_EVENT_PERSISTER_DELETE_BATCH_SIZE=2000prefect config view --show-defaultsserver.database.timeoutserver.services.event_persister.*server.events.*eventsHendrik
09/05/2025, 7:04 PMprefect config view --show-defaults<http://localhost:4200>
PREFECT_PROFILE='ephemeral'
PREFECT_API_BLOCKS_REGISTER_ON_START='True' (from defaults)
PREFECT_API_DATABASE_CONNECTION_TIMEOUT='5.0' (from defaults)
PREFECT_API_DATABASE_CONNECTION_URL='********' (from env)
PREFECT_API_DATABASE_DRIVER='None' (from defaults)
PREFECT_API_DATABASE_ECHO='False' (from defaults)
PREFECT_API_DATABASE_HOST='None' (from defaults)
PREFECT_API_DATABASE_MIGRATE_ON_START='True' (from defaults)
PREFECT_API_DATABASE_NAME='None' (from defaults)
PREFECT_API_DATABASE_PASSWORD='********' (from defaults)
PREFECT_API_DATABASE_PORT='None' (from defaults)
PREFECT_API_DATABASE_TIMEOUT='10.0' (from defaults)
PREFECT_API_DATABASE_USER='None' (from defaults)
PREFECT_API_DEFAULT_LIMIT='200' (from defaults)
PREFECT_API_ENABLE_HTTP2='False' (from defaults)
PREFECT_API_ENABLE_METRICS='False' (from defaults)
PREFECT_API_EVENTS_RELATED_RESOURCE_CACHE_TTL='0:05:00' (from defaults)
PREFECT_API_EVENTS_STREAM_OUT_ENABLED='True' (from defaults)
PREFECT_API_KEY='********' (from defaults)
PREFECT_API_LOG_RETRYABLE_ERRORS='False' (from defaults)
PREFECT_API_MAX_FLOW_RUN_GRAPH_ARTIFACTS='10000' (from defaults)
PREFECT_API_MAX_FLOW_RUN_GRAPH_NODES='10000' (from defaults)
PREFECT_API_REQUEST_TIMEOUT='60.0' (from defaults)
PREFECT_API_SERVICES_CANCELLATION_CLEANUP_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_CANCELLATION_CLEANUP_LOOP_SECONDS='20.0' (from defaults)
PREFECT_API_SERVICES_EVENT_PERSISTER_BATCH_SIZE='20' (from defaults)
PREFECT_API_SERVICES_EVENT_PERSISTER_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_EVENT_PERSISTER_FLUSH_INTERVAL='5.0' (from defaults)
PREFECT_API_SERVICES_FLOW_RUN_NOTIFICATIONS_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_FOREMAN_DEPLOYMENT_LAST_POLLED_TIMEOUT_SECONDS='60' (from defaults)
PREFECT_API_SERVICES_FOREMAN_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_FOREMAN_FALLBACK_HEARTBEAT_INTERVAL_SECONDS='30' (from defaults)
PREFECT_API_SERVICES_FOREMAN_INACTIVITY_HEARTBEAT_MULTIPLE='3' (from defaults)
PREFECT_API_SERVICES_FOREMAN_LOOP_SECONDS='15.0' (from defaults)
PREFECT_API_SERVICES_FOREMAN_WORK_QUEUE_LAST_POLLED_TIMEOUT_SECONDS='60' (from defaults)
PREFECT_API_SERVICES_LATE_RUNS_AFTER_SECONDS='0:00:15' (from defaults)
PREFECT_API_SERVICES_LATE_RUNS_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_LATE_RUNS_LOOP_SECONDS='5.0' (from defaults)
PREFECT_API_SERVICES_PAUSE_EXPIRATIONS_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_PAUSE_EXPIRATIONS_LOOP_SECONDS='5.0' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_DEPLOYMENT_BATCH_SIZE='100' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_INSERT_BATCH_SIZE='500' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_LOOP_SECONDS='60.0' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_MAX_RUNS='100' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_MAX_SCHEDULED_TIME='100 days, 0:00:00' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_MIN_RUNS='3' (from defaults)
PREFECT_API_SERVICES_SCHEDULER_MIN_SCHEDULED_TIME='1:00:00' (from defaults)
PREFECT_API_SERVICES_TASK_RUN_RECORDER_ENABLED='True' (from defaults)
PREFECT_API_SERVICES_TRIGGERS_ENABLED='True' (from defaults)
PREFECT_API_SSL_CERT_FILE='None' (from defaults)
PREFECT_API_TASK_CACHE_KEY_MAX_LENGTH='2000' (from defaults)
PREFECT_API_TLS_INSECURE_SKIP_VERIFY='False' (from defaults)
PREFECT_API_URL='<http://localhost:4200/api>' (from env)
PREFECT_ASYNC_FETCH_STATE_RESULT='False' (from defaults)
PREFECT_CLIENT_CSRF_SUPPORT_ENABLED='True' (from defaults)
PREFECT_CLIENT_ENABLE_METRICS='False' (from defaults)
PREFECT_CLIENT_MAX_RETRIES='5' (from defaults)
PREFECT_CLIENT_METRICS_PORT='4201' (from defaults)
PREFECT_CLIENT_RETRY_EXTRA_CODES='set()' (from defaults)
PREFECT_CLIENT_RETRY_JITTER_FACTOR='0.2' (from defaults)
PREFECT_CLI_COLORS='True' (from defaults)
PREFECT_CLI_PROMPT='None' (from defaults)
PREFECT_CLI_WRAP_LINES='True' (from defaults)
PREFECT_CLOUD_API_URL='<https://api.prefect.cloud/api>' (from defaults)
PREFECT_CLOUD_UI_URL='<https://app.prefect.cloud>' (from defaults)
PREFECT_DEBUG_MODE='false' (from env)
PREFECT_DEFAULT_DOCKER_BUILD_NAMESPACE='None' (from defaults)
PREFECT_DEFAULT_RESULT_STORAGE_BLOCK='None' (from defaults)
PREFECT_DEFAULT_WORK_POOL_NAME='None' (from defaults)
PREFECT_DEPLOYMENT_CONCURRENCY_SLOT_WAIT_SECONDS='30.0' (from defaults)
PREFECT_DEPLOYMENT_SCHEDULE_MAX_SCHEDULED_RUNS='50' (from defaults)
PREFECT_EVENTS_EXPIRED_BUCKET_BUFFER='0:01:00' (from defaults)
PREFECT_EVENTS_MAXIMUM_LABELS_PER_RESOURCE='500' (from defaults)
PREFECT_EVENTS_MAXIMUM_RELATED_RESOURCES='500' (from defaults)
PREFECT_EVENTS_MAXIMUM_SIZE_BYTES='1500000' (from defaults)
PREFECT_EVENTS_MAXIMUM_WEBSOCKET_BACKFILL='0:15:00' (from defaults)
PREFECT_EVENTS_PROACTIVE_GRANULARITY='0:00:05' (from defaults)
PREFECT_EVENTS_RETENTION_PERIOD='3d' (from env)
PREFECT_EVENTS_WEBSOCKET_BACKFILL_PAGE_SIZE='250' (from defaults)
PREFECT_EXPERIMENTAL_ENABLE_SCHEDULE_CONCURRENCY='False' (from defaults)
PREFECT_EXPERIMENTAL_WARN='True' (from defaults)
PREFECT_FLOW_DEFAULT_RETRIES='0' (from defaults)
PREFECT_FLOW_DEFAULT_RETRY_DELAY_SECONDS='0' (from defaults)
PREFECT_HOME='/home/prefect/.prefect' (from defaults)
PREFECT_LOCAL_STORAGE_PATH='/home/prefect/.prefect/storage' (from defaults)
PREFECT_LOGGING_COLORS='True' (from defaults)
PREFECT_LOGGING_EXTRA_LOGGERS='[]' (from defaults)
PREFECT_LOGGING_INTERNAL_LEVEL='ERROR' (from defaults)
PREFECT_LOGGING_LEVEL='INFO' (from defaults)
PREFECT_LOGGING_LOG_PRINTS='False' (from defaults)
PREFECT_LOGGING_MARKUP='False' (from defaults)
PREFECT_LOGGING_SERVER_LEVEL='WARNING' (from env)
PREFECT_LOGGING_SETTINGS_PATH='/home/prefect/.prefect/logging.yml' (from defaults)
PREFECT_LOGGING_TO_API_BATCH_INTERVAL='2.0' (from defaults)
PREFECT_LOGGING_TO_API_BATCH_SIZE='4000000' (from defaults)
PREFECT_LOGGING_TO_API_ENABLED='True' (from defaults)
PREFECT_LOGGING_TO_API_MAX_LOG_SIZE='1000000' (from defaults)
PREFECT_LOGGING_TO_API_WHEN_MISSING_FLOW='warn' (from defaults)
PREFECT_MEMOIZE_BLOCK_AUTO_REGISTRATION='True' (from defaults)
PREFECT_MEMO_STORE_PATH='/home/prefect/.prefect/memo_store.toml' (from defaults)
PREFECT_MESSAGING_BROKER='prefect.server.utilities.messaging.memory' (from defaults)
PREFECT_MESSAGING_CACHE='prefect.server.utilities.messaging.memory' (from defaults)
PREFECT_PROFILES_PATH='/home/prefect/.prefect/profiles.toml' (from defaults)
PREFECT_RESULTS_DEFAULT_SERIALIZER='pickle' (from defaults)
PREFECT_RESULTS_PERSIST_BY_DEFAULT='False' (from defaults)
PREFECT_RUNNER_POLL_FREQUENCY='10' (from defaults)
PREFECT_RUNNER_PROCESS_LIMIT='5' (from defaults)
PREFECT_RUNNER_SERVER_ENABLE='False' (from defaults)
PREFECT_RUNNER_SERVER_HOST='localhost' (from defaults)
PREFECT_RUNNER_SERVER_LOG_LEVEL='ERROR' (from defaults)
PREFECT_RUNNER_SERVER_MISSED_POLLS_TOLERANCE='2' (from defaults)
PREFECT_RUNNER_SERVER_PORT='8080' (from defaults)
PREFECT_SERVER_ALLOW_EPHEMERAL_MODE='true' (from profile)
PREFECT_SERVER_ANALYTICS_ENABLED='True' (from defaults)
PREFECT_SERVER_API_HOST='0.0.0.0' (from env)
PREFECT_SERVER_API_KEEPALIVE_TIMEOUT='5' (from defaults)
PREFECT_SERVER_API_PORT='4200' (from env)
PREFECT_SERVER_CORS_ALLOWED_HEADERS='*' (from defaults)
PREFECT_SERVER_CORS_ALLOWED_METHODS='*' (from defaults)
PREFECT_SERVER_CORS_ALLOWED_ORIGINS='*' (from defaults)
PREFECT_SERVER_CSRF_PROTECTION_ENABLED='False' (from defaults)
PREFECT_SERVER_CSRF_TOKEN_EXPIRATION='1:00:00' (from defaults)
PREFECT_SERVER_EPHEMERAL_STARTUP_TIMEOUT_SECONDS='10' (from defaults)
PREFECT_SILENCE_API_URL_MISCONFIGURATION='False' (from defaults)
PREFECT_SQLALCHEMY_MAX_OVERFLOW='None' (from defaults)
PREFECT_SQLALCHEMY_POOL_SIZE='None' (from defaults)
PREFECT_TASKS_REFRESH_CACHE='False' (from defaults)
PREFECT_TASK_DEFAULT_RETRIES='0' (from defaults)
PREFECT_TASK_DEFAULT_RETRY_DELAY_SECONDS='0' (from defaults)
PREFECT_TASK_RUN_TAG_CONCURRENCY_SLOT_WAIT_SECONDS='30' (from defaults)
PREFECT_TASK_SCHEDULING_DEFAULT_STORAGE_BLOCK='None' (from defaults)
PREFECT_TASK_SCHEDULING_DELETE_FAILED_SUBMISSIONS='True' (from defaults)
PREFECT_TASK_SCHEDULING_MAX_RETRY_QUEUE_SIZE='100' (from defaults)
PREFECT_TASK_SCHEDULING_MAX_SCHEDULED_QUEUE_SIZE='1000' (from defaults)
PREFECT_TASK_SCHEDULING_PENDING_TASK_TIMEOUT='0:00:00' (from defaults)
PREFECT_TEST_MODE='False' (from defaults)
PREFECT_TEST_SETTING='FOO' (from defaults)
...Marvin
09/05/2025, 7:04 PMprefect config view --show-defaultsMarvin
09/05/2025, 7:04 PMMarvin
09/05/2025, 7:04 PMMarvin
09/05/2025, 7:05 PMMarvin
09/05/2025, 7:06 PMPREFECT_EVENTS_RETENTION_PERIOD='3d'events.occurred < now() - 3 daysPREFECT_API_DATABASE_TIMEOUT='10.0'ERROR:  canceling statement due to user requeststatement_timeout# try 60–120s depending on your DB
  export PREFECT_API_DATABASE_TIMEOUT=60
  # then restart your Prefect ServerCREATE INDEX IF NOT EXISTS idx_events_occurred ON events (occurred);VACUUM (VERBOSE, ANALYZE) events;-- repeat until no rows remain
    DELETE FROM events
    WHERE id IN (
      SELECT id
      FROM events
      WHERE occurred < now() - interval '3 days'
      LIMIT 5000
    );
    VACUUM (ANALYZE) events;PREFECT_API_SERVICES_EVENT_PERSISTER_*statement_timeoutHendrik
09/05/2025, 7:10 PMMarvin
09/05/2025, 7:10 PMMarvin
09/05/2025, 7:12 PMkubectl -n <namespace> get deploy | grep apikubectl -n <namespace> set env deploy/<api-deployment> PREFECT_API_DATABASE_TIMEOUT=60
# you already have 3d, but here for completeness:
kubectl -n <namespace> set env deploy/<api-deployment> PREFECT_EVENTS_RETENTION_PERIOD=3dkubectl -n <namespace> rollout status deploy/<api-deployment>server.api.envserver.api.extraEnvhelm show values prefect/prefect-server | lessserver:
  api:
    env:
      - name: PREFECT_API_DATABASE_TIMEOUT
        value: "60"
      - name: PREFECT_EVENTS_RETENTION_PERIOD
        value: "3d"helm upgrade <release-name> prefect/prefect-server -n <namespace> -f values.yamlCREATE INDEX IF NOT EXISTS idx_events_occurred ON events (occurred);
VACUUM (VERBOSE, ANALYZE) events;PREFECT_EVENTS_RETENTION_PERIOD='3d'PREFECT_API_DATABASE_TIMEOUT='10.0'PREFECT_API_DATABASE_TIMEOUT