feat(ifc-importer): serve prometheus metrics (#5627)

This commit is contained in:
Iain Sproat
2025-10-02 20:23:27 +01:00
committed by GitHub
parent 34cb8abd92
commit caf4037a56
4 changed files with 14 additions and 5 deletions
-5
View File
@@ -12,11 +12,6 @@ repos:
- id: shellcheck-system - id: shellcheck-system
name: shellcheck name: shellcheck
- repo: https://github.com/syntaqx/git-hooks
rev: 'v0.0.17'
hooks:
- id: circleci-config-validate
- repo: https://github.com/specklesystems/pre-commit - repo: https://github.com/specklesystems/pre-commit
rev: '0.2.0' rev: '0.2.0'
hooks: hooks:
+2
View File
@@ -5,6 +5,7 @@ from http.server import BaseHTTPRequestHandler, HTTPServer
from multiprocessing import Process from multiprocessing import Process
import structlog import structlog
from prometheus_client import start_http_server
from structlog_to_seq import CelfProcessor from structlog_to_seq import CelfProcessor
from ifc_importer.job_processor import job_processor from ifc_importer.job_processor import job_processor
@@ -52,6 +53,7 @@ async def main():
httpd = HTTPServer(("0.0.0.0", 9080), HealthcheckHTTPRequestHandler) httpd = HTTPServer(("0.0.0.0", 9080), HealthcheckHTTPRequestHandler)
healthcheck_server_process = Process(target=httpd.serve_forever, daemon=True) healthcheck_server_process = Process(target=httpd.serve_forever, daemon=True)
healthcheck_server_process.start() healthcheck_server_process.start()
start_http_server(9093)
# we do not need any sort of signal handling logic, # we do not need any sort of signal handling logic,
# cause if the context of the job transaction exits, # cause if the context of the job transaction exits,
@@ -13,6 +13,7 @@ dependencies = [
"structlog-to-seq>=21.0.0", "structlog-to-seq>=21.0.0",
"specklepy[speckleifc]>=3.0.7", "specklepy[speckleifc]>=3.0.7",
"colorful>=0.5.7", "colorful>=0.5.7",
"prometheus-client>=0.23.1",
] ]
[dependency-groups] [dependency-groups]
+11
View File
@@ -230,6 +230,7 @@ source = { editable = "." }
dependencies = [ dependencies = [
{ name = "asyncpg" }, { name = "asyncpg" },
{ name = "colorful" }, { name = "colorful" },
{ name = "prometheus-client" },
{ name = "pydantic" }, { name = "pydantic" },
{ name = "python-dotenv" }, { name = "python-dotenv" },
{ name = "specklepy", extra = ["speckleifc"] }, { name = "specklepy", extra = ["speckleifc"] },
@@ -249,6 +250,7 @@ dev = [
requires-dist = [ requires-dist = [
{ name = "asyncpg", specifier = ">=0.30.0" }, { name = "asyncpg", specifier = ">=0.30.0" },
{ name = "colorful", specifier = ">=0.5.7" }, { name = "colorful", specifier = ">=0.5.7" },
{ name = "prometheus-client", specifier = ">=0.23.1" },
{ name = "pydantic", specifier = ">=2.11.7" }, { name = "pydantic", specifier = ">=2.11.7" },
{ name = "python-dotenv", specifier = ">=1.0.0" }, { name = "python-dotenv", specifier = ">=1.0.0" },
{ name = "specklepy", extras = ["speckleifc"], specifier = ">=3.0.7" }, { name = "specklepy", extras = ["speckleifc"], specifier = ">=3.0.7" },
@@ -414,6 +416,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c1/9e/1652778bce745a67b5fe05adde60ed362d38eb17d919a540e813d30f6874/numpy-2.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:092aeb3449833ea9c0bf0089d70c29ae480685dd2377ec9cdbbb620257f84631", size = 10544226, upload-time = "2025-07-24T20:56:34.509Z" }, { url = "https://files.pythonhosted.org/packages/c1/9e/1652778bce745a67b5fe05adde60ed362d38eb17d919a540e813d30f6874/numpy-2.3.2-cp314-cp314t-win_arm64.whl", hash = "sha256:092aeb3449833ea9c0bf0089d70c29ae480685dd2377ec9cdbbb620257f84631", size = 10544226, upload-time = "2025-07-24T20:56:34.509Z" },
] ]
[[package]]
name = "prometheus-client"
version = "0.23.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/23/53/3edb5d68ecf6b38fcbcc1ad28391117d2a322d9a1a3eff04bfdb184d8c3b/prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce", size = 80481, upload-time = "2025-09-18T20:47:25.043Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/b8/db/14bafcb4af2139e046d03fd00dea7873e48eafe18b7d2797e73d6681f210/prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99", size = 61145, upload-time = "2025-09-18T20:47:23.875Z" },
]
[[package]] [[package]]
name = "propcache" name = "propcache"
version = "0.3.2" version = "0.3.2"