-
Notifications
You must be signed in to change notification settings - Fork 1
/
api.py
31 lines (22 loc) · 832 Bytes
/
api.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import blinker as _
import requests
from flask import Flask, Response
from flask import jsonify
from flask import request as flask_request
from ddtrace import tracer
from ddtrace.contrib.flask import TraceMiddleware
# Tracer configuration
tracer.configure(hostname='datadog')
app = Flask('API')
traced_app = TraceMiddleware(app, tracer, service='thinker-api')
@app.route('/think/')
def think_handler():
thoughts = requests.get('http://thinker:8000/', headers={
'x-datadog-trace-id': str(tracer.current_span().trace_id),
'x-datadog-parent-id': str(tracer.current_span().span_id),
}, params={
'subject': flask_request.args.getlist('subject', str),
}).content
return Response(thoughts, mimetype='application/json')
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)