Skip to content

Commit 62d8285

Browse files
feat(firstMile): add nodejs wizard execute aggregate query step (#4329)
1 parent 3fd5800 commit 62d8285

File tree

6 files changed

+96
-14
lines changed

6 files changed

+96
-14
lines changed

src/homepageExperience/components/steps/python/Finish.tsx renamed to src/homepageExperience/components/steps/Finish.tsx

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,13 @@ import {
77
IconFont,
88
ResourceCard,
99
} from '@influxdata/clockface'
10+
1011
import {
1112
InfluxDBUniversityIcon,
1213
VSCodePluginIcon,
1314
} from 'src/homepageExperience/components/HomepageIcons'
15+
import {SafeBlankLink} from 'src/utils/SafeBlankLink'
16+
1417
import {event} from 'src/cloud/utils/reporting'
1518

1619
export const Finish = () => {
@@ -24,29 +27,31 @@ export const Finish = () => {
2427
<p>Curious to learn more? Try these next steps!</p>
2528
<FlexBox margin={ComponentSize.Medium} alignItems={AlignItems.Stretch}>
2629
<ResourceCard className="homepage-wizard-next-steps">
27-
<a href="https://influxdbu.com/" target="_blank">
30+
<SafeBlankLink href="https://influxdbu.com/">
2831
<h4>{InfluxDBUniversityIcon}InfluxDB University</h4>
29-
</a>
32+
</SafeBlankLink>
3033
<p>
3134
Our free hands-on courses teach you the technical skills and best
3235
practices to get the most out of your real-time data with InfluxDB."
3336
</p>
3437
</ResourceCard>
3538
<ResourceCard className="homepage-wizard-next-steps">
36-
<a
37-
href="https://docs.influxdata.com/influxdb/cloud/tools/flux-vscode"
38-
target="_blank"
39-
>
39+
<SafeBlankLink href="https://docs.influxdata.com/influxdb/cloud/tools/flux-vscode">
4040
<h4>{VSCodePluginIcon}Install VSCode Plugin</h4>
41-
</a>
41+
</SafeBlankLink>
4242
<p>Streamline your workflow even further with our VSCode plugin!</p>
4343
</ResourceCard>
4444
<ResourceCard className="homepage-wizard-next-steps">
4545
<div
46-
style={{display: 'flex', justifyContent: 'center', height: '100%'}}
46+
style={{
47+
display: 'flex',
48+
justifyContent: 'center',
49+
height: '100%',
50+
textTransform: 'uppercase',
51+
}}
4752
>
4853
<h5>
49-
MORE OPTIONS{' '}
54+
More Options{' '}
5055
<Icon
5156
glyph={IconFont.ArrowRight_New}
5257
style={{marginLeft: '9px'}}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import React from 'react'
2+
import CodeSnippet from 'src/shared/components/CodeSnippet'
3+
4+
import {SafeBlankLink} from 'src/utils/SafeBlankLink'
5+
import {event} from 'src/cloud/utils/reporting'
6+
7+
const logCopyCodeSnippet = () => {
8+
event('firstMile.nodejsWizard.executeAggregateQuery.code.copied')
9+
}
10+
11+
const logDocsOpened = () => {
12+
event('firstMile.nodejsWizard.executeAggregateQuery.docs.opened')
13+
}
14+
15+
type ExecuteAggregateQueryProps = {
16+
bucket: string
17+
}
18+
19+
export const ExecuteAggregateQuery = (props: ExecuteAggregateQueryProps) => {
20+
const {bucket} = props
21+
22+
const fromBucketSnippet = `from(bucket: "${bucket}")
23+
|> range(start: -10m) # find data points in last 10 minutes
24+
|> mean()`
25+
26+
const query = `const queryClient = client.getQueryApi(org)
27+
const fluxQuery = \`from(bucket: "fooo")
28+
|> range(start: -10m)
29+
|> filter(fn: (r) => r._measurement == "measurement1")
30+
|> mean()\`
31+
32+
queryClient.queryRows(fluxQuery, {
33+
next: (row, tableMeta) => {
34+
const tableObject = tableMeta.toObject(row)
35+
console.log(row, tableObject)
36+
},
37+
error: (error) => {
38+
console.error('\\nError', error)
39+
},
40+
complete: () => {
41+
console.log('\\nSuccess')
42+
},
43+
})`
44+
45+
return (
46+
<>
47+
<h1>Execute an Aggregate Query</h1>
48+
<p>
49+
An{' '}
50+
<SafeBlankLink
51+
href="https://docs.influxdata.com/flux/v0.x/function-types/#aggregates"
52+
onClick={logDocsOpened}
53+
>
54+
aggregate
55+
</SafeBlankLink>{' '}
56+
function is a powerful method for returning combined, summarized data
57+
about a set of time-series data.
58+
</p>
59+
<CodeSnippet
60+
text={fromBucketSnippet}
61+
showCopyControl={false}
62+
onCopy={logCopyCodeSnippet}
63+
/>
64+
<p>
65+
In this example, we use the mean() function to calculate the average of
66+
data points in last 10 minutes.
67+
<br />
68+
<br />
69+
Run the following:
70+
</p>
71+
<CodeSnippet text={query} onCopy={logCopyCodeSnippet} />
72+
<p style={{marginTop: '20px'}}>
73+
This will return the mean of the five values. ( (0+1+2+3+4) / 5 = 2 )
74+
</p>
75+
</>
76+
)
77+
}

src/homepageExperience/components/steps/nodejs/ExecuteQuery.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const fluxQuery = \`from(bucket: "fooo")
2525
queryClient.queryRows(fluxQuery, {
2626
next: (row, tableMeta) => {
2727
const tableObject = tableMeta.toObject(row)
28-
console.log(tableObject)
28+
console.log(row, tableObject)
2929
},
3030
error: (error) => {
3131
console.error('\\nError', error)

src/homepageExperience/containers/HomepageContainer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export const HomepageContainer: FC = () => {
4242
const pythonWizardLink = `/orgs/${org.id}/new-user-wizard/python`
4343
const cliPageLink = `/orgs/${org.id}/load-data/file-upload/csv`
4444
const telegrafPageLink = `/orgs/${org.id}/load-data/telegrafs`
45-
const javaScriptNodeLink = `/orgs/${org.id}/load-data/client-libraries/javascript-node`
45+
const javaScriptNodeLink = `/orgs/${org.id}/new-user-wizard/nodejs`
4646
const golangLink = `/orgs/${org.id}/load-data/client-libraries/go`
4747
const loadDataSourcesLink = `/orgs/${org.id}/load-data/sources`
4848

src/homepageExperience/containers/NodejsWizard.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ import {CreateToken} from 'src/homepageExperience/components/steps/CreateToken'
1515
import {InitalizeClient} from 'src/homepageExperience/components/steps/nodejs/InitalizeClient'
1616
import {WriteData} from 'src/homepageExperience/components/steps/nodejs/WriteData'
1717
import {ExecuteQuery} from 'src/homepageExperience/components/steps/nodejs/ExecuteQuery'
18-
import {Finish} from 'src/homepageExperience/components/steps/python/Finish'
19-
import {ExecuteAggregateQuery} from 'src/homepageExperience/components/steps/python/ExecuteAggregateQuery'
18+
import {Finish} from 'src/homepageExperience/components/steps/Finish'
19+
import {ExecuteAggregateQuery} from 'src/homepageExperience/components/steps/nodejs/ExecuteAggregateQuery'
2020

2121
import {NodejsIcon} from 'src/homepageExperience/components/HomepageIcons'
2222

src/homepageExperience/containers/PythonWizard.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {CreateToken} from 'src/homepageExperience/components/steps/CreateToken'
1515
import {InitalizeClient} from 'src/homepageExperience/components/steps/python/InitalizeClient'
1616
import {WriteData} from 'src/homepageExperience/components/steps/python/WriteData'
1717
import {ExecuteQuery} from 'src/homepageExperience/components/steps/python/ExecuteQuery'
18-
import {Finish} from 'src/homepageExperience/components/steps/python/Finish'
18+
import {Finish} from 'src/homepageExperience/components/steps/Finish'
1919
import {ExecuteAggregateQuery} from 'src/homepageExperience/components/steps/python/ExecuteAggregateQuery'
2020

2121
import {PythonIcon} from 'src/homepageExperience/components/HomepageIcons'

0 commit comments

Comments
 (0)