diff --git a/docs/sources/tutorials/create-alerts-with-logs/index.md b/docs/sources/tutorials/create-alerts-with-logs/index.md index f7c8e6fd029..c2293fbba7f 100644 --- a/docs/sources/tutorials/create-alerts-with-logs/index.md +++ b/docs/sources/tutorials/create-alerts-with-logs/index.md @@ -199,9 +199,9 @@ This optional step uses a python script to generate the sample logs used in this 1. Install Python3 on your local machine if needed. 1. Copy the python script below and paste it into a new file on your local machine. - ``` - #!/bin/env python3 - ``` +``` + +#!/bin/env python3 import datetime import math @@ -209,12 +209,14 @@ import random import sys import time + requests_per_second = 2 failure_rate = 0.05 get_post_ratio = 0.9 get_average_duration_ms = 500 post_average_duration_ms = 2000 + while True: # Exponential distribution random value of average 1/lines_per_second. @@ -244,7 +246,8 @@ In a terminal window on linux-based systems run the command: chmod 755 ./web-server-logs-simulator.py -```` + +``` 1. Run the script. @@ -292,7 +295,7 @@ that generates the sample logs used in this tutorial to create alerts. **Bash** -```` +``` wget https://raw.githubusercontent.com/grafana/loki/v2.8.0/production/docker-compose.yaml -O docker-compose.yaml @@ -347,31 +350,33 @@ import random import sys import time + + requests_per_second = 2 failure_rate = 0.05 get_post_ratio = 0.9 get_average_duration_ms = 500 post_average_duration_ms = 2000 + while True: -# Exponential distribution random value of average 1/lines_per_second. - -d = random.expovariate(requests_per_second) -time.sleep(d) -if random.random() < failure_rate: -status = "500" -else: -status = "200" -if random.random() < get_post_ratio: -method = "GET" -duration_ms = math.floor(random.expovariate(1/get_average_duration_ms)) -else: -method = "POST" -duration_ms = math.floor(random.expovariate(1/post_average_duration_ms)) -timestamp = datetime.datetime.now(tz=datetime.timezone.utc).isoformat() -print(f"{timestamp} level=info method={method} url=/ status={status} duration={duration_ms}ms") -sys.stdout.flush() + # Exponential distribution random value of average 1/lines_per_second. + d = random.expovariate(requests_per_second) + time.sleep(d) + if random.random() < failure_rate: + status = "500" + else: + status = "200" + if random.random() < get_post_ratio: + method = "GET" + duration_ms = math.floor(random.expovariate(1/get_average_duration_ms)) + else: + method = "POST" + duration_ms = math.floor(random.expovariate(1/post_average_duration_ms)) + timestamp = datetime.datetime.now(tz=datetime.timezone.utc).isoformat() + print(f"{timestamp} level=info method={method} url=/ status={status} duration={duration_ms}ms") + sys.stdout.flush() ``` @@ -396,6 +401,7 @@ sudo touch /var/log/web_requests.log chmod 755 /var/log/web_requests.log python3 ./web-server-logs-simulator.py | tee -a /var/log/web_requests.log + ``` **Running on Windows** @@ -425,4 +431,3 @@ If you don't see the logs in Explore, check these things: - If the file is empty, check that you followed the steps above to create the file and change the permissions. - If the file exists, verify that promtail is running and check that it is configured correctly. - In Grafana Explore, check that the time range is only for the last 5 minutes. -```