From 8dc0e08f5e38ff1cc7aca8377019750c0284ce9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20R=C3=BCger?= Date: Sat, 13 Jun 2020 11:32:45 +0200 Subject: [PATCH] README: Document Prometheus format output --- README.md | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++- lib/fields.py | 2 +- 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9b37cbf..d59202f 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,8 @@ wttr.in currently supports five output formats: * Plain-text for the terminal and scripts; * HTML for the browser; * PNG for the graphical viewers; -* JSON for scripts and APIs. +* JSON for scripts and APIs; +* Prometheus metrics for scripts and APIs. The ANSI and HTML formats are selected basing on the User-Agent string. The PNG format can be forced by adding `.png` to the end of the query: @@ -332,6 +333,71 @@ The result will look something like the following: Most of these values are self-explanatory, aside from `weatherCode`. The `weatherCode` is an enumeration which you can find at either [the WorldWeatherOnline website](https://www.worldweatheronline.com/developer/api/docs/weather-icons.aspx) or [in the wttr.in source code](https://github.com/chubin/wttr.in/blob/master/lib/constants.py). +## Prometheus Metrics Output + +The [Prometheus](https://github.com/prometheus/prometheus) Metrics format is a feature providing access to wttr.in data through an easy-to-parse format for monitoring systems, without requiring the user to create a complex script to reinterpret wttr.in's graphical output. + +To fetch information in Prometheus format, use the following syntax: + + $ curl wttr.in/Detroit?format=p1 + +This will fetch information on the Detroit region in Prometheus Metrics format. The p1 format code is used to allow for the use of other layouts for the Prometheus Metrics output. + +A possible configuration for Prometheus could look like this: + +``` + - job_name: 'wttr_in_detroit' + static_configs: + - targets: ['wttr.in'] + metrics_path: '/Detroit' + params: + format: ['p1'] +``` + +The result will look something like the following: + + + # HELP temperature_feels_like_celsius Feels Like Temperature in Celsius + temperature_feels_like_celsius{forecast="current"} 7 + # HELP temperature_feels_like_fahrenheit Feels Like Temperature in Fahrenheit + temperature_feels_like_fahrenheit{forecast="current"} 45 + # HELP cloudcover_percentage Cloud Coverage in Percent + cloudcover_percentage{forecast="current"} 0 + # HELP humidity_percentage Humidity in Percent + humidity_percentage{forecast="current"} 74 + # HELP precipitation_mm Precipitation (Rainfall) in mm + precipitation_mm{forecast="current"} 0.1 + # HELP pressure_hpa Air pressure in hPa + pressure_hpa{forecast="current"} 1026 + # HELP temperature_celsius Temperature in Celsius + temperature_celsius{forecast="current"} 9 + # HELP temperature_fahrenheit Temperature in Fahrenheit + temperature_fahrenheit{forecast="current"} 49 + # HELP uv_index Ultaviolet Radiation Index + uv_index{forecast="current"} 1 + # HELP visibility Visible Distance in Kilometres + visibility{forecast="current"} 16 + # HELP weather_code Code to describe Weather Condition + weather_code{forecast="current"} 113 + # HELP winddir_degree Wind Direction in Degree + winddir_degree{forecast="current"} 20 + # HELP windspeed_kmph Wind Speed in Kilometres per Hour + windspeed_kmph{forecast="current"} 13 + # HELP windspeed_mph Wind Speed in Miles per Hour + windspeed_mph{forecast="current"} 8 + # HELP observation_time Minutes since start of the day the observation happened + observation_time{forecast="current"} 562 + # HELP weather_desc Weather Description + weather_desc{forecast="current", description="Clear"} 1 + # HELP winddir_16_point Wind Direction on a 16-wind compass rose + winddir_16_point{forecast="current", description="NNE"} 1 + uv_index{forecast="0d"} 7 + # HELP temperature_celsius_maximum Maximum Temperature in Celsius + temperature_celsius_maximum{forecast="0d"} 17 + # HELP temperature_fahrenheit_maximum Maximum Temperature in Fahrenheit + temperature_fahrenheit_maximum{forecast="0d"} 63 + ... + ## Moon phases diff --git a/lib/fields.py b/lib/fields.py index a1ccc0d..3576ee5 100644 --- a/lib/fields.py +++ b/lib/fields.py @@ -97,7 +97,7 @@ DESCRIPTION = { "Minutes since start of the day untill the moon disappears below the horizon", "astronomy_moonset_min"), "sunrise": ( - "Minutes since start of the day untill the sun appears below the horizon", + "Minutes since start of the day untill the sun appears above the horizon", "astronomy_sunrise_min"), "sunset": ( "Minutes since start of the day untill the moon disappears below the horizon",