janhoy opened a new pull request, #5109: URL: https://github.com/apache/solr/pull/5109
https://issues.apache.org/jira/browse/SOLR-18533 Establishes the build and test plumbing for Solr's Grafana dashboard and Prometheus alert rules, under `solr/monitoring`. This is the foundation split out of the #4210 POC, so that the dashboard, alert rules and OTLP collector support can land as focused follow-ups. ## What's here - `mixin/` — jsonnet sources in the style of the [monitoring-mixins](https://github.com/monitoring-mixins/docs) community, with a `Makefile` and a Docker wrapper (`make.sh`) so contributors need no local toolchain. A target checks for its tools before touching anything and writes through a temp file, so a missing tool cannot truncate a committed artifact. - `grafana-solr-dashboard.json` and `prometheus-solr-alerts.yml` — the generated artifacts, committed alongside the source that produced them. Nothing in the Gradle build regenerates or verifies them. - `dev/` — a docker-compose stack (Solr, Prometheus, Grafana, Alertmanager and a traffic generator) for seeing a change rendered against live metrics. Contributor tooling, excluded from the source release, with image versions pinned and overridable. - A reference guide page, laid out so the follow-ups fill in sections rather than restructure it. ## The artifacts are placeholders Two panels and one alert rule, carrying an example identity (`solr-mixin-example`, `SolrExampleAlerts`) so they are not mistaken for the real thing. They exist to prove the pipeline end to end, and every key in `config.libsonnet` is wired into them. The real dashboard follows in SOLR-18534, the alert rules in SOLR-18535, and OTLP push support in SOLR-18536. ## Decisions worth a look These close the threads left open on #4210: - **Location** — `solr/monitoring/`, with `dev/` and the traffic generator inside it, rather than the root, `solr/integrations/`, or a separate repo. - **No Gradle hook** — the mixin build stays standalone, so jsonnet and Go tooling stay out of the Solr build and CI. The trade-off is that a committed artifact can drift from its source; the README says plainly to commit them together. - **Release packaging** — the assets ship in the source tarball, `dev/` is `export-ignore`d like `dev-docs/`. - **Anonymous viewing in the dev stack** — Grafana opens straight on the dashboard with no login, since the stack is local and throwaway. Happy to drop this if reviewers would rather keep the login. ## Validation `gradlew check -x test` passes, including `rat` and the ref guide build. The stack was run end to end: both Solr nodes scraped, the alert rule loaded healthy, and both panels drawing live data (the screenshot in the ref guide page is a real render of it). Re-running `./make.sh all check` leaves the tree clean, so the committed output matches its source. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
