Skip to content

Commit 558bb63

Browse files
committed
Record element clicks via Glean provided api
1 parent f3b7507 commit 558bb63

File tree

8 files changed

+40
-6
lines changed

8 files changed

+40
-6
lines changed

src/components/ActiveClients.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import React, { useCallback, useEffect, useState } from 'react';
88
import { Link } from 'react-router-dom';
99
import { collection, getFirestore, onSnapshot, orderBy, query } from 'firebase/firestore';
10+
import GleanMetrics from '@mozilla/glean/metrics';
1011

1112
import ReturnToTop from './ReturnToTop';
1213
import SearchBar from './SearchBar';
@@ -144,13 +145,15 @@ const ActiveClients = () => {
144145
to={`/pings/${debugId}`}
145146
onClick={() => {
146147
recordClick("Debug ID Pings");
148+
GleanMetrics.recordElementClick({'label': 'Debug ID Pings'});
147149
}}
148150
>
149151
Pings
150152
</Link>
151153
<br />
152154
<Link className='text-decoration-none' to={`/stream/${debugId}`} onClick={() => {
153155
recordClick("Debug ID Event Stream")
156+
GleanMetrics.recordElementClick({'label': 'Debug ID Event Stream'});
154157
}}>
155158
Event Stream
156159
</Link>

src/components/Breadcrumbs.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import React from 'react';
88
import { Link } from 'react-router-dom';
99
import useBreadcrumbs from 'use-react-router-breadcrumbs';
10+
import GleanMetrics from '@mozilla/glean/metrics';
1011

1112
import { isUuid } from '../lib/isUuid';
1213
import { recordClick } from '../lib/telemetry';
@@ -15,7 +16,10 @@ const Breadcrumbs = () => {
1516
const breadcrumbs = useBreadcrumbs();
1617

1718
return (
18-
<div style={{ marginLeft: '0.5rem', paddingLeft: 16, marginBottom: 15 }} onClick={() => {recordClick('Breadcrumbs')}}>
19+
<div style={{ marginLeft: '0.5rem', paddingLeft: 16, marginBottom: 15 }} onClick={() => {
20+
recordClick('Breadcrumbs');
21+
GleanMetrics.recordElementClick({'label': 'Breadcrumbs'});
22+
}}>
1923
{breadcrumbs.map(({ breadcrumb, key, location, match }) => {
2024
// `/pings` & `/stream` are included in the routes, but they don't have
2125
// their own pages, so we can hide it from our breadcrumbs.

src/components/DebugTagPings/components/DebugTagPingsComponent.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
where
1717
} from 'firebase/firestore';
1818
import PropTypes from 'prop-types';
19+
import GleanMetrics from '@mozilla/glean/metrics';
1920

2021
import Filter from './Filter';
2122
import ErrorField from './ErrorField';
@@ -43,6 +44,7 @@ const DebugTagPings = ({ debugId }) => {
4344
// Copies the beautified JSON payload to the clipboard.
4445
const handleCopyPayload = (key, payload, buttonLabel) => () => {
4546
recordClick(buttonLabel);
47+
GleanMetrics.recordElementClick({'label': buttonLabel});
4648

4749
try {
4850
const beautifiedJson = JSON.stringify(JSON.parse(payload), undefined, 2);
@@ -221,9 +223,15 @@ const DebugTagPings = ({ debugId }) => {
221223
</td>
222224
{!!numberOfErrors && <ErrorField ping={ping} />}
223225
<td className='actions'>
224-
<Link to={`/pings/${debugId}/${ping.key}`} onClick={() => {recordClick('Details')}}>Details</Link>
226+
<Link to={`/pings/${debugId}/${ping.key}`} onClick={() => {
227+
recordClick('Details');
228+
GleanMetrics.recordElementClick({'label': 'Details'});
229+
}}>Details</Link>
225230
<br />
226-
<a target='_blank' rel='noopener noreferrer' href={jsonToDataURI(ping.payload)} onClick={() => {recordClick('Raw JSON')}}>
231+
<a target='_blank' rel='noopener noreferrer' href={jsonToDataURI(ping.payload)} onClick={() => {
232+
recordClick('Raw JSON');
233+
GleanMetrics.recordElementClick({'label': 'Raw JSON'});
234+
}}>
227235
Raw JSON
228236
</a>
229237
<br />

src/components/DebugTagPings/components/Filter.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import React, { useEffect, useRef, useState } from 'react';
88
import PropTypes from 'prop-types';
9+
import GleanMetrics from '@mozilla/glean/metrics';
910

1011
import Dropdown from '../../Dropdown';
1112
import SearchBar from '../../SearchBar';
@@ -51,6 +52,7 @@ const Filter = ({ pings, handleFilter, handleFiltersApplied }) => {
5152

5253
const handleToggleRenderOptions = (buttonLabel) => {
5354
recordClick(buttonLabel);
55+
GleanMetrics.recordElementClick({'label': buttonLabel});
5456
setShowOptions((prev) => !prev);
5557
};
5658

src/components/NavBar.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import React from 'react';
88
import { Link } from 'react-router-dom';
99
import PropTypes from 'prop-types';
10+
import GleanMetrics from '@mozilla/glean/metrics';
1011

1112
import { auth } from '../Firebase';
1213

@@ -32,7 +33,10 @@ const NavBar = ({ authenticated, theme, themeToggler }) => {
3233
>
3334
<div></div>
3435
<div className='navbar-nav' role='presentation'>
35-
<div className='nav-item nav-link cursor-pointer' onClick={() => {recordClick('Theme')}}>
36+
<div className='nav-item nav-link cursor-pointer' onClick={() => {
37+
recordClick('Theme');
38+
GleanMetrics.recordElementClick({'label': 'Theme'});
39+
}}>
3640
<ThemeToggle theme={theme} toggleTheme={themeToggler} />
3741
</div>
3842
<div className='nav-item nav-link cursor-pointer'>
@@ -41,13 +45,19 @@ const NavBar = ({ authenticated, theme, themeToggler }) => {
4145
target='_blank'
4246
rel='noopener noreferrer'
4347
style={{ all: 'unset ' }}
44-
onClick={() => {recordClick('Bug')}}
48+
onClick={() => {
49+
recordClick('Bug');
50+
GleanMetrics.recordElementClick({'label': 'Bug'});
51+
}}
4552
>
4653
<BugIcon />
4754
</a>
4855
</div>
4956
<div className='nav-item nav-link cursor-pointer'>
50-
<Link to={`/help`} style={{ all: 'unset' }} onClick={() => {recordClick('Help')}}>
57+
<Link to={`/help`} style={{ all: 'unset' }} onClick={() => {
58+
recordClick('Help');
59+
GleanMetrics.recordElementClick({'label': 'Help'});
60+
}}>
5161
<HelpIcon />
5262
</Link>
5363
</div>
@@ -56,6 +66,7 @@ const NavBar = ({ authenticated, theme, themeToggler }) => {
5666
type='btn btn-lg '
5767
onClick={() => {
5868
recordClick('Sign out');
69+
GleanMetrics.recordElementClick({'label': 'Sign out'});
5970
auth.signOut();
6071
}}
6172
>

src/components/ReadMore.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import React, { useMemo, useState } from 'react';
88
import PropTypes from 'prop-types';
9+
import GleanMetrics from '@mozilla/glean/metrics';
910
import { recordClick } from '../lib/telemetry';
1011

1112
const ReadMore = ({ numberOfLines = 3, text }) => {
@@ -26,6 +27,7 @@ const ReadMore = ({ numberOfLines = 3, text }) => {
2627
<div className='cursor-pointer' onClick={
2728
() => {
2829
recordClick('Expand payload');
30+
GleanMetrics.recordElementClick({'label': 'Expand payload'});
2931
setShow((prev) => !prev)}}
3032
>
3133
<span

src/components/ReturnToTop.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
*/
66

77
import React, { useState } from 'react';
8+
import GleanMetrics from '@mozilla/glean/metrics';
89
import { recordClick } from '../lib/telemetry';
910

1011
const ReturnToTop = () => {
@@ -26,6 +27,7 @@ const ReturnToTop = () => {
2627
onClick={() => {
2728
// record this click event
2829
recordClick('Back to top');
30+
GleanMetrics.recordElementClick({'label': 'Back to top'});
2931
document.body.scrollTop = 0;
3032
document.documentElement.scrollTop = 0;
3133
}}

src/components/ShowRawPing/components/ShowRawPing.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import React, { useEffect, useRef, useState } from 'react';
1010
import { useLocation } from 'react-router-dom';
1111
import { doc, getDoc, getFirestore } from 'firebase/firestore';
1212
import PropTypes from 'prop-types';
13+
import GleanMetrics from '@mozilla/glean/metrics';
1314

1415
import Events from '../../Events';
1516
import Loading from '../../Loading';
@@ -162,6 +163,7 @@ const ShowRawPing = ({ docId }) => {
162163

163164
const handleLineNumberClick = (lineNumber) => (e) => {
164165
recordClick('Line number');
166+
GleanMetrics.recordElementClick({'label': 'Line number'});
165167
lineNumber = `L${lineNumber}`;
166168

167169
let startLine;

0 commit comments

Comments
 (0)