Commit 9ef3262e authored by Nane Kratzke's avatar Nane Kratzke
Browse files

Added README

parent 088b46b9
......@@ -5,6 +5,7 @@ WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
CMD ["python", "-u", "service.py"]
ENTRYPOINT ["python", "-u"]
CMD ["service.py"]
COPY . ./
# lab-structured-logging
# Lab: Structured Logging
Demonstration des Prinzips des strukturierten Loggings.
## Getting started
Sie können ein Docker Image mittels
`docker build -t wikisearch .`
bauen.
## Standard Logging
Sie können die Demo App dann anschließend mittels
`docker run -p 8888:80 wikisearch`
ausführen. Dies leitet den lokalen Port 8888 auf den Container Port 80 um.
Unter [http://localhost:8888?wiki=Hamburg](http://localhost:8888?wiki=Hamburg) sollten Sie dann eine Zusammenfassung zu Hamburg sehen.
*Betrachten Sie sich den Consolen Output, den der Container produziert. Wenn Sie diesen nach spezifischen Aspekten wie bspw. User-Agent Informationen durchsuchen müssten, wie aufwändig wäre dies?Ginge dies überhaupt mit vertretbarem Aufwand?*
## Structured Logging
Sie können die Demo App allerdings auch mit
`docker run -p 8888:80 wikisearch service-structlog.py`
ausführen. Auch dies leitet den lokalen Port 8888 auf den Container Port 80 um.
Unter [http://localhost:8888?wiki=Hamburg](http://localhost:8888?wiki=Hamburg) sollten Sie wieder eine Zusammenfassung zu Hamburg sehen.
*Betrachten Sie sich nun erneut den Consolen Output, den der Container produziert. Wenn Sie diesen nach spezifischen Aspekten wie bspw. User-Agent Informationen durchsuchen müssten, wie aufwändig wäre dies? Vor allem, wenn Sie JSON-Snippets mittels eines JSON-Parsers parsen können?*
......@@ -21,7 +21,7 @@ logging.basicConfig(level=logging.INFO)
logging = structlog.get_logger("wikipedia")
app = Flask(__name__)
port = 5000
PORT = int(os.environ.get('PORT', '80')) # Config aus Env-Variable (Faktor 3)
@app.route("/")
def index():
......@@ -42,4 +42,4 @@ def index():
log.error(f"{ wiki } not found", exception=str(ex), process_time_ns=time.time_ns() - start)
abort(404, f"{ wiki } not found")
app.run(host="0.0.0.0", port=port)
\ No newline at end of file
app.run(host="0.0.0.0", port=PORT)
\ No newline at end of file
......@@ -5,7 +5,7 @@ logging.basicConfig(level=logging.INFO)
log = logging.getLogger("wikipedia")
app = Flask(__name__)
port = 5000
PORT = int(os.environ.get('PORT', '80')) # Config aus Env-Variable (Faktor 3)
@app.route("/")
def index():
......@@ -24,4 +24,4 @@ def index():
log.error(f"{ wiki } not found { ex }")
abort(404, f"{ wiki } not found")
app.run(host="0.0.0.0", port=port)
\ No newline at end of file
app.run(host="0.0.0.0", port=PORT)
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment