phsmith / rundeck_exporter

Rundeck Metrics Exporter
GNU General Public License v3.0
58 stars 25 forks source link

Issue : cannot access local variable 'project_executions_total' where it is not associated with a value #89

Closed Zwordi closed 4 months ago

Zwordi commented 5 months ago

Hello,

Running 2.6.5 we’re getting this traceback toward rundeck 4.11:

1.1" 200 None
rundeck-rundeck_exporter-1  | Traceback (most recent call last):
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/wsgiref/handlers.py", line 137, in run
rundeck-rundeck_exporter-1  |     self.result = application(self.environ, self.start_response)
rundeck-rundeck_exporter-1  |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 128, in prometheus_app
rundeck-rundeck_exporter-1  |     status, headers, output = _bake_output(registry, accept_header, accept_encoding_header, params, disable_compression)
rundeck-rundeck_exporter-1  |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 104, in _bake_output
rundeck-rundeck_exporter-1  |     output = encoder(registry)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/openmetrics/exposition.py", line 21, in generate_latest
rundeck-rundeck_exporter-1  |     for metric in registry.collect():
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/registry.py", line 97, in collect
rundeck-rundeck_exporter-1  |     yield from collector.collect()
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 508, in collect
rundeck-rundeck_exporter-1  |     for project_execution_record_group, project_executions_total in project_execution_records:
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 619, in result_iterator
rundeck-rundeck_exporter-1  |     yield _result_or_cancel(fs.pop())
rundeck-rundeck_exporter-1  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 317, in _result_or_cancel
rundeck-rundeck_exporter-1  |     return fut.result(timeout)
rundeck-rundeck_exporter-1  |            ^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 456, in result
rundeck-rundeck_exporter-1  |     return self.__get_result()
rundeck-rundeck_exporter-1  |            ^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
rundeck-rundeck_exporter-1  |     raise self._exception
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
rundeck-rundeck_exporter-1  |     result = self.fn(*self.args, **self.kwargs)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 309, in get_project_executions
rundeck-rundeck_exporter-1  |     return project_execution_records, project_executions_total
rundeck-rundeck_exporter-1  |                                       ^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  | UnboundLocalError: cannot access local variable 'project_executions_total' where it is not associated with a value
rundeck-rundeck_exporter-1  | Traceback (most recent call last):
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/wsgiref/handlers.py", line 137, in run
rundeck-rundeck_exporter-1  |     self.result = application(self.environ, self.start_response)
rundeck-rundeck_exporter-1  |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 128, in prometheus_app
rundeck-rundeck_exporter-1  |     status, headers, output = _bake_output(registry, accept_header, accept_encoding_header, params, disable_compression)
rundeck-rundeck_exporter-1  |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/exposition.py", line 104, in _bake_output
rundeck-rundeck_exporter-1  |     output = encoder(registry)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/openmetrics/exposition.py", line 21, in generate_latest
rundeck-rundeck_exporter-1  |     for metric in registry.collect():
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/site-packages/prometheus_client/registry.py", line 97, in collect
rundeck-rundeck_exporter-1  |     yield from collector.collect()
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 508, in collect
rundeck-rundeck_exporter-1  |     for project_execution_record_group, project_executions_total in project_execution_records:
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 619, in result_iterator
rundeck-rundeck_exporter-1  |     yield _result_or_cancel(fs.pop())
rundeck-rundeck_exporter-1  |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 317, in _result_or_cancel
rundeck-rundeck_exporter-1  |     return fut.result(timeout)
rundeck-rundeck_exporter-1  |            ^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 449, in result
rundeck-rundeck_exporter-1  |     return self.__get_result()
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
rundeck-rundeck_exporter-1  |     raise self._exception
rundeck-rundeck_exporter-1  |   File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 58, in run
rundeck-rundeck_exporter-1  |     result = self.fn(*self.args, **self.kwargs)
rundeck-rundeck_exporter-1  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  |   File "/app/rundeck_exporter.py", line 309, in get_project_executions
rundeck-rundeck_exporter-1  |     return project_execution_records, project_executions_total
rundeck-rundeck_exporter-1  |                                       ^^^^^^^^^^^^^^^^^^^^^^^^
rundeck-rundeck_exporter-1  | UnboundLocalError: cannot access local variable 'project_executions_total' where it is not associated with a value

This doesn’t prevent the exporter to run but we would like to share this situation.

Thanks

phsmith commented 5 months ago

Thanks for the report @Zwordi. I've identified the problem and it will be fixed in the next release.

Zwordi commented 5 months ago

Hi, Great to know :) Thanks,

phsmith commented 5 months ago

Hi @Zwordi,

The rundeck_exporter v2.7.0 has been released and might fix this problem. If you get a chance, please try the new version and let me know.

Zwordi commented 5 months ago

Hi,

Will be done this week. I will let you know.

Thanks,

20 avr. 2024 16:25:26 Phillipe Smith @.***>:

Hi @Zwordi[https://github.com/Zwordi],

The rundeck_exporter v2.7.0[https://github.com/phsmith/rundeck_exporter/releases/tag/v2.7.0] has been released and might fix this problem. If you get a chance, please try the new version and let me know.

— Reply to this email directly, view it on GitHub[https://github.com/phsmith/rundeck_exporter/issues/89#issuecomment-2067690228], or unsubscribe[https://github.com/notifications/unsubscribe-auth/ACDL2X3WJ5OUKDK52VSP5B3Y6J3E5AVCNFSM6AAAAABGEAIVRGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRXGY4TAMRSHA]. You are receiving this because you were mentioned. [Image de pistage][https://github.com/notifications/beacon/ACDL2X734SKJXTZ35AVA3LDY6J3E5A5CNFSM6AAAAABGEAIVRGWGG33NNVSW45C7OR4XAZNMJFZXG5LFINXW23LFNZ2KUY3PNVWWK3TUL5UWJTT3HZZPI.gif]

Zwordi commented 4 months ago

I just deployed your latest version in few VMs no more output about this issue visible. Closing this issue. Thanks,