Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4691701478 Once this is ready for prime time, it will probably be uploaded to grafana.com yes -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
radimk commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4691135418 Would you mind to mirror this dashboard in https://grafana.com/grafana/dashboards/?search=solr ? That's number one place where SRE's folks will look for this dashboard. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
dsmiley commented on code in PR #4210:
URL: https://github.com/apache/solr/pull/4210#discussion_r3054838979
##
solr/monitoring/mixin/dashboards/dashboards.libsonnet:
##
@@ -0,0 +1,725 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// dashboards.libsonnet — Solr 10.x Grafana dashboard definition.
+//
+// Rows:
+// Cluster Overview (open by default) — distributed query/update rates,
latency, cores, disk
+// JVM (open by default) — heap, GC, threads, CPU
+// Solr Core(collapsed)— per-core QPS, update rate, latency,
commits, optimizes
+// SolrCloud(collapsed)— Overseer queues, ZK ops, shard
leaders
+// Index Health (collapsed)— segments, index size, merge rates,
MMap efficiency
+// Solr Caches (collapsed)— filter/query/document cache hit
rates and evictions
+
+local config = import '../config.libsonnet';
+local g = import
'github.com/grafana/grafonnet/gen/grafonnet-latest/main.libsonnet';
+
+local d = g.dashboard;
+local p = g.panel;
+local q = g.query.prometheus;
+local v = g.dashboard.variable;
+local cfg = config._config;
+
+// ---
+// Computed label selectors (uses configurable label names from
config.libsonnet)
+// ---
+local envSel = '%s=~"$environment"' % cfg.environmentLabel;
+local clusterSel = '%s=~"$cluster"' % cfg.clusterLabel;
+local instSel = '%s=~"$instance"' % cfg.instanceLabel;
+local colSel =
'collection=~"$collection",shard=~"$shard",replica_type=~"$replica_type"';
+
+// ---
+// Template variables (T012)
+// Ordered: datasource → environment → cluster → instance →
+// collection → shard → replica_type → interval
+// ---
+local datasourceVar =
+ v.datasource.new('datasource', 'prometheus')
+ + v.datasource.generalOptions.withLabel('Data Source');
+
+local environmentVar =
+ v.query.new(
+'environment',
+'label_values(solr_cores_loaded, %s)' % cfg.environmentLabel
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Environment');
+
+local clusterVar =
+ v.query.new(
+'cluster',
+'label_values(solr_cores_loaded{%s}, %s)' % [envSel, cfg.clusterLabel]
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Cluster');
+
+local instanceVar =
+ v.query.new(
+'instance',
+'label_values(solr_cores_loaded{%s,%s}, %s)' % [envSel, clusterSel,
cfg.instanceLabel]
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Instance');
+
+local collectionVar =
+ v.query.new(
+'collection',
+'label_values(solr_core_requests_total{%s}, collection)' % instSel
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Collection');
+
+local shardVar =
+ v.query.new(
+'shard',
+'label_values(solr_core_requests_total{%s,collection=~"$collection"},
shard)' % instSel
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Shard');
+
+local replicaTypeVar =
+ v.query.new(
+'replica_type',
+'label_values(solr_core_requests_total{%s,collection=~"$collection"},
replica_type)' % in
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on code in PR #4210:
URL: https://github.com/apache/solr/pull/4210#discussion_r3054317379
##
solr/monitoring/mixin/dashboards/dashboards.libsonnet:
##
@@ -0,0 +1,725 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// dashboards.libsonnet — Solr 10.x Grafana dashboard definition.
+//
+// Rows:
+// Cluster Overview (open by default) — distributed query/update rates,
latency, cores, disk
+// JVM (open by default) — heap, GC, threads, CPU
+// Solr Core(collapsed)— per-core QPS, update rate, latency,
commits, optimizes
+// SolrCloud(collapsed)— Overseer queues, ZK ops, shard
leaders
+// Index Health (collapsed)— segments, index size, merge rates,
MMap efficiency
+// Solr Caches (collapsed)— filter/query/document cache hit
rates and evictions
+
+local config = import '../config.libsonnet';
+local g = import
'github.com/grafana/grafonnet/gen/grafonnet-latest/main.libsonnet';
+
+local d = g.dashboard;
+local p = g.panel;
+local q = g.query.prometheus;
+local v = g.dashboard.variable;
+local cfg = config._config;
+
+// ---
+// Computed label selectors (uses configurable label names from
config.libsonnet)
+// ---
+local envSel = '%s=~"$environment"' % cfg.environmentLabel;
+local clusterSel = '%s=~"$cluster"' % cfg.clusterLabel;
+local instSel = '%s=~"$instance"' % cfg.instanceLabel;
+local colSel =
'collection=~"$collection",shard=~"$shard",replica_type=~"$replica_type"';
+
+// ---
+// Template variables (T012)
+// Ordered: datasource → environment → cluster → instance →
+// collection → shard → replica_type → interval
+// ---
+local datasourceVar =
+ v.datasource.new('datasource', 'prometheus')
+ + v.datasource.generalOptions.withLabel('Data Source');
+
+local environmentVar =
+ v.query.new(
+'environment',
+'label_values(solr_cores_loaded, %s)' % cfg.environmentLabel
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Environment');
+
+local clusterVar =
+ v.query.new(
+'cluster',
+'label_values(solr_cores_loaded{%s}, %s)' % [envSel, cfg.clusterLabel]
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Cluster');
+
+local instanceVar =
+ v.query.new(
+'instance',
+'label_values(solr_cores_loaded{%s,%s}, %s)' % [envSel, clusterSel,
cfg.instanceLabel]
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Instance');
+
+local collectionVar =
+ v.query.new(
+'collection',
+'label_values(solr_core_requests_total{%s}, collection)' % instSel
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Collection');
+
+local shardVar =
+ v.query.new(
+'shard',
+'label_values(solr_core_requests_total{%s,collection=~"$collection"},
shard)' % instSel
+ )
+ + v.query.withDatasourceFromVariable(datasourceVar)
+ + v.query.selectionOptions.withMulti()
+ + v.query.selectionOptions.withIncludeAll(value=true, customAllValue='.*')
+ + v.query.refresh.onTime()
+ + v.query.generalOptions.withLabel('Shard');
+
+local replicaTypeVar =
+ v.query.new(
+'replica_type',
+'label_values(solr_core_requests_total{%s,collection=~"$collection"},
replica_type)' % ins
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4209767218 More improvements: - "Heap Used" and "Heap Committed": add heap max (-Xmx) reference line - "Heap Max" changed to area chart and renamed to "System and Heap Memory", incorporating the new system max metric - "Update Latency p99": fix empty panel by removing internal="false" filter (UPDATE metrics carry no internal label) - Rename metric jvm_system_memory_total_bytes → jvm_system_memory_bytes throughout dashboard and alerts -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4209409168 Did several improvements: - Rename "Node Overview" row to "Cluster Overview" - "Distributed QPS": per-collection (external traffic only) - "Search Latency p50/p95/p99": per-collection instead of per-instance - "Total Update Rate": per-collection (replaces "Indexing Rate") - "Update Latency p99": per-collection (external traffic only) - "Document Count": moved to Cluster Overview, per-collection - Add new "Solr Core" row: QPS, Update Rate, Update Latency, Commit Rate, Optimize Rate — all per core - "Shard Leaders": time series per node (was single stat) - "Update Log Replay Remaining": per-collection time series (was single stat) - "Segment Count per Collection": max per collection (was per core) - "Total Index Size per Node": time series per node (was single stat) - Add "Index Size per Collection": leader cores only via PromQL join - "Pending Commit Docs": per-collection time series (was single stat) - Rename "Cache Efficiency" row to "Solr Caches" -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4112331357 The example folder is mainly used to demonstrate different config sets and data types, see https://github.com/apache/solr/tree/main/solr/example But I'm positive to a `solr/integrations/monitoring/` location if you're looking for a location to ship other cluster-level examples. Or we could repurpose the `example/` folder to be both. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
epugh commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4110090597 > Do you feel it is too much to add? Should the entire `dev/` folder move to `/dev-tools/monitoring` instead, and trafficgen to `/dev-tools/trafficgen`? Good question. I think if "trafficgen" is used by other areas of Solr, beyond basically a tool for demoing/integration testing of alerting then is should be elsewhere. One thought.. I wonder if we need to reframe this as solr/monitoring into something like `solr/examples/monitoring` or `solr/integrations/monitoring`... With an eye towards starting to move more community knowledge on things into more formal documented artifacts? I could imagine a `leader-follower-replication` or a `docker\docker-compose.yml` example shipping. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4104830899 > Good progress.. There is a lot here that I don't quite grok... Is trafficgen coming out of other perf related effrots, or just "hey, we need some load" ;-) Trafficgen is just something I wrote earlier, not written for perf at all, just to have something happening in a cluster, as it is boring to view a dashboard or traces with nothing going on. This `dev/` hack is just convenience tooling to assist when developing / changing dashboards, metrics, modifyint OTEL Collector configuration etc. Do you feel it is too much to add? Should the entire `dev/` folder move to `/dev-tools/monitoring` instead, and trafficgen to `/dev-tools/trafficgen`? -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
epugh commented on code in PR #4210: URL: https://github.com/apache/solr/pull/4210#discussion_r2969483874 ## solr/monitoring/dev/docker-compose.yml: ## @@ -0,0 +1,139 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# DEVELOPER CONVENIENCE ONLY — NOT FOR PRODUCTION USE +# +# +# This docker-compose stack is provided solely to make it easy for contributors +# to view and test changes to the two monitoring artifacts: +# +# ../grafana-solr-dashboard.json— Grafana dashboard (main artifact) +# ../prometheus-solr-alerts.yml — Prometheus alert rules (main artifact) +# +# It is NOT intended as a reference deployment or a recommended production setup. +# For integrating these artifacts into your own Prometheus + Grafana installation, +# see the Solr Reference Guide (monitoring-with-prometheus-and-grafana.adoc). +# +# Quick start: +# cd solr/monitoring/dev +# ./stack.sh # Full stack with bundled Solr nodes +# ./stack.sh --local-solr# Monitoring only — point at your locally-running Solr +# ./stack.sh --help # All options +# +# Services (full stack): +# solr1http://localhost:8983 (SolrCloud node 1, embedded ZooKeeper) Review Comment: I ❤️ this! -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
mlbiscoc commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4093284528 I like `solr/monitoring` location over it being at the root and not putting in a separate repo. In a separate repo, if we add metrics or change, it'd be easy to see it all in a single PR or without switching between 2 repos. I'd vote how it is. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4090476642 Are you ok with the location in the monorepo `solr/monitoring` ? In some way it more belongs on the top level, but I guess I try to avoid adding stuff to top level. Considered separate git repo but that breaks with our monorepo style, and it is useful to keep dashboard in sync with evolution of the app. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
Jesssullivan commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4056340251 Looking good! +1 on lacing up a OTEL collector next 👀 > Thought of it but wanted to keep scope somewhat low, so I think this PR should focus on a GA dashboard. Then follow up work could add OTEL collector and Jaeger to the `dev/` setup. I -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4055655694 > Something we should add is also a way to turn on tracing module with this so we can also see exemplars that Solr supports now as well with these dashboards. Thought of it but wanted to keep scope somewhat low, so I think this PR should focus on a GA dashboard. Then follow up work could add OTEL collector and Jaeger to the `dev/` setup. I also discovered Microsofts Aspire Dashboard project, and I think I'll add it to compose. It shows you real-time what OTLP packets (metric, trace, logs) are received, and you can inspect the content of all. it has a simple traces viewer. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4055606221 > Latency graphs should _always_ show the max, p50 is basically useless... https://www.youtube.com/watch?v=lJ8ydIuPFeU Good feedback, adding in a max graph in the search latency panel. Let's do that. > Also update latency is only rarely interesting... throughput is what most folks care about for indexing, that and stuck/failed documents. Yea, cause /update is non-blocking, right, so it won't tell much other than how large the payload was and perhaps how busy the server was. Let's use that real estate for something better. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
mlbiscoc commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4055412441 Thanks Jan this looks like a great start. I'll find some time to take a look. I really love the docker compose setup making it easy to test. Something we should add is also a way to turn on tracing module with this so we can also see exemplars that Solr supports now as well with these dashboards. Maybe a second iteration since that is definitely way out of scope. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
gus-asf commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4055278848 Latency graphs should *always* show the max, p50 is basically useless... https://www.youtube.com/watch?v=lJ8ydIuPFeU Also update latency is only rarely interesting... throughput is what most folks care about for indexing, that and stuck/failed documents. -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
janhoy commented on PR #4210: URL: https://github.com/apache/solr/pull/4210#issuecomment-4051236968 So the foundation is laid I believe. Technically it is working and I generally like the "rows" and panels chosen by AI. But there are probably useful changes to do. Here are some I can think of * Add a panel for system memory (dependent on #4209), perhaps a stacked area with heap-max in it * Distinguish between "collection QPS" and "per-core" QPS. I think the metrics include a label for whether they are "local" or not? * Add panel for number of zookeepers "up" * Add panel for number of solr nodes "up" * Other panels for cluster-level things like number of collections, shard leadership over time * Gather more user feedback for what they lack -- 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]
Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]
Copilot commented on code in PR #4210: URL: https://github.com/apache/solr/pull/4210#discussion_r2927056323 ## solr/monitoring/dev/docker-compose.yml: ## @@ -0,0 +1,125 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# DEVELOPER CONVENIENCE ONLY — NOT FOR PRODUCTION USE +# +# +# This docker-compose stack is provided solely to make it easy for contributors +# to view and test changes to the two monitoring artifacts: +# +# ../grafana-solr-dashboard.json— Grafana dashboard (main artifact) +# ../prometheus-solr-alerts.yml — Prometheus alert rules (main artifact) +# +# It is NOT intended as a reference deployment or a recommended production setup. +# For integrating these artifacts into your own Prometheus + Grafana installation, +# see the Solr Reference Guide (monitoring-with-prometheus-and-grafana.adoc). +# +# Usage: +# cd solr/monitoring/dev +# docker-compose up -d +# +# Services: +# solr1http://localhost:8983 (SolrCloud node 1, embedded ZooKeeper) +# solr2http://localhost:8984 (SolrCloud node 2) +# Prometheus http://localhost:9090 +# Grafana http://localhost:3000 (admin / admin) +# Alertmanager http://localhost:9093 +# trafficgen (no port — continuously indexes/searches the 'test' collection) +# +# Prometheus may show scrape errors for the first 30-60 seconds while Solr starts. +# + +services: + solr1: +image: solr:10 +ports: + - "8983:8983" + - "9983:9983" # embedded ZooKeeper (Solr 10 default: ZK_PORT = SOLR_PORT + 1000) +# No ZK_HOST set: Solr 10 defaults to SolrCloud with embedded ZooKeeper on port 9983. +healthcheck: + test: ["CMD-SHELL", "curl -sf http://localhost:8983/solr/admin/info/system || exit 1"] + interval: 10s + timeout: 5s + retries: 12 + start_period: 40s + + solr2: +image: solr:10 +ports: + - "8984:8983" +environment: + ZK_HOST: "solr1:9983" +depends_on: + solr1: +condition: service_healthy +healthcheck: + test: ["CMD-SHELL", "curl -sf http://localhost:8983/solr/admin/info/system || exit 1"] + interval: 10s + timeout: 5s + retries: 12 + start_period: 30s + + prometheus: +image: prom/prometheus:latest +ports: + - "9090:9090" +volumes: + - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro + - ../prometheus-solr-alerts.yml:/etc/prometheus/rules/solr-alerts.yml:ro +command: + - "--config.file=/etc/prometheus/prometheus.yml" + - "--storage.tsdb.retention.time=7d" + - "--web.enable-lifecycle" +depends_on: + solr1: +condition: service_healthy + solr2: +condition: service_healthy +restart: unless-stopped + + grafana: +image: grafana/grafana:latest +ports: + - "3000:3000" +environment: + GF_SECURITY_ADMIN_USER: admin + GF_SECURITY_ADMIN_PASSWORD: admin + GF_USERS_ALLOW_SIGN_UP: "false" +volumes: + - ./grafana/provisioning:/etc/grafana/provisioning:ro + - ../grafana-solr-dashboard.json:/var/lib/grafana/dashboards/grafana-solr-dashboard.json:ro +depends_on: + - prometheus +restart: unless-stopped + + alertmanager: +image: prom/alertmanager:latest +ports: Review Comment: Even though this stack is marked “dev only”, using `:latest` for Prometheus/Grafana/Alertmanager makes local testing non-reproducible and can break unexpectedly when upstream images change. Consider pinning these images to specific versions (or at least documenting the versions the dashboard/alerts were validated against). ## solr/monitoring/mixin/config.libsonnet: ## @@ -0,0 +1,71 @@ +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You under the Apache License, Version 2.0 +//
