Created
          March 31, 2020 08:07 
        
      - 
      
- 
        Save devops-school/adb59604f652e44d27513014c62abd32 to your computer and use it in GitHub Desktop. 
Revisions
- 
        devops-school created this gist Mar 31, 2020 .There are no files selected for viewingThis file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,101 @@ Recording Rule Example 1 ================================ # Aggregating up requests per second that has a path label: - record: instance_path:requests:rate5m expr: rate(requests_total{job="myjob"}[5m]) - record: path:requests:rate5m expr: sum without (instance)(instance_path:requests:rate5m{job="myjob"}) Recording Rule Example 2 ================================ # Calculating a request failure ratio and aggregating up to the job-level failure ratio: - record: instance_path:request_failures:rate5m expr: rate(request_failures_total{job="myjob"}[5m]) - record: instance_path:request_failures_per_requests:ratio_rate5m expr: |2 instance_path:request_failures:rate5m{job="myjob"} / instance_path:requests:rate5m{job="myjob"} # Aggregate up numerator and denominator, then divide to get path-level ratio. - record: path:request_failures_per_requests:ratio_rate5m expr: |2 sum without (instance)(instance_path:request_failures:rate5m{job="myjob"}) / sum without (instance)(instance_path:requests:rate5m{job="myjob"}) # No labels left from instrumentation or distinguishing instances, # so we use 'job' as the level. - record: job:request_failures_per_requests:ratio_rate5m expr: |2 sum without (instance, path)(instance_path:request_failures:rate5m{job="myjob"}) / sum without (instance, path)(instance_path:requests:rate5m{job="myjob"}) Recording Rule Example 3 ================================ # Calculating average latency over a time period from a Summary: - record: instance_path:request_latency_seconds_count:rate5m expr: rate(request_latency_seconds_count{job="myjob"}[5m]) - record: instance_path:request_latency_seconds_sum:rate5m expr: rate(request_latency_seconds_sum{job="myjob"}[5m]) - record: instance_path:request_latency_seconds:mean5m expr: |2 instance_path:request_latency_seconds_sum:rate5m{job="myjob"} / instance_path:request_latency_seconds_count:rate5m{job="myjob"} # Aggregate up numerator and denominator, then divide. - record: path:request_latency_seconds:mean5m expr: |2 sum without (instance)(instance_path:request_latency_seconds_sum:rate5m{job="myjob"}) / sum without (instance)(instance_path:request_latency_seconds_count:rate5m{job="myjob"}) Recording Rule Example 5 ================================ # Calculating the average query rate across instances and paths is done using the avg() function: - record: job:request_latency_seconds_count:avg_rate5m expr: avg without (instance, path)(instance:request_latency_seconds_count:rate5m{job="myjob"}) Recording Rule Example 6 ================================ groups: - name: custom_rules rules: - record: node_memory_MemFree_percent expr: 100 - (100 * node_memory_MemFree_bytes / node_memory_MemTotal_bytes) - record: node_filesystem_free_percent expr: 100 * node_filesystem_free_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} Recording Rule Example 7 ================================ groups: - name: recording_rules interval: 5s rules: - record: node_exporter:node_filesystem_free:fs_used_percents expr: 100 - 100 * ( node_filesystem_free{mountpoint="/"} / node_filesystem_size{mountpoint="/"} ) - record: node_exporter:node_memory_free:memory_used_percents expr: 100 - 100 * (node_memory_MemFree / node_memory_MemTotal) Recording Rule Example 8 ================================ groups: - name: custom_rules rules: - record: node_memory_MemFree_percent expr: 100 - (100 * node_memory_MemFree_bytes / node_memory_MemTotal_bytes) - record: node_filesystem_free_percent expr: 100 * node_filesystem_free_bytes{mountpoint="/"} / node_filesystem_size_bytes {mountpoint="/"}