Commit Graph
100 Commits
Author SHA1 Message Date
David Baker 41371de506 New livekit service URL 2023-07-05 13:33:33 +01:00
David Baker c73c4d171d Fix netlify deployment
Turns out the create deployment stateb really needs the env,
even though it's empty.
2023-07-05 13:22:57 +01:00
David Baker fe96c4a455 Update the livekit branch name in more places
Fixes the CI to get the config from the right place.

Also removes reference to an env that's already been deleted.
2023-07-04 20:25:51 +01:00
David Baker be89fb7dd9 Revert changes to auth server code 2023-07-04 19:01:11 +01:00
David Baker 6ca5b46df7 Update config to deployed lk jwt service 2023-07-03 21:43:11 +01:00
David Baker c5f3941ad7 Unused import 2023-07-03 17:14:46 +01:00
David Baker 5305a287fe Briefer syntax 2023-07-03 17:10:36 +01:00
David Baker edcf9f3fd5 Use the repsonse,.ok rather than manual status code check 2023-07-03 17:07:00 +01:00
David Baker f64bd0ab25 Unused import 2023-07-03 17:06:22 +01:00
David Baker 4524b418ff Merge remote-tracking branch 'origin/livekit' into dbkr/openid 2023-07-03 17:03:58 +01:00
David Baker f2eabec382 Be stricter with what is passed in to the openid components 2023-07-03 16:21:56 +01:00
David Baker 9e95e8b5a7 User ID field no longer neccessary 2023-07-03 13:00:25 +01:00
David Baker 23b8a61e7a Provide sfu config via context 2023-06-30 18:12:58 +01:00
David Baker 4efd88905d Move ...rest param 2023-06-30 16:13:02 +01:00
David Baker 4548c1af23 Merge remote-tracking branch 'origin/livekit' into dbkr/openid 2023-06-30 10:11:53 +01:00
David Baker 008bb4f41d Also the other files 2023-06-28 16:42:51 +01:00
David Baker a0b342069d Merge remote-tracking branch 'origin/livekit' into dbkr/openid 2023-06-28 16:40:59 +01:00
David Baker 8996aa772c Initial support for getting SFO config using OIDC
* Change `jwt_service_url` to `livekit_service_url`
 * Make it a POST so we can send the openID token sensibly
 * Get an OIDC token & pass it with the request
 * Read the SFU URL from there too

and convert the auth server accordingly, althugh with no actual OIDC
support yet, it just issues tokens blindly just as before and ignores
the openid token completely.

We'll need to update configs & the JWT service before merging this.
2023-06-28 16:35:56 +01:00
David Baker 2caaa15520 Fix username / displayname naming confusion 2023-06-27 12:23:19 +01:00
David Baker d57bb5bb76 Fix branch names in CI 2023-06-26 13:37:31 +01:00
David Baker aed1548929 Port netlifgy-livekit workflow over to livekit branch
Now livekit is the new default branch
2023-06-26 13:21:08 +01:00
David Baker 30e1034fba Use new-js-sdk flag to disable the actual calling of group calls
In favour of using livekit
2023-06-14 12:13:55 +01:00
David Baker 403ee79d61 Include org.matrix.call events in sent events for OTel 2023-04-27 18:01:40 +01:00
David Baker ecc3693c47 Remove accidental log line 2023-04-25 10:32:36 +01:00
David Baker 7153ead8cb Remove the console exporter
I'm not sure how this got left in, presumably it was not intended.
2023-04-24 19:52:56 +01:00
David Baker 32476571fb End spans when calls are replaced by a different call 2023-04-24 17:57:05 +01:00
David Baker 4459eaeb9d Fix audio mute on window blur
https://github.com/vector-im/element-call/pull/1015/files missed a
change of spacebarHeld to a ref.
2023-04-21 10:18:43 +01:00
David Baker f5e2161a9e Add the event name to the rageshake span processor export 2023-04-20 17:18:06 +01:00
David Baker d1aa34b2e0 Use the native ResizeObserver where available
My dev env suddenly, with no apparent prompt, went into a mode where
it wouldn't display nay video tiles which was because they were 0x0
in the top left corner, which in turn was because the ResizeObserver
was never returning the actual bounds of the video tile container.

