diff --git a/cypress/e2e/cloud/deepLinks.test.ts b/cypress/e2e/cloud/deepLinks.test.ts index f17db59f95..a7191d0878 100644 --- a/cypress/e2e/cloud/deepLinks.test.ts +++ b/cypress/e2e/cloud/deepLinks.test.ts @@ -132,12 +132,6 @@ describe('Deep linking', () => { cy.visit('/me/tasks') cy.location('pathname').should('eq', `/orgs/${org.id}/tasks`) - cy.visit('/me/telegraf-mqtt') - cy.location('pathname').should( - 'eq', - `/orgs/${org.id}/load-data/telegraf-plugins/mqtt_consumer` - ) - cy.visit('/me/telegrafs') cy.location('pathname').should( 'eq', diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 8f22230354..cae01726ab 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -1541,7 +1541,6 @@ export const createTaskFromEmpty = ( export const disableClickThroughAnnouncement = () => { const announcementState = { - mqttEolClickThroughAnnouncement: 'dismissed', pricingClickThroughAnnouncement: 'dismissed', } diff --git a/src/flows/templates/types/subscription.ts b/src/flows/templates/types/subscription.ts deleted file mode 100644 index d589c48855..0000000000 --- a/src/flows/templates/types/subscription.ts +++ /dev/null @@ -1,88 +0,0 @@ -import {DEFAULT_TIME_RANGE} from 'src/shared/constants/timeRanges' -import {AUTOREFRESH_DEFAULT} from 'src/shared/constants' -import {PIPE_DEFINITIONS} from 'src/flows' -import {getBuckets} from 'src/client' -import {getByIDAPI, updateAPI} from 'src/writeData/subscriptions/context/api' -import {Subscription} from 'src/types' - -const getSubscriptionMeasurementValues = (sub: Subscription): string[] => { - if (sub.dataFormat === 'json') { - return sub.jsonMeasurementKey.name ? [sub.jsonMeasurementKey.name] : [] - } else if (sub.dataFormat === 'string') { - return sub.stringMeasurement.name ? [sub.stringMeasurement.name] : [] - } else { - return [] - } -} - -export default register => - register({ - type: 'subscription', - callback: (subscriptionID: string, notebookID: string) => - updateAPI({id: subscriptionID, data: {notebookID}}), - init: async (subscriptionID: string) => { - let sub - let buckets - try { - sub = await getByIDAPI({id: subscriptionID}) - const bucketsResp = await getBuckets({query: {orgID: sub.orgID}}) - buckets = bucketsResp.status === 200 ? bucketsResp.data.buckets : [] - } catch { - sub = {} - buckets = [] - } - const name = `${sub.name} Subscription` - return { - name, - spec: { - readOnly: false, - range: DEFAULT_TIME_RANGE, - refresh: AUTOREFRESH_DEFAULT, - pipes: [ - { - type: 'queryBuilder', - title: `Query ${sub.bucket} Bucket`, - visible: true, - ...JSON.parse( - JSON.stringify(PIPE_DEFINITIONS['queryBuilder'].initial) - ), - buckets: buckets.filter(a => a.name === sub.bucket), - tags: [ - { - key: '_measurement', - values: getSubscriptionMeasurementValues(sub), - aggregateFunctionType: 'filter', - }, - ], - }, - { - title: `Subscription ${sub.name} Data`, - visible: true, - type: 'table', - }, - { - type: 'queryBuilder', - title: 'Query _monitoring Bucket', - visible: true, - ...JSON.parse( - JSON.stringify(PIPE_DEFINITIONS['queryBuilder'].initial) - ), - buckets: buckets.filter(a => a.name === '_monitoring'), - tags: [ - { - key: '_measurement', - values: ['subscriptions'], - aggregateFunctionType: 'filter', - }, - ], - }, - { - title: 'Subscriptions Error Data', - visible: true, - type: 'table', - }, - ], - }, - } - }, - }) diff --git a/src/homepageExperience/ClickThroughAnnouncementHandler.tsx b/src/homepageExperience/ClickThroughAnnouncementHandler.tsx index 95b252f248..7e90c01950 100644 --- a/src/homepageExperience/ClickThroughAnnouncementHandler.tsx +++ b/src/homepageExperience/ClickThroughAnnouncementHandler.tsx @@ -8,11 +8,9 @@ import {selectCurrentIdentity} from 'src/identity/selectors' // Utils import {showOverlay, dismissOverlay} from 'src/overlays/actions/overlays' -import {isFlagEnabled} from 'src/shared/utils/featureFlag' import {event} from 'src/cloud/utils/reporting' export enum AnnouncementID { - MqttEol = 'mqttEolClickThroughAnnouncement', PriceIncrease = 'pricingClickThroughAnnouncement', } @@ -66,9 +64,6 @@ export const ClickThroughAnnouncementHandler: FC = () => { } useEffect(() => { - // MQTT Audience: Cloud users with MQTT feature flag enabled - const isMqttAudience = isFlagEnabled('subscriptionsUI') - // PAYG Pricing Increase Audience: Pay As You Go & Direct Signups const isPaygAccount = account.type === 'pay_as_you_go' const isDirectSignup = account.billingProvider === 'zuora' @@ -76,11 +71,6 @@ export const ClickThroughAnnouncementHandler: FC = () => { // Sequentially display announcements in order of priority if ( - isMqttAudience && - announcementState[AnnouncementID.MqttEol] !== AnnouncementState.Dismissed - ) { - handleDisplayAnnouncement(AnnouncementID.MqttEol) - } else if ( isPriceIncreaseAudience && announcementState[AnnouncementID.PriceIncrease] !== AnnouncementState.Dismissed diff --git a/src/homepageExperience/components/HomepageIcons.tsx b/src/homepageExperience/components/HomepageIcons.tsx index 08386f44e6..75437de18a 100644 --- a/src/homepageExperience/components/HomepageIcons.tsx +++ b/src/homepageExperience/components/HomepageIcons.tsx @@ -658,86 +658,6 @@ export const CLIIcon = ( ) -export const MQTTIcon = ( - - - - - - - - - - - - - - - - - - - - - - - - - - -) - export const TelegrafIcon = ( { const arduinoLink = `/orgs/${org.id}/new-user-setup/arduino` const pythonWizardLink = `/orgs/${org.id}/new-user-setup/python` const cliPageLink = `/orgs/${org.id}/new-user-setup/cli` - const mqttPageLink = `/orgs/${org.id}/load-data/subscriptions/create` const telegrafPageLink = `/orgs/${org.id}/load-data/telegrafs` const newTelegrafPageLink = `/orgs/${org.id}/load-data/telegrafs/new` const golangLink = `/orgs/${org.id}/new-user-setup/golang` @@ -121,10 +118,6 @@ export const HomepageContentsTSM: FC = () => { event('firstMile.CLIButton.clicked') } - const logMQTTButtonClick = () => { - event('firstMile.MQTTButton.clicked') - } - const logTelegrafButtonClick = () => { event('firstMile.telegrafButton.clicked') } @@ -253,33 +246,6 @@ export const HomepageContentsTSM: FC = () => {
- {isFlagEnabled('subscriptionsUI') && ( - -
-
-
{MQTTIcon}
-
-

Native MQTT

-
- Connect to your MQTT subscription in the cloud. -
-
-
- - -
- - )} ) - case AnnouncementID.MqttEol: - return ( - - ) default: return null } diff --git a/src/me/components/announcements/MqttEolAnnouncement.tsx b/src/me/components/announcements/MqttEolAnnouncement.tsx deleted file mode 100644 index eeedd7b67f..0000000000 --- a/src/me/components/announcements/MqttEolAnnouncement.tsx +++ /dev/null @@ -1,151 +0,0 @@ -// Libraries -import React, {FC} from 'react' - -// Components -import {Accordion, Overlay, Button, ComponentColor} from '@influxdata/clockface' -import {SafeBlankLink} from 'src/utils/SafeBlankLink' - -interface MqttEolAnnouncementProps { - handleAcknowledgeClick: () => void - handleDetailsClick: () => void -} - -export const MqttEolAnnouncement: FC = ({ - handleAcknowledgeClick, - handleDetailsClick, -}) => { - return ( - <> - - -

- The Native Collector - MQTT feature is being deprecated and will stop - functioning on April 30, 2024. -

-

- Please refer to the FAQ below for more details and guidance on - alternate solutions currently available. -

- - - - Q: What is the Native Collector - MQTT Feature? - - - - - A: The Native Collector - MQTT feature was - introduced in InfluxDB Cloud in 2022 as a way to ingest data - directly from MQTT sources into InfluxDB Cloud. This feature has - been removed and is no longer available to new customers or - existing customers who have not been using it. It was only - available to a limited number of existing customers who were - actively using it. - - - - - - - Q: Why is this feature being EOLed? - - - - - A: The adoption of this feature was lower than - anticipated given most customers continued to use Telegraf, - InfluxData's data collection agent, which provides more features - for MQTT ingestion than this feature did. After a thorough - assessment, we determined that our customers can have a similar - - and superior - experience with the MQTT Consumer Telegraf Input - Plugin. - - - - - - - Q: What alternatives are available in light of - this EOL announcement? - - - - - A: We recommend using the MQTT Consumer Telegraf - Input Plugin as an alternative to the Native Collector - MQTT - feature. It's free to use and is available for download{' '} - - here - - . Telegraf is InfluxData's very popular open source data - collection agent with 300+ plugins, including MQTT. - - - - - - - Q: What are the expected next steps? - - - - - A: The Native Collector - MQTT feature will - continue to work and function until{' '} - April 30th, 2024. We will not be doing any new - product development or enhancements to the feature in the - meantime. After the EOL date, it will be decommissioned and any - MQTT subscriptions that you have made will no longer receive and - ingest data into InfluxDB. - - - - - - - Q: Will I lose any data already ingested? - - - - - A: No, already ingested data will not be affected - by this change. - - - - - - - Q: Where can I get more information on using - Telegraf as a replacement for Native Collector - MQTT? - - - - - A: You can obtain more information about using - Telegraf with MQTT and download the MQTT Consumer Telegraf Input - Plugin{' '} - - here - - . - - - -
- -