Prometheus 지표 쿼리 - Amazon Managed Service for Prometheus

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Prometheus 지표 쿼리

이제 지표가 워크스페이스에 수집되었으므로 쿼리할 수 있습니다.

지표를 시각적으로 표현한 대시보드를 생성하려면 Amazon Managed Grafana와 같은 서비스를 사용할 수 있습니다. Amazon Managed Grafana(또는 독립형 Grafana 인스턴스)는 다양한 디스플레이 프레젠테이션 스타일의 지표를 보여주는 그래픽 인터페이스를 구축할 수 있습니다. Amazon Managed Grafana에 대한 자세한 내용은 Amazon Managed Grafana 사용 설명서를 참조하세요.

또한 직접 쿼리를 사용하여 일회성 쿼리를 생성하거나, 데이터를 탐색하거나, 지표를 사용하는 자체 애플리케이션을 작성할 수 있습니다. 직접 쿼리는 Amazon Managed Service for Prometheus API와 표준 Prometheus 쿼리 언어인 PromQL을 사용하여 Prometheus 워크스페이스에서 데이터를 가져옵니다. PromQL 및 해당 구문에 대한 자세한 내용은 Prometheus 설명서의 Prometheus 쿼리를 참조하세요.

PromQL 치트 시트

Amazon Managed Service for Prometheus 워크스페이스에서 지표를 쿼리할 때이 PromQL(Prometheus 쿼리 언어) 치트 시트를 빠른 참조로 사용합니다. PromQL을 사용하면 기능 쿼리 언어를 통해 시계열 데이터를 실시간으로 선택하고 집계할 수 있습니다.

PromQL에 대한 자세한 내용은 PromLabs 웹 사이트의 PromQL 치트 시트를 참조하세요. PromLabs

기본 선택기

지표 이름 및 레이블 매처별로 시계열을 선택합니다.

# 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))