Merge commit 'e5bed7ac380b6adb54b60a2a72a2a8f07f50d6c1' as 'bridges'

This commit is contained in:
Hernando Castano
2021-04-21 11:56:23 -04:00
339 changed files with 71658 additions and 0 deletions
@@ -0,0 +1,18 @@
FROM ruby:alpine
RUN apk add --no-cache git
ENV APP_HOME /app
ENV RACK_ENV production
RUN mkdir $APP_HOME
WORKDIR $APP_HOME
# The latest master has some changes in how the application is run. We don't
# want to update just yet so we're pinning to an old commit.
RUN git clone https://github.com/ananace/ruby-grafana-matrix.git $APP_HOME
RUN git checkout 0d662b29633d16176291d11a2d85ba5107cf7de3
RUN bundle install --without development
RUN mkdir /config && touch /config/config.yml && ln -s /config/config.yml ./config.yml
CMD ["bundle", "exec", "bin/server"]
@@ -0,0 +1,15 @@
# A disabled version of monitoring.
#
# We replace each service with a no-op container. We can't simply not include this file,
# cause the bridge-specific compose files might have overrides.
version: '3.5'
services:
prometheus-metrics:
image: alpine
grafana-dashboard:
image: alpine
grafana-matrix-notifier:
image: alpine
@@ -0,0 +1,32 @@
version: '3.5'
services:
prometheus-metrics:
image: prom/prometheus:v2.20.1
volumes:
- ./monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
grafana-dashboard:
image: grafana/grafana:7.1.3
environment:
GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_ADMIN_PASS:-admin}
GF_SERVER_ROOT_URL: ${GRAFANA_SERVER_ROOT_URL}
GF_SERVER_DOMAIN: ${GRAFANA_SERVER_DOMAIN}
volumes:
- ./monitoring/grafana/provisioning/:/etc/grafana/provisioning/:ro
ports:
- "3000:3000"
depends_on:
- prometheus-metrics
grafana-matrix-notifier:
build:
context: .
dockerfile: ./monitoring/GrafanaMatrix.Dockerfile
volumes:
- ./monitoring/grafana-matrix:/config
ports:
- "4567:4567"
depends_on:
- grafana-dashboard
@@ -0,0 +1,49 @@
---
# Webhook server configuration
# Or use the launch options `-o '::' -p 4567`
#bind: '::'
#port: 4567
# Set up your HS connections
matrix:
- name: matrix-parity-io
url: https://matrix.parity.io
# Create a user - log that user in using a post request
# curl -XPOST -d '{"type": "m.login.password",
# "user":"grafana",
# "password":"dummy-password"}'
# "https://my-matrix-server/_matrix/client/r0/login"
# Fill that access token in here
access_token: "<access_token>"
#device_id: <device> # Optional
# The default message type for messages, should be either m.text or m.notice,
# defaults to m.text
msgtype: m.text
# Set up notification ingress rules
rules:
- name: bridge # Name of the rule
room: "#bridges-workers:matrix.parity.io" # Room or ID
matrix: matrix-parity-io # The Matrix HS to use - defaults to first one
msgtype: m.notice
# The following values are optional:
image: true # Attach image to the notification?
embed_image: true # Upload and embed the image into the message?
#templates:
# Templates to use when rendering the notification, available placeholders:
# %TEMPLATES% - lib/grafana_matrix/templates
# $<env> - Environment variables
#html: "%TEMPLATES%/html.erb" # Path to HTML template
#plain: "%TEMPLATES%/plain.erb" # Path to plaintext template
#auth:
#user: example
#pass: any HTTP encodable string
#- name: other-hq
# room: "#hq:private.matrix.org
# matrix: matrix-priv
# To use the webhook, you need to configure it into Grafana as:
#
# Url: http://<server address>:<port>/hook?rule=<rule name>
# Http Method: POST
@@ -0,0 +1,6 @@
- name: 'default'
orgId: 1
folder: ''
type: file
options:
path: '/etc/grafana/dashboards'
@@ -0,0 +1,16 @@
# list of datasources to insert/update depending
# whats available in the database
datasources:
# <string, required> name of the datasource. Required
- name: Prometheus
# <string, required> datasource type. Required
type: prometheus
# <string, required> access mode. direct or proxy. Required
access: proxy
# <int> org id. will default to orgId 1 if not specified
orgId: 1
# <string> url
url: http://prometheus-metrics:9090
# <bool> mark as default datasource. Max one per org
isDefault: true
version: 1
@@ -0,0 +1,15 @@
notifiers:
- name: Matrix
type: webhook
uid: notifier1
is_default: true
send_reminder: true
frequency: 1h
disable_resolve_message: false
settings:
url: http://grafana-matrix-notifier:4567/hook?rule=bridge
http_method: POST
delete_notifiers:
- name: Matrix
uid: notifier1
@@ -0,0 +1,7 @@
global:
scrape_interval: 15s
scrape_configs:
- job_name: dummy
file_sd_configs:
- files:
- /etc/prometheus/targets-*.yml