View a markdown version of this page

Amazon Managed Service for Prometheus のエラーのトラブルシューティング - Amazon Managed Service for Prometheus

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Managed Service for Prometheus のエラーのトラブルシューティング

Amazon Managed Service for Prometheus に関する問題のトラブルシューティングを行うには、以下のセクションが役立ちます。

429 または制限超過エラー

次の例のような 429 エラーが表示される場合は、リクエストが Amazon Managed Service for Prometheus の取り込みのクォータを超えています。

ts=2020-10-29T15:34:41.845Z caller=dedupe.go:112 component=remote level=error remote_name=e13b0c url=http://iamproxy-external.prometheus.uswest2-prod.eks:9090/workspaces/workspace_id/api/v1/remote_write msg="non-recoverable error" count=500 err="server returned HTTP status 429 Too Many Requests: ingestion rate limit (6666.666666666667) exceeded while adding 499 samples and 0 metadata

次の例のような 429 エラーが表示される場合は、リクエストが Amazon Managed Service for Prometheus のワークスペースあたりのアクティブなメトリクス数のクォータを超えています。

ts=2020-11-05T12:40:33.375Z caller=dedupe.go:112 component=remote level=error remote_name=aps url=http://iamproxy-external.prometheus.uswest2-prod.eks:9090/workspaces/workspace_id/api/v1/remote_write msg="non-recoverable error" count=500 err="server returned HTTP status 429 Too Many Requests: user=accountid_workspace_id: per-user series limit (local limit: 0 global limit: 3000000 actual local limit: 500000) exceeded

次の例のような 429 エラーが表示された場合、リクエストは、RemoteWrite Prometheus 互換 API を使用してワークスペースにデータを送信できるレート (1 秒あたりのトランザクション数) に対する Amazon Managed Service for Prometheus クォータを超えています。

ts=2024-03-26T16:50:21.780708811Z caller=dedupe.go:112 component=remote level=error remote_name=ab123c url=https://aps-workspaces.us-east-1.amazonaws.com/workspaces/workspace_id/api/v1/remote_write msg="non-recoverable error" count=1000 exemplarCount=0 err="server returned HTTP status 429 Too Many Requests: {\"message\":\"Rate exceeded\"}"

次の例のような 400 エラーが表示された場合、リクエストはアクティブな時系列の Amazon Managed Service for Prometheus のクォータを超えています。アクティブな時系列クォータの処理方法の詳細については、「アクティブシリーズのデフォルトのクォータ」を参照してください。

ts=2024-03-26T16:50:21.780708811Z caller=push.go:53 level=warn url=https://aps-workspaces.us-east-1.amazonaws.com/workspaces/workspace_id/api/v1/remote_write msg="non-recoverable error" count=500 exemplarCount=0 err="server returned HTTP status 400 Bad Request: maxFailure (quorum) on a given error family, rpc error: code = Code(400) desc = addr=10.1.41.23:9095 state=ACTIVE zone=us-east-1a, rpc error: code = Code(400) desc = user=accountid_workspace_id: per-user series limit of 10000000 exceeded, Capacity from 2,000,000 to 10,000,000 is automatically adjusted based on the last 30 min of usage. If throttled above 10,000,000 or in case of incoming surges, please contact administrator to raise it. (local limit: 0 global limit: 10000000 actual local limit: 92879)"

Amazon Managed Service for Prometheus のサービスクォータの詳細については、「Amazon Managed Service for Prometheus のサービスクォータ」を参照してください。

サンプルが重複している

高可用性の Prometheus グループを使用している場合は、Prometheus インスタンスで外部ラベルを使用して重複排除を設定する必要があります。詳細については、「Amazon Managed Service for Prometheus に送信される高可用性メトリクスの重複排除」を参照してください。

重複データに関するその他の問題については、次のセクションで説明します。

サンプルのタイムスタンプに関するエラーが表示される

Amazon Managed Service for Prometheus はデータを順番に取り込み、各サンプルのタイムスタンプは前のサンプルより後になるものと想定しています。

データが順番に到着しない場合、out-of-order samplesduplicate sample for timestamp、または samples with different value but same timestamp に関するエラーが表示されます。これらの問題は、通常、Amazon Managed Service for Prometheus にデータを送信しているクライアントの設定が正しくないことが原因で発生します。使用している Prometheus クライアントがエージェントモードで実行している場合は、シリーズ名やターゲットが重複しているルールの設定を確認します。メトリクスがタイムスタンプを直接提供している場合は、タイムスタンプが順番どおりであることを確認します。

ワークスペースがout-of-orderのサンプルを受け入れるようにout-of-order時間枠を設定できます。詳細については、「ワークスペースの設定」を参照してください。

この仕組みやセットアップの確認方法の詳細については、Prom Labs のブログ記事「Understanding Duplicate Samples and Out-of-order Timestamp Errors in Prometheus」を参照してください。

制限に関するエラーメッセージが表示される

注記

Amazon Managed Service for Prometheus は、Prometheus のリソース使用状況をモニタリングするための CloudWatch 使用状況メトリクスを提供しています。CloudWatch 使用状況メトリクスのアラーム機能を使用すると、Prometheus のリソースと使用状況をモニタリングして制限エラーを回避できます。

