diff --git a/solr/tasks/main.yml b/solr/tasks/main.yml index cbe8b989..cf80b528 100644 --- a/solr/tasks/main.yml +++ b/solr/tasks/main.yml @@ -70,6 +70,7 @@ - name: Install the Solr prometheus exporter config file template: src=solr-exporter-config.xml dest={{ solr_prometheus_conf_file }} mode=0644 notify: Restart Solr prometheus exporter + tags: [ 'solr', 'solr_prometheus', 'solr_prometheus_exporter', 'solr_prometheus_exporter_config' ] - name: Install the Solr prometheus exporter upstart script template: src=solr_prometheus_exporter.upstart.j2 dest=/etc/init/solr_prometheus_exporter.conf mode=0644 owner=root group=root diff --git a/solr/templates/solr-exporter-config.xml b/solr/templates/solr-exporter-config.xml index b043835e..66dc8650 100644 --- a/solr/templates/solr-exporter-config.xml +++ b/solr/templates/solr-exporter-config.xml @@ -1636,6 +1636,176 @@ } end + + .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 | endswith(".requestTimes")) | select (.value | type == "object") as $object | + $object.key | split(".")[0] as $category | + $object.key | split(".")[1] as $handler | + select($handler | startswith("/")) | + $object.value.meanRate as $value | + if $parent_key_item_len == 3 then + { + name: "solr_metrics_core_requests_meanrate_seconds", + 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_requests_meanrate", + 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 + + + .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 | endswith(".requestTimes")) | select (.value | type == "object") as $object | + $object.key | split(".")[0] as $category | + $object.key | split(".")[1] as $handler | + select($handler | startswith("/")) | + $object.value."1minRate" as $value | + if $parent_key_item_len == 3 then + { + name: "solr_metrics_core_requests_1minrate_seconds", + 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_requests_1minrate", + 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 + + + .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 | endswith(".requestTimes")) | select (.value | type == "object") as $object | + $object.key | split(".")[0] as $category | + $object.key | split(".")[1] as $handler | + select($handler | startswith("/")) | + $object.value."5minRate" as $value | + if $parent_key_item_len == 3 then + { + name: "solr_metrics_core_requests_5minrate_seconds", + 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_requests_5minrate", + 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 + + + .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 | endswith(".requestTimes")) | select (.value | type == "object") as $object | + $object.key | split(".")[0] as $category | + $object.key | split(".")[1] as $handler | + select($handler | startswith("/")) | + $object.value."15minRate" as $value | + if $parent_key_item_len == 3 then + { + name: "solr_metrics_core_requests_15minrate", + 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_requests_15minrate_seconds", + 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 + + + .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 | endswith(".requestTimes")) | select (.value | type == "object") as $object | + $object.key | split(".")[0] as $category | + $object.key | split(".")[1] as $handler | + select($handler | startswith("/")) | + $object.value.mean_ms / 1000 as $value | + if $parent_key_item_len == 3 then + { + name: "solr_metrics_core_requests_mean_time_seconds", + 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_requests_mean_time_seconds", + 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 +