openweathermap

package
v1.30.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 20, 2024 License: MIT Imports: 14 Imported by: 4

README

OpenWeatherMap Input Plugin

Collect current weather and forecast data from OpenWeatherMap.

To use this plugin you will need an api key (app_id).

City identifiers can be found in the city list. Alternately you can search by name; the city_id can be found as the last digits of the URL: https://openweathermap.org/city/2643743. Language identifiers can be found in the lang list. Documentation for condition ID, icon, and main is at weather conditions.

Global configuration options

In addition to the plugin-specific configuration settings, plugins support additional global and plugin configuration settings. These settings are used to modify metrics, tags, and field or create aliases and configure ordering, etc. See the CONFIGURATION.md for more details.

Configuration

# Read current weather and forecasts data from openweathermap.org
[[inputs.openweathermap]]
  ## OpenWeatherMap API key.
  app_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

  ## City ID's to collect weather data from.
  city_id = ["5391959"]

  ## Language of the description field. Can be one of "ar", "bg",
  ## "ca", "cz", "de", "el", "en", "fa", "fi", "fr", "gl", "hr", "hu",
  ## "it", "ja", "kr", "la", "lt", "mk", "nl", "pl", "pt", "ro", "ru",
  ## "se", "sk", "sl", "es", "tr", "ua", "vi", "zh_cn", "zh_tw"
  # lang = "en"

  ## APIs to fetch; can contain "weather" or "forecast".
  # fetch = ["weather", "forecast"]

  ## OpenWeatherMap base URL
  # base_url = "https://api.openweathermap.org/"

  ## Timeout for HTTP response.
  # response_timeout = "5s"

  ## Preferred unit system for temperature and wind speed. Can be one of
  ## "metric", "imperial", or "standard".
  # units = "metric"

  ## Style to query the current weather; available options
  ##   batch      -- query multiple cities at once using the "group" endpoint
  ##   individual -- query each city individually using the "weather" endpoint
  ## You should use "individual" here as it is documented and provides more
  ## frequent updates. The default is "batch" for backward compatibility.
  # query_style = "batch"

  ## Query interval to fetch data.
  ## By default the global 'interval' setting is used. You should override the
  ## interval here if the global setting is shorter than 10 minutes as
  ## OpenWeatherMap weather data is only updated every 10 minutes.
  # interval = "10m"

Metrics

  • weather
    • tags:
      • city_id
      • forecast
      • condition_id
      • condition_main
    • fields:
      • cloudiness (int, percent)
      • humidity (int, percent)
      • pressure (float, atmospheric pressure hPa)
      • rain (float, rain volume for the last 1-3 hours (depending on API response) in mm)
      • snow (float, snow volume for the last 1-3 hours (depending on API response) in mm)
      • sunrise (int, nanoseconds since unix epoch)
      • sunset (int, nanoseconds since unix epoch)
      • temperature (float, degrees)
      • feels_like (float, degrees)
      • visibility (int, meters, not available on forecast data)
      • wind_degrees (float, wind direction in degrees)
      • wind_speed (float, wind speed in meters/sec or miles/sec)
      • condition_description (string, localized long description)
      • condition_icon

Example Output

weather,city=San\ Francisco,city_id=5391959,condition_id=803,condition_main=Clouds,country=US,forecast=114h,host=robot pressure=1027,temperature=10.09,wind_degrees=34,wind_speed=1.24,condition_description="broken clouds",cloudiness=80i,humidity=67i,rain=0,feels_like=8.9,condition_icon="04n" 1645952400000000000
weather,city=San\ Francisco,city_id=5391959,condition_id=804,condition_main=Clouds,country=US,forecast=117h,host=robot humidity=65i,rain=0,temperature=10.12,wind_degrees=31,cloudiness=90i,pressure=1026,feels_like=8.88,wind_speed=1.31,condition_description="overcast clouds",condition_icon="04n" 1645963200000000000
weather,city=San\ Francisco,city_id=5391959,condition_id=804,condition_main=Clouds,country=US,forecast=120h,host=robot cloudiness=100i,humidity=61i,rain=0,temperature=10.28,wind_speed=1.94,condition_icon="04d",pressure=1027,feels_like=8.96,wind_degrees=16,condition_description="overcast clouds" 1645974000000000000

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type OpenWeatherMap

type OpenWeatherMap struct {
	AppID           string          `toml:"app_id"`
	CityID          []string        `toml:"city_id"`
	Lang            string          `toml:"lang"`
	Fetch           []string        `toml:"fetch"`
	BaseURL         string          `toml:"base_url"`
	ResponseTimeout config.Duration `toml:"response_timeout"`
	Units           string          `toml:"units"`
	QueryStyle      string          `toml:"query_style"`
	// contains filtered or unexported fields
}

func (*OpenWeatherMap) Gather

func (n *OpenWeatherMap) Gather(acc telegraf.Accumulator) error

func (*OpenWeatherMap) Init

func (n *OpenWeatherMap) Init() error

func (*OpenWeatherMap) SampleConfig

func (*OpenWeatherMap) SampleConfig() string

type Status

type Status struct {
	City struct {
		Coord struct {
			Lat float64 `json:"lat"`
			Lon float64 `json:"lon"`
		} `json:"coord"`
		Country string `json:"country"`
		ID      int64  `json:"id"`
		Name    string `json:"name"`
	} `json:"city"`
	List []WeatherEntry `json:"list"`
}

type WeatherEntry

type WeatherEntry struct {
	Dt     int64 `json:"dt"`
	Clouds struct {
		All int64 `json:"all"`
	} `json:"clouds"`
	Main struct {
		Humidity int64   `json:"humidity"`
		Pressure float64 `json:"pressure"`
		Temp     float64 `json:"temp"`
		Feels    float64 `json:"feels_like"`
	} `json:"main"`
	Rain struct {
		Rain1 float64 `json:"1h"`
		Rain3 float64 `json:"3h"`
	} `json:"rain"`
	Snow struct {
		Snow1 float64 `json:"1h"`
		Snow3 float64 `json:"3h"`
	} `json:"snow"`
	Sys struct {
		Country string `json:"country"`
		Sunrise int64  `json:"sunrise"`
		Sunset  int64  `json:"sunset"`
	} `json:"sys"`
	Wind struct {
		Deg   float64 `json:"deg"`
		Speed float64 `json:"speed"`
	} `json:"wind"`
	ID    int64  `json:"id"`
	Name  string `json:"name"`
	Coord struct {
		Lat float64 `json:"lat"`
		Lon float64 `json:"lon"`
	} `json:"coord"`
	Visibility int64 `json:"visibility"`
	Weather    []struct {
		ID          int64  `json:"id"`
		Main        string `json:"main"`
		Description string `json:"description"`
		Icon        string `json:"icon"`
	} `json:"weather"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL