snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
global:
|
||||
config_version: 3
|
||||
input:
|
||||
type: file
|
||||
path: /var/log/nginx/access.log
|
||||
fail_on_missing_logfile: false
|
||||
readall: false
|
||||
imports:
|
||||
- type: grok_patterns
|
||||
dir: <%= @include_dir %>
|
||||
grok_patterns:
|
||||
- 'NONQUERY [^? ]+'
|
||||
- 'OPTIONALQUERY (?:\?%{NOTSPACE})?'
|
||||
- 'APIPATH /+(api/v1|json)(?<apipath>/(events|users/me/presence|messages(/flags)?|remotes/push/(register|unregister|notify)|remotes/server/(register|analytics|analytics/status)|typing|register|server_settings|tus/))'
|
||||
- 'EXTERNALPATH /+(?<external>api/v1/external/)[a-zA-Z0-9_-]+'
|
||||
- 'ROOTPATH (?<rootpath>/+)'
|
||||
- 'TOPPATH /+(?<toppath>(api/internal/(email_mirror_message|tusd)|compatibility|error_tracing))'
|
||||
- 'PREFIXPATH /+(?<prefixpath>(static|user_uploads|avatar|api/v1/tus)/)\S+'
|
||||
- 'ANYPATH (%{APIPATH}|%{EXTERNALPATH}|%{TOPPATH}|%{PREFIXPATH}|%{ROOTPATH}|%{NONQUERY:otherpath})%{OPTIONALQUERY}'
|
||||
- 'OURHOSTNAME (?<hostname>((?<realm><%= @realm_names_regex %>)|%{NOTSPACE}))'
|
||||
- 'OURLOG %{IPORHOST:clientip} - \S+ \[%{HTTPDATE:timestamp}\] "%{WORD:verb} %{ANYPATH} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:agent} %{OURHOSTNAME} %{NUMBER:response_time}'
|
||||
metrics:
|
||||
- type: counter
|
||||
name: nginx_http_response_codes_total
|
||||
help: Total number of requests, by response code, normalized path, and HTTP method
|
||||
match: '%{OURLOG}'
|
||||
labels:
|
||||
code: '{{.response}}'
|
||||
method: '{{.verb}}'
|
||||
path: '{{if .apipath}}/api/v1{{.apipath}}{{else if .external}}/api/v1/external/...{{else if .rootpath}}{{if .realm}}/{{else}}(other){{end}}{{else if .toppath}}/{{.toppath}}{{else if .prefixpath}}/{{.prefixpath}}...{{else}}(other){{end}}'
|
||||
- type: counter
|
||||
name: nginx_http_response_bytes
|
||||
help: Total number of bytes, by normalized path
|
||||
match: '%{OURLOG}'
|
||||
value: '{{.bytes}}'
|
||||
labels:
|
||||
path: '{{if .apipath}}/api/v1{{.apipath}}{{else if .external}}/api/v1/external/...{{else if .rootpath}}{{if .realm}}/{{else}}(other){{end}}{{else if .toppath}}/{{.toppath}}{{else if .prefixpath}}/{{.prefixpath}}...{{else}}(other){{end}}'
|
||||
- type: histogram
|
||||
name: nginx_http_response_time_seconds
|
||||
help: Response time in seconds, from first request byte to last response byte
|
||||
match: '%{OURLOG}'
|
||||
value: '{{.response_time}}'
|
||||
buckets:
|
||||
- 0.001
|
||||
- 0.002
|
||||
- 0.005
|
||||
- 0.010
|
||||
- 0.025
|
||||
- 0.050
|
||||
- 0.100
|
||||
- 0.200
|
||||
- 0.500
|
||||
- 1.000
|
||||
- 2.000
|
||||
- 5.000
|
||||
- 10.00
|
||||
- 20.00
|
||||
- 50.00
|
||||
- 60.00
|
||||
- 120.0
|
||||
labels:
|
||||
code: '{{.response}}'
|
||||
method: '{{.verb}}'
|
||||
path: '{{if .apipath}}/api/v1{{.apipath}}{{else if .external}}/api/v1/external/...{{else if .rootpath}}{{if .realm}}/{{else}}(other){{end}}{{else if .toppath}}/{{.toppath}}{{else if .prefixpath}}/{{.prefixpath}}...{{else}}(other){{end}}'
|
||||
|
||||
server:
|
||||
protocol: http
|
||||
host: 127.0.0.1
|
||||
port: 9144
|
||||
157
puppet/kandra/templates/prometheus/prometheus.yaml.template.erb
Normal file
157
puppet/kandra/templates/prometheus/prometheus.yaml.template.erb
Normal file
@@ -0,0 +1,157 @@
|
||||
global:
|
||||
# Set the scrape interval to every 15 seconds. Default is every 1 minute.
|
||||
scrape_interval: 15s
|
||||
# Evaluate rules every 15 seconds. The default is every 1 minute.
|
||||
evaluation_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: "prometheus"
|
||||
static_configs:
|
||||
- targets: ["localhost:9090"]
|
||||
|
||||
- job_name: "grafana"
|
||||
static_configs:
|
||||
- targets: ["localhost:3000"]
|
||||
|
||||
- job_name: "pushgateway"
|
||||
scrape_interval: 2m
|
||||
honor_labels: true
|
||||
static_configs:
|
||||
- targets: ["localhost:9091"]
|
||||
|
||||
- job_name: "wal-g"
|
||||
scrape_interval: 5m
|
||||
scrape_timeout: 20s
|
||||
static_configs:
|
||||
- targets:
|
||||
<% @backup_buckets.each do |bucket| -%>
|
||||
- <%= bucket %>
|
||||
<% end -%>
|
||||
relabel_configs:
|
||||
- source_labels: [__address__]
|
||||
target_label: __param_bucket
|
||||
- source_labels: [__param_bucket]
|
||||
target_label: bucket
|
||||
- target_label: __address__
|
||||
replacement: localhost:9188
|
||||
|
||||
- job_name: "vector"
|
||||
scrape_interval: 30s
|
||||
scrape_timeout: 3s
|
||||
static_configs:
|
||||
- targets: ["localhost:9081"]
|
||||
|
||||
- job_name: "node"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=node_exporter"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: &relabels
|
||||
# This relabel config is reused across all teleport-sd scrape configs. Because
|
||||
# of https://github.com/prometheus/prometheus/issues/2347 (lack of <<: support),
|
||||
# we include some exporter-specific rules in here, with a source_label/regex pair.
|
||||
- source_labels: ["exporter"]
|
||||
regex: rabbitmq
|
||||
# Rabbitmq should use the heaver-weight but more useful per-object endpoint
|
||||
target_label: __metrics_path__
|
||||
replacement: "/metrics/per-object"
|
||||
- source_labels: ["role"]
|
||||
regex: "(prod|staging)_app_frontend"
|
||||
# Prod and staging get a deploy=
|
||||
replacement: "${1}"
|
||||
target_label: "deploy"
|
||||
- source_labels: ["role"]
|
||||
regex: "chat"
|
||||
# So does chat.zulip.org
|
||||
replacement: "prod"
|
||||
target_label: "deploy"
|
||||
- source_labels: ["exporter"]
|
||||
regex: "node_exporter"
|
||||
# The historical node_exporter data does not like getting a surprise deploy=
|
||||
# label, so strip it off
|
||||
target_label: "deploy"
|
||||
replacement: ""
|
||||
- action: labeldrop
|
||||
# Finally, strip Teleport-specific labels
|
||||
regex: "type|exporter|name"
|
||||
|
||||
- job_name: "camo"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=camo"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "smokescreen"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=smokescreen"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "redis"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=redis_exporter"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "postgres"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=postgres_exporter"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "access_logs"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=grok_exporter"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "uwsgi"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=uwsgi_exporter"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "rabbitmq"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=rabbitmq"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "tornado"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=process_exporter"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "memcached"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=memcached_exporter"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
|
||||
- job_name: "tusd"
|
||||
proxy_url: "http://127.0.0.1:8080"
|
||||
scheme: http
|
||||
http_sd_configs:
|
||||
- url: "http://127.0.0.1:9092/targets?type=prometheus&exporter=tusd"
|
||||
refresh_interval: 1m
|
||||
relabel_configs: *relabels
|
||||
Reference in New Issue
Block a user