from flask import Flask
from flask import jsonify
from flask import jsonify
from flask_zipkin import Zipkin
import opentracing
from flask_opentracing import FlaskTracing
import time
import requests
app = Flask(__name__)
ZIPKIN_BASE_URL = "http://localhost:9411/api/v2/spans"
app.config['ZIPKIN_DISABLE'] = False
app.config['ZIPKIN_DSN'] = ZIPKIN_BASE_URL
app.config['ZIPKIN_SAMPLE_RATE'] = 100
@app.route('/')
def hello_world():
data = call_api()
return jsonify(data)
def call_api():
headers = {}
headers.update(zipkin.create_http_headers_for_new_span())
print(zipkin.create_http_headers_for_new_span())
URL = "http://localhost:5000"
data = {
"message": "Port 8080 say hello !"
}
response = requests.get(url = URL, headers = headers).json();
data["message"] += " " + response["message"];
return data;
zipkin = Zipkin()
zipkin.init_app(app)
@zipkin.transport_handler
def default_handler(encoded_span):
#body = str.encode('{}'') + encoded_span
print("call zipkin transport_handler")
result = requests.post(
ZIPKIN_BASE_URL,
data=encoded_span,
headers={'Content-Type': 'application/x-thrift'})
print("code = " + str(result.status_code) + ", text = " + result.text + " , reason = " + result.reason)
return result