Solr 8.9.0でprometheus-exporterを使用しているときに、重複したサンプルエラーが発生する

トピック作成者:ks-solruserml-bot (2024/06/09 20:27 投稿)
3
CloseClose

(The bot translated the original post https://lists.apache.org/thread/ql921tnmjntk0s7pjfofzxzf7ylg5gld into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

私たちの組織では、プロダクションユースケースのためにSolr 8.9.0を実装しました。メトリクスの収集と保存にはPrometheusを標準化しています。Solrクラスターからメトリクスをエクスポートするために、バージョン8.9.0のパブリックSolrイメージをEC2インスタンスにデプロイし、Dockerを使用して同じホスト上で実行されているSolrに対してエクスポーターバイナリを実行しています。Kubernetesにホストされ、Helmチャートを介して構成されたPrometheusスクレイパーは、各スクレイプで次のようなエラーを報告します:

ts=2021-08-10T16:44:13.929Z caller=dedupe.go:112 component=remote level=error remote_name=11d3d0 url=https://our.endpoint/push msg="non-recoverable error" count=500 err="server returned HTTP status 400 Bad Request: user=nnnnn: err: duplicate sample for timestamp. timestamp=2021-08-10T16:44:13.317Z, series={__name__="solr_metrics_core_time_seconds_total", aws_account="our-account", base_url="http://fqdn.for.solr.server:32080/solr", category="QUERY", cluster="our-cluster", collection="a-collection", core="a_collection_shard1_replica_t13", dc="aws", handler="/select", instance=" fqdn.for.solr.server:8984", job="solr", replica="replica_t13", shard="shard1"}"

Prometheusエクスポーターをクエリしたところ、重複する時系列が存在することを確認しました。以下は重複する時系列のサンプルです:

solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t1",collection="a_collection",shard="shard1",replica="replica_t1",base_url="http://fqdn3.for.solr.server:32080/solr",} 1.533471301599E9
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t1",collection="a_collection",shard="shard1",replica="replica_t1",base_url="http://fqdn3.for.solr.server:32080/solr",} 8.89078653472891E11
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t1",collection="a_collection",shard="shard1",replica="replica_t1",base_url="http://fqdn3.for.solr.server:32080/solr",} 8.9061212477449E11
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t3",collection="a_collection",shard="shard1",replica="replica_t3",base_url="http://fqdn2.for.solr.server:32080/solr",} 1.63796914645E9
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t3",collection="a_collection",shard="shard1",replica="replica_t3",base_url="http://fqdn2.for.solr.server:32080/solr",} 9.05314998357273E11
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t3",collection="a_collection",shard="shard1",replica="replica_t3",base_url="http://fqdn2.for.solr.server:32080/solr",} 9.06952967503723E11
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t5",collection="a_collection",shard="shard1",replica="replica_t5",base_url="http://fqdn1.for.solr.server:32080/solr",} 1.667842814432E9
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t5",collection="a_collection",shard="shard1",replica="replica_t5",base_url="http://fqdn1.for.solr.server:32080/solr",} 9.1289401347629E11
solr_metrics_core_time_seconds_total{category="QUERY",handler="/select",core="a_collection_shard1_replica_t5",collection="a_collection",shard="shard1",replica="replica_t5",base_url="http://fqdn1.for.solr.server:32080/solr",} 9.14561856290722E11

これはエクスポーターコンテナを実行するsystemdユニットファイルです:

[Unit]
Description=Solr Exporter Docker
After=network.target
Wants=network.target
Requires=docker.service
After=docker.service

[Service]
Type=simple
ExecStart=/usr/bin/docker run --rm --name=solr-exporter --net=host --user=solr solr:8.9.0 /opt/solr/contrib/prometheus-exporter/bin/solr-exporter -p 8984 -z the-various-zookeeper-endpoints -f /opt/solr/contrib/prometheus-exporter/conf/solr-exporter-config.xml -n 4

ExecStop=/usr/bin/docker stop -t 2 solr-exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target

PrometheusエクスポーターのXML設定を8.6.2(以前使用していたバージョン)と最新バージョンで調べましたが、最近大規模なリファクタリングが行われたようです。何か見落としている点があるのでしょうか?8.9でこの問題を再現できる方はいらっしゃいますか?

よろしくお願いします、
Joshua Hendrickson

返信投稿者:ks-solruserml-bot (2024/06/09 20:27 投稿)

以下の理由でこの問題が発生しています:Solrに接続するために -z zk-url を使用しているからです。このオプションを使用すると、PrometheusエクスポーターはSolrCloud環境に接続していると仮定し、すべてのノードからメトリクスを収集します。あなたが3つのPrometheusエクスポーターを起動しているため、それぞれがクラスタ全体からすべてのメトリクスを収集してしまいます。

これを解決するためには、次の2つの方法があります:

  1. -z <zk-url> の代わりに -h <your-local-solr-url> を使用する。
  2. クラスタ内にPrometheusエクスポーターのインスタンスを1つだけ配置する。

ただし、解決策1を使用すると、設定ファイル内の <collections> タグで設定したメトリクスを取得できなくなります。なぜなら、-h オプションはSolrCloudインスタンスを前提としていないためです。

よろしくお願いします、
Mathieu

返信投稿者:ks-solruserml-bot (2024/06/09 20:28 投稿)

Mathieu、

Prometheusの設定を変更してクラスタ内の1つのポッドからのみスクレイプするようにしましたが、以下のエラーが依然として発生しています。他に試せることはありますか?

返信投稿者:ks-solruserml-bot (2024/06/09 20:28 投稿)

こんにちは、Joshua、

現在、以前に示した9行ではなく、3行だけ表示されていることを確認できますか?
また、base_urlも変更されているはずです。そうなっていますか?

Mathieu

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?