mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 08:55:32 +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 of ed75b0649a
* 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
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": []
|
|
} |