ajclark / prometheus-blackbox-percentiles

Calculate Percentiles from raw Prometheus Blackbox exporter logs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

prometheus-blackbox-percentiles

This python code will calculate the P50, P90, and P99 values from any Prometheus Blackbox exporter job log file (syslog). I wrote this because the Prometheus blackbox exporter does not support histogram buckets, making it difficult to calculate percentiles.

Dependencies

pip3 install tabulate

Output

root@prober-igw:~# python3 calculate_percentile_tab.py 2hr
+-------------------------------------------+---------+---------+----------+
| Target                                    | P50     | P90     | P99      |
+===========================================+=========+=========+==========+
| us-east1-pubsub.googleapis.com:443        | 2.25ms  | 17.04ms | 17.84ms  |
+-------------------------------------------+---------+---------+----------+
| www.yahoo.com:443                         | 19.60ms | 32.62ms | 49.07ms  |
+-------------------------------------------+---------+---------+----------+
| dynamodb-fips.us-west-1.amazonaws.com:443 | 75.87ms | 85.13ms | 150.03ms |
+-------------------------------------------+---------+---------+----------+
| s3.us-east-2.amazonaws.com:443            | 14.31ms | 29.00ms | 40.92ms  |
+-------------------------------------------+---------+---------+----------+
| www.twitter.com:443                       | 12.76ms | 14.22ms | 21.76ms  |
+-------------------------------------------+---------+---------+----------+
| dynamodb-fips.us-east-2.amazonaws.com:443 | 19.64ms | 30.14ms | 100.01ms |
+-------------------------------------------+---------+---------+----------+
| dynamodb-fips.us-west-2.amazonaws.com:443 | 74.83ms | 85.30ms | 151.30ms |
+-------------------------------------------+---------+---------+----------+
| connect.squareup.com:443                  | 1.53ms  | 3.30ms  | 26.89ms  |
+-------------------------------------------+---------+---------+----------+
| api.stripe.com:443                        | 2.83ms  | 3.67ms  | 21.40ms  |
+-------------------------------------------+---------+---------+----------+
| us-west4-pubsub.googleapis.com:443        | 2.29ms  | 17.11ms | 19.01ms  |
+-------------------------------------------+---------+---------+----------+
| s3.us-east-1.amazonaws.com:443            | 10.49ms | 20.17ms | 61.88ms  |
+-------------------------------------------+---------+---------+----------+
| us-west1-pubsub.googleapis.com:443        | 2.27ms  | 17.16ms | 19.94ms  |
+-------------------------------------------+---------+---------+----------+
| us-west2-pubsub.googleapis.com:443        | 2.35ms  | 17.10ms | 17.87ms  |
+-------------------------------------------+---------+---------+----------+
| dynamodb.us-west-1.amazonaws.com:443      | 76.79ms | 86.82ms | 177.08ms |
+-------------------------------------------+---------+---------+----------+
| www.facebook.com:443                      | 1.49ms  | 2.11ms  | 3.83ms   |
+-------------------------------------------+---------+---------+----------+
| api.paypal.com:443                        | 30.10ms | 32.37ms | 37.72ms  |
+-------------------------------------------+---------+---------+----------+
| dynamodb.us-east-2.amazonaws.com:443      | 19.78ms | 30.37ms | 62.91ms  |
+-------------------------------------------+---------+---------+----------+
| us-west3-pubsub.googleapis.com:443        | 2.31ms  | 17.05ms | 17.93ms  |
+-------------------------------------------+---------+---------+----------+
| dynamodb.us-east-1.amazonaws.com:443      | 10.44ms | 20.97ms | 118.51ms |
+-------------------------------------------+---------+---------+----------+
| pay.google.com:443                        | 2.09ms  | 2.37ms  | 4.73ms   |
+-------------------------------------------+---------+---------+----------+
| production.plaid.com:443                  | 1.74ms  | 9.94ms  | 56.34ms  |
+-------------------------------------------+---------+---------+----------+
| s3-us-west-2.amazonaws.com:443            | 75.19ms | 86.59ms | 106.09ms |
+-------------------------------------------+---------+---------+----------+
| apple-pay-gateway.apple.com:443           | 58.65ms | 59.95ms | 62.26ms  |
+-------------------------------------------+---------+---------+----------+
| us-east4-pubsub.googleapis.com:443        | 2.42ms  | 17.04ms | 17.75ms  |
+-------------------------------------------+---------+---------+----------+
| us-east5-pubsub.googleapis.com:443        | 2.34ms  | 16.99ms | 17.79ms  |
+-------------------------------------------+---------+---------+----------+
| www.microsoft.com:443                     | 1.66ms  | 3.53ms  | 14.90ms  |
+-------------------------------------------+---------+---------+----------+
| s3-us-west-1.amazonaws.com:443            | 70.91ms | 85.08ms | 122.60ms |
+-------------------------------------------+---------+---------+----------+
| www.google.com:443                        | 17.01ms | 17.73ms | 18.69ms  |
+-------------------------------------------+---------+---------+----------+
| dynamodb.us-west-2.amazonaws.com:443      | 74.93ms | 85.65ms | 188.96ms |
+-------------------------------------------+---------+---------+----------+
| us-south1-pubsub.googleapis.com:443       | 2.35ms  | 17.08ms | 17.92ms  |
+-------------------------------------------+---------+---------+----------+

About

Calculate Percentiles from raw Prometheus Blackbox exporter logs


Languages

Language:Python 100.0%