Update demo for tracer

This commit is contained in:
Tom Wilkie
2016-03-10 11:58:04 +00:00
parent b2c0c93d5e
commit bd760f6e76
14 changed files with 207 additions and 48 deletions

View File

@@ -0,0 +1,8 @@
FROM python:2.7
MAINTAINER Weaveworks Inc <help@weave.works>
WORKDIR /home/weave
ADD requirements.txt /home/weave/
RUN pip install -r /home/weave/requirements.txt
ADD app.py /home/weave/
EXPOSE 5000
ENTRYPOINT ["python", "/home/weave/app.py"]

View File

@@ -0,0 +1,69 @@
import os
import socket
import sys
import requests
import random
import threading
import logging
from concurrent.futures import ThreadPoolExecutor
from flask import Flask
from redis import Redis
from werkzeug.serving import WSGIRequestHandler
app = Flask(__name__)
redis = Redis(host='redis', port=6379)
pool = ThreadPoolExecutor(max_workers=10)
sessions = threading.local()
searchapps = ['http://searchapp:8080/']
def do_redis():
redis.incr('hits')
return redis.get('hits')
def do_qotd():
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect(("qotd", 4446))
s.send("Hello")
return s.recv(1024)
finally:
s.close()
def do_search():
if getattr(sessions, 'session', None) == None:
sessions.session = requests.Session()
r = sessions.session.get(random.choice(searchapps))
return r.text
def do_echo(text):
r = requests.get("http://echo/", data=text)
return r.text
def ignore_error(f):
try:
return str(f())
except:
logging.error("Error executing function", exc_info=sys.exc_info())
return "Error"
# this root is for the tracing demo
@app.route('/hello')
def hello():
qotd_msg = do_qotd()
qotd_msg = do_echo(qotd_msg)
return qotd_msg
# this is for normal demos
@app.route('/')
def root():
#counter_future = pool.submit(do_redis)
#search_future = pool.submit(do_search)
result = do_echo(do_qotd())
return result
if __name__ == "__main__":
logging.basicConfig(format='%(asctime)s %(levelname)s %(filename)s:%(lineno)d - %(message)s', level=logging.INFO)
WSGIRequestHandler.protocol_version = "HTTP/1.1"
app.run(host="0.0.0.0", port=80, debug=True)

View File

@@ -0,0 +1,4 @@
flask
redis
requests
futures