From 2a6f477d8f706171f799efa5c88cd40a0f01cd05 Mon Sep 17 00:00:00 2001 From: divyathawani Date: Tue, 18 Nov 2025 16:29:28 +0530 Subject: [PATCH] improvement in grafana implementation --- .ebextensions/003_add_grafana_repo.config | 43 ++++- .platform/hooks/postdeploy/grafana-setup.sh | 175 ++++++++++---------- GIDDH_UI_Sharp | 1 + 3 files changed, 118 insertions(+), 101 deletions(-) create mode 160000 GIDDH_UI_Sharp diff --git a/.ebextensions/003_add_grafana_repo.config b/.ebextensions/003_add_grafana_repo.config index 65caeaf..f4a6eb8 100644 --- a/.ebextensions/003_add_grafana_repo.config +++ b/.ebextensions/003_add_grafana_repo.config @@ -1,15 +1,40 @@ commands: - 01_add_grafana_repo: + 01_download_alloy: command: | - sudo wget -q -O /tmp/grafana.key https://rpm.grafana.com/gpg.key - sudo rpm --import /tmp/grafana.key - echo -e '[grafana]\nname=grafana\nbaseurl=https://rpm.grafana.com\nrepo_gpgcheck=1\nenabled=1\ngpgcheck=1\ngpgkey=https://rpm.grafana.com/gpg.key\nsslverify=1\nsslcacert=/etc/pki/tls/certs/ca-bundle.crt' | sudo tee /etc/yum.repos.d/grafana.repo + echo "[INFO] Downloading Grafana Alloy v1.3.0..." + ALLOY_VERSION="1.3.0" + RPM_FILE="alloy-${ALLOY_VERSION}-1.amd64.rpm" + DOWNLOAD_URL="https://github.com/grafana/alloy/releases/download/v${ALLOY_VERSION}/${RPM_FILE}" + + curl -L -o /tmp/alloy.rpm "$DOWNLOAD_URL" + + if [ ! -s /tmp/alloy.rpm ]; then + echo "[ERROR] Alloy RPM download failed." + exit 1 + fi 02_install_alloy: - command: sudo yum install -y alloy + command: | + echo "[INFO] Installing Alloy..." + sudo rpm -Uvh /tmp/alloy.rpm || true + + 03_prepare_directories: + command: | + echo "[INFO] Creating Alloy directories..." + sudo mkdir -p /etc/alloy + sudo mkdir -p /etc/systemd/system/alloy.service.d + + 04_set_root_user: + command: | + echo "[INFO] Setting Alloy to run as root..." + cat < /dev/null < /dev/null <<'EOF' local.file "endpoints" { - filename = "/etc/alloy/endpoints.json" + filename = "/etc/alloy/endpoints.json" } -// loki config for logs local.file_match "logs" { - path_targets = [ - { - "job" = "nginx", - "namespace" = "/var/log/nginx", - "__path__" = "/var/log/nginx/*.log", - }, - { - "job" = "application", - "namespace" = "/var/log/template-logs", - "__path__" = "/var/log/template-logs/*.log", - }, - ] - ignore_older_than = "24h" - sync_period = "10s" + path_targets = [ + { + job = "nginx", + namespace = "/var/log/nginx", + __path__ = "/var/log/nginx/*.log", + }, + { + job = "application", + namespace = "/var/log/template-logs", + __path__ = "/var/log/template-logs/*.log", + }, + ] + ignore_older_than = "24h" + sync_period = "10s" } loki.source.file "log_source_file" { - targets = local.file_match.logs.targets - forward_to = [loki.process.log_process.receiver] - tail_from_end = true + targets = local.file_match.logs.targets + forward_to = [loki.process.log_process.receiver] + tail_from_end = true } loki.process "log_process" { - forward_to = [loki.write.log_write.receiver] - stage.decolorize {} - stage.static_labels { - values = { - env = json_path(local.file.endpoints.content, ".environment")[0], - server_region = json_path(local.file.endpoints.content, ".server_region")[0], - company = json_path(local.file.endpoints.content, ".company")[0], - product = json_path(local.file.endpoints.content, ".product")[0], - service_name = json_path(local.file.endpoints.content, ".service_name")[0], - instance = constants.hostname, - } - } + forward_to = [loki.write.log_write.receiver] + stage.decolorize {} + stage.static_labels { + values = { + env = json_path(local.file.endpoints.content, ".environment")[0], + server_region = json_path(local.file.endpoints.content, ".server_region")[0], + company = json_path(local.file.endpoints.content, ".company")[0], + product = json_path(local.file.endpoints.content, ".product")[0], + service_name = json_path(local.file.endpoints.content, ".service_name")[0], + instance = constants.hostname, + } + } } loki.write "log_write" { - endpoint { - url = json_path(local.file.endpoints.content, ".logs.url")[0] - headers = { - "X-Scope-OrgID" = json_path(local.file.endpoints.content, ".orgId")[0], - } - retry_on_http_429 = true - } + endpoint { + url = json_path(local.file.endpoints.content, ".logs.url")[0] + headers = { + "X-Scope-OrgID" = json_path(local.file.endpoints.content, ".orgId")[0], + } + retry_on_http_429 = true + } } -// prometheus config for system monitering prometheus.exporter.unix "metrics" { - disable_collectors = [] - include_exporter_metrics = true - - filesystem { - fs_types_exclude = "^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$" - mount_points_exclude = "^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+)($|/)" - mount_timeout = "5s" - } - - netclass { - ignored_devices = "^(veth.*|cali.*|[a-f0-9]{15})$" - } - - netdev { - device_exclude = "^(veth.*|cali.*|[a-f0-9]{15})$" - } + include_exporter_metrics = true } prometheus.scrape "metrics_scrape" { - scrape_interval = "15s" - targets = prometheus.exporter.unix.metrics.targets - forward_to = [prometheus.relabel.metrics_relabel.receiver] + scrape_interval = "15s" + targets = prometheus.exporter.unix.metrics.targets + forward_to = [prometheus.relabel.metrics_relabel.receiver] } prometheus.relabel "metrics_relabel" { - forward_to = [prometheus.remote_write.metrics_write.receiver] + forward_to = [prometheus.remote_write.metrics_write.receiver] } prometheus.remote_write "metrics_write" { - endpoint { - url = json_path(local.file.endpoints.content, ".metrics.url")[0] - headers = { - "X-Scope-OrgID" = json_path(local.file.endpoints.content, ".orgId")[0], - } - } + endpoint { + url = json_path(local.file.endpoints.content, ".metrics.url")[0] + headers = { + "X-Scope-OrgID" = json_path(local.file.endpoints.content, ".orgId")[0], + } + } external_labels = { - env = json_path(local.file.endpoints.content, ".environment")[0], - server_region = json_path(local.file.endpoints.content, ".server_region")[0], - company = json_path(local.file.endpoints.content, ".company")[0], - product = json_path(local.file.endpoints.content, ".product")[0], - service_name = json_path(local.file.endpoints.content, ".service_name")[0], - instance = constants.hostname, + env = json_path(local.file.endpoints.content, ".environment")[0], + server_region = json_path(local.file.endpoints.content, ".server_region")[0], + company = json_path(local.file.endpoints.content, ".company")[0], + product = json_path(local.file.endpoints.content, ".product")[0], + service_name = json_path(local.file.endpoints.content, ".service_name")[0], + instance = constants.hostname, } } EOF @@ -135,4 +126,4 @@ EOF echo "[INFO] Restarting alloy service..." sudo systemctl daemon-reexec sudo systemctl restart alloy -echo "[INFO] Grafana setup complete." +echo "[INFO] Grafana Alloy configuration applied successfully." diff --git a/GIDDH_UI_Sharp b/GIDDH_UI_Sharp new file mode 160000 index 0000000..888568b --- /dev/null +++ b/GIDDH_UI_Sharp @@ -0,0 +1 @@ +Subproject commit 888568bc6df7b7a8dbecc6e0a0f74728e8ab4da6