As per comment, this uses the native impl in preference to the ponyfill,
although in practice it looks like all our target browsers should support
it, so perhaps we could just remove the ponyfill entirely.
2023-04-20 13:39:25 +01:00
David Baker 1dd70ea22d Add .gz extension to to traces.json
As we are sending a gzipped file. We could make the rageshake server
look for this and gunzip it, but either way this seems like as good a
way as any to signal that the file is gzipped.
2023-04-20 09:55:57 +01: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
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
David Baker 2b71a6c4f4 Add tiny release notes script 2023-04-06 11:12:13 +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
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 2435846f66 Latest js-sdk develop (with required PR merged) 2023-04-05 10:00:16 +01:00
David Baker 23ddd73f4f Merge remote-tracking branch 'origin/main' into dbkr/otel_peerconn_events 2023-04-05 09:35:43 +01: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 5b70def4d2 Add null check for call span 2023-04-04 17:49:49 +01: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
David Baker cb0ba6d827 Add missed 'r' 2023-03-31 14:30:24 +01:00
David Baker e18c69ec89 Use latest js-sdk develop 2023-03-31 14:29:07 +01:00
David Baker 47e0ca2eda Put cors header back to https for now
To remove that change for the diff
2023-03-31 14:27:50 +01: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 773f2e009d Typo 2023-03-31 10:58:12 +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 72403d1aea Revert 74b218af8c
Comitted entirely the wrong thing
2023-03-31 10:26:33 +01:00
David Baker 74b218af8c 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.
2023-03-30 17:19:13 +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 848e28ef92 Change allowed origin to https://* as that allows the PR branches out-of-the-box 2023-03-29 15:53:29 +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
David Baker 15e4c01c5d Add max old space fix to publish workflow too 2023-03-28 15:47:59 +01:00
David Baker d53be695f9 Work around Vite unbounded memory usage
Port fix from otel branch where it appears to be working
2023-03-28 15:33:11 +01:00
David Baker 247d15cbb5 Update js-sdk
for https://github.com/matrix-org/matrix-js-sdk/commit/da03c3b529576a8fcde6f2c9a171fa6cca012830
2023-03-28 15:24:33 +01:00
David Baker 40f5c53c05 Put CORS header back to http://* with comment on why browsers are annoying 2023-03-24 09:31:52 +00:00
David Baker d1ba5dff38 Allow all origins 2023-03-23 14:37:25 +00:00
David Baker 48493a96e1 Wait until config is loaded to load otel 2023-03-22 12:41:33 +00:00
David Baker ec88907981 Comment the max old space workaround which seems to be working (so far) 2023-03-22 12:04:15 +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 6696af9b3f Experiment to try & stop vite OOMing 2023-03-20 19:29:19 +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 ef9934ce6b Commit nginx config file 2023-03-20 13:53:07 +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
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 22d2404370 Prettier 2023-03-15 16:04:15 +00:00
David Baker c519e13885 Version that does at least send some traces 2023-03-15 16:00:39 +00:00
David Baker 1e2cd97764 Include the arguably-obvious command line 2023-03-15 14:38:17 +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
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
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
David Baker 1c7c3e2beb Upgrade js-sdk for https://github.com/matrix-org/matrix-js-sdk/pull/3144 2023-02-10 19:15:28 +01:00
David Baker 3bd47a1347 Merge remote-tracking branch 'origin/feature_sfu' into dbkr/update_js_sdk_screenshare_workaround 2023-02-02 14:43:38 +00:00
David Baker 8ffdf34b0a Merge remote-tracking branch 'origin/main' into feature_sfu 2023-02-02 14:42:38 +00:00
David Baker b9589d6d2f Merge branch 'feature_sfu' into dbkr/update_js_sdk_screenshare_workaround 2023-02-02 13:49:51 +00:00
David Baker 9de7fe81f2 Merge branch 'main' into feature_sfu 2023-02-02 13:48: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
David Baker ff6a9840b7 Update js-sdk for screenshare workaround 2023-02-02 12:00:44 +00:00
David Baker b7ac131614 Add posthog to PR preview builds 2023-01-26 14:59:54 +00: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