Robin Townsend
6f13989819
Fix lint errors
2023-04-19 15:55:55 -04:00
Robin Townsend
1184b71396
Format with Prettier
2023-04-19 15:54:39 -04:00
Robin Townsend
56bd54a645
Disable keyboard shortcuts when focus is in a modal
2023-04-19 15:51:44 -04:00
Robin Townsend
18fa1371d3
Use a ref for spacebarHeld
...
because we can and it means fewer renders
2023-04-19 15:17:32 -04:00
Robin Townsend
3c7f01a510
Make audio activity border match the tile border radius
2023-04-19 10:24:47 -04:00
David Baker
8eafb1ae4a
Merge pull request #1005 from robintown/parallel-calls
...
Detect split-brains caused by parallel calls
2023-04-18 17:29:23 +01:00
Enrico Schwendig
3da4b4eeef
Add jitter and packet loss info in summary report ( #1006 )
...
* stats: add jitter and packet loss
2023-04-18 15:20:06 +02:00
David Baker
0de1aa74ee
Use microseconds in the rageshake exporter
...
Fixes times being off by a factor of 1000
2023-04-18 12:48:34 +01:00
Robin Townsend
838137c83b
Detect split-brains caused by parallel calls
...
This is another KPI for PostHog.
2023-04-17 16:58:51 -04:00
David Baker
9442b314b2
Fix PostHog in embedded mode
...
Embedded mode has a differtent path to join the call and we missed
changing the groupCall.enter() function for the wrapper that does
analytics.
2023-04-17 18:47:46 +01:00
Robin
7221b7c3a2
Merge pull request #998 from robintown/rageshake-processor
...
Include unended spans in rageshakes
2023-04-14 11:55:16 -04:00
Robin Townsend
da7760d7ab
Send rejoin events to PostHog in realtime
...
By converting PosthogSpanExporter to a SpanProcessor just like the RageshakeSpanProcessor, it can now monitor spans in realtime as they are started.
2023-04-12 18:14:59 -04:00
Robin Townsend
a17ffcc327
Include unended spans in rageshakes
...
By turning the RageshakeSpanExporter into a SpanProcessor, it can now be notified of spans as soon as they're started.
2023-04-12 17:12:02 -04:00
Robin Townsend
0637804d61
Fix a crash when adding call events to telemetry
...
Since typeof null is 'object', the flattenVoipEventRecursive function was mistakenly casting nulls to Record<string, unknown> in its typeof v === "object" case, causing Object.entries to explode.
2023-04-11 23:05:37 -04:00
Robin
a2b3e098b6
Merge pull request #995 from robintown/rageshake-traces
...
Include OpenTelemetry traces in rageshakes
2023-04-11 16:24:09 -04:00
Enrico Schwendig
e2293665f9
Add posthog event for summary report ( #992 )
...
* stats: add posthog event for summary report
* stats: remove console log
2023-04-11 09:06:13 +02:00
Robin Townsend
95eca18207
Include OpenTelemetry traces in rageshakes
2023-04-11 01:13:19 -04:00
Enrico Schwendig
bb5c382fd0
separate summary report from stats report ( #986 )
...
* stats: separate summary report from stats report
* stats: switch to last summery stats builder
* stats: update matrix-js-sdk
2023-04-06 13:19:39 +02:00
David Baker
dd1485a277
Merge pull request #988 from vector-im/dbkr/enable_otel_by_collector
...
Allow different OpenTelemetry collectors to be enabled/disabled
2023-04-05 20:05:41 +01:00
David Baker
caea22fa89
Remove the recheck callback since it isn't necessary for now
2023-04-05 19:00:07 +01:00
David Baker
88f3b30040
Allow different OpenTelemetry collectors to be enabled/disabled
...
Always enable OpenTelemetry, but conditionally enable the OTLP
exporter, as per comment.
Fixes https://github.com/vector-im/element-call/issues/987
2023-04-05 18:21:29 +01:00
Robin Townsend
928f1c1d6f
Address review feedback
2023-04-05 12:56:50 -04:00
Robin Townsend
711cdf9a60
Merge branch 'main' into audio-observability
2023-04-05 12:50:38 -04:00
David Baker
fec299ab20
Skip whole block if no otel instance
2023-04-05 15:11:51 +01:00
David Baker
5e4aa53997
Don't call posthog before its initialised
2023-04-05 15:00:14 +01:00
David Baker
0dcaa90650
Fix exception when loading PostHog
...
PostHog was expecting the matrix client object to be initialised at
the point it ran its setup, which wasn't the case. Check to see if it's
there on login and add an onLoginStatusChanged hook that to re-check.
Also make a few methods private that didn't need to be public.
Also fix a few instances where the OpenTelemetry group call tried to
report metrics using a tracer which didn't exist anymore, if the user
disabled analytics and then joined the same call again.
2023-04-05 13:06:55 +01:00
David Baker
b061cbfb2f
Remove the other listeners
2023-04-05 10:01:58 +01:00
David Baker
23ddd73f4f
Merge remote-tracking branch 'origin/main' into dbkr/otel_peerconn_events
2023-04-05 09:35:43 +01:00
Enrico Schwendig
390442a4c3
Add webrtc metric to OTel ( #974 )
...
* stats: Add summery report
---------
Co-authored-by: David Baker <dave@matrix.org>
2023-04-05 10:25:26 +02:00
David Baker
c824ea6f9a
Add OpenTelemetry events for PeerConnection state changes / errors
...
Creates a new class to represent individual calls and adds the listeners
there.
Requires https://github.com/matrix-org/matrix-js-sdk/pull/3251
Based on https://github.com/vector-im/element-call/pull/974
2023-04-04 18:00:45 +01:00
David Baker
28196a2e9d
Merge pull request #981 from vector-im/dbkr/call_events_to_call_span
...
Move call events to the call span
2023-04-04 17:52:41 +01:00
David Baker
5b70def4d2
Add null check for call span
2023-04-04 17:49:49 +01:00
David Baker
2cd549cdc8
Merge pull request #982 from vector-im/dbkr/otel_flatten_include_booleans
...
Include booleans in flattened OpenTelemetry object
2023-04-04 17:26:20 +01:00
Robin
e0089a0aee
Merge pull request #958 from robintown/forced-opt-in
...
Opt into analytics by default during the beta
2023-04-04 09:27:01 -04:00
Robin
61a0534984
Merge pull request #983 from robintown/rejoin-analytics
...
Track call rejoins
2023-04-04 09:18:40 -04:00
Robin Townsend
a52251befa
Track call rejoins
...
Call rejoins will be one of the KPIs we track in PostHog to measure call quality. I've also reverted the previous behavior which logged all OpenTelemetry spans to PostHog, since we should only be sending small, anonymized bits of data there.
2023-04-03 21:05:13 -04:00
David Baker
30f75c6cd2
Don't pass null / undefined as attribute value
2023-04-03 17:41:40 +01:00
David Baker
8fa23b7da9
Include booleans in flattened OpenTelemetry object
2023-04-03 16:58:29 +01:00
David Baker
277081ee2a
Move call events to the call span
2023-04-03 14:35:04 +01:00
David Baker
3a7983d2de
Add displayname on call spans
2023-04-03 14:31:17 +01:00
Enrico Schwendig
3b06258e40
stats: rename enum to avoid shadow values
2023-04-03 14:07:29 +02:00
Enrico Schwendig
889a31489b
stats: fix typo
2023-04-03 12:37:55 +02:00
Enrico Schwendig
dd67a45671
stats: Add summery report
2023-03-31 14:57:56 +02:00
Enrico Schwendig
707272bf19
Merge branch 'dbkr/otel' into enricoschw/real-time-media-statistics-for-full-mesh
2023-03-31 13:14:49 +02:00
David Baker
dc725f90a9
Fix confusing comment
2023-03-31 11:12:10 +01:00
David Baker
a1aca7bdf2
Fix lying comment
2023-03-31 11:10:05 +01:00
David Baker
5e6c33b3b5
Let otel know we're joining before trying to join
...
Otherwise it starts getting calls being created before the group call
span exists and we get call spans not associated with the group call
span.
(What 74b218af8c
should have been)
2023-03-31 10:30:01 +01:00
David Baker
c2b78d59c6
Add more events:
...
* VoIP events received
* Call errors
* Group call errors
* Undecryptable to-device events
2023-03-30 16:54:10 +01:00
David Baker
21458c8840
Call the same leave method everywhere
...
So we end the group call span whenever we leasve the call, including
if we close the page.
2023-03-30 13:03:58 +01:00
David Baker
f96ce8985d
Only enable otel if we have a collector URL
2023-03-29 16:04:11 +01:00