标签 天气 下的文章

创建自定义 Prometheus 集成以跟踪最大的云端提供商:地球母亲。

 title=

开源监控系统 Prometheus 集成了跟踪多种类型的时间序列数据,但如果没有集成你想要的数据,那么很容易构建一个。一个经常使用的例子使用云端提供商的自定义集成,它使用提供商的 API 抓取特定的指标。但是,在这个例子中,我们将与最大云端提供商集成:地球。

幸运的是,美国政府已经测量了天气并为集成提供了一个简单的 API。获取红帽总部下一个小时的天气预报很简单。

import requests
HOURLY_RED_HAT = "<https://api.weather.gov/gridpoints/RAH/73,57/forecast/hourly>"
def get_temperature():
    result = requests.get(HOURLY_RED_HAT)
    return result.json()["properties"]["periods"][0]["temperature"]

现在我们已经完成了与地球的集成,现在是确保 Prometheus 能够理解我们想要内容的时候了。我们可以使用 Prometheus Python 库中的 gauge 创建一个注册项:红帽总部的温度。

from prometheus_client import CollectorRegistry, Gauge
def prometheus_temperature(num):
    registry = CollectorRegistry()
    g = Gauge("red_hat_temp", "Temperature at Red Hat HQ", registry=registry)
    g.set(num)
    return registry

最后,我们需要以某种方式将它连接到 Prometheus。这有点依赖 Prometheus 的网络拓扑:是 Prometheus 与我们的服务通信更容易,还是反向更容易。

第一种是通常建议的情况,如果可能的话,我们需要构建一个公开注册入口的 Web 服务器,并配置 Prometheus 收刮(scrape)它。

我们可以使用 Pyramid 构建一个简单的 Web 服务器。

from pyramid.config import Configurator
from pyramid.response import Response
from prometheus_client import generate_latest, CONTENT_TYPE_LATEST
def metrics_web(request):
    registry = prometheus_temperature(get_temperature())
    return Response(generate_latest(registry),
                               content_type=CONTENT_TYPE_LATEST)
config = Configurator()
config.add_route('metrics', '/metrics')
config.add_view(metrics_web, route_name='metrics')
app = config.make_wsgi_app()

这可以使用任何 Web 网关接口(WSGI)服务器运行。例如,假设我们将代码放在 earth.py 中,我们可以使用 python -m twisted web --wsgi earth.app 来运行它。

或者,如果我们的代码连接到 Prometheus 更容易,我们可以定期将其推送到 Prometheus 的推送网关

import time
from prometheus_client import push_to_gateway
def push_temperature(url):
    while True:
        registry = prometheus_temperature(get_temperature())
        push_to_gateway(url, "temperature collector", registry)
        time.sleep(60*60)

这里的 URL 是推送网关的 URL。它通常以 :9091 结尾。

祝你构建自定义 Prometheus 集成成功,以便跟踪一切!


via: https://opensource.com/article/19/4/weather-python-prometheus

作者:Moshe Zadka 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

wttr.in 是一个功能丰富的天气预报服务,它支持在命令行显示天气。它可以(根据你的 IP 地址)自动检测你的位置,也支持指定位置或搜索地理位置(如城市、山区等)等。哦,另外你不需要安装它 —— 你只需要使用 cURL 或 Wget(见下文)。

wttr.in 功能包括:

  • 显示当前天气以及 3 天内的天气预报,分为早晨、中午、傍晚和夜晚(包括温度范围、风速和风向、可见度、降水量和概率)
  • 可以显示月相
  • 基于你的 IP 地址自动检测位置
  • 允许指定城市名称、3 字母的机场代码、区域代码、GPS 坐标、IP 地址或域名。你还可以指定地理位置,如湖泊、山脉、地标等)
  • 支持多语言位置名称(查询字符串必须以 Unicode 指定)
  • 支持指定天气预报显示的语言(它支持超过 50 种语言)
  • 来自美国的查询使用 USCS 单位用于,世界其他地方使用公制系统,但你可以通过附加 ?u 使用 USCS,附加 ?m 使用公制系统。 )
  • 3 种输出格式:终端的 ANSI,浏览器的 HTML 和 PNG

就像我在文章开头提到的那样,使用 wttr.in,你只需要 cURL 或 Wget,但你也可以在你的服务器上安装它。 或者你可以安装 wego,这是一个使用 wtter.in 的终端气候应用,虽然 wego 要求注册一个 API 密钥来安装。

