summaryrefslogtreecommitdiff
path: root/configs/etc/monitor/promtail-nginx.yaml
blob: 812801dafd9bf6d19ce8e4b6fa9852ac421deb63 (plain)
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]