friendlyFriend4000 / prometheus-immich-exporter

A prometheus exporter for immich written in Python. Docker image
https://github.com/immich-app/immich#demo
GNU General Public License v3.0
19 stars 9 forks source link

Not working with Immich v1.109.2 - KeyError: 'diskAvailableRaw' #15

Closed daedric7 closed 2 months ago

daedric7 commented 3 months ago

Crashes on start as soon as it can reach Immich. Logs (trimmed for brevity):

prometheus-immich-exporter-1  | {"asctime": "2024-07-22 20:29:20", "levelname": "ERROR", "message": "CONNECTION ERROR. Cannot reach immich at immich-server:3001. Is immich up and running?", "taskName": null}
immich_server                 | [Nest] 16  - 07/22/2024, 8:29:21 PM     LOG [Api:EventRepository] Initialized websocket server
immich_server                 | [Nest] 16  - 07/22/2024, 8:29:21 PM     LOG [Api:SystemConfigService] LogLevel=log (set via system config)
immich_server                 | [Nest] 16  - 07/22/2024, 8:29:21 PM     LOG [Api:ServerService] Feature Flags: {
...
immich_server                 | [Nest] 16  - 07/22/2024, 8:29:21 PM     LOG [Api:NestApplication] Nest application successfully started
immich_server                 | [Nest] 16  - 07/22/2024, 8:29:21 PM     LOG [Api:Bootstrap] Immich Server is listening on http://[::1]:3001 [v1.109.2] [PRODUCTION]
prometheus-immich-exporter-1  | {"asctime": "2024-07-22 20:29:21", "levelname": "INFO", "message": "Found immich up and running at immich-server:3001.", "taskName": null}
prometheus-immich-exporter-1  | {"asctime": "2024-07-22 20:29:21", "levelname": "INFO", "message": "Attempting to connect to immich", "taskName": null}
prometheus-immich-exporter-1  | {"asctime": "2024-07-22 20:29:22", "levelname": "INFO", "message": "Exporter 1.2.1", "taskName": null}
prometheus-immich-exporter-1  | {"asctime": "2024-07-22 20:29:22", "levelname": "INFO", "message": "Success.", "taskName": null}
prometheus-immich-exporter-1  | {"asctime": "2024-07-22 20:29:22", "levelname": "INFO", "message": "Requested the metrics", "taskName": null}
prometheus-immich-exporter-1  | Traceback (most recent call last):
prometheus-immich-exporter-1  |   File "/usr/bin/immich_exporter", line 8, in <module>
prometheus-immich-exporter-1  |     sys.exit(main())
prometheus-immich-exporter-1  |              ^^^^^^
prometheus-immich-exporter-1  |   File "/usr/lib/python3.12/site-packages/immich_exporter/exporter.py", line 388, in main
prometheus-immich-exporter-1  |     REGISTRY.register(ImmichMetricsCollector(config))
prometheus-immich-exporter-1  |   File "/usr/lib/python3.12/site-packages/prometheus_client/registry.py", line 40, in register
prometheus-immich-exporter-1  |     names = self._get_names(collector)
prometheus-immich-exporter-1  |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
prometheus-immich-exporter-1  |   File "/usr/lib/python3.12/site-packages/prometheus_client/registry.py", line 80, in _get_names
prometheus-immich-exporter-1  |     for metric in desc_func():
prometheus-immich-exporter-1  |   File "/usr/lib/python3.12/site-packages/immich_exporter/exporter.py", line 38, in collect
prometheus-immich-exporter-1  |     metrics = self.get_immich_metrics()
prometheus-immich-exporter-1  |               ^^^^^^^^^^^^^^^^^^^^^^^^^
prometheus-immich-exporter-1  |   File "/usr/lib/python3.12/site-packages/immich_exporter/exporter.py", line 58, in get_immich_metrics
prometheus-immich-exporter-1  |     metrics.extend(self.get_immich_storage())
prometheus-immich-exporter-1  |                    ^^^^^^^^^^^^^^^^^^^^^^^^^
prometheus-immich-exporter-1  |   File "/usr/lib/python3.12/site-packages/immich_exporter/exporter.py", line 145, in get_immich_storage
prometheus-immich-exporter-1  |     "value": (response_storage["diskAvailableRaw"]),
prometheus-immich-exporter-1  |               ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
prometheus-immich-exporter-1  | KeyError: 'diskAvailableRaw'
prometheus-immich-exporter-1 exited with code 1
friendlyFriend4000 commented 2 months ago

I am going to look at it over the weekend.

friendlyFriend4000 commented 2 months ago

it works on my machine - can you double check your system?