whereismyjetpack commented on issue #705:
URL: https://github.com/apache/solr-operator/issues/705#issuecomment-2150875216

   ``` 
   cat /opt/solr/contrib/prometheus-exporter/conf/solr-exporter-config.xml
   <?xml version="1.0" encoding="UTF-8" ?>
   <!--
    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.
   -->
   
   <config>
   
     <!--
     Templates to help reduce jq boilerplate used by many metrics in this 
config;
     mainly intended for metrics that don't require a bunch of jq magic to work 
and are mostly boilerplate.
   
     A regex with named groups is used to match template references to template 
+ vars using the basic pattern:
   
         $jq:<TEMPLATE>( <UNIQUE>, <KEYSELECTOR>, <METRIC>, <TYPE> )
   
     For instance,
   
         $jq:core(requests_total, endswith(".requestTimes"), count, COUNTER)
   
     TEMPLATE = core
     UNIQUE = requests_total (unique suffix for this metric, results in a 
metric named "solr_metrics_core_requests_total")
     KEYSELECTOR = endswith(".requestTimes") (filter to select the specific key 
for this metric)
     METRIC = count
     TYPE = COUNTER
   
     Some templates may have a default type, so you can omit that from your 
template reference, such as:
   
         $jq:core(requests_total, endswith(".requestTimes"), count)
   
     Uses the defaultType=COUNTER as many uses of the core template are counts.
   
     If a template reference omits the metric, then the unique suffix is used, 
for instance:
   
         $jq:core-query(1minRate, endswith(".distrib.requestTimes"))
   
     Creates a GAUGE metric (default type) named 
"solr_metrics_core_query_1minRate" using the 1minRate value from the selected 
JSON object.
   
     Add templates as needed, three metrics using the same structure feels 
about right as the threshold for creating a new template.
     -->
     <jq-templates>
       <template name="core-query" defaultType="GAUGE">
         .metrics | to_entries | .[] | select(.key | startswith("solr.core.")) 
as $parent |
         $parent.key | split(".") as $parent_key_items |
         $parent_key_items | length as $parent_key_item_len |
         (if $parent_key_item_len == 3 then $parent_key_items[2] else "" end) 
as $core |
         (if $parent_key_item_len == 5 then $parent_key_items[2] else "" end) 
as $collection |
         (if $parent_key_item_len == 5 then $parent_key_items[3] else "" end) 
as $shard |
         (if $parent_key_item_len == 5 then $parent_key_items[4] else "" end) 
as $replica |
         (if $parent_key_item_len == 5 then ($collection + "_" + $shard + "_" + 
$replica) else $core end) as $core |
         $parent.value | to_entries | .[] | {KEYSELECTOR} | select (.value | 
type == "object") as $object |
         $object.key | split(".")[0] as $category |
         $object.key | split(".")[1] as $handler |
         select($category | startswith("QUERY")) |
         select($handler | startswith("/")) |
         {METRIC} as $value |
         if $parent_key_item_len == 3 then
         {
         name: "solr_metrics_core_query_{UNIQUE}",
         type: "{TYPE}",
         help: "See: 
https://lucene.apache.org/solr/guide/performance-statistics-reference.html";,
         label_names: ["category", "searchHandler", "core"],
         label_values: [$category, $handler, $core],
         value: $value
         }
         else
         {
         name: "solr_metrics_core_query_{UNIQUE}",
         type: "{TYPE}",
         help: "See: 
https://lucene.apache.org/solr/guide/performance-statistics-reference.html";,
         label_names: ["category", "searchHandler", "core", "collection", 
"shard", "replica"],
         label_values: [$category, $handler, $core, $collection, $shard, 
$replica],
         value: $value
         }
         end
       </template>
       <template name="core" defaultType="COUNTER">
         .metrics | to_entries | .[] | select(.key | startswith("solr.core.")) 
as $parent |
         $parent.key | split(".") as $parent_key_items |
         $parent_key_items | length as $parent_key_item_len |
         (if $parent_key_item_len == 3 then $parent_key_items[2] else "" end) 
as $core |
         (if $parent_key_item_len == 5 then $parent_key_items[2] else "" end) 
as $collection |
         (if $parent_key_item_len == 5 then $parent_key_items[3] else "" end) 
as $shard |
         (if $parent_key_item_len == 5 then $parent_key_items[4] else "" end) 
as $replica |
         (if $parent_key_item_len == 5 then ($collection + "_" + $shard + "_" + 
$replica) else $core end) as $core |
         $parent.value | to_entries | .[] | {KEYSELECTOR} as $object |
         $object.key | split(".")[0] as $category |
         $object.key | split(".")[1] as $handler |
         select($handler | startswith("/")) |
         {METRIC} as $value |
         if $parent_key_item_len == 3 then
         {
         name: "solr_metrics_core_{UNIQUE}",
         type: "{TYPE}",
         help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names: ["category", "handler", "core"],
         label_values: [$category, $handler, $core],
         value: $value
         }
         else
         {
         name: "solr_metrics_core_{UNIQUE}",
         type: "{TYPE}",
         help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names: ["category", "handler", "core", "collection", "shard", 
"replica"],
         label_values: [$category, $handler, $core, $collection, $shard, 
$replica],
         value: $value
         }
         end
       </template>
       <template name="update-handler" defaultType="COUNTER">
         .metrics | to_entries | .[] | select(.key | startswith("solr.core.")) 
as $parent |
         $parent.key | split(".") as $parent_key_items |
         $parent_key_items | length as $parent_key_item_len |
         (if $parent_key_item_len == 3 then $parent_key_items[2] else "" end) 
as $core |
         (if $parent_key_item_len == 5 then $parent_key_items[2] else "" end) 
as $collection |
         (if $parent_key_item_len == 5 then $parent_key_items[3] else "" end) 
as $shard |
         (if $parent_key_item_len == 5 then $parent_key_items[4] else "" end) 
as $replica |
         (if $parent_key_item_len == 5 then ($collection + "_" + $shard + "_" + 
$replica) else $core end) as $core |
         $parent.value | to_entries | .[] | {KEYSELECTOR} as $object |
         $object.key | split(".")[0] as $category |
         $object.key | split(".")[1] as $handler |
         {METRIC} as $value |
         if $parent_key_item_len == 3 then
         {
         name: "solr_metrics_core_{UNIQUE}",
         type: "{TYPE}",
         help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names: ["category", "handler", "core"],
         label_values: [$category, $handler, $core],
         value: $value
         }
         else
         {
         name: "solr_metrics_core_{UNIQUE}",
         type: "{TYPE}",
         help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names: ["category", "handler", "core", "collection", "shard", 
"replica"],
         label_values: [$category, $handler, $core, $collection, $shard, 
$replica],
         value: $value
         }
         end
       </template>
       <template name="node" defaultType="COUNTER">
         .metrics["solr.node"] | to_entries | .[] | {KEYSELECTOR} as $object |
         $object.key | split(".")[0] as $category |
         $object.key | split(".")[1] as $handler |
         {METRIC} as $value |
         {
         name         : "solr_metrics_node_{UNIQUE}",
         type         : "{TYPE}",
         help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names  : ["category", "handler"],
         label_values : [$category, $handler],
         value        : $value
         }
       </template>
       <template name="cache-searcher" defaultType="GAUGE">
         .metrics | to_entries | .[] | select(.key | startswith("solr.core.")) 
as $parent |
         $parent.key | split(".") as $parent_key_items |
         $parent_key_items | length as $parent_key_item_len |
         (if $parent_key_item_len == 3 then $parent_key_items[2] else "" end) 
as $core |
         (if $parent_key_item_len == 5 then $parent_key_items[2] else "" end) 
as $collection |
         (if $parent_key_item_len == 5 then $parent_key_items[3] else "" end) 
as $shard |
         (if $parent_key_item_len == 5 then $parent_key_items[4] else "" end) 
as $replica |
         (if $parent_key_item_len == 5 then ($collection + "_" + $shard + "_" + 
$replica) else $core end) as $core |
         $parent.value | to_entries | .[] | select(.key | 
startswith("CACHE.searcher.")) | select (.key | endswith("documentCache") or 
endswith("fieldValueCache") or endswith("filterCache") or 
endswith("perSegFilter") or endswith("queryResultCache")) as $object |
         $object.key | split(".")[0] as $category |
         $object.key | split(".")[2] as $type |
         $object.value | to_entries | .[] | {KEYSELECTOR} as $target |
         $target.key as $item |
         {METRIC} as $value |
         if $parent_key_item_len == 3 then
         {
         name: "solr_metrics_core_searcher_{UNIQUE}",
         type: "{TYPE}",
         help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names: ["category", "core", "type", "item"],
         label_values: [$category, $core, $type, $item],
         value: $value
         }
         else
         {
         name: "solr_metrics_core_searcher_{UNIQUE}",
         type: "{TYPE}",
         help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names: ["category", "core", "collection", "shard", "replica", 
"type", "item"],
         label_values: [$category, $core, $collection, $shard, $replica, $type, 
$item],
         value: $value
         }
         end      
       </template>
       <template name="node-thread-pool" defaultType="COUNTER">
         .metrics["solr.node"] | to_entries | .[] | select(.key | 
contains(".threadPool.")) | {KEYSELECTOR} as $object |
         $object.key | split(".") as $key_items |
         $key_items | length as $label_len |
         $key_items[0] as $category |
         (if $label_len >= 5 then $key_items[1] else "" end) as $handler |
         (if $label_len >= 5 then $key_items[3] else $key_items[2] end) as 
$executor |
         {METRIC} as $value |
         {
         name         : "solr_metrics_node_thread_pool_{UNIQUE}",
         type         : "{TYPE}",
         help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names  : ["category", "handler", "executor"],
         label_values : [$category, $handler, $executor],
         value        : $value
         }
       </template>
       <template name="jvm-item" defaultType="GAUGE">
         .metrics["solr.jvm"] | to_entries | .[] | {KEYSELECTOR} as $object |
         $object.key | split(".") | last as $item |
         {METRIC} as $value |
         {
         name         : "solr_metrics_jvm_{UNIQUE}",
         type         : "{TYPE}",
         help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
         label_names  : ["item"],
         label_values : [$item],
         value        : $value
         }
       </template>
     </jq-templates>
   
     <rules>
   
       <ping>
         <lst name="request">
           <lst name="query">
             <str name="path">/admin/ping</str>
           </lst>
           <arr name="jsonQueries">
             <str>
               . as $object | $object |
               (if $object.status == "OK" then 1.0 else 0.0 end) as $value |
               {
                 name         : "solr_ping",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/ping.html";,
                 label_names  : [],
                 label_values : [],
                 value        : $value
               }
             </str>
           </arr>
         </lst>
       </ping>
   
       <metrics>
         <lst name="request">
           <lst name="query">
             <str name="path">/admin/metrics</str>
             <lst name="params">
               <!--
                 trim some of these expressions as needed if you don't care 
about
                 a particular group of metrics.
               -->
               <str name="expr">solr\.jetty:.*DefaultHandler.*</str>
               <str name="expr">solr\.jvm:.*</str>
               <str name="expr">solr\.node:.*</str>
               <str name="expr">solr\.overseer:.*</str>
               <str name="expr">solr\.core\..*:QUERY\..*</str>
               <str name="expr">solr\.core\..*:ADMIN\..*</str>
               <str name="expr">solr\.core\..*:CACHE\..*</str>
               <str name="expr">solr\.core\..*:UPDATE\.updateHandler\..*</str>
               <str name="expr">solr\.core\..*:CORE\.fs\..*</str>
               <str name="expr">solr\.core\..*:HIGHLIGHTER\..*</str>
               <str name="expr">solr\.core\..*:INDEX\..*</str>
               <str 
name="expr">solr\.core\..*:REPLICATION\.replication\..*</str>
               <str name="expr">solr\.core\..*:SEARCHER\.searcher\..*</str>
   
               <!-- Alternative expressions, which are much stricter but still 
provide
               enough data to populate the default dashboard.
               These expressions omit many unused properties of the complex 
metrics,
               and also skip whole groups of rarely used metrics: core ADMIN, 
REPLICATION,
               HIGHLIGHTER, and selects only the most common QUERY handlers.
   
               In order to use these expressions remove the default list of 
expressions
               above and the START / END lines below. -->
   
               <!-- === START ===
   
               <str 
name="expr">solr\.jetty:.*\.DefaultHandler\.(dispatches|.*-requests|.*xx-responses):count</str>
   
               <str name="expr">solr\.jvm:(buffers|gc).*</str>
               <str 
name="expr">solr\.jvm:memory\.(heap|non-heap|pools)\.*\.usage</str>
               <str name="expr">solr\.jvm:memory\.total</str>
               <str 
name="expr">solr\.jvm:os\..*(FileDescriptorCount|Load.*|Size|processCpuTime)</str>
               <str name="expr">solr\.jvm:threads\..*count</str>
   
               <str name="expr">solr\.node:CONTAINER\.(cores|fs).*</str>
   
               <str name="expr">solr\.core\..*:CORE\.fs\..*Space</str>
               <str name="expr">solr\.core\..*:INDEX\.sizeInBytes</str>
               <str 
name="expr">solr\.core\..*:QUERY\./(select|get|export|stream|query|graph|sql)\..*requestTimes:(count|1minRate|5minRate|median_ms|meanRate|p75_ms|p95_ms|p99_ms)</str>
               <str 
name="expr">solr\.core\..*:QUERY\./(select|get|export|stream|query|graph|sql)\.totalTime</str>
               <str 
name="expr">solr\.core\..*:QUERY\./(select|get|export|stream|query|graph|sql)\..*rrors:(count!1minRate)</str>
               <str name="expr">solr\.core\..*:SEARCHER\.searcher\..*Doc.*</str>
               <str name="expr">solr\.core\..*:UPDATE\.updateHandler\..*</str>
               <str name="expr">solr\core\..*:CACHE\..*</str>
   
               === END === -->
   
             </lst>
           </lst>
           <arr name="jsonQueries">
             <!--
               jetty metrics
             -->
             <str>
               .metrics["solr.jetty"] | to_entries | .[] | select(.key | 
startswith("org.eclipse.jetty.server.handler.DefaultHandler")) | select(.key | 
endswith("xx-responses")) as $object |
               $object.key | split(".") | last | split("-") | first as $status |
               $object.value.count as $value |
               {
               name         : "solr_metrics_jetty_response_total",
               type         : "COUNTER",
               help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
               label_names  : ["status"],
               label_values : [$status],
               value        : $value
               }
             </str>
             <str>
               .metrics["solr.jetty"] | to_entries | .[] | select(.key | 
startswith("org.eclipse.jetty.server.handler.DefaultHandler.")) | select(.key | 
endswith("-requests")) | select (.value | type == "object") as $object |
               $object.key | split(".") | last | split("-") | first as $method |
               $object.value.count as $value |
               {
                 name         : "solr_metrics_jetty_requests_total",
                 type         : "COUNTER",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["method"],
                 label_values : [$method],
                 value        : $value
               }
             </str>
             <str>
               .metrics["solr.jetty"] | to_entries | .[] | select(.key == 
"org.eclipse.jetty.server.handler.DefaultHandler.dispatches") as $object |
               $object.value.count as $value |
               {
                 name         : "solr_metrics_jetty_dispatches_total",
                 type         : "COUNTER",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : [],
                 label_values : [],
                 value        : $value
               }
             </str>
             <!--
               jvm metrics
             -->
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key | 
startswith("buffers.")) | select(.key | endswith(".Count")) as $object |
               $object.key | split(".")[1] as $pool |
               $object.value as $value |
               {
                 name         : "solr_metrics_jvm_buffers",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["pool"],
                 label_values : [$pool],
                 value        : $value
               }
             </str>
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key | 
startswith("buffers.")) | select(.key | (endswith(".MemoryUsed") or 
endswith(".TotalCapacity"))) as $object |
               $object.key | split(".")[1] as $pool |
               $object.key | split(".") | last as $item |
               $object.value as $value |
               {
                 name         : "solr_metrics_jvm_buffers_bytes",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["pool", "item"],
                 label_values : [$pool, $item],
                 value        : $value
               }
             </str>
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key | 
startswith("gc.")) | select(.key | endswith(".count")) as $object |
               $object.key | split(".")[1] as $item |
               $object.value as $value |
               {
                 name         : "solr_metrics_jvm_gc_total",
                 type         : "COUNTER",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["item"],
                 label_values : [$item],
                 value        : $value
               }
             </str>
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key | 
startswith("gc.")) | select(.key | endswith(".time")) as $object |
               $object.key | split(".")[1] as $item |
               ($object.value / 1000) as $value |
               {
                 name         : "solr_metrics_jvm_gc_seconds_total",
                 type         : "COUNTER",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["item"],
                 label_values : [$item],
                 value        : $value
               }
             </str>
             <str>
               $jq:jvm-item(memory_heap_bytes,
                            select(.key | startswith("memory.heap.")) | 
select(.key | endswith(".usage") | not),
                            object.value)
             </str>
             <str>
               $jq:jvm-item(memory_non_heap_bytes,
                            select(.key | startswith("memory.non-heap.")) | 
select(.key | endswith(".usage") | not),
                            object.value)
             </str>
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key | 
startswith("memory.pools.")) | select(.key | endswith(".usage") | not) as 
$object |
               $object.key | split(".")[2] as $space |
               $object.key | split(".") | last as $item |
               $object.value as $value |
               {
                 name         : "solr_metrics_jvm_memory_pools_bytes",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["space", "item"],
                 label_values : [$space, $item],
                 value        : $value
               }
             </str>
             <str>
               $jq:jvm-item(memory_bytes, select(.key | 
startswith("memory.total.")), object.value)
             </str>
             <str>
               $jq:jvm-item(os_memory_bytes,
                            select(.key == "os.committedVirtualMemorySize" or 
.key == "os.freePhysicalMemorySize" or .key == "os.freeSwapSpaceSize" or .key 
=="os.totalPhysicalMemorySize" or .key == "os.totalSwapSpaceSize"),
                            object.value)
             </str>
             <str>
               $jq:jvm-item(os_file_descriptors, select(.key == 
"os.maxFileDescriptorCount" or .key == "os.openFileDescriptorCount"), 
object.value)
             </str>
             <str>
               $jq:jvm-item(os_cpu_load, select(.key == "os.processCpuLoad" or 
.key == "os.systemCpuLoad"), object.value)
             </str>
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key == 
"os.processCpuTime") as $object |
               ($object.value / 1000.0) as $value |
               {
                 name         : "solr_metrics_jvm_os_cpu_time_seconds",
                 type         : "COUNTER",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["item"],
                 label_values : ["processCpuTime"],
                 value        : $value
               }
             </str>
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key == 
"os.systemLoadAverage") as $object |
               $object.value as $value |
               {
                 name         : "solr_metrics_jvm_os_load_average",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["item"],
                 label_values : ["systemLoadAverage"],
                 value        : $value
               }
             </str>
             <str>
               .metrics["solr.jvm"] | to_entries | .[] | select(.key | 
startswith("threads.")) | select(.key | endswith(".count")) as $object |
               $object.key | split(".")[1] as $item |
               $object.value as $value |
               {
                 name         : "solr_metrics_jvm_threads",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["item"],
                 label_values : [$item],
                 value        : $value
               }
             </str>
             <!--
               overseer metrics
             -->
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.overseer")) as $object |
               $object.value as $value | $value | to_entries | .[]  |
               select(.key | startswith("queue.") and 
endswith("collectionWorkQueueSize")) as $object |
               $object.value as $value |
               {
               name         : "solr_metrics_overseer_collectionWorkQueueSize",
               type         : "GAUGE",
               help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
               label_names  : [],
               label_values : [],
               value        : $value
               }
             </str>
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.overseer")) as $object |
               $object.value as $value | $value | to_entries | .[]  |
               select(.key | startswith("queue.") and 
endswith("stateUpdateQueueSize")) as $object |
               $object.value as $value |
               {
               name         : "solr_metrics_overseer_stateUpdateQueueSize",
               type         : "GAUGE",
               help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
               label_names  : [],
               label_values : [],
               value        : $value
               }
             </str>
             <!--
               node metrics
             -->
             <str>
               $jq:node(client_errors_total, select(.key | 
endswith(".clientErrors")), count)
             </str>
             <str>
               $jq:node(errors_total, select(.key | endswith(".errors")), count)
             </str>
             <str>
               $jq:node(requests_total, select(.key | 
endswith(".local.requestTimes")), count)
             </str>
             <str>
               $jq:node(server_errors_total, select(.key | 
endswith(".serverErrors")), count)
             </str>
             <str>
               $jq:node(timeouts_total, select(.key | endswith(".timeouts")), 
count)
             </str>
             <str>
               $jq:node(time_seconds_total, select(.key | 
endswith(".local.totalTime")), ($object.value / 1000))
             </str>
             <str>
               .metrics["solr.node"] | to_entries | .[] | select(.key | 
startswith("CONTAINER.cores.")) as $object |
               $object.key | split(".")[0] as $category |
               $object.key | split(".")[2] as $item |
               $object.value as $value |
               {
                 name         : "solr_metrics_node_cores",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["category", "item"],
                 label_values : [$category, $item],
                 value        : $value
               }
             </str>
             <str>
               .metrics["solr.node"] | to_entries | .[] | select(.key | 
startswith("CONTAINER.fs.coreRoot.")) | select(.key | endswith(".totalSpace") 
or endswith(".usableSpace")) as $object |
               $object.key | split(".") as $key_items |
               $key_items | length as $label_len |
               $key_items[0] as $category |
               $key_items[3] as $item |
               $object.value as $value |
               {
                 name         : "solr_metrics_node_core_root_fs_bytes",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["category", "item"],
                 label_values : [$category, $item],
                 value        : $value
               }
             </str>
             <str>
               $jq:node-thread-pool(completed_total, select(.key | 
endswith(".completed")), count)
             </str>
             <str>
               $jq:node-thread-pool(running, select(.key | 
endswith(".running")), object.value, GAUGE)
             </str>
             <str>
               $jq:node-thread-pool(submitted_total, select(.key | 
endswith(".submitted")), count)
             </str>
             <str>
               .metrics["solr.node"] | to_entries | .[] | select(.key | 
endswith("Connections")) as $object |
               $object.key | split(".") as $key_items |
               $key_items | length as $label_len |
               $key_items[0] as $category |
               $key_items[1] as $handler |
               $key_items[2] as $item |
               $object.value as $value |
               {
                 name         : "solr_metrics_node_connections",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names  : ["category", "handler", "item"],
                 label_values : [$category, $handler, $item],
                 value        : $value
               }
             </str>
   
             <!--
             Query related core metrics; see jq-templates for details on the 
core-query template used below
             -->
             <str>
               $jq:core-query(errors_1minRate, select(.key | 
endswith(".errors")), 1minRate)
             </str>
             <str>
               $jq:core-query(client_errors_1minRate, select(.key | 
endswith(".clientErrors")), 1minRate)
             </str>
             <str>
               $jq:core-query(1minRate, select(.key | 
endswith(".distrib.requestTimes")), 1minRate)
             </str>
             <str>
               $jq:core-query(5minRate, select(.key | 
endswith(".distrib.requestTimes")), 5minRate)
             </str>
             <str>
               $jq:core-query(median_ms, select(.key | 
endswith(".distrib.requestTimes")), median_ms)
             </str>
             <str>
               $jq:core-query(p75_ms, select(.key | 
endswith(".distrib.requestTimes")), p75_ms)
             </str>
             <str>
               $jq:core-query(p95_ms, select(.key | 
endswith(".distrib.requestTimes")), p95_ms)
             </str>
             <str>
               $jq:core-query(p99_ms, select(.key | 
endswith(".distrib.requestTimes")), p99_ms)
             </str>
             <str>
               $jq:core-query(mean_rate, select(.key | 
endswith(".distrib.requestTimes")), meanRate)
             </str>
             
             <!-- Local (non-distrib) query metrics -->
             <str>
               $jq:core-query(local_1minRate, select(.key | 
endswith(".local.requestTimes")), 1minRate)
             </str>
             <str>
               $jq:core-query(local_5minRate, select(.key | 
endswith(".local.requestTimes")), 5minRate)
             </str>
             <str>
               $jq:core-query(local_median_ms, select(.key | 
endswith(".local.requestTimes")), median_ms)
             </str>
             <str>
               $jq:core-query(local_p75_ms, select(.key | 
endswith(".local.requestTimes")), p75_ms)
             </str>
             <str>
               $jq:core-query(local_p95_ms, select(.key | 
endswith(".local.requestTimes")), p95_ms)
             </str>
             <str>
               $jq:core-query(local_p99_ms, select(.key | 
endswith(".local.requestTimes")), p99_ms)
             </str>
             <str>
               $jq:core-query(local_mean_rate, select(.key | 
endswith(".local.requestTimes")), meanRate)
             </str>
             <str>
               $jq:core-query(local_count, select(.key | 
endswith(".local.requestTimes")), count, COUNTER)
             </str>
   
             <!-- core metrics other than query -->
             <str>
               $jq:core(client_errors_total, select(.key | 
endswith(".clientErrors")), count)
             </str>
             <str>
               $jq:core(errors_total, select(.key | endswith(".errors")) | 
select (.value | type == "object"), count)
             </str>
             <str>
               $jq:core(requests_total, select(.key | 
endswith(".requestTimes")) | select (.value | type == "object"), count)
             </str>
             <str>
               $jq:core(server_errors_total, select(.key | 
endswith(".serverErrors")) | select (.value | type == "object"), count)
             </str>
             <str>
               $jq:core(timeouts_total, select(.key | endswith(".timeouts")) | 
select (.value | type == "object"), count)
             </str>
             <str>
               $jq:core(time_seconds_total, select(.key | 
endswith(".totalTime")), ($object.value / 1000))
             </str>
             <str>
               .metrics | to_entries | .[] | select (.key | 
startswith("solr.core.")) as $parent |
               $parent.key | split(".") as $parent_key_items |
               $parent_key_items | length as $parent_key_item_len |
               (if $parent_key_item_len == 3 then $parent_key_items[2] else "" 
end) as $core |
               (if $parent_key_item_len == 5 then $parent_key_items[2] else "" 
end) as $collection |
               (if $parent_key_item_len == 5 then $parent_key_items[3] else "" 
end) as $shard |
               (if $parent_key_item_len == 5 then $parent_key_items[4] else "" 
end) as $replica |
               (if $parent_key_item_len == 5 then ($collection + "_" + $shard + 
"_" + $replica) else $core end) as $core |
               $parent.value | to_entries | .[] | select(.key == 
"CACHE.core.fieldCache") as $object |
               $object.key | split(".")[0] as $category |
               $object.value.entries_count as $value |
               if $parent_key_item_len == 3 then
               {
               name: "solr_metrics_core_field_cache_total",
               type: "COUNTER",
               help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
               label_names: ["category", "core"],
               label_values: [$category, $core],
               value: $value
               }
               else
               {
               name: "solr_metrics_core_field_cache_total",
               type: "COUNTER",
               help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
               label_names: ["category", "core", "collection", "shard", 
"replica"],
               label_values: [$category, $core, $collection, $shard, $replica],
               value: $value
               }
               end
             </str>
             <str>
               $jq:update-handler(update_handler_adds, select(.key == 
"UPDATE.updateHandler.adds"), object.value, GAUGE)
             </str>
             <str>
               $jq:update-handler(update_handler_auto_commits_total, 
select(.key == "UPDATE.updateHandler.autoCommits"), object.value)
             </str>
             <str>
               $jq:update-handler(update_handler_commits_total, select(.key == 
"UPDATE.updateHandler.commits"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_adds_total, select(.key == 
"UPDATE.updateHandler.cumulativeAdds"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_deletes_by_id_total, 
select(.key == "UPDATE.updateHandler.cumulativeDeletesById"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_deletes_by_query_total, 
select(.key == "UPDATE.updateHandler.cumulativeDeletesByQuery"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_errors_total, select(.key == 
"UPDATE.updateHandler.cumulativeErrors"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_deletes_by_id, select(.key == 
"UPDATE.updateHandler.deletesById"), object.value, GAUGE)
             </str>
             <str>
               $jq:update-handler(update_handler_deletes_by_query, select(.key 
== "UPDATE.updateHandler.deletesByQuery"), object.value, GAUGE)
             </str>
             <str>
               $jq:update-handler(update_handler_pending_docs, select(.key == 
"UPDATE.updateHandler.docsPending"), object.value, GAUGE)
             </str>
             <str>
               $jq:update-handler(update_handler_errors, select(.key == 
"UPDATE.updateHandler.errors"), object.value, GAUGE)
             </str>
             <str>
               $jq:update-handler(update_handler_expunge_deletes_total, 
select(.key == "UPDATE.updateHandler.expungeDeletes"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_merges_total, select(.key == 
"UPDATE.updateHandler.merges"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_optimizes_total, select(.key 
== "UPDATE.updateHandler.optimizes"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_rollbacks_total, select(.key 
== "UPDATE.updateHandler.rollbacks"), count)
             </str>
             <str>
               $jq:update-handler(update_handler_soft_auto_commits_total, 
select(.key == "UPDATE.updateHandler.softAutoCommits"), object.value)
             </str>
             <str>
               $jq:update-handler(update_handler_splits_total, select(.key == 
"UPDATE.updateHandler.splits"), count)
             </str>
   
             <str>
               $jq:cache-searcher(cache, select(.key == "lookups" or .key == 
"hits" or .key == "size" or .key == "evictions" or .key == "inserts"), 
$target.value)
             </str>
             <str>
               $jq:cache-searcher(cache_ratio, select(.key == "hitratio"), 
$target.value)
             </str>
             <str>
               $jq:cache-searcher(warmup_time_seconds, select(.key == 
"warmupTime"), ($target.value / 1000))
             </str>
             <str>
               $jq:cache-searcher(cumulative_cache_total,
                                  select(.key == "cumulative_lookups" or .key 
== "cumulative_hits" or .key == "cumulative_evictions" or .key == 
"cumulative_inserts"),
                                  $target.value,
                                  COUNTER)
             </str>
             <str>
               $jq:cache-searcher(cumulative_cache_ratio, select(.key == 
"cumulative_hitratio"), $target.value)
             </str>
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.core.")) as $parent |
               $parent.key | split(".") as $parent_key_items |
               $parent_key_items | length as $parent_key_item_len |
               (if $parent_key_item_len == 3 then $parent_key_items[2] else "" 
end) as $core |
               (if $parent_key_item_len == 5 then $parent_key_items[2] else "" 
end) as $collection |
               (if $parent_key_item_len == 5 then $parent_key_items[3] else "" 
end) as $shard |
               (if $parent_key_item_len == 5 then $parent_key_items[4] else "" 
end) as $replica |
               (if $parent_key_item_len == 5 then ($collection + "_" + $shard + 
"_" + $replica) else $core end) as $core |
               $parent.value | to_entries | .[] | select(.key | 
startswith("CORE.fs.")) | select (.key | endswith(".totalSpace") or 
endswith(".usableSpace")) as $object |
               $object.key | split(".")[0] as $category |
               $object.key | split(".")[2] as $item |
               $object.value as $value |
               if $parent_key_item_len == 3 then
               {
                 name: "solr_metrics_core_fs_bytes",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core", "item"],
                 label_values: [$category, $core, $item],
                 value: $value
               }
               else
               {
                 name: "solr_metrics_core_fs_bytes",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core", "collection", "shard", 
"replica", "item"],
                 label_values: [$category, $core, $collection, $shard, 
$replica, $item],
                 value: $value
               }
               end
             </str>
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.core.")) as $parent |
               $parent.key | split(".") as $parent_key_items |
               $parent_key_items | length as $parent_key_item_len |
               (if $parent_key_item_len == 3 then $parent_key_items[2] else "" 
end) as $core |
               (if $parent_key_item_len == 5 then $parent_key_items[2] else "" 
end) as $collection |
               (if $parent_key_item_len == 5 then $parent_key_items[3] else "" 
end) as $shard |
               (if $parent_key_item_len == 5 then $parent_key_items[4] else "" 
end) as $replica |
               (if $parent_key_item_len == 5 then ($collection + "_" + $shard + 
"_" + $replica) else $core end) as $core |
               $parent.value | to_entries | .[] | select(.key | 
startswith("HIGHLIGHTER.")) | select (.key | endswith(".requests")) as $object |
               $object.key | split(".")[0] as $category |
               $object.key | split(".")[1] as $name |
               $object.key | split(".")[2] as $item |
               $object.value as $value |
               if $parent_key_item_len == 3 then
               {
                 name: "solr_metrics_core_highlighter_request_total",
                 type: "COUNTER",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core", "name", "item"],
                 label_values: [$category, $core, $name, $item],
                 value: $value
               }
               else
               {
                 name: "solr_metrics_core_highlighter_request_total",
                 type: "COUNTER",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core", "collection", "shard", 
"replica", "name", "item"],
                 label_values: [$category, $core, $collection, $shard, 
$replica, $name, $item],
                 value: $value
               }
               end
             </str>
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.core.")) as $parent |
               $parent.key | split(".") as $parent_key_items |
               $parent_key_items | length as $parent_key_item_len |
               (if $parent_key_item_len == 3 then $parent_key_items[2] else "" 
end) as $core |
               (if $parent_key_item_len == 5 then $parent_key_items[2] else "" 
end) as $collection |
               (if $parent_key_item_len == 5 then $parent_key_items[3] else "" 
end) as $shard |
               (if $parent_key_item_len == 5 then $parent_key_items[4] else "" 
end) as $replica |
               (if $parent_key_item_len == 5 then ($collection + "_" + $shard + 
"_" + $replica) else $core end) as $core |
               $parent.value | to_entries | .[] | select(.key == 
"INDEX.sizeInBytes") as $object |
               $object.key | split(".")[0] as $category |
               $object.value as $value |
               if $parent_key_item_len == 3 then
               {
                 name: "solr_metrics_core_index_size_bytes",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core"],
                 label_values: [$category, $core],
                 value: $value
               }
               else
               {
                 name: "solr_metrics_core_index_size_bytes",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core", "collection", "shard", 
"replica"],
                 label_values: [$category, $core, $collection, $shard, 
$replica],
                 value: $value
               }
               end
             </str>
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.core.")) as $parent |
               $parent.key | split(".") as $parent_key_items |
               $parent_key_items | length as $parent_key_item_len |
               (if $parent_key_item_len == 3 then $parent_key_items[2] else "" 
end) as $core |
               (if $parent_key_item_len == 5 then $parent_key_items[2] else "" 
end) as $collection |
               (if $parent_key_item_len == 5 then $parent_key_items[3] else "" 
end) as $shard |
               (if $parent_key_item_len == 5 then $parent_key_items[4] else "" 
end) as $replica |
               (if $parent_key_item_len == 5 then ($collection + "_" + $shard + 
"_" + $replica) else $core end) as $core |
               $parent.value | to_entries | .[] | select(.key == 
"REPLICATION./replication.isMaster") as $object |
               $object.key | split(".")[0] as $category |
               $object.key | split(".")[1] as $handler |
               (if $object.value == true then 1.0 else 0.0 end) as $value |
               if $parent_key_item_len == 3 then
               {
                 name: "solr_metrics_core_replication_master",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "handler", "core"],
                 label_values: [$category, $handler, $core],
                 value: $value
               }
               else
               {
                 name: "solr_metrics_core_replication_master",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "handler", "core", "collection", 
"shard", "replica"],
                 label_values: [$category, $handler, $core, $collection, 
$shard, $replica],
                 value: $value
               }
               end
             </str>
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.core.")) as $parent |
               $parent.key | split(".") as $parent_key_items |
               $parent_key_items | length as $parent_key_item_len |
               (if $parent_key_item_len == 3 then $parent_key_items[2] else "" 
end) as $core |
               (if $parent_key_item_len == 5 then $parent_key_items[2] else "" 
end) as $collection |
               (if $parent_key_item_len == 5 then $parent_key_items[3] else "" 
end) as $shard |
               (if $parent_key_item_len == 5 then $parent_key_items[4] else "" 
end) as $replica |
               (if $parent_key_item_len == 5 then ($collection + "_" + $shard + 
"_" + $replica) else $core end) as $core |
               $parent.value | to_entries | .[] | select(.key == 
"REPLICATION./replication.isSlave") as $object |
               $object.key | split(".")[0] as $category |
               $object.key | split(".")[1] as $handler |
               (if $object.value == true then 1.0 else 0.0 end) as $value |
               if $parent_key_item_len == 3 then
               {
                 name: "solr_metrics_core_replication_slave",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "handler", "core"],
                 label_values: [$category, $handler, $core],
                 value: $value
               }
               else
               {
                 name: "solr_metrics_core_replication_slave",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "handler", "core", "collection", 
"shard", "replica"],
                 label_values: [$category, $handler, $core, $collection, 
$shard, $replica],
                 value: $value
               }
               end
             </str>
             <str>
               .metrics | to_entries | .[] | select(.key | 
startswith("solr.core.")) as $parent |
               $parent.key | split(".") as $parent_key_items |
               $parent_key_items | length as $parent_key_item_len |
               (if $parent_key_item_len == 3 then $parent_key_items[2] else "" 
end) as $core |
               (if $parent_key_item_len == 5 then $parent_key_items[2] else "" 
end) as $collection |
               (if $parent_key_item_len == 5 then $parent_key_items[3] else "" 
end) as $shard |
               (if $parent_key_item_len == 5 then $parent_key_items[4] else "" 
end) as $replica |
               (if $parent_key_item_len == 5 then ($collection + "_" + $shard + 
"_" + $replica) else $core end) as $core |
               $parent.value | to_entries | .[] | select(.key == 
"SEARCHER.searcher.deletedDocs" or .key == "SEARCHER.searcher.maxDoc" or .key 
== "SEARCHER.searcher.numDocs") as $object |
               $object.key | split(".")[0] as $category |
               $object.key | split(".")[2] as $item |
               $object.value as $value |
               if $parent_key_item_len == 3 then
               {
                 name: "solr_metrics_core_searcher_documents",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core", "item"],
                 label_values: [$category, $core, $item],
                 value: $value
               }
               else
               {
                 name: "solr_metrics_core_searcher_documents",
                 type: "GAUGE",
                 help: "See following URL: 
https://lucene.apache.org/solr/guide/metrics-reporting.html";,
                 label_names: ["category", "core", "collection", "shard", 
"replica", "item"],
                 label_values: [$category, $core, $collection, $shard, 
$replica, $item],
                 value: $value
               }
               end
             </str>
           </arr>
         </lst>
       </metrics>
   
       <collections>
         <lst name="request">
           <lst name="query">
             <str name="path">/admin/collections</str>
             <lst name="params">
               <str name="action">CLUSTERSTATUS</str>
             </lst>
           </lst>
           <arr name="jsonQueries">
             <str>
               .cluster.live_nodes | length as $value|
               {
                 name         : "solr_collections_live_nodes",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/collections-api.html#clusterstatus";,
                 label_names  : [],
                 label_values : [],
                 value        : $value
               }
             </str>
             <str>
               .cluster.collections | to_entries | .[] | . as $object |
               $object.key as $collection |
               $object.value.pullReplicas | tonumber as $value |
               {
                 name         : "solr_collections_pull_replicas",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/collections-api.html#clusterstatus";,
                 label_names  : ["collection"],
                 label_values : [$collection],
                 value        : $value
               }
             </str>
             <str>
               .cluster.collections | to_entries | .[] | . as $object |
               $object.key as $collection |
               $object.value.nrtReplicas | tonumber as $value |
               {
                 name         : "solr_collections_nrt_replicas",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/collections-api.html#clusterstatus";,
                 label_names  : ["collection"],
                 label_values : [$collection],
                 value        : $value
               }
             </str>
             <str>
               .cluster.collections | to_entries | .[] | . as $object |
               $object.key as $collection |
               $object.value.tlogReplicas | tonumber as $value |
               {
                 name         : "solr_collections_tlog_replicas",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/collections-api.html#clusterstatus";,
                 label_names  : ["collection"],
                 label_values : [$collection],
                 value        : $value
               }
             </str>
             <str>
               .cluster.collections | to_entries | .[] | . as $object |
               $object.key as $collection |
               $object.value.shards | to_entries | .[] | . as $shard_obj |
               $shard_obj.key as $shard |
               (if $shard_obj.value.state == "active" then 1.0 else 0.0 end) as 
$value |
               {
                 name         : "solr_collections_shard_state",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/collections-api.html#clusterstatus";,
                 label_names  : ["collection","shard"],
                 label_values : [$collection,$shard],
                 value        : $value
               }
             </str>
             <str>
               .cluster.collections | to_entries | .[] | . as $object |
               $object.key as $collection |
               $object.value.shards | to_entries | .[] | . as $shard_obj |
               $shard_obj.key as $shard |
               $shard_obj.value.replicas | to_entries | .[] | . as $replica_obj 
|
               $replica_obj.key as $replica_name |
               $replica_obj.value.core as $core |
               $core[$collection + "_" + $shard + "_" | length:] as $replica |
               $replica_obj.value.base_url as $base_url |
               $replica_obj.value.node_name as $node_name |
               $replica_obj.value.type as $type |
               $replica_obj.value.state as $state |
               (if $state == "active" then 1.0 else 0.0 end) as $value |
               {
                 name         : "solr_collections_replica_state",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/collections-api.html#clusterstatus";,
                 label_names  : ["collection", "shard", "replica", 
"replica_name", "core", "base_url", "node_name", "type", "state"],
                 label_values : [$collection, $shard, $replica, $replica_name, 
$core, $base_url, $node_name, $type, $state],
                 value        : $value
               }
             </str>
   
             <str>
               .cluster.collections | to_entries | .[] | . as $object |
               $object.key as $collection |
               $object.value.shards | to_entries | .[] | . as $shard_obj |
               $shard_obj.key as $shard |
               $shard_obj.value.replicas | to_entries | .[] | . as $replica_obj 
|
               $replica_obj.key as $replica_name |
               $replica_obj.value.core as $core |
               $core[$collection + "_" + $shard + "_" | length:] as $replica |
               $replica_obj.value.base_url as $base_url |
               $replica_obj.value.node_name as $node_name |
               $replica_obj.value.type as $type |
               (if $replica_obj.value.leader == "true" then 1.0 else 0.0 end) 
as $value |
               {
                 name         : "solr_collections_shard_leader",
                 type         : "GAUGE",
                 help         : "See following URL: 
https://lucene.apache.org/solr/guide/collections-api.html#clusterstatus";,
                 label_names  : ["collection", "shard", "replica", 
"replica_name", "core", "base_url", "node_name", "type"],
                 label_values : [$collection, $shard, $replica, $replica_name, 
$core, $base_url, $node_name, $type],
                 value        : $value
               }
             </str>
           </arr>
         </lst>
         <lst name="request">
           <lst name="query">
             <str name="path">/admin/zookeeper/status</str>
           </lst>
           <arr name="jsonQueries">
             <str>
               .zkStatus.ensembleSize as $value |
               .zkStatus.mode as $mode |
               {
               name         : "solr_zookeeper_ensemble_size",
               type         : "GAUGE",
               help         : "See following URL: 
https://solr.apache.org/guide/cloud-screens.html#zk-status-view";,
               label_names  : [],
               label_values : [],
               value        : $value
               }
             </str>
             <str>
               .zkStatus.details[] as $object |
               $object.host as $host |
               $object.ok as $ok |
               (if $object.clientPort != null and $ok then 1.0 else 0.0 end) as 
$value |
               {
               name         : "solr_zookeeper_nodestatus",
               type         : "GAUGE",
               help         : "See following URL: 
https://solr.apache.org/guide/cloud-screens.html#zk-status-view";,
               label_names  : ["host"],
               label_values : [$host],
               value        : $value
               }
             </str>
             <str>
               .zkStatus.status as $statusText |
               (if $statusText == "green" then 1.0 else 0.0 end) as $value |
               {
               name         : "solr_zookeeper_status",
               type         : "GAUGE",
               help         : "See following URL: 
https://solr.apache.org/guide/cloud-screens.html#zk-status-view";,
               label_names  : ["status"],
               label_values : [$statusText],
               value        : $value
               }
             </str>
           </arr>
         </lst>
       </collections>
   
       <!--
       <search>
         <lst name="request">
           <lst name="query">
             <str name="collection">collection1</str>
             <str name="path">/select</str>
             <lst name="params">
               <str name="q">*:*</str>
               <str name="start">0</str>
               <str name="rows">0</str>
               <str name="json.facet">
                 {
                   category: {
                     type: terms,
                     field: cat
                   }
                 }
               </str>
             </lst>
           </lst>
           <arr name="jsonQueries">
             <str>
               .facets.category.buckets[] as $object |
               $object.val as $term |
               $object.count as $value |
               {
                 name         : "solr_facets_category",
                 type         : "GAUGE",
                 help         : "Category facets",
                 label_names  : ["term"],
                 label_values : [$term],
                 value        : $value
               }
             </str>
           </arr>
         </lst>
       </search>
       -->
   
     </rules>
   
   </config>
   ```


-- 
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]

Reply via email to