Commit Graph
100 Commits
Author SHA1 Message Date
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 3a7983d2de Add displayname on call spans 2023-04-03 14:31:17 +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 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 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
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
David Baker 4f8bd18efd Don't try to register users until client is loaded 2023-01-20 17:59:57 +00:00
David Baker 785fa51e0c Use merged js-sdk commit 2023-01-20 13:12:03 +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 524f530dce Lowercase room alias before joining 2023-01-19 19:20:42 +00:00
David Baker e1c4042d15 Add units to constant 2023-01-17 10:16:55 +00:00
David Baker 860aff4958 Change rageshake persistence to throttled flushing
Rather than every 30 seconds. This way we'll save logs for sessions
lasting less than 30 seconds which we previously didn't. Also save
on window unload just in case that doesn't catch everything.

Plus remove some more unused params.
2023-01-16 17:27:49 +00:00
David Baker 13b1dcf785 Mostly cosmetic fixes to rageshake
* Remove duplicate copyright header
 * Remove ts-ignores by just using the objects directly rather than via
   event.target
 * Use error.message rather than errorCode which TS doesn't know about
   and may or may not exist.
 * Remove some unused things like the skip rageshake function and
   the option to init rageshakes without storage.
 * Turn single function with a boolean param to make it take two entirely
   separate code paths into two functions.
2023-01-16 16:43:45 +00:00
David Baker 6168109894 Use merged js-sdk commit 2023-01-13 21:41:21 +00:00
David Baker a2a1a9032a Use js-sdk from branch 2023-01-13 18:33:58 +00:00
David Baker abd909c03a Log undecryptable to-device events
Listen for the new undecryptable to-device event event and log
events for it in Posthog & Sentry, and make it visible in the
call flow diagram.
2023-01-13 18:27:22 +00:00
David Baker afdce66896 Merge remote-tracking branch 'origin/main' into dbkr/prevent_keyrepeat_mute_spam 2023-01-13 11:57:02 +00:00
David Baker 1b08a5cac3 Rename file 2023-01-13 11:56:29 +00:00
David Baker a5977fc992 Rename to useCallViewKeyboardShortcuts 2023-01-13 11:52:40 +00:00
David Baker f2193302c1 Prevent mute event spam from key repeats 2023-01-12 18:26:21 +00:00
David Baker 9ba4ce429f Disable keyboard shortcuts when feedback modal is open 2023-01-12 17:31:19 +00:00
David Baker d9b0e08ea2 Fix caching headers on Docker image 2023-01-12 16:20:37 +00:00
David Baker 5f26534496 Use IndexedDB storage in dev mode, just without the worker
As per comment, we can't use workers in Vite dev mode. We previously
fell back to the memory store but this ends up with it working significantly
differently in dev mode to production, eg. dev mode would always start
by doing an initial sync, so old to-device messages would arrive again.

There's no need to fall all the way back to the memory store though,
we can use the IndexedDB store without the worker.
2023-01-12 15:17:46 +00:00
David Baker 30688715cd Revert f20fc78bd7 2023-01-12 13:20:11 +00:00
David Baker f20fc78bd7 Use branch of js-sdk with Olm debugging
Pulls in changes from https://github.com/matrix-org/matrix-js-sdk/pull/3055

