翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Prometheus メトリクスに対するクエリの実行
ワークスペースにメトリクスが取り込まれるようになったら、それらのメトリクスに対してクエリを実行できます。
メトリクスを視覚的に表現するダッシュボードを作成するには、Amazon Managed Grafana などのサービスを使用できます。Amazon Managed Grafana (または Grafana のスタンドアロンインスタンス) は、さまざまなディスプレイプレゼンテーションスタイルでメトリクスを表示するグラフィカルインターフェイスを構築できます。Amazon Managed Grafana の詳細については、「Amazon Managed Grafana ユーザーガイド」を参照してください。
また、ダイレクトクエリを使用して、1 回限りのクエリの作成、データの探索、またはメトリクスを使用する独自のアプリケーションの作成を行うこともできます。ダイレクトクエリは、Amazon Managed Service for Prometheus API と標準の Prometheus クエリ言語 PromQL を使用して、Prometheus ワークスペースからデータを取得します。PromQL とその構文の詳細については、Prometheus ドキュメントの「Querying Prometheus
トピック
PromQL チートシート
Amazon Managed Service for Prometheus ワークスペースでメトリクスをクエリするときは、この PromQL (Prometheus クエリ言語) チートシートをクイックリファレンスとして使用します。PromQL を使用すると、機能クエリ言語を使用して時系列データをリアルタイムで選択および集計できます。
PromQL の詳細については、PromLabs ウェブサイトの「PromQL PromQL チートシート
基本的なセレクタ
メトリクス名とラベルマッチャーで時系列を選択します。
# Select all time series with the metric name http_requests_total http_requests_total # Select time series with specific label values http_requests_total{job="prometheus", method="GET"} # Use label matchers http_requests_total{status_code!="200"} # Not equal http_requests_total{status_code=~"2.."} # Regex match http_requests_total{status_code!~"4.."} # Negative regex match
範囲ベクトルセレクタ
時間の経過に伴うサンプルの範囲を選択します。
# Select 5 minutes of data http_requests_total[5m] # Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks), y (years) cpu_usage[1h] memory_usage[30s]
集約演算子
複数の時系列にまたがるデータを集約します。
# Sum all values sum(http_requests_total) # Sum by specific labels sum by (job) (http_requests_total) sum without (instance) (http_requests_total) # Other aggregation operators avg(cpu_usage) # Average min(response_time) # Minimum max(response_time) # Maximum count(up) # Count of series stddev(cpu_usage) # Standard deviation
共通関数
関数を適用してデータを変換します。
# Rate of increase per second (for counters) rate(http_requests_total[5m]) # Increase over time range increase(http_requests_total[1h]) # Derivative (for gauges) deriv(cpu_temperature[5m]) # Mathematical functions abs(cpu_usage - 50) # Absolute value round(cpu_usage, 0.1) # Round to nearest 0.1 sqrt(memory_usage) # Square root # Time functions time() # Current Unix timestamp hour() # Hour of day (0-23) day_of_week() # Day of week (0-6, Sunday=0)
二項演算子
算術演算と論理演算を実行します。
# Arithmetic operators cpu_usage + 10 memory_total - memory_available disk_usage / disk_total * 100 # Comparison operators (return 0 or 1) cpu_usage > 80 memory_usage < 1000 response_time >= 0.5 # Logical operators (cpu_usage > 80) and (memory_usage > 1000) (status_code == 200) or (status_code == 201)
実用的なクエリの例
Amazon Managed Service for Prometheus ワークスペースで使用できる一般的なモニタリングクエリ:
# CPU usage percentage 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) # Memory usage percentage (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 # Request rate per second sum(rate(http_requests_total[5m])) by (job) # Error rate percentage sum(rate(http_requests_total{status_code=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) * 100 # 95th percentile response time histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le)) # Top 5 instances by CPU usage topk(5, avg by (instance) (cpu_usage))