从 https://portal.influxdata.com/downloads/ 下载并安装适用于你操作系统的 InfluxDB 1.x 版本。(目前不支持 2.x 版本。)
启动 InfluxDB
使用 Influx CLI 执行以下命令,在 InfluxDB 中创建用户和数据库:
CREATE DATABASE worldserver
CREATE USER grafana WITH PASSWORD 'grafana'
GRANT READ ON worldserver TO grafana
从 https://grafana.com/docs/grafana/latest/installation/ 下载并安装 Grafana
打开仪表盘 http://localhost:3000
使用用户名 admin 和密码 admin 登录(默认值可以在 Grafana 的 .ini 文件中修改。在较新版本的 Grafana 中,首次登录时会提示你修改密码。)
悬停齿轮图标并选择 Data Sources(数据源)
搜索 InfluxDB 并选择。
填写以下所需数据。
Name: Influx
Type: InfluxDB
Url: http://localhost:8086
Access: Server
Database: worldserver User: grafana Password: grafana
点击 Save & Test(保存并测试),应会出现一个显示 "Data source is working"(数据源工作正常)的绿色勾选框。
悬停 + 并选择 Import(导入),然后从 AzerothCore 的 /apps/grafana 导入每个 .json 文件。
编辑 worldserver.conf 文件
设置 Metric.Enable = 1
编辑 Metric.ConnectionInfo 填写连接信息(例如 "127.0.0.1;8086;worldserver")
启动 worldserver,仪表盘应开始接收数值。
已实现(✔)和计划中(❌)的指标:
我们希望得到帮助来实现这些及其他指标,欢迎给我们发送拉取请求。
可以记录的指标有两种:数值(values)和事件(events)。
数值(Values)对应于某一数量的测量值,例如在线玩家数或更新间隔(update diff)时间。
事件(Events)是在某一瞬间发生的事情,例如玩家登录、worldserver 关闭等。
要记录新指标,请调用 METRIC_EVENT 或 METRIC_VALUE,并在仪表盘上添加新图表。
METRIC_EVENT(category, title, description)
category:任意字符串,存储数值和事件的表。按照惯例,事件日志应以 "_events" 作为后缀。
title:事件日志的名称。
description:关于日志事件的附加信息。
METRIC_VALUE(category, value)
category:任意字符串,存储数值和事件的表。按照惯例,事件日志应以 "_value" 作为后缀。
value:一个测量值,可以是以下类型之一:bool、std::string、float、double 或任何整数类型(int、int32、uint 等)。
示例
// 记录玩家登录:在 WorldSession::HandlePlayerLogin(LoginQueryHolder* holder) 中
METRIC_EVENT("player_events", "Login", pCurrChar->GetName());
// 记录更新间隔时间:在 World::Update(uint32 diff) 中
METRIC_VALUE("update_time_diff", diff);
深入了解 InfluxDB 和 Grafana:
Username: grafana
Password: grafana
Initial Organization Name: Grafana
Initial Bucket Name: worldserver
InfluxDB 是 InfluxData 一系列相互集成良好的项目中的一员:
Telegraf 可用于采集系统指标,如 CPU、I/O、内存使用情况以及其他服务(如 MySQL),以便将这些信息显示在 AC 指标旁边。
Chronograf 是 Grafana 的替代方案,用于绘制和可视化时序指标。
Kapacitator 能够处理来自 InfluxDB 的流式数据,以提供警报、触发事件、检测异常或转换数据。