mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-04-13 09:42:01 +00:00
Adding django prometheus metrics.
This commit is contained in:
parent
9e086a0caa
commit
893619596b
12 changed files with 47 additions and 7 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -19,6 +19,7 @@ certbot.conf
|
|||
task_env.py
|
||||
app_env.py
|
||||
data/
|
||||
.prom_cache
|
||||
config/certificates
|
||||
**/*.xcuserstate
|
||||
UserInterfaceState.xcuserstate
|
||||
|
|
2
Makefile
2
Makefile
|
@ -126,7 +126,7 @@ push_monitor:
|
|||
push_deploy:
|
||||
- docker buildx build . --push --platform linux/amd64,linux/arm64 --file=docker/newsblur_deploy.Dockerfile --tag=newsblur/newsblur_deploy
|
||||
push_images: push_web push_node push_monitor push_deploy
|
||||
push: build push_images
|
||||
push: push_images
|
||||
|
||||
# Tasks
|
||||
deploy_web:
|
||||
|
|
|
@ -28,3 +28,21 @@ if workers > 4:
|
|||
|
||||
if os.environ.get('DOCKERBUILD', False):
|
||||
workers = 2
|
||||
|
||||
prom_folder = '/srv/newsblur/.prom_cache'
|
||||
os.makedirs(prom_folder, exist_ok=True)
|
||||
os.environ['PROMETHEUS_MULTIPROC_DIR'] = prom_folder
|
||||
for filename in os.listdir(prom_folder):
|
||||
file_path = os.path.join(prom_folder, filename)
|
||||
try:
|
||||
if os.path.isfile(file_path) or os.path.islink(file_path):
|
||||
os.unlink(file_path)
|
||||
elif os.path.isdir(file_path):
|
||||
shutil.rmtree(file_path)
|
||||
except Exception as e:
|
||||
print('Failed to delete %s. Reason: %s' % (file_path, e))
|
||||
|
||||
from prometheus_client import multiprocess
|
||||
|
||||
def child_exit(server, worker):
|
||||
multiprocess.mark_process_dead(worker.pid)
|
||||
|
|
|
@ -27,6 +27,7 @@ django-oauth-toolkit==1.3.3
|
|||
django-paypal==1.1.2
|
||||
django-qurl==0.1.1
|
||||
django-pipeline>=2,<3
|
||||
django-prometheus>=2,<3
|
||||
django-redis-cache==3.0.0
|
||||
django-redis-sessions==0.6.1
|
||||
django-ses==1.0.3
|
||||
|
|
|
@ -33,6 +33,7 @@ services:
|
|||
container_name: grafana
|
||||
image: grafana/grafana:8.2.6
|
||||
environment:
|
||||
- GF_SECURITY_ADMIN_USER=admin
|
||||
- GF_SECURITY_ADMIN_PASSWORD=pass
|
||||
depends_on:
|
||||
- prometheus
|
||||
|
|
|
@ -5,6 +5,9 @@ services:
|
|||
hostname: nb.com
|
||||
container_name: newsblur_web
|
||||
image: newsblur/newsblur_${NEWSBLUR_BASE:-python3}:latest
|
||||
# build:
|
||||
# context: /srv/newsblur
|
||||
# dockerfile: docker/newsblur_base_image.Dockerfile
|
||||
user: "${CURRENT_UID}:${CURRENT_GID}"
|
||||
environment:
|
||||
- DOCKERBUILD=True
|
||||
|
|
|
@ -57,7 +57,7 @@ router_logging = false
|
|||
static_root_path = public
|
||||
|
||||
# enable gzip
|
||||
enable_gzip = false
|
||||
enable_gzip = true
|
||||
|
||||
# https certs & key file
|
||||
cert_file =
|
||||
|
@ -937,4 +937,4 @@ default_timezone = browser
|
|||
|
||||
[expressions]
|
||||
# Enable or disable the expressions functionality.
|
||||
enabled = true
|
||||
enabled = true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
global:
|
||||
scrape_interval: 5s
|
||||
scrape_interval: 30s
|
||||
scrape_configs:
|
||||
- job_name: 'node_exporter'
|
||||
consul_sd_configs:
|
||||
|
@ -115,6 +115,11 @@ scrape_configs:
|
|||
- targets: ['{{ monitor_server }}']
|
||||
metrics_path: /monitor/users
|
||||
scheme: https
|
||||
- job_name: 'django'
|
||||
static_configs:
|
||||
- targets: ['{{ monitor_server }}']
|
||||
metrics_path: /metrics
|
||||
scheme: https
|
||||
|
||||
#- job_name: 'mongo heap usage'
|
||||
# consul_sd_configs:
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
global:
|
||||
scrape_interval: 5s
|
||||
scrape_interval: 30s
|
||||
external_labels:
|
||||
monitor: 'my-monitor'
|
||||
|
||||
|
@ -122,6 +122,13 @@ scrape_configs:
|
|||
scheme: https
|
||||
tls_config:
|
||||
insecure_skip_verify: true
|
||||
- job_name: 'django'
|
||||
static_configs:
|
||||
- targets: ['haproxy']
|
||||
metrics_path: /metrics
|
||||
scheme: https
|
||||
tls_config:
|
||||
insecure_skip_verify: true
|
||||
|
||||
#- job_name: 'mongo heap usage'
|
||||
# static_configs:
|
||||
|
|
|
@ -93,7 +93,7 @@ YOUTUBE_API_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
|||
DATABASES = {
|
||||
'default': {
|
||||
'NAME': 'newsblur',
|
||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||
'ENGINE': 'django_prometheus.db.backends.postgresql',
|
||||
#'ENGINE': 'django.db.backends.mysql',
|
||||
'USER': 'newsblur',
|
||||
'PASSWORD': 'newsblur',
|
||||
|
|
|
@ -104,6 +104,7 @@ FILE_UPLOAD_MAX_MEMORY_SIZE = 5242880 # 5 MB
|
|||
|
||||
|
||||
MIDDLEWARE = (
|
||||
'django_prometheus.middleware.PrometheusBeforeMiddleware',
|
||||
'django.middleware.gzip.GZipMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'subdomains.middleware.SubdomainMiddleware',
|
||||
|
@ -123,6 +124,7 @@ MIDDLEWARE = (
|
|||
'apps.profile.middleware.SQLLogToConsoleMiddleware',
|
||||
'utils.mongo_raw_log_middleware.MongoDumpMiddleware',
|
||||
'utils.redis_raw_log_middleware.RedisDumpMiddleware',
|
||||
'django_prometheus.middleware.PrometheusAfterMiddleware',
|
||||
)
|
||||
|
||||
AUTHENTICATION_BACKENDS = (
|
||||
|
@ -314,6 +316,7 @@ INSTALLED_APPS = (
|
|||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django_extensions',
|
||||
'django_prometheus',
|
||||
'paypal.standard.ipn',
|
||||
'apps.rss_feeds',
|
||||
'apps.reader',
|
||||
|
|
|
@ -75,7 +75,8 @@ urlpatterns = [
|
|||
{'next_page': '/'}, name='logout'),
|
||||
url(r'^account/ifttt/v1/', include('apps.oauth.urls')),
|
||||
url(r'^account/', include('oauth2_provider.urls', namespace='oauth2_provider')),
|
||||
url(r'^monitor/', include('apps.monitor.urls'), name="monitor")
|
||||
url(r'^monitor/', include('apps.monitor.urls'), name="monitor"),
|
||||
url('', include('django_prometheus.urls')),
|
||||
]
|
||||
|
||||
if settings.DEBUG:
|
||||
|
|
Loading…
Add table
Reference in a new issue