Skip to content

Commit 53ecf2d

Browse files
committed
A better Flask hook and wrap
1 parent 2d90da5 commit 53ecf2d

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

instana/flaskana.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1+
from __future__ import print_function
12
from instana import wsgi
2-
from flask.cli import ScriptInfo
3+
import wrapt
4+
import os
35

46

5-
def wrap_load_app(func):
6-
def wrapper(self, *args):
7-
app = func(self, *args)
8-
app.wsgi_app = wsgi.iWSGIMiddleware(app.wsgi_app)
9-
return app
10-
return wrapper
7+
def wrapper(wrapped, instance, args, kwargs):
8+
rv = wrapped(*args, **kwargs)
9+
instance.wsgi_app = wsgi.iWSGIMiddleware(instance.wsgi_app)
10+
return rv
1111

1212

1313
def hook(module):
1414
""" Hook method to install the Instana middleware into Flask """
15-
ScriptInfo.load_app = wrap_load_app(ScriptInfo.load_app)
15+
if "INSTANA_DEV" in os.environ:
16+
print("==============================================================")
17+
print("Running flask hook")
18+
print("==============================================================")
19+
wrapt.wrap_function_wrapper('flask', 'Flask.__init__', wrapper)

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
'psutil>=5.1.3'],
2020
entry_points={'django': ['django.core.handlers.base = instana.django:hook'],
2121
'django19': ['django.core.handlers.base = instana.django19:hook'],
22-
'flask': ['flask.cli = instana.flaskana:hook'],
22+
'flask': ['flask = instana.flaskana:hook'],
2323
'runtime': ['string = instana.runtime:hook']},
2424
test_suite='nose.collector',
2525
keywords=['performance', 'opentracing', 'metrics', 'monitoring'],

0 commit comments

Comments
 (0)