Not intended to stay long-term.
2023-01-12 11:28:15 +00:00
David Baker c34a1f7f65 Use prefixed versions of other fullscreen APIs too 2023-01-03 18:35:00 +00:00
David Baker 70b693ef3c Revert d2175b4
Unintentionally comitted to main
2023-01-03 18:34:27 +00:00
David Baker d2175b40a4 Use prefixed versions of other fullscreen APIs too 2023-01-03 18:33:11 +00:00
David Baker 1830acbddf Fix copyright pt. 2: CSS files 2023-01-03 16:58:38 +00:00
David Baker df9c1fed2a Fix copyright headers
This is an Element project (in the vector-im repo) so the Copyright
should be for New Vector: it was incorrectly attributed to the
foundation for some files (and some files were missing headers).
2023-01-03 16:55:26 +00:00
David Baker d1091eda17 Add conditional on head_repo on Netlify main GHA job
As per comment
2022-12-22 20:22:54 +00:00
David Baker 5823cd41e8 Translate separately so the i18n gets less confused 2022-12-22 14:23:19 +00:00
David Baker de0f2e65a5 Don't show option to submit bug reports if no endpoint configured 2022-12-22 14:12:49 +00:00
David Baker d7d7bee685 Remove the overflow menu button in fullscreen mode
It didn't work and fixing it is a bit of a project: see comment

https://github.com/vector-im/element-call/issues/807
2022-12-22 12:16:05 +00:00
David Baker f35b50d89f Remove Olm from devDependencies
It was in devDependencies as well as dependencies for some reason
2022-12-21 18:49:49 +00:00
David Baker 70522ed8da Also add comment 2022-12-21 15:26:24 +00:00
David Baker 3581aceb5a Addd ResolvedConfigOptions back 2022-12-21 15:25:08 +00:00
David Baker 29f48f25f4 Actually remove the bit that's no longer neccessary 2022-12-21 15:17:34 +00:00
David Baker 089234ae09 Use config from the branch we built on PR previews
No harm in doing this - just as easy to override config in the code
itself.
2022-12-21 15:11:24 +00:00
David Baker 6bc5b16b02 These appear to be important? 2022-12-21 13:09:41 +00:00
David Baker f67eb328bf Add permissions, fix artifact name, filter branches 2022-12-21 12:36:00 +00:00
David Baker 1c824da32b Add config & redirects files 2022-12-21 12:08:08 +00:00
David Baker 1442e57a23 Prettify workflow file 2022-12-21 12:01:06 +00:00
David Baker 39e92b9e2e Add deploy previews
Using workflow from element-web
2022-12-21 11:57:15 +00:00
David Baker c879090a34 Re-jig config accessors
We only ever used the static instance() method to get to the config
object, so just make a static instance that returns the ConfigOptions
directly, throwing an exception if it's not yet initialised. This way
the types can all be non-optional (plus it's shorter).
2022-12-21 10:17:53 +00:00
David Baker 6303b357ab Update default homeserver to match what the docs say 2022-12-21 10:01:37 +00:00
David Baker b3d97810a8 Unused import 2022-12-21 09:44:28 +00:00
David Baker eaf14a0562 Don't send rageshakes or start sentry if we don't have config for them 2022-12-21 09:42:27 +00:00
David Baker fd3c0d9fc6 Don't guess the server name from the URL
It only uses the default HS URL anywayso just use the default
server name.
2022-12-21 09:27:25 +00:00
David Baker b94562d43b Indent config sample properly 2022-12-20 18:26:10 +00:00
David Baker 19e478f2a9 Make sample config just have the HS config
The other options are things people usually won't need or want to
set, so just keep it to the basics.

 * Rename config sample to match element-web
 * Update / simplify build instructions
 * Rename nginx config file to differentiate it from EC config
2022-12-20 18:13:08 +00:00
David Baker d6b8ecdfd1 Remove default HS env var from build 2022-12-20 17:42:20 +00:00
David Baker 47ade7ee3c Add default HS for CD deployment 2022-12-20 17:37:07 +00:00
David Baker 23387ee75f Fix syntax 2022-12-20 17:32:04 +00:00
David Baker c85d1c1d9c Don't touch the product name option for now 2022-12-20 17:30:47 +00:00
David Baker 96de515e56 Move default homeserver to config file 2022-12-20 17:26:45 +00:00
David Baker 824ed06f36 Fix docker build
Remove the element-call directory level which isn't necessary any
more (accidentally removed the `cd element-call` in #794).
2022-12-20 11:44:27 +00:00