Commit Graph

146 Commits

Author SHA1 Message Date
Kelno
06d3987125 Contrib/EnumUtils: Fixed enumutils_describe.py matching every extension ending with a 'h' (like .sh) instead of only .h file (PR #25462) 2020-09-16 14:39:23 +02:00
Treeston
88d446dadf Scripts/Commands: Convert argument parsing of .npc commands
(And I snuck some chat command cleanup in there, more de-cluttering!)
2020-09-04 00:58:23 +02:00
Treeston
91744de316 Common/Utilities: Move EnumUtils' implementation struct from Trinity::Impl to Trinity::Impl::EnumUtilsImpl. This avoids confusing name clashes for other implementations in sub-namespaces of Trinity::Impl. 2020-08-23 15:05:04 +02:00
Peter Keresztes Schmidt
4286e7aa02 Core/ChatCommands: Check whether a passed numeric enum value is valid (#25285) 2020-08-20 00:46:52 +02:00
Treeston
6116e5b385 Core/Warden: Warden refactors (PR #25235) 2020-08-11 18:04:36 +02:00
jackpoz
df8d50c06a Core/Metric: Include Creatures and Gameobjects panels in the Performance Profiling dashboard 2020-08-04 14:17:07 +02:00
jackpoz
5cd93df9ee Core/Metric: Add new metric in World::UpdateSessions()
Add new metric about how long adding sessions took
2020-07-28 17:49:51 +02:00
Giacomo Pozzoni
8a2c79c850 Core/Metric: Log detailed metrics about each opcode handler (#25153)
* Core/Metric: Log detailed metrics about each opcode handler

* Add new panel to Performance profiling dashboard and use fill(0) instead of fill(none)

* Add new settings Metric.Threshold.* to be able to specify the minimum threshold for the specified metrics

* Update dashboard

* Change thresholds to be required to send the metrics. A TC_METRIC_DETAILED_TIMER metric with an expected threshold not configured will be ignored

* Use typedef Milliseconds

* Refresh realms on load
2020-07-28 14:27:54 +02:00
jackpoz
f9972f2473 Core/Metric: Fix setting in Performance profiling dashboard 2020-07-27 14:56:59 +02:00
Giacomo Pozzoni
36ef487a90 Core/Metric: Add new cmake option WITH_DETAILED_METRICS to enable more metrics (#25136)
* Core/Metric: Add new cmake option WITH_DETAILED_METRICS to enable more metrics

Add more detailed metrics in World::UpdateSessions().

* Attempt using C++17 features

* Fix cmake typo

Co-authored-by: NoName <322016+Faq@users.noreply.github.com>

* Fix build with WITHOUT_METRICS

* Update Performance profiling dashboard with Update sessions panel

* Add panel to show sessions with update time above 100 ms

* Move legends on the right and add max update time diff in the legend of sessions

Co-authored-by: NoName <322016+Faq@users.noreply.github.com>
2020-07-27 14:00:28 +02:00
Giacomo Pozzoni
3c0ac7302f Core/Metric: Add more metrics about World::Update() loop (#25098)
* Core/Metric: Add more metrics about World::Update() loop

* Add new Performance profiling grafana dashboard

* Add new cmake setting WITHOUT_METRICS that disables all metrics

As new metrics are added, someone might want to disable them if unused.

* Add more metrics about World::Update() loop

* Remove old performance profiling features

Remove "server set difftime" command, "-RecordUpdateTimeDiffInterval" and "MinRecordUpdateTimeDiff" worldserver config settings and their related code.
The whole UpdateTime class could be removed too.

* Update and rename 2020_07_99_99_world.sql to 2020_07_24_00_world.sql
2020-07-24 00:30:16 +02:00
Giacomo Pozzoni
5eb742ee6a Core/Metric: Log Map::Update() times (#25067)
* Core/Metric: Log Map::Update() times

* Add more performant version to reduce allocations when metrics are disabled

* Linux build fix

* Add metric stopwatch version that doesnt let users forget to _END it

* Fix linux build

* Code cleanup

* Add Map updates panel to General dashboard

* Add "Recent events" panel to General dashboard

* Apply latest codestyle changes

Co-authored-by: Shauren <shauren.trinity@gmail.com>
2020-07-18 00:52:01 +02:00
Giacomo Pozzoni
4e1dbd1cf8 Log number of Creatures and GameObject per map (#24809)
* Shared/Metric: Allow to specify tags in metrics

* Core/Metric: Log number of Creatures and GameObject per map

* Apply feedback

* Codestyle changes

* Codestyle changes

* Remove whitespace

* Update Grafana dashboards to v7.0.3

* Fix missing filter on realm

* Include Creatures and Gameobjects in Maps dashboard

* Show instances with a different color
2020-06-20 00:04:01 +02:00
Shauren
58d3f17430 Misc: Made gdb crash reporting script more automation friendly
* Don't block on successful exit
* Generate timestamped filenames to avoid overwriting old logs
2020-05-08 16:39:34 +02:00
Shauren
0d0d005a2e Misc: Improve gdb script output
* Switch disassembly to intel syntax
* Remove terminal colors
* Remove terminal line wrapping and pagination
* Start versioning the script
2020-04-22 11:58:51 +02:00
jackpoz
dcd2ffdaf4 CI/Circle CI: Show codestyle instructions
Show a short comment about how to fix the codestyle errors
2020-04-07 21:43:47 +02:00
jackpoz
5f29577f63 CI/Circle CI: Add codestyle check
Tabs are not allowed, use 4 spaces instead
2020-04-05 19:11:00 +02:00
jackpoz
0017c7a082 CI/Circle CI: Add codestyle check
Whitespace at the end of lines is not allowed
2020-04-05 19:10:59 +02:00
jackpoz
4f88be63e7 CI/Circle CI: Add support to multiline regex 2020-04-05 19:10:57 +02:00
jackpoz
af1260c40e CI/Circle CI: Add codestyle check
ObjectGuid::GetCounter() should not be called in logs, use ObjectGuid::ToString().c_str() instead
2020-04-05 19:10:56 +02:00
jackpoz
32c9f1c7a2 CI/Circle CI: Enforce codestyle checks 2020-04-05 19:10:55 +02:00
Teppic1
1d78fb2cd4 Add bash script for extracting client files (#24215)
* Add bash script for extracting client files

Simple bash script to automate extracting/copying client files on a Linux system.

It follows the instructions on the wiki but additionally copies camera files if found. It includes a few simple checks.

* Update extractor.sh

Client and server directories are now requested unless already set as environment variables.

* Fix client check

* Update contrib/extractor.sh

Clearer error

Co-Authored-By: Trond B. Krokli <38162891+illfated@users.noreply.github.com>

Co-authored-by: Trond B. Krokli <38162891+illfated@users.noreply.github.com>
2020-03-08 13:32:31 +01:00
Aokromes
ed93932537 New year
Say bye bye to every year changing dates
2020-01-02 06:25:50 +01:00
Treeston
b2b7ae8898 Contrib/Misc: There, build fix. 19d71fb follow-up. 2019-07-30 12:04:26 +02:00
Treeston
19d71fb206 Contrib/Misc: Allow enumutils_describe.py to better deal with commented-out enum lines 2019-07-30 11:42:08 +02:00
Treeston
e813200e5e Core/Misc: Kick a Totem error log upstairs one stack frame to give it access to various debug info and make Aokromes happy. 2019-07-29 21:37:15 +02:00
Aokromes
58c5dfac1d Misc/Extractor: Clarify a bit 2019-02-14 08:57:56 +01:00
Giacomo Pozzoni
cb6439bacd Circle CI (#22982)
* Build/CI: Add Circle CI

* Fix travis
2019-01-26 20:46:33 +01:00
Treeston
fcfcb0eb6f Happy New Year, folks. It's 2019! 2019-01-01 15:45:25 +01:00
Treeston
8836fc3903 Core/Misc: Update description text for SpellAttr4 2018-11-14 19:37:10 +01:00
Shauren
f6b0d99e2c GCC build fix
Closes #22785
2018-11-12 00:39:53 +01:00
Treeston
c16d461e16 Core/Util: Redesign SmartEnum to properly work for large enums (>64 entries) and play nice with IDEs (PR #22768) 2018-11-11 17:52:41 +01:00
Aokromes
5fd03bb472 Misc: Make extractor more clear for some users 2018-09-11 13:24:22 +02:00
Shauren
62db1fb683 Core/CrashHandler: Include assertion messages in crash reports 2018-08-29 23:59:24 +02:00
Aokromes
313bc2cb30 Update merge_updates_unix.sh 2018-04-08 12:04:37 +02:00
Aokromes
1c0e19dfcf Make codacy happy 2018-04-08 12:04:17 +02:00
Aokromes
959fffe0df Update merge_updates_unix.sh 2018-04-08 12:03:52 +02:00
tkrokli
f6b6f57a6d Update copyright note for 2018
Best wishes for the new year.
2018-01-01 01:55:29 +01:00
cribolouf
e38852c5d6 Optimize and Streamline Extractor.bat 2017-07-17 11:26:43 +02:00
tkrokli
9c1a426202 Contrib/Windows: extractor.bat cleanup
- Missing GOTO label :EOF at the end of the file
- Messages to user are in full English sentences.
2017-07-14 06:50:41 +02:00
Aokromes
d5ccd17175 Update extractor.bat 2017-02-25 10:37:39 +01:00
Aokromes
207c306937 Tools: Make extractor better, add mmaps extractor multitask 2017-02-11 05:45:01 +01:00
tkrokli
6a51a88767 Update Copyright notice for 2017
Happy new year!
2017-01-02 19:52:45 +01:00
martin26
869e4eade5 Fixed path for world updates (#17639) 2016-07-20 20:06:48 +02:00
jackpoz
911bffd208 Grafana/Dashboards: Fix General info datasources
Fix General info datasources for counter panels
2016-06-04 13:11:35 +02:00
Duarte Duarte
3ae1016082 Implement real time statistic visualization (#16956)
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
2016-06-04 11:23:29 +01:00
Naios
c333d0f6de Contrib: Fix the check_update scripts after the recent organization changes
* Fixes the travis build
* Ref 8778829a98

(cherry picked from commit e3a583646e)
2016-04-17 17:43:17 +02:00
Aokromes
d55d32fa0f Misc/Extractor: Add batch file for extractors
You must copy it to your wow directory with the tools and run it.
Linux version is welcomed.
2016-03-04 14:58:09 +01:00
Rushor
923a368ac7 Update copyright note for 2016 2016-01-01 12:02:33 +01:00
tkrokli
01e0475ab8 contrib/script: error text corrections in check_updates.sh
Fix a factual error in the /contrib/check_updates.sh error message text,
Best shown in an example from the latest travis build error:
```
$ ./contrib/check_updates.sh auth auth
Database Updater check script:
  Checking database 'auth' for missing filenames in tables...

- "sql/updates/2015_10_09_00_auth.sql" is missing in table 'auth'.'updates'

Fatal error:
  The Database Updater is broken for database 'auth
  due to applied update which are missing in the 'auth'.'updates' table.

How to fix:
  Insert the missing names of sql updates which were applied already to
  the 'updates' table of the 'auth' base dump ('sql/base/auth_database.sql').

The command "./contrib/check_updates.sh auth auth" exited with 1.
```
Main fix: `\"sql/updates/${file}\"` -> `\"sql/updates/${name}/${file}\"`

Before this change, the error message claims that the updated SQL file was placed
directly in the `/sql/updates/` directory and not in the subdirectory based on its DB name.

All the other changes are improvements in English grammar and more precise description.
2015-10-10 16:04:58 +02:00