在使用 wttr.in 之前,请确保已安装 cURL。在 Debian、Ubuntu 或 Linux Mint(以及其他基于 Debian 或 Ubuntu 的 Linux 发行版)中,使用以下命令安装 cURL:

sudo apt install curl

wttr.in 命令行示例

获取你所在位置的天气(wttr.in 会根据你的 IP 地址猜测你的位置):

curl wttr.in

通过在 curl 之后添加 -4,强制 cURL 将名称解析为 IPv4 地址(如果你用 IPv6 访问 wttr.in 有问题):

curl -4 wttr.in

如果你想检索天气预报保存为 png,还可以使用 Wget(而不是 cURL),或者你想这样使用它:

wget -O- -q wttr.in

如果相对 cURL 你更喜欢 Wget ,可以在下面的所有命令中用 wget -O- -q 替换 curl

指定位置:

curl wttr.in/Dublin

显示地标的天气信息(本例中为艾菲尔铁塔):

curl wttr.in/~Eiffel+Tower

获取 IP 地址位置的天气信息(以下 IP 属于 GitHub):

curl wttr.in/@192.30.253.113

使用 USCS 单位检索天气:

curl wttr.in/Paris?u

如果你在美国,强制 wttr.in 使用公制系统(SI):

curl wttr.in/New+York?m

使用 Wget 将当前天气和 3 天预报下载为 PNG 图像:

wget wttr.in/Istanbul.png

你可以指定 PNG 的透明度,这在你要使用一个脚本自动添加天气信息到某些图片(比如墙纸)上有用。

对于其他示例,请查看 wttr.in 项目页面或在终端中输入:

curl wttr.in/:help

via: https://www.linuxuprising.com/2018/07/display-weather-forecast-in-your.html

作者:Logix 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Q: 我经常在 Linux 桌面查看天气预报。然而,是否有一种在终端环境下,不通过桌面小插件或者浏览器查询天气预报的方法?

对于 Linux 桌面用户来说,有很多办法获取天气预报,比如使用专门的天气应用、桌面小插件,或者面板小程序。但是如果你的工作环境是基于终端的,这里也有一些在命令行下获取天气的手段。

其中有一个就是 wego一个终端下的小巧程序。使用基于 ncurses 的接口,这个命令行程序允许你查看当前的天气情况和之后的预报。它也会通过一个天气预报的 API 收集接下来 5 天的天气预报。

在 Linux 下安装 wego

安装 wego 相当简单。wego 是用 Go 编写的,引起第一个步骤就是安装 Go 语言。然后再安装 wego。

$ go get github.com/schachmat/wego

wego 会被安装到 $GOPATH/bin,所以要将 $GOPATH/bin 添加到 $PATH 环境变量。

$ echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.bashrc
$ source ~/.bashrc

现在就可与直接从命令行启动 wego 了。

$ wego

第一次运行 weg 会生成一个配置文件(~/.wegorc),你需要指定一个天气 API key。 你可以从 worldweatheronline.com 获取一个免费的 API key。免费注册和使用。你只需要提供一个有效的邮箱地址。

你的 .wegorc 配置文件看起来会这样:

除了 API key,你还可以把你想要查询天气的地方、使用的城市/国家名称、语言配置在 ~/.wegorc 中。 注意,这个天气 API 的使用有限制:每秒最多 5 次查询,每天最多 250 次查询。 当你重新执行 wego 命令,你将会看到最新的天气预报(当然是你的指定地方),如题图显示。

显示出来的天气信息包括:(1)温度,(2)风速和风向,(3)可视距离,(4)降水量和降水概率 默认情况下会显示3 天的天气预报。如果要进行修改,可以通过参数改变天气范围(最多5天),比如要查看 5 天的天气预报:

$ wego 5

如果你想检查另一个地方的天气,只需要提供城市名即可:

$ wego Seattle

问题解决

  1. 可能会遇到下面的错误:
user: Current not implemented on linux/amd64

当你在一个不支持原生 Go 编译器的环境下运行 wego 时就会出现这个错误。在这种情况下你只需要使用 gccgo ——一个 Go 的编译器前端来编译程序即可。这一步可以通过下面的命令完成。

$ sudo yum install gcc-go
$ go get -compiler=gccgo github.com/schachmat/wego

via: http://ask.xmodulo.com/weather-forecasts-command-line-linux.html

作者:Dan Nanni 译者:oska874 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

