Greptime 编辑寄语
你是否曾好奇如何精准记录和分析 Steam 游戏时长数据,优化你的游戏时间管理?本文介绍了一款利用 GreptimeCloud 进行数据存储,基于 DevOps 思维构建的免费 SaaS 服务,能够轻松实现数据记录和可视化分析,助你更高效地掌控游戏时间。
感谢我们用户 jetdeng 的应用经验和文字成稿,欢迎有经验、有想法的用户踊跃投稿!
前言
在 Steam 中可以看到你当前的游戏时长和最近两周游戏时长,借助 Steam API 可以将这些数据导出。如果能够将这些游戏时长数据存储到时序数据库,就可以对其进行可视化和分析。

本文将利用免费的 SaaS 服务来构建一个监控 Steam 游戏时长。我们将利用以下平台进行构建:

数据源:Steam API 运行代码:Github Actions 数据存储:GreptimeCloud 可视化:Grafana
步骤
步骤1:在 Steam 社区 [1] 申请 api key

同时进入个人主页,找到 app id:

将 app key 和 app id 记录下来。
步骤二:注册 GreptimeCloud[2] 的账号,并且创建对应的服务

完成后进入服务,并找到 MySQL 连接。

将以 MySQL 方式连接到 Greptime 内容进行保存。
步骤三:Fork Github 仓库:jetlabdotcloud/steam-game-hours[3]

步骤四:在Frok后的仓库开启 Github Actions,并添加 Secrets
开启 Github Actions

将并将步骤一和步骤二的变量添加到 Secrets 中。

GREPTIME_DATABASE
GREPTIME_HOST
GREPTIME_PASSWORD
GREPTIME_PORT
GREPTIME_USERNAME
STEAM_API_ID
STEAM_API_TOKEN复制
该项目设置了 UTC 0点自动运行
cron: '0 0 * * *'
复制
你也可以在 Github Actions 页面手动触发运行。

如果运行成功,在 Greptime Cloud 的 Web Dashboard 上可以查询到对应的数据。

步骤六: 在 Grafana 上可视化时间
你可以注册一个 Grafana Cloud[4] 账号,并且免费使用其 SaaS 服务,在 Connections -> Add new collection -> MySQL (Data source)

添加数据源:

在 Grafana 上新建一个 Dashboard,并构建以下 Panel:
a. 查看最近两周游戏时长

SELECT ts,game_name,playtime_2weeks FROM public.recently_play_games
复制
b. 查看永久游戏时长

SELECT ts,game_name,playtime_forever FROM public.recently_play_games
复制
总结
本文基于免费的 DevOps SaaS 工具,构建了一个 Steam 游戏时长的 ETL 和可视化项目。可以用来监控自己的游戏时长和学习相关技术。
另外,本项目还有很多扩展工作可以做,欢迎大家尝试。
设置游戏时长超过阈值告警 统计好友的游戏时长 计算购买游戏的性价比
Reference
❝关于 Greptime
Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库 GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。
欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入“技术交流群”与志同道合的朋友们面对面交流哦~
Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb
官网:https://greptime.cn/
文档:https://docs.greptime.cn/
Twitter: https://twitter.com/Greptime
Slack: https://greptime.com/slack
LinkedIn: https://www.linkedin.com/company/greptime/往期精彩文章:
点击「阅读原文」,立即体验 GreptimeDB!