#68 Add flask-http-requests info to the metrics
Opened 2 years ago by ounsal. Modified 2 years ago
ounsal/cts master  into  master

file modified
+6
@@ -33,6 +33,7 @@ 

  from cts.proxy import ReverseProxy

  from cts.errors import NotFound, Forbidden

  

+ from prometheus_flask_exporter.multiprocess import GunicornInternalPrometheusMetrics

  import pkg_resources

  

  try:
@@ -59,6 +60,11 @@ 

  

  init_auth(login_manager, conf.auth_backend)

  

+ metrics = GunicornInternalPrometheusMetrics.for_app_factory(

+     group_by="endpoint", default_prefix="cachito_flask"

The prefix should probably be changed :)

+ )

+ metrics.init_app(app)

+ 

  

  def json_error(status, error, message):

      response = jsonify({"status": status, "error": error, "message": message})

file modified
+7 -5
@@ -37,13 +37,15 @@ 

  

  # This environment variable should be set if deployment uses multiple

  # processes.

- if not os.environ.get("prometheus_multiproc_dir"):

-     os.environ.setdefault("prometheus_multiproc_dir", tempfile.mkdtemp())

- 

- 

+ multiproc_temp_dir = os.environ.get("PROMETHEUS_MULTIPROC_DIR")

With uppercase var name I'm getting errors. If I change it to lowercase, the application starts fine.

+ if not multiproc_temp_dir:

+     multiproc_temp_dir = tempfile.mkdtemp()

+ if not os.path.isdir(multiproc_temp_dir):

+     os.makedirs(multiproc_temp_dir)

+ os.environ["PROMETHEUS_MULTIPROC_DIR"] = multiproc_temp_dir

  registry = CollectorRegistry()

  ProcessCollector(registry=registry)

- multiprocess.MultiProcessCollector(registry)

+ multiprocess.MultiProcessCollector(registry, path=multiproc_temp_dir)

  

  

  class ComposesCollector(object):

file modified
+1
@@ -8,3 +8,4 @@ 

  productmd

  python-ldap

  prometheus_client

+ prometheus_flask_exporter == 0.18.5

file modified
+1
@@ -2,5 +2,6 @@ 

  

  export PYTHONPATH=.

  export CTS_DEVELOPER_ENV=1

+ export PROMETHEUS_MULTIPROC_DIR=/tmp/prometheus_multiproc_dir

  

  python cts/manage.py runssl

With uppercase var name I'm getting errors. If I change it to lowercase, the application starts fine.

The prefix should probably be changed :)

I guess we figured out that the errors you have are happening due to the different package version. What should we do about this pull request?

It can not be merged until we figure out how to deploy it.

rebased onto 59080a4

2 years ago