智能手机都拥有一些平滑地融入手机外观的天气小插件,现在幸亏有了 Flair Weather Conky,你便可以在你的 Linux 桌面中拥有像智能手机一样的天气外观。我们将使用一个 GUI 工具Conky Manager 在 Linux 中轻松地管理 Conky。那就先让我们看看如何在 Ubuntu 14.10,14.04、Linux Mint 17 及其他 Linux 发行版本中安装 Conky Manager 吧。

安装 Conky Manager

打开一个终端并使用下面的命令:

sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install conky-manager

你可以阅读这篇关于如何在 Linux 中使用 Conky Manager 的文章。

确保 curl 已被安装

请确保 curl 已被安装。如果没有安装它,可以使用下面的命令来安装:

sudo apt-get install curl

下载 Flair Weather Conky

从下面的链接下载 Flair Weather Conky 的脚本:

在 Conky Manager 中使用 Flair Weather Conky 脚本

步骤 1:

同你在 Ubuntu 14.04 中安装主题一样,在你的家目录中应该有一个 .conky 目录。假如你使用命令行,我想我不需要告诉你如何找到这个目录。对于新手,请用文件管理器切换到你的家目录下,并按 Ctrl+H在 Ubuntu 中显示隐藏文件。在这里查找 .conky 文件夹,假如没有这个文件夹,则创建一个。

步骤 2:

.conky 目录中,解压下载到的 Flair Weather 文件。请注意在默认情况下它会自动解压到一个名为 .conky 目录下。所以请进入这个目录,将其中的 Flair Weather 文件夹从中取出,然后将它粘贴到真正的 .conky 目录下。

步骤 3:

Flair Weather 使用 Yahoo 的天气服务,但它不能自动地识别你的位置。你需要手动地编辑它。到Yahoo 天气 网页,然后通过键入你的城市/Pin 码来得到你所在城市的位置 ID号。你可以从网页地址栏中取得位置 ID 号。

步骤 4:

打开 Conky Manager,它应该能够读取新安装的 Conky 脚本。这里有两款样式可用,黑色主题或亮丽主题。你可以选择你偏爱的那一款。当你选择后,你就可以在桌面上看到 conky 的显示了。

在 Flair Weather 中,默认位置被设定为 Melbourne。你必须手动编辑 conky 文件来修改。

步骤 5:

在上面的截图中,你可以看到有一个编辑选定 conky 脚本的选项,在打开的编辑器中,查找 location 或 WOEID ,更换它为你在 步骤 3 中得到的位置 ID 号。然后重启 Conky。

在上面查找的相同位置,假如你将u=c 替换为u=f,则温度的单位将从摄氏温标改为华氏温标 。不要忘了重启 Conky 来查看已经做出的修改。

可能的故障排除

在 Ubuntu 14.04 和 Ubuntu 14.10 中,假如你发现 Conky 展示的时间有重叠现象,则请编辑 conky 脚本。查找下面的这些行:

## cairo-compmgr
own_window_type override
own_window_argb_visual no

然后将内容更换为下面的这些行:

## cairo-compmgr
own_window_type dock
own_window_argb_visual no

保存更改并重启 conky。这就应该解决了这个问题。感谢 Jesse(这个 Conky 脚本的开发者)给我们提供了这个解决方法和为其他相关问题给予的支持。

尝试一下

在这篇文章中,我们实际上学到了不少东西。我们见证了如何轻松地使用任何 Conky 脚本,如何编辑脚本以及如何使用 Conky Manager 来达到不同的目的。我希望这些对你有用。

需要留心的是,Ubuntu 14.10 用户可能会看到重叠的时间数字。请在开发者 Jesse 绝妙的Google + 主页 中报告任何相关的问题。

我已经向你展示了在我的系统上 Flair Weather conky 外观的截图。现在是该你尝试它并炫耀你的桌面的时间了。


via: http://itsfoss.com/weather-conky-linux/

作者:Abhishek 译者:FSSlc 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

在Ubuntu桌面中有各种提供天气信息的方法,你可以使用Unity Dash和桌面应用来获得天气信息,比如Typhoon

但是可以提供快速查询天气状况和温度数据,并且只需要一次鼠标点击而获得大量气象数据的面板插件,才是到目前为止Linux平台下最受欢迎的天气应用。

Atareao开发的My Weather Indicator就是这类应用中的一个,也可以说是最好的一个。

