Metrics ek prakaar ka numerical data hai jo kisi
system, application, ya process ki state, performance, aur behavior
ko track karta hai. Jaise:
"Jo data hume batata hai ki system kaisa perform kar raha hai, use Metrics kehte hain."
Metrics = Measurable numbers jo system ki health, performance aur resource usage ko monitor karne ke liye use hote hain.
- CPU
usage (%)
- Memory
consumption (MB)
- HTTP
requests count
- Error
rates
- Network
traffic, etc.
Time Series Data:-
Data ko time series form mein convert kar ke store
karta hai Metrics.
Har time series data ka structure hota hai:
For example:-
<metric_name>{labels} => value @
timestamp
http_requests_total{method="GET",
handler="/home"} 10245 @
1627540200
metric_name: http_requests_total
labels:
method="GET", handler="/home"
value: 10245
timestamp: 1627540200 (Unix time)
yeh format me metric storage hota hai .
metric_name{label="value"} value timestamp
http_requests_total{status="200"} 150 1712800000
Types of Metrics in Prometheus
1.Counter
Sirf increment hota hai (reset ho sakta hai restart pe)
Events count karne ke liye use hota hai. jaise ki "Total HTTP requests"
http_requests_total{method="POST"} 3456
2.Gauge(गेज)
Increase aur decrease dono ho sakta hai
Example: memory_usage_bytes, temperature_celsius
memory_usage_bytes 2048000000
3.Histogram(हिस्टोग्राम)
Values ko buckets (like 0.5s, 1s, 2s...) mein divide karta hai (distribution ke liye)
Response time, file size, temperature distribution jaise values ke liye useful hai
Example: Request duration
http_request_duration_seconds_bucket{le="1"} 542
http_request_duration_seconds_count 1000
http_request_duration_seconds_sum 780
1000 requests aaye
Total time = 780 seconds
542 requests ≤ 1s ke andar complete ho gaye
4.Summary
Percentile values deta hai, jaise: 50%, 95%, 99% response time
Histogram jaise hi, lekin quantile-based output deta hai
http_request_duration_seconds{quantile="0.95"} 1.3
95% requests 1.3 second ke andar complete hue
|
Metric Type |
Definition |
Use in PromQL |
Example |
|
Counter |
Only increases
(can reset to zero, e.g., after app restart) |
- To
calculate growth rate - To count errors, requests, or events |
rate(http_requests_total[5m]) (request
rate over 5 min) |
|
Gauge |
Can
increase or decrease |
- To
check current values - To measure resource usage |
node_memory_Active_bytes (current
RAM usage) |
|
Histogram |
Splits
observations into buckets (e.g., how long requests took to complete in
milliseconds) |
- To
calculate latency distribution - To see how many requests fall into each
bucket |
rate(http_request_duration_seconds_bucket[5m]) |
|
Summary |
Similar
to Histogram, but directly provides quantiles (percentiles) (e.g.,
95th percentile latency) |
- To
calculate request latency percentiles - Useful when approximate percentiles
are needed |
http_request_duration_seconds{quantile="0.95"} |
What is a Label?
-
A label is a key–value pair attached to a metric to differentiate time series.
- Label
प्रयोग और cardinality
implications
- Best
practices in naming metrics
- Client
libraries (Go, Python, Java, etc.) से application
instrumentation
- Custom
metrics बनाना और expose करना
No comments:
Post a Comment