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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://monitor.perf.taler:80/loki/api/v1/push
scrape_configs:
- job_name: nginx
static_configs:
- targets:
- localhost
labels:
job: nginx
__path__: /var/log/nginx/*log
relabel_configs:
- source_labels: [__syslog_message_app_name]
target_label: app
pipeline_stages:
- match:
selector: '{job="proxy"}'
stages:
- regex:
expression: 'uri=/(?P<ep>[a-zA-Z]+)(?:/\w+)?(?:/(?P<act>[a-zA-Z-]+))? s=(?P<status>\d{3}).*urt=(?P<urt>\d+\.\d+|-) rt=(?P<response_time>\d+\.\d+) rl=(?P<request_length>\d+) bs=(?P<bytes_sent>\d+)'
- template:
source: endpoint
template: '{{ printf "%s-%s" .ep .act | trimSuffix "-" }}'
- template:
source: upstream_response_time
template: '{{ .urt | replace "-" "0" }}'
- labels:
endpoint:
status:
- metrics:
total_requests:
prefix: 'taler_requests_'
type: Counter
description: "Total Requests"
config:
match_all: true
action: inc
# Used to calculate 'over_time' statistics
response_time:
prefix: 'taler_requests_'
type: Gauge
description: "Time taken for Nginx to respond"
source: response_time
max_idle_duration: 24h
config:
action: set
# https://www.robustperception.io/how-does-a-prometheus-histogram-work
request_length_hist:
prefix: 'taler_requests_'
type: Histogram
description: "Request Length reported from Nginx"
source: request_length
max_idle_duration: 24h
config:
buckets: [1,10,50,100,200,500,1000,2000,5000]
bytes_sent_hist:
prefix: 'taler_requests_'
type: Histogram
description: "Number of bytes sent, reported from Nginx"
source: bytes_sent
max_idle_duration: 24h
config:
buckets: [1,10,50,100,200,500,1000,2000,5000]
response_time_hist:
prefix: 'taler_requests_'
type: Histogram
description: "Time taken for Nginx to respond"
source: response_time
max_idle_duration: 24h
config:
buckets: [0.001,0.0025,0.005,0.010,0.025,0.050,0.1,0.25,0.5,1,2,5]
upstream_response_time_hist:
prefix: 'taler_requests_'
type: Histogram
description: "Time taken for the Exchange to respond to Nginx"
source: upstream_response_time
max_idle_duration: 24h
config:
buckets: [0.001,0.0025,0.005,0.010,0.025,0.050,0.1,0.25,0.5,1,2,5]
|