mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 17:05:44 +01:00
Docs at https://trinitycore.atlassian.net/wiki/display/tc/Monitoring+a+TrinityCore+server * Common/Graphs: Initial proof of concept * Move influx db code to its own class * Reuse the same socket * Allow to log values of different categories * Allow to log events * Pass the timestamp to influxdb * Send events in batches * Send data async * Log server shutdown. Fix memory leak. * Allow to enable/disable Stats in the settings and at runtime * Read interval between each batch send from config * Add InfluxDB connection info to configs * Move each event category to its own table * Log pathfinding queries * Move categories table initialization to constructor using enum as key to avoid assigning the table name to the wrong enum value * Log player login/logout events. Pass the hostname correctly in the HTTP request. * Fix linux build * Handle "Connection: close" HTTP header, reconnecting on next scheduled send. Disable StatsLogger if connection fails, logging the error. * Add an enum for categories of logged values, it's still possible to pass a string instead of the enum. * Don't log the whole batchedData when InfluxDB returns an error, it's too long and unreadable on console. * Allow to call a function at a specified interval in thread-safe World::Update() context to log data like player count. * Log map tile load/unload * Core/StatsLogger: Allow logging more value types other than ints https://docs.influxdata.com/influxdb/v0.10/write_protocols/write_syntax/ * Fix a typo in string escape of StatsLogger * Yet more fixes to the escaping in FormatInfluxDBValue * DB/Gameobject: Fix respawn time of few Quest GameObjects By Tauriella, closes #16701 * DB/Misc: Fix some engrish By tkrokli closes #16648 * Tools/MMaps: Add format library linking to mmaps_generator (Very) partial cherry pick ofed75b0649a* Core/StatsLogger: Simplify code Convert values and categories arrays to maps initialized in-place Remove constructor and destructor * Core/StatsLogger: Add realm name to the event and value tags * Log amount of processed packet of each session * Apply recent singleton changes to sStatsLogger too * Fix influxdb data format if no realm name is present * Remove unneeded newlines from request body, fixes response 400 from InfluxDB 0.10 * Rename Reporting folder to Metric * Rename StatsLogger to Metric * Rename InfluxDB configs to Metric * Add Grafana dashboards * Add a random annoying macro * Move string formatting to Metric::SendBatch(), reducing performance footprint of Metric::LogEvent() and Metric::LogValue() * Update grafana graphs refresing tags on load and showing now-15m data, refreshing every minute. These settings can be modified in grafana. * Rename MetricData fields * Contrib/Grafana: Rename dashboard files * Contrib/Grafana: Replace hardcoded Windows/Ubuntu realm names by the default, Trinity * Config/Worldserver: Add missing section to the index * Contrib/Grafana: Add singlestat panels with current online players, update diff averages (1 min, 5 mins and 15 mins) http://i.imgur.com/Zi8lfvS.png * Core/Metric: Replace the enums MetricEventCategory and MetricValueCategory by strings For the sake of simplicity and less recompile time when adding new metrics, similar to how TC_LOG_* works * Contrib/Grafana: Display the current number of online players and not its average Closes #15075 (cherry picked from commit3ae1016082) # Conflicts: # src/server/game/Server/WorldSession.cpp # src/server/game/World/World.cpp # src/server/worldserver/Main.cpp
242 lines
5.8 KiB
JSON
242 lines
5.8 KiB
JSON
{
|
|
"id": 3,
|
|
"title": "Network",
|
|
"originalTitle": "Network",
|
|
"tags": [],
|
|
"style": "dark",
|
|
"timezone": "browser",
|
|
"editable": true,
|
|
"hideControls": false,
|
|
"sharedCrosshair": false,
|
|
"rows": [
|
|
{
|
|
"collapse": false,
|
|
"editable": true,
|
|
"height": "250px",
|
|
"panels": [
|
|
{
|
|
"aliasColors": {},
|
|
"bars": false,
|
|
"datasource": "Influx",
|
|
"editable": true,
|
|
"error": false,
|
|
"fill": 1,
|
|
"grid": {
|
|
"leftLogBase": 1,
|
|
"leftMax": null,
|
|
"leftMin": null,
|
|
"rightLogBase": 1,
|
|
"rightMax": null,
|
|
"rightMin": null,
|
|
"threshold1": null,
|
|
"threshold1Color": "rgba(216, 200, 27, 0.27)",
|
|
"threshold2": null,
|
|
"threshold2Color": "rgba(234, 112, 112, 0.22)"
|
|
},
|
|
"id": 1,
|
|
"isNew": true,
|
|
"legend": {
|
|
"avg": false,
|
|
"current": false,
|
|
"max": false,
|
|
"min": false,
|
|
"show": true,
|
|
"total": false,
|
|
"values": false
|
|
},
|
|
"lines": true,
|
|
"linewidth": 2,
|
|
"links": [],
|
|
"nullPointMode": "connected",
|
|
"percentage": false,
|
|
"pointradius": 5,
|
|
"points": false,
|
|
"renderer": "flot",
|
|
"seriesOverrides": [],
|
|
"span": 12,
|
|
"stack": false,
|
|
"steppedLine": false,
|
|
"targets": [
|
|
{
|
|
"alias": "Processed packets",
|
|
"dsType": "influxdb",
|
|
"groupBy": [
|
|
{
|
|
"params": [
|
|
"$interval"
|
|
],
|
|
"type": "time"
|
|
},
|
|
{
|
|
"params": [
|
|
"0"
|
|
],
|
|
"type": "fill"
|
|
}
|
|
],
|
|
"measurement": "processed_packets",
|
|
"query": "SELECT sum(\"value\") FROM \"processed_packets\" WHERE \"realm\" =~ /$realm$/ AND $timeFilter GROUP BY time($interval) fill(0)",
|
|
"refId": "A",
|
|
"resultFormat": "time_series",
|
|
"select": [
|
|
[
|
|
{
|
|
"params": [
|
|
"value"
|
|
],
|
|
"type": "field"
|
|
},
|
|
{
|
|
"params": [],
|
|
"type": "sum"
|
|
}
|
|
]
|
|
],
|
|
"tags": [
|
|
{
|
|
"key": "realm",
|
|
"operator": "=~",
|
|
"value": "/$realm$/"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"alias": "Processed packets / mean per session",
|
|
"dsType": "influxdb",
|
|
"groupBy": [
|
|
{
|
|
"params": [
|
|
"$interval"
|
|
],
|
|
"type": "time"
|
|
},
|
|
{
|
|
"params": [
|
|
"0"
|
|
],
|
|
"type": "fill"
|
|
}
|
|
],
|
|
"measurement": "processed_packets",
|
|
"query": "SELECT mean(\"value\") FROM \"processed_packets\" WHERE \"realm\" =~ /$realm$/ AND $timeFilter GROUP BY time($interval) fill(0)",
|
|
"refId": "B",
|
|
"resultFormat": "time_series",
|
|
"select": [
|
|
[
|
|
{
|
|
"params": [
|
|
"value"
|
|
],
|
|
"type": "field"
|
|
},
|
|
{
|
|
"params": [],
|
|
"type": "mean"
|
|
}
|
|
]
|
|
],
|
|
"tags": [
|
|
{
|
|
"key": "realm",
|
|
"operator": "=~",
|
|
"value": "/$realm$/"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"timeFrom": null,
|
|
"timeShift": null,
|
|
"title": "Processed packets",
|
|
"tooltip": {
|
|
"shared": true,
|
|
"value_type": "cumulative"
|
|
},
|
|
"type": "graph",
|
|
"x-axis": true,
|
|
"y-axis": true,
|
|
"y_formats": [
|
|
"short",
|
|
"short"
|
|
]
|
|
}
|
|
],
|
|
"title": "Row"
|
|
}
|
|
],
|
|
"time": {
|
|
"from": "now-15m",
|
|
"to": "now"
|
|
},
|
|
"timepicker": {
|
|
"now": true,
|
|
"refresh_intervals": [
|
|
"5s",
|
|
"10s",
|
|
"30s",
|
|
"1m",
|
|
"5m",
|
|
"15m",
|
|
"30m",
|
|
"1h",
|
|
"2h",
|
|
"1d"
|
|
],
|
|
"time_options": [
|
|
"5m",
|
|
"15m",
|
|
"1h",
|
|
"6h",
|
|
"12h",
|
|
"24h",
|
|
"2d",
|
|
"7d",
|
|
"30d"
|
|
]
|
|
},
|
|
"templating": {
|
|
"list": [
|
|
{
|
|
"allFormat": "regex values",
|
|
"current": {
|
|
"text": "Trinity",
|
|
"value": "Trinity"
|
|
},
|
|
"datasource": "Influx",
|
|
"includeAll": false,
|
|
"multi": false,
|
|
"multiFormat": "regex values",
|
|
"name": "realm",
|
|
"options": [
|
|
{
|
|
"text": "Trinity",
|
|
"value": "Trinity",
|
|
"selected": true
|
|
}
|
|
],
|
|
"query": "show tag values from events with key = realm",
|
|
"refresh": true,
|
|
"type": "query"
|
|
}
|
|
]
|
|
},
|
|
"annotations": {
|
|
"list": [
|
|
{
|
|
"datasource": "Influx",
|
|
"enable": true,
|
|
"iconColor": "#C0C6BE",
|
|
"iconSize": 13,
|
|
"lineColor": "rgba(255, 96, 96, 0.592157)",
|
|
"name": "Global Events",
|
|
"query": "select title, text from events where $timeFilter and realm =~ /$realm$/",
|
|
"showLine": true,
|
|
"textColumn": "text",
|
|
"titleColumn": "title"
|
|
}
|
|
]
|
|
},
|
|
"refresh": "1m",
|
|
"schemaVersion": 8,
|
|
"version": 7,
|
|
"links": []
|
|
} |