martin ridgers
9bc39ddbb2
Shifted the store frontend to another port so as to avoid collision with old-school Unreal Insightses.
...
#rnx
#ROBOMERGE-SOURCE: CL 16603796 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16603804 by martin ridgers in ue5-release-engine-test branch]
2021-06-09 08:51:32 -04:00
martin ridgers
e50e8480d4
Removed the self-hosted Trace stores in plugins and Unreal Insights. They can assume that the trace store is already running and therefore need to just attempt to connect to it.
...
#rb im
#ROBOMERGE-SOURCE: CL 16603794 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16603802 by martin ridgers in ue5-release-engine-test branch]
2021-06-09 08:51:25 -04:00
martin ridgers
d84ae8e3f2
Tweaked the trace store client/server protocol to be more HTTP-like.
...
#rb honk
#rnx
#ROBOMERGE-SOURCE: CL 16602541 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)
[CL 16602712 by martin ridgers in ue5-release-engine-test branch]
2021-06-09 07:05:27 -04:00
Martin Ridgers
e75bd655f6
Add accessor for the "store_dir" field of the trace store's /v1/status response.
...
[CL 16544497 by Martin Ridgers in ue5-main branch]
2021-06-03 03:34:33 -04:00
Martin Ridgers
49726ba2ae
Include the trace store's local filesystem location in the /v1/status response.
...
[CL 16544451 by Martin Ridgers in ue5-main branch]
2021-06-03 03:22:21 -04:00
Martin Ridgers
18f8df19ed
Bumped a port number one step too early.
...
[CL 16509004 by Martin Ridgers in ue5-main branch]
2021-05-31 09:51:47 -04:00
Martin Ridgers
5be4185e2a
Versioned the end points that the trace store server and client communicate over. This will be useful as I shift to running the trace store in a separate process who's lifetime I've less control over.
...
[CL 16508945 by Martin Ridgers in ue5-main branch]
2021-05-31 09:38:07 -04:00
Steve Robb
1f3fe8c9ac
Some ANSICHAR/UTF8CHAR cast fixes for upcoming changes to StringConv.h.
...
#rb none
#jira none
[CL 16469364 by Steve Robb in ue5-main branch]
2021-05-26 10:45:12 -04:00
Martin Ridgers
5cfc74ed00
Specifying the port that the Trace Store client should connect is now optional.
...
#rb jb
#rnx
[CL 16467361 by Martin Ridgers in ue5-main branch]
2021-05-26 08:25:39 -04:00
Martin Ridgers
4bf9cfa79a
Call select() on a socket before making a blocking call to recv(). Calls to recv() that are waiting for data may not return even if the socket is closed. This can result in a technical hang where Insights waits on Trace waiting on a socket that was closed. This way we only call recv() when we know there is data to read, and the select()+timeout combo correctly detects to the close().
...
#rb Catalin.Dragoiu
#rnx
[CL 16364807 by Martin Ridgers in ue5-main branch]
2021-05-18 04:24:57 -04:00
Martin Ridgers
26a110cf1e
Packets that are partial but not compressed where being incorrectly categorised as compressed. Analysis would fallover when nonsense data was sent to LZ4.
...
#rb simple
#rnx
[CL 16298406 by Martin Ridgers in ue5-main branch]
2021-05-12 09:23:09 -04:00
Martin Ridgers
a50347235f
If a partial packet arrives and we know about the thread, we're expecting more data and can just append the partial packet we received. If we do not know about the thread the packet is fore, then we've late-joined and the packet we've just received is dependant on previous data that was discarded prior to connect. In that case we'll discard the packet.
...
#rnx
[CL 16247692 by Martin Ridgers in ue5-main branch]
2021-05-10 09:17:16 -04:00
Martin Ridgers
b5c9a2a157
The transport layer can now choose to discard packets for a particular thread. Currently none are discarded but the functionality will be used in late-connect scenarios where the first packet for a thread is partial (e.g. it starts in the middle of auxilary trace data). There is no mechanism in place to recover reading events in this case. It is however a rare occurence thus cheaper, easier, and safer to discard the packet than support recovery.
...
#rb jb
#rnx
[CL 16237278 by Martin Ridgers in ue5-main branch]
2021-05-07 05:25:31 -04:00
Martin Ridgers
03b7ef154c
Replaced some magic constants with a something more semantic.
...
#rb jb
#rnx
[CL 16218739 by Martin Ridgers in ue5-main branch]
2021-05-06 03:31:12 -04:00
Martin Ridgers
5f92f30cdd
Use Trace's packet structs on the analysis side instead of duplicating them.
...
#rb jb
#rnx
[CL 16218643 by Martin Ridgers in ue5-main branch]
2021-05-06 02:55:35 -04:00
Martin Ridgers
60c59e13e2
Extend lifetime of thread info objects. Previously there was a slim chance that they would get moved while someone else was holding on to a pointer to them.
...
#rb jb
#rnx
[CL 16192808 by Martin Ridgers in ue5-main branch]
2021-05-04 09:01:07 -04:00
Martin Ridgers
b8523e1c46
Guard against reading too much of an event's header from the trace data stream
...
#rb im
#rnx
[CL 16156223 by Martin Ridgers in ue5-main branch]
2021-04-29 08:18:34 -04:00
Martin Ridgers
e92804c644
Fixed typo in a comment
...
#rb im
#rnx
[CL 16156203 by Martin Ridgers in ue5-main branch]
2021-04-29 08:16:23 -04:00
Martin Ridgers
1d840cfe34
Use uint32 to store the UID instead of uint16. If anything the code generation is a little better as there are no prefixes.
...
#rb im
#rnx
[CL 16156198 by Martin Ridgers in ue5-main branch]
2021-04-29 08:15:47 -04:00
Martin Ridgers
75898aaf65
Guard against some legacy paths taken when analyzing old traces as they set the auxilary data collector object to null.
...
#rb im
#rnx
[CL 16156193 by Martin Ridgers in ue5-main branch]
2021-04-29 08:14:42 -04:00
Martin Ridgers
7107dca2f6
EventData.GetString() was incorrectly returning false if the requested field did exist but was empty.
...
#rb im
#rnx
[CL 16156188 by Martin Ridgers in ue5-main branch]
2021-04-29 08:12:58 -04:00
Martin Ridgers
8c25a5e19c
Added a EventData.GetSize() method to report the size in bytes of a traced event to the curious.
...
#rb trivial
#rnx
[CL 16112307 by Martin Ridgers in ue5-main branch]
2021-04-26 03:35:01 -04:00
Martin Ridgers
ef3e0711d7
Added an EventTypeInfo.GetSize() to get the unadorned size of an trace event.
...
#rb trivial
#rnx
[CL 16112306 by Martin Ridgers in ue5-main branch]
2021-04-26 03:33:22 -04:00
Martin Ridgers
e71e6f635c
Identify which packets of events are important and which are internal to Trace's operation. They can still be the same internal "thread" as that level of separation isn't needed, but it is helpful from a maintenance perspective to semantically separate them. It is plural "Importants" to placate Clang.
...
#rb jb
#rnx
[CL 16071425 by Martin Ridgers in ue5-main branch]
2021-04-21 07:49:01 -04:00
Martin Ridgers
b78da1ecce
Send event descriptions out before important events. Events and important events are maintained in two separate data structures. The visibility of one with respect to the other is arbitrary from the perspective of Trace's worker thread. This could result in event descriptions being after one of their events - unrecoverable when both are in the same packet.
...
#rb jb
#rnx
[CL 16071395 by Martin Ridgers in ue5-main branch]
2021-04-21 07:46:59 -04:00