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
David Baker
4bf1fbfd8e
Gah, the sentry logger
2023-03-29 13:31:47 +01:00
David Baker
34a72679a1
Merge remote-tracking branch 'origin/main' into dbkr/otel
2023-03-29 12:30:41 +01:00
David Baker
77c6357b08
Use js-sdk from hangup refactor branch
...
https://github.com/matrix-org/matrix-js-sdk/pull/3234
2023-03-29 12:28:04 +01:00
Enrico Schwendig
66c3d05ae9
docu: Add webrtc metric to OTel
2023-03-28 11:51:15 +02:00
Robin Townsend
c4f029ae4f
Fix lint error
2023-03-27 22:30:12 -04:00
Robin Townsend
5f41f9476b
Disable the opt in analytics setting if Posthog isn't configured
2023-03-23 13:07:34 -04:00
Robin Townsend
313ebe258e
Add end-to-end audio observability
...
This reports via OpenTelemetry when particular participants are speaking, as an easy way to observe the delivery of audio in calls.
2023-03-22 14:23:26 -04:00
Robin Townsend
76c0277301
Update matrix-js-sdk
2023-03-22 11:41:41 -04:00
David Baker
48493a96e1
Wait until config is loaded to load otel
2023-03-22 12:41:33 +00:00
David Baker
9c0adfd32e
Unused import
2023-03-22 12:00:34 +00:00
David Baker
f6fb65be49
Remove odd source mapping comment & unused commented code
2023-03-22 11:58:41 +00:00
David Baker
3d6ae3fbc3
Enable/disable opentelemetry based on config/user preference
...
Add config to set collector URL, obey the same analytics setting as
posthog. Also refactor into a class to make it easier to manage.
2023-03-22 11:55:21 +00:00
David Baker
359e055314
Make callMembershipSpan optional
2023-03-21 12:13:51 +00:00
David Baker
9b02d17224
Merge branch 'main' into dbkr/otel
2023-03-20 19:20:13 +00:00
David Baker
6b36604c84
Update js-sdk
2023-03-20 19:17:50 +00:00
David Baker
e7a7cf3eb8
Export events to posthog too
2023-03-20 13:30:21 +00:00
David Baker
63ede0b51a
Version using events for call joins / leaves and matrix events
...
This is probably conceptually nicer although isn't quite as nice in
the jaeger / stalk UI.
Also this may no loger work with the posthog exporter (unsure what it
will do with events on spans).
2023-03-17 19:26:23 +00:00
David Baker
2d91b43a7d
Set attributes on the root span
...
Setting them on the context doesn't actually make them show up in
jaeger, it's just a way to propagate the info around between
different things.
2023-03-17 19:03:43 +00:00
David Baker
f8f5d2011d
Add CORS to jaeger query endpoint and make spans nested
...
Adds an nginx in front of the query endpoint so we can use stalk
without faffing with browser extension to bypass CORS.
Also make the spans correctly have the call membership span as parent,
which they didn't because we hadn't set the span at the point we made
the context.
2023-03-17 17:01:59 +00:00
alariej
1bf1813a77
Fix for Android WebView, which does not support navigator.mediaSession
2023-03-17 17:20:16 +01:00
David Baker
521b0a857a
Send spans for state events
2023-03-16 18:08:28 +00:00
David Baker
31450219c8
More work on opentelemetry event reporting
...
Moastly a re-org to avoid new contexts over React component unmounts/
remounts.
2023-03-16 14:41:55 +00:00
David Baker
c519e13885
Version that does at least send some traces
2023-03-15 16:00:39 +00:00
David Baker
0cca5ae174
Slightly evolved but not-yet-working OpenTelemetry
...
More usefully, including docker config for starting a CORS enabled
OTLP collector so we don't have to use zipkin.
2023-03-15 14:35:10 +00:00
Robin Townsend
971eca59ff
Opt into analytics by default during the beta
2023-03-13 19:12:47 -04:00
Timo K
4c59638d00
otel for call start, end and mute
...
This is send over zipkin.
And it uses a posthog exporter to export events to posthog
using a _otel prefix
2023-03-10 10:33:54 +01:00
Robin
5eb552e36a
Merge pull request #935 from alariej/alariej
...
Add e2eEnabled parameter to Widget client
2023-03-02 16:07:04 -05:00
Enrico Schwendig
29e41c7227
Allow Element Call to be started without audio / video interface ( #924 )
...
* config: add feature in `config.json`
* groupCall: adjust connection state in feed if allowCallWithoutVideoAndAudio
* matrix-js-sdk: update version for allowCallWithoutVideoAndAudio
- I modified the SDK so that mute unmute work without media and check device permission inside the SDK
- allowCallWithoutVideoAndAudio is only checked at one point outside the SDK
* docu: add join group call without media docu in READMe
---------
Co-authored-by: Robin Townsend <robin@robin.town>
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-03-02 18:48:32 +01:00
alariej
58d87db55f
Add e2eEnabled parameter to Widget client
2023-03-01 14:30:25 +01:00
Timo
0423a494c4
Checkbox for analytics opt in & settings redesign ( #934 )
2023-03-01 13:47:36 +01:00
David Baker
64703fd3cc
Typo
...
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-02-28 14:09:52 +00:00
David Baker
53bc8eb82f
Behave sensibly if a full room alias is entered
...
Check explicitly to see if the room name that's enetered into the box
looks like a room alias and if so, do the sensible thing.
Fixes https://github.com/vector-im/element-call/issues/852
2023-02-28 13:50:24 +00:00
Robin Townsend
1fc181dc28
Document useReactiveState
2023-02-15 16:38:49 -05:00
Robin Townsend
fbc72283d4
Add missing copyright headers
2023-02-15 16:20:58 -05:00
Robin Townsend
efbf319fa1
Explain why we cast the tile springs
2023-02-13 22:40:26 -05:00
Robin Townsend
ef4a62ca62
Document useMergedRefs
2023-02-13 22:38:27 -05:00
Robin Townsend
58ed372afa
Fix type and lint errors
2023-02-13 21:57:57 -05:00
Robin Townsend
69e6ba93c1
Add a switch to toggle between the new and old grids
2023-02-13 20:36:42 -05:00
Robin Townsend
b2b2f0bb15
Merge branch 'main' into big-grid
2023-02-13 18:54:19 -05:00
Robin Townsend
5448744871
Document grid operations
2023-02-13 18:35:23 -05:00
David Baker
605dd44df0
Rename other instance of variable
2023-02-13 15:49:58 +00:00
David Baker
07a4de638f
Don't pause audio streams on media actions
...
This adds handlers for the media actions to do nothing, otherwise
they cause the audio element for a random participant to get paused.
Fixes https://github.com/vector-im/element-call/issues/855
2023-02-13 15:20:48 +00:00
Timo
eda11cfc08
Inform that the user that config keys are missing ( #880 )
2023-02-09 12:57:54 +01:00
Robin Townsend
d852e33413
Document the component
2023-02-08 00:32:08 -05:00
Robin Townsend
8d46687a54
Refactor grid state tracking
2023-02-07 23:27:49 -05:00
Robin Townsend
978b0f08e8
Move grid algorithms into a separate file
2023-02-07 22:13:50 -05:00
Robin Townsend
374c68e3c0
Fix tiles enlarging to the wrong place on mobile
2023-02-05 01:17:28 -05:00
Robin Townsend
82ac775124
Fix scrolling on mobile
2023-02-05 00:55:12 -05:00
Robin Townsend
6adcf95aaa
Implement different column counts and mobile layout
2023-02-04 00:43:53 -05:00
Robin Townsend
206730ffc0
Fix infinite loop when a tile can't be enlarged
2023-02-03 16:52:42 -05:00
Robin Townsend
1e858f6ba3
Fix a typo
2023-02-03 16:27:49 -05:00
Robin Townsend
22382413dc
Make drag and drop mobile-friendly
2023-02-03 15:42:47 -05:00
Robin Townsend
6cd939db0c
Fix a crash when there's only 1 tile and it gets shrunk
2023-02-03 09:11:25 -05:00
Robin Townsend
42e4f6ce83
Don't allow the grid to overflow horizontally
2023-02-03 08:44:35 -05:00
David Baker
579b91abff
Revert "Yarn upgrade"
2023-02-02 14:32:44 +00:00
David Baker
e1abbd5291
Yarn upgrade
...
Along with some type fixes to make typescript happy again. Hopefully
they are sensible.
2023-02-02 12:49:54 +00:00
Robin Townsend
4fc8598e36
Keep tile elements in a stable order
2023-02-01 11:50:52 -05:00
Robin Townsend
6784d2ba97
Remove redundant key prop
2023-02-01 11:50:25 -05:00
Robin Townsend
0915e327e1
Implement somewhat working drag & drop and improve render memoization
2023-02-01 11:32:10 -05:00
Robin Townsend
eedf8a6d1b
Make tiles draggable (but not yet droppable)
2023-02-01 00:17:22 -05:00
Robin Townsend
d7db845f3b
Scroll snap was a bad idea
2023-01-30 23:52:46 -05:00
Robin Townsend
82c7293308
Replace premature animation optimization with a potentially wiser one
2023-01-30 23:44:19 -05:00
Robin Townsend
0166eb67fb
Make avatars scale smoothly during animations
2023-01-30 23:43:45 -05:00
Robin Townsend
e3081c1c06
Try out a snappier spring
2023-01-30 23:32:26 -05:00
Robin Townsend
f540f48461
Fix some layout bugs
2023-01-30 23:32:00 -05:00
Robin Townsend
55dece274f
Fix some tile resizing bugs
2023-01-30 17:04:43 -05:00
Robin Townsend
4e73c07cb2
Try out scroll snapping
2023-01-30 09:35:40 -05:00
Robin Townsend
3805a2f20e
Format with Prettier
2023-01-29 21:56:07 -05:00
Robin Townsend
4e35984900
Extract tile size change logic into a function
2023-01-29 21:54:53 -05:00
Robin Townsend
e99294c3f1
Simplify some code
2023-01-29 21:45:10 -05:00
Robin Townsend
8912daa922
Make tiles resizable and fix some miscellaneous bugs
2023-01-25 23:51:36 -05:00
Robin Townsend
045103dbc9
Backfill the grid as people leave by moving tiles along paths
2023-01-25 02:30:52 -05:00
David Baker
d2631a3e02
Fix the rageshake modal on mobile
...
As per comment
Unsure if this is the best fix - ideally we wouldn't go into no-controls
mode at all, but this part doesn't know whether the dialog is open so
the only thing we could really do is tweak the threshold, or possibly
guess based on width instead?
2023-01-23 17:52:02 +00:00
David Baker
d65464e4db
Avoid duplicate PTT button 'unhold' events
...
We called the 'unhold' function even if the button wasn't held which
probably will have been generating unmute events even when we weren't
muted.
Also use separate handlers for events so we can have specific log lines
(and also see where the event comes from when caught in the debugger).
2023-01-23 16:53:24 +00:00
Robin Townsend
59f3b05c07
Merge branch 'main' into big-grid
2023-01-23 08:57:04 -05:00
David Baker
4f8bd18efd
Don't try to register users until client is loaded
2023-01-20 17:59:57 +00:00
David Baker
47c2e9e101
Don't crash if we can't find our own member event
2023-01-20 12:10:58 +00:00
David Baker
81997624d4
Fix joining rooms by ID
...
We use this in embedded mode. Regressed by https://github.com/vector-im/element-call/pull/860
Lowercasing room IDs obviously makes them break, so… don't do that.
2023-01-20 10:51:52 +00:00
David Baker
7e1033f5a4
Add colon in comment
...
Co-authored-by: Šimon Brandner <simon.bra.ag@gmail.com>
2023-01-20 09:35:50 +00:00
David Baker
524f530dce
Lowercase room alias before joining
2023-01-19 19:20:42 +00:00
Robin Townsend
46d1351d83
More fixes
2023-01-18 13:38:29 -05:00