1135 lines
54 KiB
XML
1135 lines
54 KiB
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(".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] | rtrimstr("]") | split("[") | .[0] as $handler | .[1] // "false" as $internal |
|
|
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://solr.apache.org/guide/solr/latest/deployment-guide/performance-statistics-reference.html",
|
|
label_names: ["category", "searchHandler", "internal", "core"],
|
|
label_values: [$category, $handler, $internal, $core],
|
|
value: $value
|
|
}
|
|
else
|
|
{
|
|
name: "solr_metrics_core_query_{UNIQUE}",
|
|
type: "{TYPE}",
|
|
help: "See: https://solr.apache.org/guide/solr/latest/deployment-guide/performance-statistics-reference.html",
|
|
label_names: ["category", "searchHandler", "internal", "core", "collection", "shard", "replica"],
|
|
label_values: [$category, $handler, $internal, $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] | rtrimstr("]") | split("[") | .[0] as $handler | .[1] // "false" as $internal |
|
|
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://solr.apache.org/guide/solr/latest/deployment-guide/metrics-reporting.html",
|
|
label_names: ["category", "handler", "internal", "core"],
|
|
label_values: [$category, $handler, $internal, $core],
|
|
value: $value
|
|
}
|
|
else
|
|
{
|
|
name: "solr_metrics_core_{UNIQUE}",
|
|
type: "{TYPE}",
|
|
help: "See following URL: https://solr.apache.org/guide/solr/latest/deployment-guide/metrics-reporting.html",
|
|
label_names: ["category", "handler", "internal", "core", "collection", "shard", "replica"],
|
|
label_values: [$category, $handler, $internal, $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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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>
|
|
</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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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 / 1000000000.0 ) as $value |
|
|
{
|
|
name : "solr_metrics_jvm_os_cpu_time_seconds",
|
|
type : "COUNTER",
|
|
help : "See following URL: https://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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(".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(".totalTime")), ($object.value / 1000000000.0))
|
|
</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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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")) | select(.value | type=="object"), 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://solr.apache.org/guide/solr/latest/deployment-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(requests_total, select(.key | endswith(".requestTimes")), count, COUNTER)
|
|
</str>
|
|
<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(".requestTimes")), 1minRate)
|
|
</str>
|
|
<str>
|
|
$jq:core-query(5minRate, select(.key | endswith(".requestTimes")), 5minRate)
|
|
</str>
|
|
<str>
|
|
$jq:core-query(median_ms, select(.key | endswith(".requestTimes")), median_ms)
|
|
</str>
|
|
<str>
|
|
$jq:core-query(p75_ms, select(.key | endswith(".requestTimes")), p75_ms)
|
|
</str>
|
|
<str>
|
|
$jq:core-query(p95_ms, select(.key | endswith(".requestTimes")), p95_ms)
|
|
</str>
|
|
<str>
|
|
$jq:core-query(p99_ms, select(.key | endswith(".requestTimes")), p99_ms)
|
|
</str>
|
|
<str>
|
|
$jq:core-query(mean_rate, select(.key | endswith(".requestTimes")), meanRate)
|
|
</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 / 1000000000.0))
|
|
</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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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.isLeader") 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_leader",
|
|
type: "GAUGE",
|
|
help: "See following URL: https://solr.apache.org/guide/solr/latest/deployment-guide/metrics-reporting.html",
|
|
label_names: ["category", "handler", "core"],
|
|
label_values: [$category, $handler, $core],
|
|
value: $value
|
|
}
|
|
else
|
|
{
|
|
name: "solr_metrics_core_replication_leader",
|
|
type: "GAUGE",
|
|
help: "See following URL: https://solr.apache.org/guide/solr/latest/deployment-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.isFollower") 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_follower",
|
|
type: "GAUGE",
|
|
help: "See following URL: https://solr.apache.org/guide/solr/latest/deployment-guide/metrics-reporting.html",
|
|
label_names: ["category", "handler", "core"],
|
|
label_values: [$category, $handler, $core],
|
|
value: $value
|
|
}
|
|
else
|
|
{
|
|
name: "solr_metrics_core_replication_follower",
|
|
type: "GAUGE",
|
|
help: "See following URL: https://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-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://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.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://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.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://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.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://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.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://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.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://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.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://solr.apache.org/guide/solr/latest/deployment-guide/cluster-node-management.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/solr/latest/deployment-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/solr/latest/deployment-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/solr/latest/deployment-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>
|