它在Unity面板上显示实时温度和天气状况,并且有一个包括体感温度、云量和日升日落时间等天气数据的菜单。除此之外,该应用还支持桌面小部件、多地区支持、天气数据提供方选择以及其他很多的配置选项。

听起来很不错,是吧?那我们下面就来看看如何在Ubuntu上安装和配置它吧。

在Ubuntu上安装My Weather Indicator

My Weather Indicator无法从Ubuntu软件商店中直接获取。不过开发者为我们提供了.deb安装包和官方维护的PPA(为Ubuntu 14.04 LTS和14.10提供安装包)。

  • 下载My Weather Indicator (.deb安装包)

为了确保你的应用是最新版本,我建议将Atareao PPA添加到你的软件镜像源,然后通过PPA来安装。

怎么做?打开一个新的终端窗口(Unity Dash > 终端,或者按Ctrl+Alt+T快捷键),然后输入下面的两行命令,期间你需要在提示处输入你的系统密码:

sudo add-apt-repository ppa:atareao/atareao

sudo apt-get update && sudo apt-get install my-weather-indicator

配置My Weather Indicator

无论你是通过什么方法安装该应用,你都可以在Unity Dash中搜索“weather”并且点击该应用来打开它。

首次打开应用时会出现下面的配置窗口。在这里你可以手动设置地区或者使用geo-ip来自动获取。或者有时可能会不够精确,不过它可以省去手动设置过程。

如果你正在旅行(或者是出于聊天的需要),你可以添加一个第二地区。这个设置和第一地区的设置相同,只不过是出现在“第二地区”的标签栏罢了。

在“小部件设置”区域勾选“显示桌面小部件”选项就会在你的桌面上添加一个小的天气小部件。小部件提供许多不同的皮肤,所以你一定要精心挑选你最喜欢的一个(注释:点击“确定”后对小部件的更改才会保存)。

My Weather Indicator使用Open Weather Map作为默认的天气数据提供方。不过你可以在‘Weather Services’面板中选择其他的数据提供方(有*标记的需要提供相关API key):

  • Open Weather Map
  • Yahoo! Weather
  • Weather Underground*
  • World Weather Online*

在‘Units’标签页中,你可以设置温度、压力、风速等数据的单位。这些设置适用于所有添加的地区,也就是说你不能在一个地区使用摄氏度,另一个地区使用华氏度。

最后,在‘General Options‘标签页,你可以设置数据更新间隔、设置开机自动运行选项以及从两个图标中选择一个作为面板图标。

如果你是命令行控,你也可以尝试Linux下查看天气数据的方法


via: http://www.omgubuntu.co.uk/2014/10/install-weather-indicator-ubuntu-14-10

作者:Joey-Elijah Sneddon 译者:JonathanKang 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

WeatherApp是一款Ubuntu软件开发套件应用程序,可以收集、管理并显示相关的天气信息,界面漂亮美观。

这款方便的天气小工具实现了多城市、单色图标、日期、滚轮切换、每小时更新天气等功能,另外还可以翻页显示额外的天气细节哟~

WeatherApp 现已更新,新发布的版本将原本的纯文本通知美化为漂亮的可视化界面啦~

如下图中显示,点击底部工具栏的Refresh按钮,界面上立即显示出一个漂亮的数据加载框,白色的底面结合旋转的小圈圈,旁边再配上 Loading...的字样,有没有觉得连等待都变得那么友好与美妙呢~

几周以前,WeatherApp开始支持故障通知,这就意味着,假如发生网络无法连接等异常状况,WeatherApp就能及时向亲爱的用户们告知啦~

本次更新,我们将上面提到的出错通知进行了调整,调整后的通知以同样的圆角白色风格配以灰体字提醒,暂时无法加载天气信息,请稍后重试~,这与之前整个窗口用浅黑色透明图层填充相比是不是清新了许多?

那么,怎样安装WeatherApp 0.3版本呢?

很简单,在终端中依次输入以下命令就可以啦(Ubuntu 13.04,Ubuntu 13.10):

sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo add-apt-repository ppa:ubuntu-touch-coreapps-drivers/daily

sudo apt-get update

sudo apt-get install ubuntu-sdk ubuntu-weather-app

(译者注:安装使用愉快,天气变化,请注意及时增减衣物哦~)

via:http://iloveubuntu.net/weather-app-refines-its-visuals

本文由 LCTT 原创翻译,Linux中国 荣誉推出

译者:Mr小眼儿 校对:Caroline