Show More
@@ -0,0 +1,50 b'' | |||||
|
1 | auth_enabled: false | |||
|
2 | ||||
|
3 | server: | |||
|
4 | http_listen_address: 0.0.0.0 | |||
|
5 | grpc_listen_address: 0.0.0.0 | |||
|
6 | http_listen_port: 3100 | |||
|
7 | grpc_listen_port: 9095 | |||
|
8 | log_level: info | |||
|
9 | ||||
|
10 | common: | |||
|
11 | path_prefix: /tmp/loki | |||
|
12 | storage: | |||
|
13 | filesystem: | |||
|
14 | chunks_directory: /tmp/loki/chunks | |||
|
15 | rules_directory: /tmp/loki/rules | |||
|
16 | replication_factor: 1 | |||
|
17 | ring: | |||
|
18 | instance_addr: 127.0.0.1 | |||
|
19 | kvstore: | |||
|
20 | store: inmemory | |||
|
21 | ||||
|
22 | schema_config: | |||
|
23 | configs: | |||
|
24 | - from: 2020-10-24 | |||
|
25 | store: boltdb-shipper | |||
|
26 | object_store: filesystem | |||
|
27 | schema: v11 | |||
|
28 | index: | |||
|
29 | prefix: index_ | |||
|
30 | period: 24h | |||
|
31 | ||||
|
32 | limits_config: | |||
|
33 | max_streams_per_user: 100000 | |||
|
34 | ||||
|
35 | ingestion_burst_size_mb: 64 | |||
|
36 | ingestion_rate_mb: 512 | |||
|
37 | ||||
|
38 | per_stream_rate_limit: 512M | |||
|
39 | per_stream_rate_limit_burst: 1024M | |||
|
40 | max_entries_limit_per_query: 1000000 | |||
|
41 | max_label_value_length: 20480 | |||
|
42 | max_label_name_length: 10240 | |||
|
43 | ||||
|
44 | ruler: | |||
|
45 | alertmanager_url: http://localhost:9093 | |||
|
46 | ||||
|
47 | # If you would like to disable reporting, uncomment the following lines: | |||
|
48 | #analytics: | |||
|
49 | # reporting_enabled: false | |||
|
50 |
@@ -0,0 +1,38 b'' | |||||
|
1 | server: | |||
|
2 | http_listen_port: 9080 | |||
|
3 | grpc_listen_port: 0 | |||
|
4 | ||||
|
5 | # Describes how to save read file offsets to disk | |||
|
6 | positions: | |||
|
7 | filename: /tmp/positions.yaml | |||
|
8 | ||||
|
9 | clients: | |||
|
10 | - url: http://loki:3100/loki/api/v1/push | |||
|
11 | tenant_id: docker | |||
|
12 | ||||
|
13 | ## Definition to what to scrape | |||
|
14 | scrape_configs: | |||
|
15 | ||||
|
16 | - job_name: scraping_nginx | |||
|
17 | static_configs: | |||
|
18 | - targets: | |||
|
19 | - localhost | |||
|
20 | labels: | |||
|
21 | __path__: /var/log_volume/nginx/rhodecode* | |||
|
22 | job: nginx | |||
|
23 | ||||
|
24 | - job_name: scraping_vcsserver | |||
|
25 | static_configs: | |||
|
26 | - targets: | |||
|
27 | - localhost | |||
|
28 | labels: | |||
|
29 | __path__: /var/log_volume/apps/rhodecode* | |||
|
30 | job: rhodecode | |||
|
31 | ||||
|
32 | - job_name: scraping_rhodecode | |||
|
33 | static_configs: | |||
|
34 | - targets: | |||
|
35 | - localhost | |||
|
36 | labels: | |||
|
37 | __path__: /var/log_volume/apps/vcsserver* | |||
|
38 | job: vcsserver No newline at end of file |
@@ -0,0 +1,31 b'' | |||||
|
1 | defaults: | |||
|
2 | # metrics expiration | |||
|
3 | ttl: 48h | |||
|
4 | ||||
|
5 | mappings: | |||
|
6 | ||||
|
7 | - match: "*.histogram" | |||
|
8 | name: "${1}" | |||
|
9 | observer_type: histogram | |||
|
10 | histogram_options: | |||
|
11 | buckets: [.1, .25, .5, .75, 1, 1.5, 2, 5, 10] | |||
|
12 | ||||
|
13 | - match: "*.slow_histogram" | |||
|
14 | name: "${1}" | |||
|
15 | observer_type: histogram | |||
|
16 | histogram_options: | |||
|
17 | buckets: [.1, .25, .5, 1, 2, 5, 10, 30, 60] | |||
|
18 | ||||
|
19 | - match: "*.summary" | |||
|
20 | name: "${1}" | |||
|
21 | observer_type: summary | |||
|
22 | summary_options: | |||
|
23 | quantiles: | |||
|
24 | - quantile: 0.99 | |||
|
25 | error: 0.001 | |||
|
26 | - quantile: 0.95 | |||
|
27 | error: 0.01 | |||
|
28 | - quantile: 0.9 | |||
|
29 | error: 0.05 | |||
|
30 | - quantile: 0.5 | |||
|
31 | error: 0.005 |
1 | NO CONTENT: new file 100644 |
|
NO CONTENT: new file 100644 |
@@ -1,10 +1,17 b'' | |||||
1 | global: |
|
1 | global: | |
2 |
scrape_interval: 1 |
|
2 | scrape_interval: 15s | |
3 |
evaluation_interval: 1 |
|
3 | evaluation_interval: 15s | |
4 |
|
4 | |||
5 | scrape_configs: |
|
5 | scrape_configs: | |
6 | # Scrape statsd exporter |
|
6 | ||
|
7 | # Scrape statsd exporter from RhodeCode | |||
7 | - job_name: "rhodecode_metrics" |
|
8 | - job_name: "rhodecode_metrics" | |
8 | metrics_path: "/metrics" |
|
9 | metrics_path: "/metrics" | |
9 | static_configs: |
|
10 | static_configs: | |
10 | - targets: ["statsd-exporter:9102"] |
|
11 | - targets: ["statsd-exporter:9102"] | |
|
12 | ||||
|
13 | # scrape node exporter | |||
|
14 | - job_name: node_metrics | |||
|
15 | metrics_path: "/metrics" | |||
|
16 | static_configs: | |||
|
17 | - targets: ["node-exporter:9100"] |
@@ -8,6 +8,8 b' USER_GID=${USER_GID:-$CURRENT_USER_GID}' | |||||
8 | CMD="docker-compose -f docker-compose.yml" |
|
8 | CMD="docker-compose -f docker-compose.yml" | |
9 | BUILD_CMD="docker-compose -f docker-compose.yaml -f docker-compose.source.yaml" |
|
9 | BUILD_CMD="docker-compose -f docker-compose.yaml -f docker-compose.source.yaml" | |
10 | DEV_CMD="docker-compose -f docker-compose.yaml -f docker-compose.source.yaml -f docker-compose.dev.yaml" |
|
10 | DEV_CMD="docker-compose -f docker-compose.yaml -f docker-compose.source.yaml -f docker-compose.dev.yaml" | |
|
11 | DEV_CMD="docker-compose -f docker-compose.yaml -f docker-compose.source.yaml -f docker-compose.dev.yaml" | |||
|
12 | METRICS_CMD="docker-compose -f docker-compose-grafana.yaml" | |||
11 |
|
13 | |||
12 | usage="$(basename "$0") ./dev.sh <COMMAND> -- run docker command |
|
14 | usage="$(basename "$0") ./dev.sh <COMMAND> -- run docker command | |
13 | where <COMMAND>: |
|
15 | where <COMMAND>: | |
@@ -21,19 +23,20 b' where <COMMAND>:' | |||||
21 | dev-env -- run the dev stack required for development |
|
23 | dev-env -- run the dev stack required for development | |
22 | redis -- run the redis CLI attached to rc_cluster_redis_1 |
|
24 | redis -- run the redis CLI attached to rc_cluster_redis_1 | |
23 | db -- run the db bash attached to rc_cluster_database_1 |
|
25 | db -- run the db bash attached to rc_cluster_database_1 | |
|
26 | [m]etrics -- run the metrics stack | |||
24 | run <cmd> -- run <cmd>" |
|
27 | run <cmd> -- run <cmd>" | |
25 |
|
28 | |||
26 | case ${1:-} in |
|
29 | case ${1:-} in | |
27 | v|vcs ) |
|
30 | v|vcs ) | |
28 |
eval "(docker stop vcsserver |
|
31 | eval "(docker stop dev-vcsserver || echo skip-stop ) && ${DEV_CMD} run --service-ports --rm --use-aliases --workdir="/home/rhodecode/rhodecode-vcsserver" --name="dev-vcsserver" vcsserver bash" | |
29 | exit |
|
32 | exit | |
30 | ;; |
|
33 | ;; | |
31 | r|rc ) |
|
34 | r|rc ) | |
32 |
eval "(docker stop enterprise-ee |
|
35 | eval "(docker stop dev-enterprise-ee || echo skip-stop ) && ${DEV_CMD} run --publish 8080:8080 --rm --use-aliases --workdir="/home/rhodecode/rhodecode-enterprise-ee" --name="dev-enterprise-ee" rhodecode bash" | |
33 | exit |
|
36 | exit | |
34 | ;; |
|
37 | ;; | |
35 | ce ) |
|
38 | ce ) | |
36 |
eval "(docker stop enterprise-ce |
|
39 | eval "(docker stop dev-enterprise-ce || echo skip-stop ) && ${DEV_CMD} run --publish 8081:8080 --rm --use-aliases --workdir="/home/rhodecode/rhodecode-enterprise-ce" --name="dev-enterprise-ce" rhodecode bash" | |
37 | exit |
|
40 | exit | |
38 | ;; |
|
41 | ;; | |
39 | t|test|tests ) |
|
42 | t|test|tests ) | |
@@ -56,6 +59,10 b' case ${1:-} in' | |||||
56 | eval "docker exec --interactive --tty rc_cluster_database_1 /bin/bash -c 'psql -U $$POSTGRES_USER' " |
|
59 | eval "docker exec --interactive --tty rc_cluster_database_1 /bin/bash -c 'psql -U $$POSTGRES_USER' " | |
57 | exit |
|
60 | exit | |
58 | ;; |
|
61 | ;; | |
|
62 | m|metrics ) | |||
|
63 | eval "${METRICS_CMD} up --detach" | |||
|
64 | exit | |||
|
65 | ;; | |||
59 | run ) |
|
66 | run ) | |
60 | command=${@:2} |
|
67 | command=${@:2} | |
61 | eval "${DEV_CMD} run --rm rhodecode ${command}" |
|
68 | eval "${DEV_CMD} run --rm rhodecode ${command}" |
@@ -3,6 +3,12 b" version: '3.9'" | |||||
3 | volumes: |
|
3 | volumes: | |
4 | prometheus_data: {} |
|
4 | prometheus_data: {} | |
5 | grafana_data: {} |
|
5 | grafana_data: {} | |
|
6 | logvolume: | |||
|
7 | driver: local | |||
|
8 | driver_opts: | |||
|
9 | type: none | |||
|
10 | o: bind | |||
|
11 | device: $PWD/logs | |||
6 |
|
12 | |||
7 | networks: |
|
13 | networks: | |
8 | rhodecode_network: |
|
14 | rhodecode_network: | |
@@ -15,17 +21,37 b' services:' | |||||
15 | image: prom/statsd-exporter:v0.22.8 |
|
21 | image: prom/statsd-exporter:v0.22.8 | |
16 | restart: unless-stopped |
|
22 | restart: unless-stopped | |
17 | command: [ |
|
23 | command: [ | |
18 |
'--statsd.mapping-config=/statsd/statsd. |
|
24 | '--statsd.mapping-config=/statsd/statsd.yaml', | |
19 | '--statsd.listen-udp=:9125', |
|
25 | '--statsd.listen-udp=:9125', | |
20 | '--web.listen-address=:9102' |
|
26 | '--web.listen-address=:9102' | |
21 | ] |
|
27 | ] | |
22 | networks: |
|
28 | networks: | |
23 | - rhodecode_network |
|
29 | - rhodecode_network | |
24 | ports: |
|
30 | ports: | |
25 | - "9125:9125/udp" |
|
31 | - "127.0.0.1:9125:9125/udp" | |
26 | - "9102:9102" |
|
32 | - "127.0.0.1:9102:9102" | |
27 | volumes: |
|
33 | volumes: | |
28 |
- ./config/statsd-exporter |
|
34 | - ./config/statsd-exporter:/statsd | |
|
35 | ||||
|
36 | node-exporter: | |||
|
37 | image: prom/node-exporter:v1.4.0 | |||
|
38 | command: | |||
|
39 | - "--path.procfs=/host/proc" | |||
|
40 | - "--path.rootfs=/rootfs" | |||
|
41 | - "--path.sysfs=/host/sys" | |||
|
42 | - "--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)" | |||
|
43 | - "--collector.systemd" | |||
|
44 | - "--collector.processes" | |||
|
45 | networks: | |||
|
46 | - rhodecode_network | |||
|
47 | pid: host | |||
|
48 | restart: unless-stopped | |||
|
49 | ports: | |||
|
50 | - "127.0.0.1:9100:9100" | |||
|
51 | volumes: | |||
|
52 | - "/proc:/host/proc:ro" | |||
|
53 | - "/sys:/host/sys:ro" | |||
|
54 | - "/:/rootfs:ro" | |||
29 |
|
55 | |||
30 | prometheus: |
|
56 | prometheus: | |
31 | image: prom/prometheus:v2.39.1 |
|
57 | image: prom/prometheus:v2.39.1 | |
@@ -38,7 +64,7 b' services:' | |||||
38 | - "--storage.tsdb.retention.time=24h" |
|
64 | - "--storage.tsdb.retention.time=24h" | |
39 | - "--web.enable-lifecycle" |
|
65 | - "--web.enable-lifecycle" | |
40 | ports: |
|
66 | ports: | |
41 | - "9090:9090" |
|
67 | - "127.0.0.1:9090:9090" | |
42 | networks: |
|
68 | networks: | |
43 | - rhodecode_network |
|
69 | - rhodecode_network | |
44 | volumes: |
|
70 | volumes: | |
@@ -46,13 +72,39 b' services:' | |||||
46 | - prometheus_data:/prometheus |
|
72 | - prometheus_data:/prometheus | |
47 |
|
73 | |||
48 | grafana: |
|
74 | grafana: | |
49 |
image: grafana/grafana:9. |
|
75 | image: grafana/grafana:9.2.1-ubuntu | |
50 | restart: unless-stopped |
|
76 | restart: unless-stopped | |
51 | env_file: |
|
77 | env_file: | |
52 | - ./config/grafana/grafana.env |
|
78 | - ./config/grafana/grafana.env | |
53 | ports: |
|
79 | ports: | |
54 |
- " |
|
80 | - "4000:3000" | |
55 | volumes: |
|
81 | volumes: | |
56 | - grafana_data:/var/lib/grafana |
|
82 | - grafana_data:/var/lib/grafana | |
57 | networks: |
|
83 | networks: | |
58 | - rhodecode_network |
|
84 | - rhodecode_network | |
|
85 | ||||
|
86 | loki: | |||
|
87 | image: grafana/loki:2.6.1 | |||
|
88 | restart: unless-stopped | |||
|
89 | ports: | |||
|
90 | - "127.0.0.1:3100:3100" | |||
|
91 | - "127.0.0.1:9095:9095" | |||
|
92 | command: [ | |||
|
93 | "-config.file=/etc/loki/loki-config.yaml" | |||
|
94 | ] | |||
|
95 | networks: | |||
|
96 | - rhodecode_network | |||
|
97 | volumes: | |||
|
98 | - ./config/loki:/etc/loki | |||
|
99 | ||||
|
100 | promtail: | |||
|
101 | image: grafana/promtail:latest | |||
|
102 | command: [ | |||
|
103 | "-config.file=/etc/promtail/promtail-config.yaml" | |||
|
104 | ] | |||
|
105 | networks: | |||
|
106 | - rhodecode_network | |||
|
107 | volumes: | |||
|
108 | - /var/log:/var/log | |||
|
109 | - logvolume:/var/log_volume | |||
|
110 | - ./config/loki:/etc/promtail |
@@ -430,27 +430,27 b" listen_addresses = '*'" | |||||
430 |
|
430 | |||
431 | # - Where to Log - |
|
431 | # - Where to Log - | |
432 |
|
432 | |||
433 |
|
|
433 | log_destination = 'stderr' # Valid values are combinations of | |
434 | # stderr, csvlog, syslog, and eventlog, |
|
434 | # stderr, csvlog, syslog, and eventlog, | |
435 | # depending on platform. csvlog |
|
435 | # depending on platform. csvlog | |
436 | # requires logging_collector to be on. |
|
436 | # requires logging_collector to be on. | |
437 |
|
437 | |||
438 | # This is used when logging to stderr: |
|
438 | # This is used when logging to stderr: | |
439 |
|
|
439 | logging_collector = on # Enable capturing of stderr and csvlog | |
440 | # into log files. Required to be on for |
|
440 | # into log files. Required to be on for | |
441 | # csvlogs. |
|
441 | # csvlogs. | |
442 | # (change requires restart) |
|
442 | # (change requires restart) | |
443 |
|
443 | |||
444 | # These are only used if logging_collector is on: |
|
444 | # These are only used if logging_collector is on: | |
445 |
|
|
445 | log_directory = '/var/log/rhodecode/postgres' # directory where log files are written, | |
446 | # can be absolute or relative to PGDATA |
|
446 | # can be absolute or relative to PGDATA | |
447 |
|
|
447 | log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern, | |
448 | # can include strftime() escapes |
|
448 | # can include strftime() escapes | |
449 | #log_file_mode = 0600 # creation mode for log files, |
|
449 | #log_file_mode = 0600 # creation mode for log files, | |
450 | # begin with 0 to use octal notation |
|
450 | # begin with 0 to use octal notation | |
451 | #log_rotation_age = 1d # Automatic rotation of logfiles will |
|
451 | #log_rotation_age = 1d # Automatic rotation of logfiles will | |
452 | # happen after that time. 0 disables. |
|
452 | # happen after that time. 0 disables. | |
453 |
|
|
453 | log_rotation_size = 512MB # Automatic rotation of logfiles will | |
454 | # happen after that much log output. |
|
454 | # happen after that much log output. | |
455 | # 0 disables. |
|
455 | # 0 disables. | |
456 | #log_truncate_on_rotation = off # If on, an existing log file with the |
|
456 | #log_truncate_on_rotation = off # If on, an existing log file with the | |
@@ -502,7 +502,7 b" listen_addresses = '*'" | |||||
502 | # fatal |
|
502 | # fatal | |
503 | # panic (effectively off) |
|
503 | # panic (effectively off) | |
504 |
|
504 | |||
505 |
|
|
505 | log_min_duration_statement = 1000 # -1 is disabled, 0 logs all statements | |
506 | # and their durations, > 0 logs only |
|
506 | # and their durations, > 0 logs only | |
507 | # statements running at least this number |
|
507 | # statements running at least this number | |
508 | # of milliseconds |
|
508 | # of milliseconds |
@@ -35,12 +35,29 b' limit_req_zone $binary_remote_addr zone=http_req_limit:10m rate=1r/s;' | |||||
35 | ## custom log format |
|
35 | ## custom log format | |
36 | log_format http_log_custom '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time $upstream_response_time $pipe'; |
|
36 | log_format http_log_custom '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time $upstream_response_time $pipe'; | |
37 |
|
37 | |||
|
38 | log_format json_log_custom escape=json | |||
|
39 | '{' | |||
|
40 | '"source":"nginx",' | |||
|
41 | '"remote_user":"$remote_user",' | |||
|
42 | '"time_local":"$time_local",' | |||
|
43 | '"remote_addr":"$remote_addr",' | |||
|
44 | '"request":"$request",' | |||
|
45 | '"status": "$status",' | |||
|
46 | '"request_method": "$request_method",' | |||
|
47 | '"body_bytes_sent":"$body_bytes_sent",' | |||
|
48 | '"request_time":"$request_time",' | |||
|
49 | '"upstream_response_time":"$upstream_response_time",' | |||
|
50 | '"http_referrer":"$http_referer",' | |||
|
51 | '"http_user_agent":"$http_user_agent"' | |||
|
52 | '}'; | |||
|
53 | ||||
|
54 | ||||
38 | server { |
|
55 | server { | |
39 | listen 80 default; |
|
56 | listen 80 default; | |
40 | # ensure we get the proper Docker DNS resolver for load balancing. |
|
57 | # ensure we get the proper Docker DNS resolver for load balancing. | |
41 | resolver 127.0.0.11 ipv6=off; |
|
58 | resolver 127.0.0.11 ipv6=off; | |
42 | server_name localhost 127.0.0.1; |
|
59 | server_name localhost 127.0.0.1; | |
43 |
access_log /var/log/rhodecode/nginx/rhodecode.http.access.log |
|
60 | access_log /var/log/rhodecode/nginx/rhodecode.http.access.log json_log_custom; | |
44 | error_log /var/log/rhodecode/nginx/rhodecode.http.error.log; |
|
61 | error_log /var/log/rhodecode/nginx/rhodecode.http.error.log; | |
45 |
|
62 | |||
46 | # uncomment to redirect http traffic to https |
|
63 | # uncomment to redirect http traffic to https |
@@ -1,5 +1,5 b'' | |||||
1 |
FROM ubuntu: |
|
1 | FROM ubuntu:22.04 | |
2 |
# Using 2 |
|
2 | # Using 22.04 LTS Release | |
3 | MAINTAINER RhodeCode Inc. <support@rhodecode.com> |
|
3 | MAINTAINER RhodeCode Inc. <support@rhodecode.com> | |
4 |
|
4 | |||
5 | ARG TZ="UTC" |
|
5 | ARG TZ="UTC" |
@@ -1,14 +1,16 b'' | |||||
1 | FROM debian:buster |
|
1 | FROM ubuntu:22.04 | |
|
2 | # Using 22.04 LTS Release | |||
2 | MAINTAINER RhodeCode Inc. <support@rhodecode.com> |
|
3 | MAINTAINER RhodeCode Inc. <support@rhodecode.com> | |
3 |
|
4 | |||
|
5 | ||||
4 | ENV \ |
|
6 | ENV \ | |
5 | RC_USER=rhodecode \ |
|
7 | RC_USER=rhodecode \ | |
6 | MOD_DAV_SVN_CONF_FILE=/etc/rhodecode/conf/svn/mod_dav_svn.conf |
|
8 | MOD_DAV_SVN_CONF_FILE=/etc/rhodecode/conf/svn/mod_dav_svn.conf | |
7 |
|
9 | |||
8 | RUN \ |
|
10 | RUN \ | |
9 | echo "** install base svn packages **" && \ |
|
11 | echo "** install base svn packages **" && \ | |
10 |
ap |
|
12 | apt-get update && \ | |
11 |
ap |
|
13 | apt-get install --no-cache \ | |
12 | tini \ |
|
14 | tini \ | |
13 | bash \ |
|
15 | bash \ | |
14 | curl \ |
|
16 | curl \ | |
@@ -29,7 +31,7 b' echo "** Create system user $RC_USER **" && \\' | |||||
29 |
|
31 | |||
30 | RUN \ |
|
32 | RUN \ | |
31 | echo "**** cleanup ****" && \ |
|
33 | echo "**** cleanup ****" && \ | |
32 |
ap |
|
34 | apt-get purge tzdata python2 && \ | |
33 | rm -f /tmp/* && \ |
|
35 | rm -f /tmp/* && \ | |
34 | rm -rf /var/lib/apt/lists/* \ |
|
36 | rm -rf /var/lib/apt/lists/* \ | |
35 | rm -rf /var/cache/apk/* |
|
37 | rm -rf /var/cache/apk/* |
General Comments 0
You need to be logged in to leave comments.
Login now