Назад | Перейти на главную страницу

Графана с postgresql на Google App Engine Flex

Привет, я пытаюсь развернуть контейнер докеров Grafana в гибком движке Google App. Grafana будет использовать postgresql (cloud sql) в качестве внутренней базы данных.

В настоящее время я использую этот Dockefile:

FROM grafana/grafana:latest
ENV GF_SERVER_HTTP_PORT 8080
ENV GF_DATABASE_URL postgres://postgres:passwd@127.0.0.1:5432/grafana
ENV GF_DATABASE_TYPE postgres
EXPOSE 8080

и этот app.yaml:

runtime: custom
env: flex
service: grafana
beta_settings:
  cloud_sql_instances: miproj:europe-west1:midb=tcp:5432

Я также активировал Cloud SQL Admin API

После выполнения

gcloud app deploy

однако я получаю

 msg="Server shutdown" logger=server reason="Service init failed: Migration failed err: dial tcp 127.0.0.1:5432: connect: connection refused"

Я тоже пробовал

cloud_sql_instances: miproj:europe-west1:midb

и

ENV GF_DATABASE_URL postgres://postgres:passwd@/cloudsql/miproj:europe-west1:midb:5432/grafana

но я получаю

t=2019-05-09T10:12:56+0000 lvl=eror msg="Server shutdown" logger=server reason="Service init failed: Migration failed err: dial tcp: lookup port=5432: no such host"

но я думаю, что это может быть больше проблема того, как grafana анализирует цепочку соединений, в которой есть ":" в середине имени хоста.

Есть идеи, что я делаю не так?

Есть 2 варианта подключения к Postgresql из App Engine. Вы можете подключиться через TCP или через сокеты Unix. App Engine сгибать поддерживает оба, стандарт поддерживает только розетки. Когда я смотрю на ваш app.yaml, похоже, что вы уже настроили правильное имя соединения для TCP-соединения.

С другой стороны, строка подключения, которую вы используете в качестве переменной среды, кажется неправильной. Измените это:

postgres://postgres:passwd@/cloudsql/miproj:europe-west1:midb:5432/grafana

Кому:

postgres://postgres:passwd@172.17.0.1:5432/grafana

Docker использует 172.17.0.1 в качестве адреса обратной связи вместо 127.0.0.1! Подробный обзор можно найти в Google Cloudql doc.