Update templates for external monitoring - #208
Merged
Merged
Conversation
25 tasks
mattkjames7
marked this pull request as ready for review
April 8, 2026 14:23
mattkjames7
requested review from
antejavor,
as51340 and
katarinasupe
as code owners
April 8, 2026 14:23
as51340
requested changes
Apr 9, 2026
as51340
reviewed
Apr 9, 2026
as51340
reviewed
Apr 9, 2026
Collaborator
|
Also, make sure to open a PR on docs for this 😄 |
11 tasks
as51340
approved these changes
Apr 9, 2026
pull Bot
pushed a commit
to weslien/memgraph
that referenced
this pull request
May 20, 2026
Adding monitoring of metrics and logs to S3 for CI runs. Related infra PRs: - memgraph/infra#455 - memgraph/infra#452 Related on helm-charts: - memgraph/helm-charts#208 Related on prometheus-exporter - memgraph/prometheus-exporter#31 Table showing example `CLUSTER_ID`, `CLUSTER_ENV` and `SERVICE_NAME` for each monitored job: | Workflow | Job (`github.job`) | Step | CLUSTER_ID | CLUSTER_ENV | SERVICE_NAME | Backend | |---|---|---|---|---|---|---| | reusable_stress_tests.yaml | `stress_test_standalone` | Run stress tests (native standalone) | `17834421029-stress_test_standalone` | `ci-stress-tests` | `stress-native-standalone` *(default from test_name)* | Docker | | reusable_stress_tests.yaml | `stress_test_native_ha` | Run stress tests (native HA) | `17834421029-stress_test_native_ha` | `ci-stress-tests` | `stress-native-ha` | Docker | | reusable_stress_tests.yaml | `stress_test_docker_ha` | Run stress tests (docker HA) | `17834421029-stress_test_docker_ha` | `ci-stress-tests` | `stress-docker-ha` | Docker | | reusable_stress_tests.yaml | `stress_test_eks_ha` | Run stress tests (EKS HA) | `17834421029-stress_test_eks_ha` | `ci-stress-tests` | `stress-eks-ha` | Docker + `kube-prometheus-stack` within the cluster | | reusable_package_mage.yaml | `BuildAndPush` | Run end-to-end tests | `17834421029-BuildAndPush` | `ci-mage-<arch>` | `mage-e2e` *(default)* | Docker | | reusable_package_mage.yaml | `BuildAndPush` | Run End-to-end correctness tests | `17834421029-BuildAndPush` | `ci-mage-<arch>` | `mage-e2e-correctness` *(default)* | Docker | | reusable_package_mage.yaml | `BuildAndPush` | Run End-to-end migration tests | `17834421029-BuildAndPush` | `ci-mage-<arch>` | `mage-e2e-migration` *(default)* | Docker | | diff_debug.yaml | `core` | Run drivers tests | `17834421029-core` | `ci-diff-debug` | `drivers` *(default)* | Docker | | diff_debug.yaml | `core` | Run HA driver tests | `17834421029-core` | `ci-diff-debug` | `drivers-high-availability` *(default)* | Docker | | diff_debug.yaml | `integration` | Run integration tests | `17834421029-integration` | `ci-diff-debug` | `integration` *(default)* | Docker | | diff_release.yaml | `core` | Run GQL Behave tests | `17834421029-core` | `ci-diff-release` | `gql-behave` *(default)* | Docker | | diff_release.yaml | `stress` | Run stress test (plain) | `17834421029-stress` | `ci-diff-release` | `stress-plain` *(default)* | Docker | | diff_release.yaml | `stress` | Run stress test (SSL) | `17834421029-stress` | `ci-diff-release` | `stress-ssl` *(default)* | Docker | | diff_release.yaml | `stress` | Run durability test (plain) | `17834421029-stress` | `ci-diff-release` | `durability` *(default)* | Docker | | diff_release.yaml | `stress` | Run durability test (large) | `17834421029-stress` | `ci-diff-release` | `durability-large` *(default)* | Docker | | reusable_release_tests.yaml | `debug_build` | Run drivers tests | `17834421029-debug_build` | `ci-release-tests` | `drivers` *(default)* | Docker | | reusable_release_tests.yaml | `debug_build` | Run HA driver tests | `17834421029-debug_build` | `ci-release-tests` | `drivers-high-availability` *(default)* | Docker | | reusable_release_tests.yaml | `debug_build` | Run cppcheck and clang-format | `17834421029-debug_build` | `ci-release-tests` | `cppcheck-and-clang-format` *(default)* | Docker | | reusable_release_tests.yaml | `debug_integration_test` | Run integration tests | `17834421029-debug_integration_test` | `ci-release-tests` | `integration` *(default)* | Docker | | reusable_release_tests.yaml | `malloc_build` | Run GQL Behave tests | `17834421029-malloc_build` | `ci-release-tests` | `gql-behave` *(default)* | Docker | | reusable_release_tests.yaml | `release_build` | Run GQL Behave tests | `17834421029-release_build` | `ci-release-tests` | `gql-behave` *(default)* | Docker | | reusable_release_tests.yaml | `release_durability_stress_tests` | Run stress test (plain) | `17834421029-release_durability_stress_tests` | `ci-release-tests` | `stress-plain` *(default)* | Docker | | reusable_release_tests.yaml | `release_durability_stress_tests` | Run stress test (SSL) | `17834421029-release_durability_stress_tests` | `ci-release-tests` | `stress-ssl` *(default)* | Docker | | reusable_release_tests.yaml | `release_durability_stress_tests` | Run durability test (plain) | `17834421029-release_durability_stress_tests` | `ci-release-tests` | `durability` *(default)* | Docker | | reusable_release_tests.yaml | `release_durability_stress_tests` | Run durability test (large) | `17834421029-release_durability_stress_tests` | `ci-release-tests` | `durability-large` *(default)* | Docker | | reusable_release_tests.yaml | `stress_test_large` | Run stress test (large) | `17834421029-stress_test_large` | `ci-release-tests` | `stress-large` *(default)* | Docker | | reusable_release_tests.yaml | `release_jepsen_test` | Start Jepsen monitoring (habank) | `17834421029-release_jepsen_test` | `ci-release-tests` | `jepsen-habank` | Docker (jepsen script) | | reusable_stress_jepsen.yaml | `ha-test` | Start Jepsen monitoring (workload) | `17834421029-ha-test` | `ci-stress-jepsen` | `jepsen-ha-mt` or `jepsen-hacreate` | Docker (jepsen script) | | diff_jepsen.yaml | `core` | Start Jepsen monitoring (habank) | `17834421029-core` | `ci-jepsen` | `jepsen-habank` | Docker (jepsen script) | Added monitoring to the following CI Jobs/tests: - [x] Diff and Release build and test workflows - [x] Release / Core / GQL Behave - [x] Release / Stress / - [x] stress-plain - [x] stress-ssl - [x] durability - [x] durability-large - [x] Debug / Core / - [x] drivers - [x] drivers-high-availability - [x] Debug / Integration - [x] Jepsen - [x] habank - [x] Stress test large workflow - [x] Stress tests - [x] Native standalone - [x] Native HA - [x] Docker HA - [x] EKS HA - [x] Jepsen stress tests - [x] ISSU - [x] MAGE - [x] E2E - [x] E2E Correctness - [x] E2E Migration TODO (next PR): - Add automated core dump and stack trace uploads to S3 + log entry with links to both. - Monitor E2E tests (currently broken, but should work with OpenTelemetry endpoint being added in memgraph#3911 ) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Touches core CI execution paths (GitHub workflows, `mgbuild.sh`, and stress/Jepsen/EKS deployment scripts) and introduces new Docker Compose-based monitoring sidecars, which could cause CI flakes or failures if endpoints/targets are misconfigured. > > **Overview** > Adds optional **remote monitoring of CI runs** (metrics + websocket logs) across multiple GitHub workflows by passing new `mgbuild.sh` flags (`--enable-monitoring`, `--monitoring-host`, `--cluster-id`, `--cluster-env`, optional `--service-name`) and wiring in monitoring-related secrets. > > Extends `release/package/mgbuild.sh` to start/stop a new Docker Compose monitoring stack around `test-memgraph`/`test-mage` runs, auto-resolve HA monitoring targets (native/docker/EKS), validate required monitoring args, and handle cleanup/trap chaining. > > Introduces `tools/ci/monitoring/` (compose files + `up.sh`/`down.sh` + templates + Jepsen helper) and updates stress/HA deployment scripts to emit `MEMGRAPH_METRICS_TARGETS`/`MEMGRAPH_LOG_WS_TARGETS` and, for EKS, create external monitoring services; ISSU upgrade test now clones helm-charts and can enable remote write/log shipping via Helm values when monitoring creds are provided. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit da0e4ec. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds end-to-end remote observability support for both
memgraphandmemgraph-high-availabilityHelm charts by introducing:vmagentRemotesupport for Prometheusremote_writemetrics export,vectorRemotesidecars for shipping Memgraph logs to Loki-compatible endpoints,It also improves HA behavior by adding safer cluster setup hook/retry handling and forcing
mg-exporterrollout on relevant config changes.Validation
.github/workflows/test-remote-monitoring.yamlscripts/remote-monitoring-stack.yaml)scripts/verify-remote-monitoring.shfor:Notes
charts/memgraph-lab/values.yaml.