Skip to content

Commit 7cc2f19

Browse files
committed
Revert "Revert Flask changes"
This reverts commit 4345d7b.
1 parent f349b56 commit 7cc2f19

5 files changed

Lines changed: 26 additions & 38 deletions

File tree

docs/examples/opentelemetry-example-app/src/opentelemetry_example_app/flask_example.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
SimpleExportSpanProcessor(ConsoleSpanExporter())
3434
)
3535

36-
FlaskInstrumentor().instrument()
37-
app = flask.Flask(__name__)
36+
Flask = FlaskInstrumentor().instrument(flask_class=flask.Flask)
37+
app = Flask(__name__)
3838
opentelemetry.ext.http_requests.enable(trace.get_tracer_provider())
3939

4040

docs/getting-started.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,6 @@ And let's write a small Flask application that sends an HTTP request, activating
184184
.. code-block:: python
185185
186186
# flask_example.py
187-
from opentelemetry.ext.flask import FlaskInstrumentor
188-
FlaskInstrumentor().instrument() # This needs to be executed before importing Flask
189-
190187
import flask
191188
import requests
192189
@@ -195,13 +192,16 @@ And let's write a small Flask application that sends an HTTP request, activating
195192
from opentelemetry.sdk.trace import TracerProvider
196193
from opentelemetry.sdk.trace.export import ConsoleSpanExporter
197194
from opentelemetry.sdk.trace.export import SimpleExportSpanProcessor
195+
from opentelemetry.ext.flask import FlaskInstrumentor
196+
197+
Flask = FlaskInstrumentor().instrument(flask_class=flask.Flask)
198198
199199
trace.set_tracer_provider(TracerProvider())
200200
trace.get_tracer_provider().add_span_processor(
201201
SimpleExportSpanProcessor(ConsoleSpanExporter())
202202
)
203203
204-
app = flask.Flask(__name__)
204+
app = Flask(__name__)
205205
opentelemetry.ext.http_requests.enable(trace.get_tracer_provider())
206206
207207
@app.route("/")

ext/opentelemetry-ext-flask/src/opentelemetry/ext/flask/__init__.py

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,10 @@
2929
3030
.. code-block:: python
3131
32-
from opentelemetry.ext.flask import FlaskInstrumentor
33-
FlaskInstrumentor().instrument() # This needs to be executed before importing Flask
3432
from flask import Flask
33+
from opentelemetry.ext.flask import FlaskInstrumentor
34+
35+
Flask = FlaskInstrumentor().instrument(flask_class=Flask)
3536
3637
app = Flask(__name__)
3738
@@ -158,11 +159,20 @@ class FlaskInstrumentor(BaseInstrumentor):
158159

159160
def __init__(self):
160161
super().__init__()
161-
self._original_flask = None
162+
self._original_flask_class = None
162163

163-
def _instrument(self):
164-
self._original_flask = flask.Flask
164+
def _instrument(
165+
self, flask_class=None
166+
): # pylint: disable=arguments-differ
167+
if flask_class is not None:
168+
self._original_flask_class = flask_class
169+
return _InstrumentedFlask
170+
171+
self._original_flask_class = flask.Flask
165172
flask.Flask = _InstrumentedFlask
166173

167-
def _uninstrument(self):
168-
flask.Flask = self._original_flask
174+
return None
175+
176+
def _uninstrument(self): # pylint: disable=arguments-differ
177+
flask.Flask = self._original_flask_class
178+
return self._original_flask_class

ext/opentelemetry-ext-flask/tests/conftest.py

Lines changed: 0 additions & 25 deletions
This file was deleted.

ext/opentelemetry-ext-flask/tests/test_flask_integration.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@
1919
from werkzeug.wrappers import BaseResponse
2020

2121
from opentelemetry import trace as trace_api
22+
from opentelemetry.ext.flask import FlaskInstrumentor
2223
from opentelemetry.test.wsgitestutil import WsgiTestBase
2324

25+
Flask = FlaskInstrumentor().instrument(flask_class=Flask)
26+
2427

2528
def expected_attributes(override_attributes):
2629
default_attributes = {

0 commit comments

Comments
 (0)