From acfdea1185cae7f26014ba8114f03bd6d7838bff Mon Sep 17 00:00:00 2001 From: Bladesheng Date: Sun, 5 Nov 2023 13:37:36 +0100 Subject: [PATCH] add grafana loki logging --- .example.env | 4 ++++ README.md | 2 ++ docker-compose-dev.yml | 20 ++++++++++++++++++++ docker-compose.yml | 20 ++++++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/.example.env b/.example.env index f016798..c658dd0 100644 --- a/.example.env +++ b/.example.env @@ -12,3 +12,7 @@ VAPID_PRIVATE_KEY="privateKey" # https://github.com/Bladesheng/weather-station-db-backup3/blob/main/.example.env GDRIVE_FOLDER_ID="xxx" + +# get this from grafana Home > Connections > Add new connection > Hosted logs +# https://grafana.com/docs/loki/latest/send-data/docker-driver/configuration/ +LOKI_URL="https://123456:password=@xxx.grafana.net/api/prom/push" diff --git a/README.md b/README.md index e36deb9..0c9649d 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,8 @@ The production docker-compose just glues all the images together, so that the on - Clone the repo, then create `.env` file - see [`.env.example`](https://github.com/Bladesheng/weather-station-backend/blob/main/.env.example) +- Install [Grafana Loki Docker driver client](https://grafana.com/docs/loki/latest/send-data/docker-driver/) for logs storage + - Get Google service account JSON key and place it in the same folder as docker-compose - same as [here](https://github.com/weather-blade/weather-db-backup) - Install packages: diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index 0120161..fe1f38f 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -2,6 +2,10 @@ services: redis: image: redis:7.2.2-bookworm restart: unless-stopped + logging: + driver: loki + options: + loki-url: ${LOKI_URL} db: image: postgres:15.2 @@ -12,6 +16,10 @@ services: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} + logging: + driver: loki + options: + loki-url: ${LOKI_URL} db-backup: # https://github.com/weather-blade/weather-db-backup @@ -24,6 +32,10 @@ services: GDRIVE_FOLDER_ID: ${GDRIVE_FOLDER_ID} volumes: - ./SA_key.json:/app/SA_key.json:ro + logging: + driver: loki + options: + loki-url: ${LOKI_URL} notifications: # https://github.com/weather-blade/weather-notifications @@ -35,6 +47,10 @@ services: DATABASE_URL: ${DATABASE_URL} VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY} VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY} + logging: + driver: loki + options: + loki-url: ${LOKI_URL} server: build: . @@ -54,6 +70,10 @@ services: DATABASE_URL: ${DATABASE_URL} VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY} VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY} + logging: + driver: loki + options: + loki-url: ${LOKI_URL} volumes: db-data: diff --git a/docker-compose.yml b/docker-compose.yml index 6d779cb..b744cdb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,6 +2,10 @@ services: redis: image: redis:7.2.2-bookworm restart: unless-stopped + logging: + driver: loki + options: + loki-url: ${LOKI_URL} db: image: postgres:15.2 @@ -12,6 +16,10 @@ services: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} + logging: + driver: loki + options: + loki-url: ${LOKI_URL} db-backup: # https://github.com/weather-blade/weather-db-backup @@ -24,6 +32,10 @@ services: GDRIVE_FOLDER_ID: ${GDRIVE_FOLDER_ID} volumes: - ./SA_key.json:/app/SA_key.json:ro + logging: + driver: loki + options: + loki-url: ${LOKI_URL} notifications: # https://github.com/weather-blade/weather-notifications @@ -35,6 +47,10 @@ services: DATABASE_URL: ${DATABASE_URL} VAPID_PRIVATE_KEY: ${VAPID_PRIVATE_KEY} VAPID_PUBLIC_KEY: ${VAPID_PUBLIC_KEY} + logging: + driver: loki + options: + loki-url: ${LOKI_URL} server: image: ghcr.io/weather-blade/weather-server:latest @@ -56,6 +72,10 @@ services: networks: - 'nginx_proxy_net' - 'default' + logging: + driver: loki + options: + loki-url: ${LOKI_URL} volumes: db-data: