From 371808f671c519b2a97a1b3e244013d100dbf4c4 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Tue, 5 Aug 2025 22:00:38 -0400 Subject: [PATCH 01/11] Update docker-compose.yml --- docker-compose.yml | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index effedf6..8a9099e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,7 @@ services: xray-config: - build: - context: ./xray-config - dockerfile: Dockerfile + image: mahsanet/compassvpn-agent-xray-config:1 restart: always env_file: - env_file @@ -19,9 +17,7 @@ services: max-file: "1" xray: - build: - context: ./xray - dockerfile: Dockerfile + image: mahsanet/compassvpn-agent-xray:1 volumes: - "/var/log:/var/log" cap_add: @@ -44,10 +40,7 @@ services: - "443:443/tcp" - "443:443/udp" - nginx: - build: - context: ./nginx - dockerfile: Dockerfile + image: mahsanet/compassvpn-agent-nginx:1 volumes: - "acme:/root/.acme.sh/" - "/var/log:/var/log" @@ -72,10 +65,7 @@ services: max-size: "10m" max-file: "1" - xray-exporter: - build: - context: ./xray-exporter - dockerfile: Dockerfile + image: mahsanet/compassvpn-agent-xray-exporter:1 restart: always depends_on: - xray @@ -91,10 +81,7 @@ services: max-size: "10m" max-file: "1" - metric-forwarder: - build: - context: ./metric-forwarder - dockerfile: Dockerfile + image: mahsanet/compassvpn-agent-metric-forwarder:1 restart: always env_file: - env_file @@ -138,9 +125,7 @@ services: max-file: "1" fail2ban: - build: - context: ./fail2ban - dockerfile: Dockerfile + image: image: mahsanet/compassvpn-agent-fail2ban:1 restart: always network_mode: host environment: From f97361568ae161cbc53244a8a2705d310277029e Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Tue, 5 Aug 2025 22:03:06 -0400 Subject: [PATCH 02/11] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8a9099e..a863ed0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -125,7 +125,7 @@ services: max-file: "1" fail2ban: - image: image: mahsanet/compassvpn-agent-fail2ban:1 + image: mahsanet/compassvpn-agent-fail2ban:1 restart: always network_mode: host environment: From 7659b9a3dd5334634a8fa21ce14c6f08e2986e31 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Tue, 5 Aug 2025 22:06:00 -0400 Subject: [PATCH 03/11] Update docker-compose.yml --- docker-compose.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index a863ed0..e641c75 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -40,6 +40,7 @@ services: - "443:443/tcp" - "443:443/udp" + nginx: image: mahsanet/compassvpn-agent-nginx:1 volumes: - "acme:/root/.acme.sh/" @@ -65,6 +66,7 @@ services: max-size: "10m" max-file: "1" + xray-exporter: image: mahsanet/compassvpn-agent-xray-exporter:1 restart: always depends_on: @@ -81,6 +83,7 @@ services: max-size: "10m" max-file: "1" + metric-forwarder: image: mahsanet/compassvpn-agent-metric-forwarder:1 restart: always env_file: From 18c9a52a436d2e8a3a507852695de3d215b24660 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Wed, 6 Aug 2025 14:51:59 -0400 Subject: [PATCH 04/11] Update common.py --- metric-forwarder/common.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/metric-forwarder/common.py b/metric-forwarder/common.py index 4be22b3..7fdbfcb 100644 --- a/metric-forwarder/common.py +++ b/metric-forwarder/common.py @@ -30,10 +30,14 @@ def generate_config(): "remote_write": [ { "url": remote_write_url, - "basic_auth": { - "username": os.environ['GRAFANA_AGENT_REMOTE_WRITE_USER'], - "password": os.environ['GRAFANA_AGENT_REMOTE_WRITE_PASSWORD'] - } + "authorization": { + "type": "Bearer", + "credentials": os.environ["GRAFANA_AGENT_REMOTE_WRITE_TOKEN"] + }, + #"basic_auth": { + # "username": os.environ['GRAFANA_AGENT_REMOTE_WRITE_USER'], + # "password": os.environ['GRAFANA_AGENT_REMOTE_WRITE_PASSWORD'] + #} } ], "scrape_configs": [ From e563f93719c659955e3cbceef6fa3e2306241237 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Wed, 6 Aug 2025 14:59:50 -0400 Subject: [PATCH 05/11] Update common.py --- metric-forwarder/common.py | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/metric-forwarder/common.py b/metric-forwarder/common.py index 7fdbfcb..d905c13 100644 --- a/metric-forwarder/common.py +++ b/metric-forwarder/common.py @@ -15,6 +15,30 @@ # Convert to YAML and save to file def generate_config(): + if os.environ['METRIC_PUSH_METHOD'] == "grafana_agent": + remote_write_item = { + "url": os.environ['GRAFANA_AGENT_REMOTE_WRITE_URL'], + "basic_auth": { + "username": os.environ['GRAFANA_AGENT_REMOTE_WRITE_USER'], + "password": os.environ['GRAFANA_AGENT_REMOTE_WRITE_PASSWORD'] + } + } + else: + # pushgateway + remote_write_item = { + "url": os.environ['PUSHGATEWAY_URL'] + } + if os.environ.get('PUSHGATEWAY_AUTH_TOKEN', "") != "": + remote_write_item["authorization"] = { + "type": "Bearer", + "credentials": os.environ["PUSHGATEWAY_AUTH_TOKEN"] + } + else: + remote_write_item["basic_auth"] = { + "username": os.environ['PUSHGATEWAY_AUTH_USER'], + "password": os.environ['PUSHGATEWAY_AUTH_PASSWORD'] + } + config = { "server": { "log_level": "warn" @@ -28,17 +52,7 @@ def generate_config(): { "name": "default", "remote_write": [ - { - "url": remote_write_url, - "authorization": { - "type": "Bearer", - "credentials": os.environ["GRAFANA_AGENT_REMOTE_WRITE_TOKEN"] - }, - #"basic_auth": { - # "username": os.environ['GRAFANA_AGENT_REMOTE_WRITE_USER'], - # "password": os.environ['GRAFANA_AGENT_REMOTE_WRITE_PASSWORD'] - #} - } + remote_write_item ], "scrape_configs": [ { From 6cf3b2c6d9c60b314e38c3c55d533407d11ffb28 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Wed, 6 Aug 2025 15:06:12 -0400 Subject: [PATCH 06/11] Update common.py --- metric-forwarder/common.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/metric-forwarder/common.py b/metric-forwarder/common.py index d905c13..59b9814 100644 --- a/metric-forwarder/common.py +++ b/metric-forwarder/common.py @@ -9,15 +9,14 @@ DONOR = os.environ['DONOR'] -remote_write_url = os.environ['GRAFANA_AGENT_REMOTE_WRITE_URL'] -if not remote_write_url.endswith("/push"): - remote_write_url += "/push" - # Convert to YAML and save to file def generate_config(): if os.environ['METRIC_PUSH_METHOD'] == "grafana_agent": + remote_write_url = os.environ['GRAFANA_AGENT_REMOTE_WRITE_URL'] + if not remote_write_url.endswith("/push"): + remote_write_url += "/push" remote_write_item = { - "url": os.environ['GRAFANA_AGENT_REMOTE_WRITE_URL'], + "url": remote_write_url, "basic_auth": { "username": os.environ['GRAFANA_AGENT_REMOTE_WRITE_USER'], "password": os.environ['GRAFANA_AGENT_REMOTE_WRITE_PASSWORD'] From e909b38eaa1b79ffbcdca8fa6ea1ba3fe8d96cf0 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Wed, 6 Aug 2025 15:10:38 -0400 Subject: [PATCH 07/11] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e641c75..c8679bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -84,7 +84,7 @@ services: max-file: "1" metric-forwarder: - image: mahsanet/compassvpn-agent-metric-forwarder:1 + image: mahsanet/compassvpn-agent-metric-forwarder:2 restart: always env_file: - env_file From 3d3ba56d88ba3f24a894c4698de7350de7e4e468 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Wed, 6 Aug 2025 18:50:56 -0400 Subject: [PATCH 08/11] Update common.py --- metric-forwarder/common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metric-forwarder/common.py b/metric-forwarder/common.py index 59b9814..44bb31b 100644 --- a/metric-forwarder/common.py +++ b/metric-forwarder/common.py @@ -45,7 +45,7 @@ def generate_config(): "metrics": { "wal_directory": "/tmp/grafana-agent-wal", "global": { - "scrape_interval": "5m" + "scrape_interval": os.environ['METRIC_INTERVAL'] }, "configs": [ { From ef115926f9028ac1e8720ccd5433aa6ec4ea24ff Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Wed, 6 Aug 2025 18:51:59 -0400 Subject: [PATCH 09/11] Update docker-compose.yml --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index c8679bf..8504052 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -84,7 +84,7 @@ services: max-file: "1" metric-forwarder: - image: mahsanet/compassvpn-agent-metric-forwarder:2 + image: mahsanet/compassvpn-agent-metric-forwarder:3 restart: always env_file: - env_file From 15ed9ce755bcfe87769baf7a1b7d2ad28a01662e Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Sat, 9 Aug 2025 13:21:55 -0400 Subject: [PATCH 10/11] update images --- docker-compose.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8504052..e8b2c25 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ services: xray-config: - image: mahsanet/compassvpn-agent-xray-config:1 + image: compassvpn/xray-config:1 restart: always env_file: - env_file @@ -17,7 +17,7 @@ services: max-file: "1" xray: - image: mahsanet/compassvpn-agent-xray:1 + image: compassvpn/xray:1 volumes: - "/var/log:/var/log" cap_add: @@ -41,7 +41,7 @@ services: - "443:443/udp" nginx: - image: mahsanet/compassvpn-agent-nginx:1 + image: compassvpn/nginx:1 volumes: - "acme:/root/.acme.sh/" - "/var/log:/var/log" @@ -67,7 +67,7 @@ services: max-file: "1" xray-exporter: - image: mahsanet/compassvpn-agent-xray-exporter:1 + image: compassvpn/xray-exporter:1 restart: always depends_on: - xray @@ -84,7 +84,7 @@ services: max-file: "1" metric-forwarder: - image: mahsanet/compassvpn-agent-metric-forwarder:3 + image: compassvpn/metric-forwarder:1 restart: always env_file: - env_file @@ -128,7 +128,7 @@ services: max-file: "1" fail2ban: - image: mahsanet/compassvpn-agent-fail2ban:1 + image: compassvpn/fail2ban:1 restart: always network_mode: host environment: From e9976b4d759a86b1991646e38e5850a28bf0cdc4 Mon Sep 17 00:00:00 2001 From: mahsanet-com Date: Sun, 10 Aug 2025 16:36:31 -0400 Subject: [PATCH 11/11] fix --- docker-compose.yml | 4 +++- metric-forwarder/common.py | 5 +++-- metric-forwarder/run.py | 17 +++++------------ 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index e8b2c25..e00a2ee 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,8 @@ services: volumes: - "/etc/machine-id:/host/etc/machine-id" - "acme:/root/.acme.sh/" + ports: + - "5000:5000" logging: driver: "json-file" options: @@ -84,7 +86,7 @@ services: max-file: "1" metric-forwarder: - image: compassvpn/metric-forwarder:1 + image: compassvpn/metric-forwarder:3 restart: always env_file: - env_file diff --git a/metric-forwarder/common.py b/metric-forwarder/common.py index 44bb31b..e848e0b 100644 --- a/metric-forwarder/common.py +++ b/metric-forwarder/common.py @@ -1,5 +1,4 @@ import os -import json import yaml from utils import get_public_ip @@ -7,11 +6,13 @@ instance_ip = instance_location_info['ip'] +METRIC_PUSH_METHOD = os.environ.get('METRIC_PUSH_METHOD', 'pushgateway') + DONOR = os.environ['DONOR'] # Convert to YAML and save to file def generate_config(): - if os.environ['METRIC_PUSH_METHOD'] == "grafana_agent": + if METRIC_PUSH_METHOD == "grafana_agent": remote_write_url = os.environ['GRAFANA_AGENT_REMOTE_WRITE_URL'] if not remote_write_url.endswith("/push"): remote_write_url += "/push" diff --git a/metric-forwarder/run.py b/metric-forwarder/run.py index d3b2156..f163f1f 100644 --- a/metric-forwarder/run.py +++ b/metric-forwarder/run.py @@ -1,28 +1,21 @@ import os -import platform -import threading from time import sleep -import requests -from prometheus_client.parser import text_string_to_metric_families -from requests.auth import HTTPBasicAuth -import unicodedata -# initial wait -print("initial 30 seconds wait...", flush=True) -# sleep(30) - -METRIC_PUSH_METHOD = os.environ.get('METRIC_PUSH_METHOD', 'pushgateway') +METRIC_PUSH_METHOD = os.environ.get('METRIC_PUSH_METHOD') if METRIC_PUSH_METHOD == "pushgateway": from pushgateway import run_jobs run_jobs() -else: +elif METRIC_PUSH_METHOD == "grafana_agent": # grafana_agent method from grafana_agent import start start() +else: + sleep(3) + while True: print("entering endless loop.", flush=True) sleep(1000)