Re: [PR] SOLR-18147 Make a new Grafana dashboard for Solr 10.x [solr]

2026-06-12 Thread via GitHub


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]

2026-06-12 Thread via GitHub


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]

2026-04-08 Thread via GitHub


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]

2026-04-08 Thread via GitHub


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]

2026-04-08 Thread via GitHub


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]

2026-04-08 Thread via GitHub


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]

2026-03-23 Thread via GitHub


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]

2026-03-23 Thread via GitHub


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]

2026-03-21 Thread via GitHub


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]

2026-03-21 Thread via GitHub


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]

2026-03-19 Thread via GitHub


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]

2026-03-19 Thread via GitHub


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]

2026-03-13 Thread via GitHub


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]

2026-03-13 Thread via GitHub


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]

2026-03-13 Thread via GitHub


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]

2026-03-13 Thread via GitHub


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]

2026-03-13 Thread via GitHub


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]

2026-03-12 Thread via GitHub


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]

2026-03-12 Thread via GitHub


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
+//