about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--bundles/immich/files/kube.yaml43
-rw-r--r--bundles/immich/metadata.py17
2 files changed, 42 insertions, 18 deletions
diff --git a/bundles/immich/files/kube.yaml b/bundles/immich/files/kube.yaml
index 18f5cf6..12b7c3b 100644
--- a/bundles/immich/files/kube.yaml
+++ b/bundles/immich/files/kube.yaml
@@ -11,13 +11,19 @@ metadata:
     traefik.http.routers.immich.service: immich
     traefik.http.services.immich.loadbalancer.server.port: 2283
 
-    # TODO: https://immich.app/docs/features/monitoring
-    #       https://github.com/immich-app/immich/blob/v1.121.0/docker/prometheus.yml
-    #
     # metrics
-    # traefik.http.routers.immich-metrics.entrypoints: metrics
-    # traefik.http.routers.immich-metrics.rule: Path(`/metrics/immich`)
-    # traefik.http.routers.immich-metrics.middlewares: replacepath-metrics
+    # https://immich.app/docs/features/monitoring
+    # https://github.com/immich-app/immich/blob/v1.121.0/docker/prometheus.yml
+    traefik.http.services.immich-api-metrics.loadbalancer.server.port: 8081
+    traefik.http.services.immich-svc-metrics.loadbalancer.server.port: 8082
+    traefik.http.routers.immich-api-metrics.entrypoints: metrics
+    traefik.http.routers.immich-api-metrics.rule: Path(`/metrics/immich-api`)
+    traefik.http.routers.immich-api-metrics.middlewares: replacepath-metrics@file
+    traefik.http.routers.immich-api-metrics.service: immich-api-metrics
+    traefik.http.routers.immich-svc-metrics.entrypoints: metrics
+    traefik.http.routers.immich-svc-metrics.rule: Path(`/metrics/immich-svc`)
+    traefik.http.routers.immich-svc-metrics.middlewares: replacepath-metrics@file
+    traefik.http.routers.immich-svc-metrics.service: immich-svc-metrics
 spec:
   restartPolicy: Always
   dnsPolicy: Default
@@ -30,11 +36,23 @@ spec:
       env:
         - name: IMMICH_CONFIG_FILE
           value: /immich.yaml
+        - name: IMMICH_TELEMETRY_INCLUDE
+          value: all
       ports:
         - containerPort: 2283
           protocol: TCP
-          # NOTE: required to make tv app work
+          # NOTE: hostPort is required to make local net broadcasting work
           hostPort: 2283
+        # api metrics
+        - containerPort: 8081
+          protocol: TCP
+        # microservice metrics
+        - containerPort: 8082
+          protocol: TCP
+      livenessProbe:
+        httpGet:
+          path: /api/server/ping
+          port: 2283
       volumeMounts:
         - name: config
           mountPath: /immich.yaml
@@ -48,13 +66,14 @@ spec:
           podman.io/device=/dev/dri/card0: 1
           podman.io/device=/dev/dri/renderD128: 1
         limits:
-          #cpu: 300m
-          #memory: 512Mi
+          memory: 512Mi
+
     - name: redis
       image: docker.io/redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8
       livenessProbe:
         exec:
           command: ["sh", "-c", "redis-cli ping || exit 1"]
+
     - name: postgres
       image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
       envFrom:
@@ -68,11 +87,7 @@ spec:
           mountPath: /var/lib/postgresql/data
       livenessProbe:
         exec:
-          command:
-            - /bin/sh
-            - -c
-            - pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1
-            # ; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
+          command: ["pg_isready", "--dbname='$DB_DATABASE_NAME'", "--username='$DB_USERNAME'"]
       command:
         - docker-entrypoint.sh
         - -c
diff --git a/bundles/immich/metadata.py b/bundles/immich/metadata.py
index 30b9eb3..7bb5d0b 100644
--- a/bundles/immich/metadata.py
+++ b/bundles/immich/metadata.py
@@ -6,14 +6,23 @@ defaults = {
             "/var/lib/immich/app/profile",
             "/var/lib/immich/app/upload",
             # "/media/hayasui/media/pictures",
-        }
+        },
+        "excludes": {
+            "/var/lib/immich/app/encoded-video",
+            "/var/lib/immich/app/thumbs",
+        },
     },
     "containers": {
         "immich": {
             "version": "2.4.1",
         },
     },
-    # "metrics": {
-    #     "immich": {},
-    # },
+    "metrics": {
+        "immich-api": {},
+        "immich-svc": {},
+    },
+    "go": {
+        "immich": "https://photos.gzr.im",
+        "photos": "https://photos.gzr.im",
+    },
 }