次のいずれかのエラーメッセージが表示される場合は、Amazon Managed Service for Prometheus のいずれかのクォータの引き上げをリクエストすることで問題を解決できます。詳細については、「Amazon Managed Service for Prometheus のサービスクォータ」を参照してください。

  • ユーザーあたりのシリーズ制限 <value> を超えました。管理者に連絡して制限を引き上げてください

  • メトリクスあたりのシリーズ制限 <value> を超えました。管理者に連絡して制限を引き上げてください

  • ingestion rate limit (...) exceeded

  • series has too many labels (...) series: '%s'

  • the query time range exceeds the limit (query length: xxx, limit: yyy)

  • the query hit the max number of chunks limit while fetching chunks from ingesters

  • Limit exceeded. Maximum workspaces per account.

ローカル Prometheus サーバーの出力が制限を超えている

Amazon Managed Service for Prometheus には、ワークスペースが Prometheus サーバーから受信できるデータ量に対するサービスクォータがあります。Prometheus サーバーが Amazon Managed Service for Prometheus に送信しているデータ量を特定するには、Prometheus サーバーに対して以下のクエリを実行します。Prometheus の出力が Amazon Managed Service for Prometheus の制限を超えていると判明した場合は、対応するサービスクォータの引き上げをリクエストできます。詳細については、「Amazon Managed Service for Prometheus のサービスクォータ」を参照してください。

出力制限を確認するためにローカル自己実行 Prometheus サーバーに対して実行するクエリ
データの種類 使用するクエリ

現在のアクティブなシリーズ数

prometheus_tsdb_head_series

現在の取り込みレート

rate(prometheus_tsdb_head_samples_appended_total[5m])

メトリクス名ごとのアクティブなシリーズ数の降順リスト

sort_desc(count by(__name__) ({__name__!=""}))

メトリクスシリーズごとのラベル数

group by(mylabelname) ({__name__!=""})

一部のデータが表示されない

Amazon Managed Service for Prometheus に送信されたデータは、さまざまな理由で破棄される場合があります。次の表は、データが取り込まれずに破棄される場合の理由を示しています。

Amazon CloudWatch を使用して、データが破棄される量と理由を追跡できます。詳細については、「CloudWatch メトリクスを使用して Amazon Managed Service for Prometheus のリソースモニタリングする」を参照してください。

Reason

意味

greater_than_max_sample_age

現在時刻より古いログ行は破棄されます

new-value-for-timestamp

重複したサンプルは、前のサンプルと同じタイムスタンプで送信されますが、値は異なります。

per_metric_series_limit

ユーザーがメトリクスごとのアクティブなシリーズ数の上限に達しました

per_user_series_limit

ユーザーがアクティブなシリーズの合計数の上限に達しました

rate_limited

取り込みレートが制限されました

sample-out-of-order

サンプルが順不同で送信されたため、処理できません。この理由は、out-of-orderの時間枠が 0 に設定されている場合にのみ出力されます。

sample-too-old

サンプルが設定されたout-of-order時間枠より古いため、処理できません。

out-of-order-rate-limit

Out-of-order取り込みレート制限に達し、サンプルを処理できません。詳細については、「Amazon Managed Service for Prometheus のサービスクォータ」を参照してください。

label_value_too_long

ラベル値の長さが許容される文字数の上限を超えています

max_label_names_per_series

ユーザーがメトリクスごとのラベル名の数の上限に達しました

missing_metric_name

メトリクス名が指定されていません

metric_name_invalid

無効なメトリクス名が指定されました

label_invalid

無効なラベルが指定されました

duplicate_label_names

重複するラベル名が指定されました

native_histogram_sample_size_bytes_exceeded

ネイティブヒストグラムサンプルが最大許容サンプルサイズを超えています。クライアント側のヒストグラム内のバケットまたはスパンの数を減らします。

native_histogram_invalid_schema

ネイティブヒストグラムのスキーマ値が無効です。有効なスキーマの範囲は -4~8 です。Prometheus クライアント設定で NativeHistogramBucketFactor設定を確認します。

native_histogram_invalid

ネイティブヒストグラムは検証に失敗します (負のバケット数、不一致のバケット数、不正な形式のバケットスパンなど)。これは通常、計測ライブラリのバグを示します。

native_histogram_buckets_exceeded

ネイティブヒストグラムが最大バケット数の制限を超えているため、解像度を自動的に減らすことはできません。を使用して、クライアント側のバケットの数を減らしますNativeHistogramMaxBucketNumber

native_histogram_rate_limited

ネイティブヒストグラムの取り込みレート制限に達したため、ネイティブヒストグラムサンプルは拒否されました。ネイティブヒストグラムシリーズまたはスクレイプ頻度の数を減らすか、制限の引き上げをリクエストします。

per_user_native_histogram_series_limit

ユーザーがワークスペースあたりのネイティブヒストグラムアクティブシリーズ制限に達しました。ネイティブヒストグラムシリーズの数を減らすか、制限の引き上げをリクエストします。

HTTP 422 エラー: クエリタイムアウト

クエリが 1 分以上実行されると、Amazon Managed Service for Prometheus は HTTP 422 ステータスコードを返します。次の例は、このエラーを示しています。

{"status":"error","errorType":"execution","error":"query timed out - consider simplifying your query"}

評価時間を短縮するには、次の 1 つ以上のアプローチを使用します。

  • より短い時間枠を指定して、より少ないサンプルを評価します。

  • ラベルマッチャーを追加して、クエリが評価する系列の数を減らします。

  • 記録ルールを使用して、頻繁にクエリを実行する高価な集計を事前計算します。

  • カーディナリティの高いラベル (一意の値が多数あるラベル) には正規表現マッチャーを使用しないでください。

詳細については、「Prometheus メトリクスに対するクエリの実行」を参照してください。