Skip to content

Commit 9b6d28e

Browse files
committed
some cleanup and working flask example
1 parent 0198c39 commit 9b6d28e

File tree

4 files changed

+78
-32
lines changed

4 files changed

+78
-32
lines changed

example/app.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from arango import ArangoClient
2+
from random import randint
3+
from flask import Flask, request
4+
import logging
5+
6+
app = Flask(__name__)
7+
logging.basicConfig(level=logging.INFO)
8+
logger = logging.getLogger(__name__)
9+
10+
client = ArangoClient()
11+
db = client.db("test", username="root", password="password")
12+
13+
@app.route("/random_doc")
14+
def random_doc():
15+
item_id = str(randint(1, 1000))
16+
doc = db.aql.execute("FOR doc IN test FILTER doc._key == @item_id RETURN doc", bind_vars={"item_id": item_id})
17+
18+
try:
19+
result = doc.pop()
20+
return {"doc": result}, 200
21+
except Exception as e:
22+
return {"error": str(item_id) + " not found"}, 404

example/application.py

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

example/requirements.txt

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
asgiref==3.8.1
2+
blinker==1.8.2
3+
certifi==2024.2.2
4+
charset-normalizer==3.3.2
5+
click==8.1.7
6+
Deprecated==1.2.14
7+
Flask==3.0.3
8+
googleapis-common-protos==1.63.1rc0
9+
grpcio==1.64.0
10+
idna==3.7
11+
importlib_metadata==7.1.0
12+
itsdangerous==2.2.0
13+
Jinja2==3.1.4
14+
MarkupSafe==2.1.5
15+
opentelemetry-api==1.25.0
16+
opentelemetry-distro==0.46b0
17+
opentelemetry-exporter-otlp==1.25.0
18+
opentelemetry-exporter-otlp-proto-common==1.25.0
19+
opentelemetry-exporter-otlp-proto-grpc==1.25.0
20+
opentelemetry-exporter-otlp-proto-http==1.25.0
21+
opentelemetry-instrumentation==0.46b0
22+
opentelemetry-instrumentation-arangodb==0.1.0
23+
opentelemetry-instrumentation-asgi==0.46b0
24+
opentelemetry-instrumentation-asyncio==0.46b0
25+
opentelemetry-instrumentation-aws-lambda==0.46b0
26+
opentelemetry-instrumentation-dbapi==0.46b0
27+
opentelemetry-instrumentation-flask==0.46b0
28+
opentelemetry-instrumentation-jinja2==0.46b0
29+
opentelemetry-instrumentation-logging==0.46b0
30+
opentelemetry-instrumentation-requests==0.46b0
31+
opentelemetry-instrumentation-sqlite3==0.46b0
32+
opentelemetry-instrumentation-threading==0.46b0
33+
opentelemetry-instrumentation-urllib==0.46b0
34+
opentelemetry-instrumentation-urllib3==0.46b0
35+
opentelemetry-instrumentation-wsgi==0.46b0
36+
opentelemetry-propagator-aws-xray==1.0.1
37+
opentelemetry-proto==1.25.0
38+
opentelemetry-sdk==1.25.0
39+
opentelemetry-semantic-conventions==0.46b0
40+
opentelemetry-test-utils==0.46b0
41+
opentelemetry-util-http==0.46b0
42+
packaging==24.0
43+
protobuf==4.25.3
44+
PyJWT==2.8.0
45+
python-arango==8.0.0
46+
requests==2.32.3
47+
requests-toolbelt==1.0.0
48+
typing_extensions==4.12.0
49+
urllib3==2.2.1
50+
Werkzeug==3.0.3
51+
wrapt==1.16.0
52+
zipp==3.19.1

opentelemetry_instrumentation_arangodb/__init__.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,12 @@ def _get_instrumented_execute(self):
3434
@functools.wraps(self._original_method)
3535
def instrumented_execute(*args, **kwargs):
3636
query = args[1] if len(args) > 1 else kwargs.get('query', 'Unknown query')
37+
dbname = args[0].db_name if len(args) > 0 else kwargs.get('db_name', 'Unknown db')
3738
with tracer.start_as_current_span("ArangoDB Execute", kind=SpanKind.CLIENT) as span:
38-
span.set_attribute("db.system", "arangodb")
39+
span.set_attribute("db.name", dbname)
3940
span.set_attribute("db.query", query)
4041
if kwargs.get('bind_vars'):
41-
span.set_attribute("db.bind_vars", kwargs.get('bind_vars'))
42+
span.set_attribute("db.bind_vars", str(kwargs.get('bind_vars')))
4243
try:
4344
result = self._original_method(*args, **kwargs)
4445
span.set_status(StatusCode.OK)
@@ -54,7 +55,7 @@ def instrumented_execute(*args, **kwargs):
5455
for key, value in result.statistics().items():
5556
span.set_attribute("db." + key, value)
5657
if result.warnings():
57-
span.set_attribute("db.warnings", result.warnings())
58+
span.set_attribute("db.warnings", str(result.warnings()))
5859
except Exception as e:
5960
logger.debug("Error setting trace attributes: %s", e)
6061
return result

0 commit comments

Comments
 (0)