diff --git a/.github/instructions/layouts.instructions.md b/.github/instructions/layouts.instructions.md index dc5d85e936..b9a1e93823 100644 --- a/.github/instructions/layouts.instructions.md +++ b/.github/instructions/layouts.instructions.md @@ -11,10 +11,11 @@ applyTo: "layouts/**/*.html" When creating or modifying Hugo layouts and shortcodes: -1. Use Hugo template syntax and functions -2. Follow existing patterns in `/layouts/shortcodes/` -3. Test in [content/example.md](../../content/example.md) -4. Document new shortcodes in [DOCS-SHORTCODES.md](../../DOCS-SHORTCODES.md) +1. Use test-driven development using `/cypress/` +2. Use Hugo template syntax and functions +3. Follow existing patterns in `/layouts/shortcodes/` +4. Test in [content/example.md](../../content/example.md) +5. Document new shortcodes in [DOCS-SHORTCODES.md](../../DOCS-SHORTCODES.md) ## Shortcode Pattern @@ -30,9 +31,32 @@ When creating or modifying Hugo layouts and shortcodes: ## Testing -Add usage examples to `content/example.md` to verify: +**IMPORTANT:** Use test-driven development with Cypress. + +Add shortcode usage examples to `content/example.md` to verify: + - Rendering in browser - Hugo build succeeds - No console errors +- JavaScript functionality works as expected (check browser console for errors) +- Interactive elements behave correctly (click links, buttons, etc.) + +### TDD Workflow + +1. Add Cypress tests (high-level to start). +2. Run tests and make sure they fail. +3. Implement code changes +4. Run tests and make sure they pass. +5. Add and refine tests. +6. Repeat. + +### Manual Testing Workflow + +1. Make changes to shortcode/layout files +2. Wait for Hugo to rebuild (check terminal output) +3. Get the server URL from the log +4. Open browser DevTools console (F12) +5. Test the functionality and check for JavaScript errors +6. Verify the feature works as intended before marking complete See [DOCS-SHORTCODES.md](../../DOCS-SHORTCODES.md) for complete shortcode documentation. diff --git a/.husky/_/pre-commit b/.husky/_/pre-commit index 4855f61246..710b288565 100755 --- a/.husky/_/pre-commit +++ b/.husky/_/pre-commit @@ -33,6 +33,9 @@ call_lefthook() then "$dir/node_modules/lefthook/bin/index.js" "$@" + elif go tool lefthook -h >/dev/null 2>&1 + then + go tool lefthook "$@" elif bundle exec lefthook -h >/dev/null 2>&1 then bundle exec lefthook "$@" @@ -42,12 +45,21 @@ call_lefthook() elif pnpm lefthook -h >/dev/null 2>&1 then pnpm lefthook "$@" - elif swift package plugin lefthook >/dev/null 2>&1 + elif swift package lefthook >/dev/null 2>&1 then - swift package --disable-sandbox plugin lefthook "$@" + swift package --build-path .build/lefthook --disable-sandbox lefthook "$@" elif command -v mint >/dev/null 2>&1 then mint run csjones/lefthook-plugin "$@" + elif uv run lefthook -h >/dev/null 2>&1 + then + uv run lefthook "$@" + elif mise exec -- lefthook -h >/dev/null 2>&1 + then + mise exec -- lefthook "$@" + elif devbox run lefthook -h >/dev/null 2>&1 + then + devbox run lefthook "$@" else echo "Can't find lefthook in PATH" fi diff --git a/.husky/_/pre-push b/.husky/_/pre-push index a0d96ef932..17b532e004 100755 --- a/.husky/_/pre-push +++ b/.husky/_/pre-push @@ -33,6 +33,9 @@ call_lefthook() then "$dir/node_modules/lefthook/bin/index.js" "$@" + elif go tool lefthook -h >/dev/null 2>&1 + then + go tool lefthook "$@" elif bundle exec lefthook -h >/dev/null 2>&1 then bundle exec lefthook "$@" @@ -42,12 +45,21 @@ call_lefthook() elif pnpm lefthook -h >/dev/null 2>&1 then pnpm lefthook "$@" - elif swift package plugin lefthook >/dev/null 2>&1 + elif swift package lefthook >/dev/null 2>&1 then - swift package --disable-sandbox plugin lefthook "$@" + swift package --build-path .build/lefthook --disable-sandbox lefthook "$@" elif command -v mint >/dev/null 2>&1 then mint run csjones/lefthook-plugin "$@" + elif uv run lefthook -h >/dev/null 2>&1 + then + uv run lefthook "$@" + elif mise exec -- lefthook -h >/dev/null 2>&1 + then + mise exec -- lefthook "$@" + elif devbox run lefthook -h >/dev/null 2>&1 + then + devbox run lefthook "$@" else echo "Can't find lefthook in PATH" fi diff --git a/.husky/_/prepare-commit-msg b/.husky/_/prepare-commit-msg index 2655902bce..6efab23a3c 100755 --- a/.husky/_/prepare-commit-msg +++ b/.husky/_/prepare-commit-msg @@ -33,6 +33,9 @@ call_lefthook() then "$dir/node_modules/lefthook/bin/index.js" "$@" + elif go tool lefthook -h >/dev/null 2>&1 + then + go tool lefthook "$@" elif bundle exec lefthook -h >/dev/null 2>&1 then bundle exec lefthook "$@" @@ -42,12 +45,21 @@ call_lefthook() elif pnpm lefthook -h >/dev/null 2>&1 then pnpm lefthook "$@" - elif swift package plugin lefthook >/dev/null 2>&1 + elif swift package lefthook >/dev/null 2>&1 then - swift package --disable-sandbox plugin lefthook "$@" + swift package --build-path .build/lefthook --disable-sandbox lefthook "$@" elif command -v mint >/dev/null 2>&1 then mint run csjones/lefthook-plugin "$@" + elif uv run lefthook -h >/dev/null 2>&1 + then + uv run lefthook "$@" + elif mise exec -- lefthook -h >/dev/null 2>&1 + then + mise exec -- lefthook "$@" + elif devbox run lefthook -h >/dev/null 2>&1 + then + devbox run lefthook "$@" else echo "Can't find lefthook in PATH" fi diff --git a/assets/js/ask-ai-trigger.js b/assets/js/ask-ai-trigger.js index 406a6d7277..7b05b4190c 100644 --- a/assets/js/ask-ai-trigger.js +++ b/assets/js/ask-ai-trigger.js @@ -1,19 +1,117 @@ import AskAI from './ask-ai.js'; +/** + * Global state for Ask AI initialization + */ +const state = { + kapaInitialized: false, + linksListenerInitialized: false, +}; + +/** + * Initialize the Kapa widget + */ +function initializeKapa() { + if (!state.kapaInitialized) { + AskAI(); + state.kapaInitialized = true; + + // Store in global namespace for debugging + window.influxdatadocs = window.influxdatadocs || {}; + window.influxdatadocs.kapaInitialized = true; + } +} + +/** + * Show the trigger button by removing inline display: none style + * @param {HTMLElement} element - The trigger button element + */ function showTrigger(element) { - // Remove the inline display: none style - element.removeAttribute('style'); + if (element) { + element.removeAttribute('style'); + } } +/** + * Initialize Ask AI trigger button component + * @param {Object} options - Component options + * @param {HTMLElement} options.component - The trigger button element + */ export default function AskAITrigger({ component }) { const kapaContainer = document.querySelector('#kapa-widget-container'); + if (!component && !kapaContainer) { return; } + if (!kapaContainer) { // Initialize the chat widget AskAI({ onChatLoad: () => showTrigger(component) }); + state.kapaInitialized = true; + window.influxdatadocs = window.influxdatadocs || {}; + window.influxdatadocs.kapaInitialized = true; } else { showTrigger(component); } -} \ No newline at end of file +} + +/** + * Handle ask-ai-link clicks globally + * This ensures ask-ai-link shortcodes work even without the trigger button + */ +function handleAskAILinks() { + if (state.linksListenerInitialized) { + return; + } + + state.linksListenerInitialized = true; + + // Store in global namespace for debugging + window.influxdatadocs = window.influxdatadocs || {}; + window.influxdatadocs.askAILinksInitialized = true; + + // Listen for clicks on ask-ai-link elements + document.addEventListener( + 'click', + (event) => { + const link = event.target.closest('.ask-ai-open'); + if (!link) return; + + const query = link.getAttribute('data-query'); + + // Initialize Kapa if not already done + if (!state.kapaInitialized) { + initializeKapa(); + + // Wait for Kapa to be ready, then open with query + if (query && window.Kapa?.open) { + // Give Kapa a moment to initialize + setTimeout(() => { + if (window.Kapa?.open) { + window.Kapa.open({ + mode: 'ai', + query: query, + }); + } + }, 100); + } + } else { + // Kapa is already initialized - open with query if provided + if (query && window.Kapa?.open) { + window.Kapa.open({ + mode: 'ai', + query: query, + }); + } + } + }, + { passive: true } + ); +} + +// Initialize ask-ai-link handling when DOM is ready +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', handleAskAILinks); +} else { + handleAskAILinks(); +} diff --git a/assets/js/ask-ai.js b/assets/js/ask-ai.js deleted file mode 100644 index 120047029a..0000000000 --- a/assets/js/ask-ai.js +++ /dev/null @@ -1,108 +0,0 @@ -import { productData } from './page-context.js'; - -function setUser(userid, email) { - const NAMESPACE = 'kapaSettings'; - - // Set the user ID and email in the global settings namespace. - // The chat widget will use this on subsequent chats to personalize the user's experience. - window[NAMESPACE] = { - user: { - uniqueClientId: userid, - email: email, - }, - }; -} - -// Initialize the chat widget -function initializeChat({ onChatLoad, chatAttributes }) { - /* See https://docs.kapa.ai/integrations/website-widget/configuration for - * available configuration options. - * All values are strings. - */ - // If you make changes to data attributes here, you also need to - // port the changes to the api-docs/template.hbs API reference template. - const requiredAttributes = { - websiteId: 'a02bca75-1dd3-411e-95c0-79ee1139be4d', - projectName: 'InfluxDB', - projectColor: '#020a47', - projectLogo: '/img/influx-logo-cubo-white.png', - }; - - const optionalAttributes = { - modalDisclaimer: - 'This AI can access [documentation for InfluxDB, clients, and related tools](https://docs.influxdata.com). Information you submit is used in accordance with our [Privacy Policy](https://www.influxdata.com/legal/privacy-policy/).', - modalExampleQuestions: - 'Use Python to write data to InfluxDB 3,How do I query using SQL?,How do I use MQTT with Telegraf?', - buttonHide: 'true', - exampleQuestionButtonWidth: 'auto', - modalOpenOnCommandK: 'true', - modalExampleQuestionsColSpan: '8', - modalFullScreenOnMobile: 'true', - modalHeaderPadding: '.5rem', - modalInnerPositionRight: '0', - modalInnerPositionLeft: '', - modalLockScroll: 'false', - modalOverrideOpenClassAskAi: 'ask-ai-open', - modalSize: '640px', - modalWithOverlay: 'false', - modalYOffset: '10vh', - userAnalyticsFingerprintEnabled: 'true', - fontFamily: 'Proxima Nova, sans-serif', - modalHeaderBgColor: 'linear-gradient(90deg, #d30971 0%, #9b2aff 100%)', - modalHeaderBorderBottom: 'none', - modalTitleColor: '#fff', - modalTitleFontSize: '1.25rem', - }; - - const scriptUrl = 'https://widget.kapa.ai/kapa-widget.bundle.js'; - const script = document.createElement('script'); - script.async = true; - script.src = scriptUrl; - script.onload = function () { - onChatLoad(); - window.influxdatadocs.AskAI = AskAI; - }; - script.onerror = function () { - console.error('Error loading AI chat widget script'); - }; - - const dataset = { - ...requiredAttributes, - ...optionalAttributes, - ...chatAttributes, - }; - Object.keys(dataset).forEach((key) => { - // Assign dataset attributes from the object - script.dataset[key] = dataset[key]; - }); - - // Check for an existing script element to remove - const oldScript = document.querySelector(`script[src="${scriptUrl}"]`); - if (oldScript) { - oldScript.remove(); - } - document.head.appendChild(script); -} - -function getProductExampleQuestions() { - const questions = productData?.product?.ai_sample_questions; - return questions?.join(',') || ''; -} - -/** - * chatParams: specify custom (for example, page-specific) attribute values for the chat, pass the dataset key-values (collected in ...chatParams). See https://docs.kapa.ai/integrations/website-widget/configuration for available configuration options. - * onChatLoad: function to call when the chat widget has loaded - * userid: optional, a unique user ID for the user (not currently used for public docs) - */ -export default function AskAI({ userid, email, onChatLoad, ...chatParams }) { - const modalExampleQuestions = getProductExampleQuestions(); - const chatAttributes = { - ...(modalExampleQuestions && { modalExampleQuestions }), - ...chatParams, - }; - initializeChat({ onChatLoad, chatAttributes }); - - if (userid) { - setUser(userid, email); - } -} diff --git a/assets/js/ask-ai.ts b/assets/js/ask-ai.ts new file mode 100644 index 0000000000..a58dbcb89d --- /dev/null +++ b/assets/js/ask-ai.ts @@ -0,0 +1,263 @@ +import { productData, version } from './page-context.js'; + +// Type definitions for Kapa.ai widget +declare global { + interface Window { + Kapa: KapaFunction; + influxdatadocs: { + AskAI: typeof AskAI; + }; + kapaSettings?: { + user: { + uniqueClientId: string; + email?: string; + }; + }; + } +} + +// eslint-disable-next-line no-unused-vars +type KapaFunction = (command: string, options?: unknown) => void; + +// Preinitialize Kapa widget to queue commands before script loads +(function () { + const k = window.Kapa; + if (!k) { + /* eslint-disable no-unused-vars */ + interface KapaQueue { + (...args: unknown[]): void; + q?: unknown[][]; + c?: (args: unknown[]) => void; + } + /* eslint-enable no-unused-vars */ + const i = function (...args: unknown[]) { + if (i.c) { + i.c(args); + } + } as KapaQueue; + i.q = []; + i.c = function (args: unknown[]) { + if (i.q) { + i.q.push(args); + } + }; + window.Kapa = i as unknown as KapaFunction; + } +})(); + +interface ChatAttributes extends Record { + modalExampleQuestions?: string; + modalAskAiInputPlaceholder?: string; + modalDisclaimer?: string; + sourceGroupIdsInclude?: string; +} + +interface InitializeChatParams { + onChatLoad: () => void; + chatAttributes: ChatAttributes; +} + +interface AskAIParams { + userid?: string; + email?: string; + onChatLoad?: () => void; + [key: string]: unknown; +} + +function setUser(userid: string, email?: string): void { + const NAMESPACE = 'kapaSettings'; + + // Set the user ID and email in the global settings namespace. + // The chat widget will use this on subsequent chats to personalize + // the user's experience. + window[NAMESPACE] = { + user: { + uniqueClientId: userid, + ...(email && { email }), + }, + }; +} + +// Initialize the chat widget +function initializeChat({ + onChatLoad, + chatAttributes, +}: InitializeChatParams): void { + /* See https://docs.kapa.ai/integrations/website-widget/configuration for + * available configuration options. + * All values are strings. + */ + // If you make changes to data attributes here, you also need to + // port the changes to the api-docs/template.hbs API reference template. + const requiredAttributes = { + websiteId: 'a02bca75-1dd3-411e-95c0-79ee1139be4d', + projectName: 'InfluxDB', + projectColor: '#020a47', + projectLogo: '/img/influx-logo-cubo-white.png', + }; + + const optionalAttributes = { + modalDisclaimer: + chatAttributes.modalDisclaimer || + 'This AI can access [documentation for InfluxDB, clients, and related tools](https://docs.influxdata.com). Information you submit is used in accordance with our [Privacy Policy](https://www.influxdata.com/legal/privacy-policy/).', + modalExampleQuestions: + 'Use Python to write data to InfluxDB 3,How do I query using SQL?,How do I use MQTT with Telegraf?', + buttonHide: 'true', + exampleQuestionButtonWidth: 'auto', + modalOpenOnCommandK: 'true', + modalExampleQuestionsColSpan: '8', + modalFullScreenOnMobile: 'true', + modalHeaderPadding: '.5rem', + modalInnerPositionRight: '0', + modalInnerPositionLeft: '', + modalLockScroll: 'false', + modalOverrideOpenClassAskAi: 'ask-ai-open', + modalSize: '640px', + modalWithOverlay: 'false', + modalYOffset: '10vh', + userAnalyticsFingerprintEnabled: 'true', + fontFamily: 'Proxima Nova, sans-serif', + modalHeaderBgColor: 'linear-gradient(90deg, #d30971 0%, #9b2aff 100%)', + modalHeaderBorderBottom: 'none', + modalTitleColor: '#fff', + modalTitleFontSize: '1.25rem', + }; + + const scriptUrl = 'https://widget.kapa.ai/kapa-widget.bundle.js'; + const script = document.createElement('script'); + script.async = true; + script.src = scriptUrl; + script.onload = function () { + onChatLoad(); + window.influxdatadocs.AskAI = AskAI; + }; + script.onerror = function () { + console.error('Error loading AI chat widget script'); + }; + + const dataset = { + ...requiredAttributes, + ...optionalAttributes, + ...chatAttributes, + }; + Object.keys(dataset).forEach((key) => { + // Assign dataset attributes from the object + const value = dataset[key as keyof typeof dataset]; + if (value !== undefined) { + script.dataset[key] = value; + } + }); + + // Check for an existing script element to remove + const oldScript = document.querySelector(`script[src="${scriptUrl}"]`); + if (oldScript) { + oldScript.remove(); + } + document.head.appendChild(script); +} + +function getVersionSpecificConfig(configKey: string): unknown { + // Try version-specific config first (e.g., ai_sample_questions__v1) + if (version && version !== 'n/a') { + const versionKey = `${configKey}__v${version}`; + const versionConfig = productData?.product?.[versionKey]; + if (versionConfig) { + return versionConfig; + } + } + + // Fall back to default config + return productData?.product?.[configKey]; +} + +function getProductExampleQuestions(): string { + const questions = getVersionSpecificConfig('ai_sample_questions') as + | string[] + | undefined; + if (!questions || questions.length === 0) { + return ''; + } + + return questions.join(','); +} + +function getProductSourceGroupIds(): string { + const sourceGroupIds = getVersionSpecificConfig('ai_source_group_ids') as + | string + | undefined; + return sourceGroupIds || ''; +} + +function getProductInputPlaceholder(): string { + const placeholder = getVersionSpecificConfig('ai_input_placeholder') as + | string + | undefined; + + // Return product-specific placeholder or default + return ( + placeholder || + 'Ask questions about InfluxDB. Specify your product and version ' + + 'for better results' + ); +} + +function getProductDisclaimer(): string { + // Disabled: Version-specific "Viewing documentation for..." text + // const versionNote = + // version && version !== 'n/a' && productData?.product?.name + // ? `**Viewing documentation for ${productData.product.name}**\n\n` + // : ''; + + // Check for product-specific custom disclaimer note + const customNote = getVersionSpecificConfig('ai_disclaimer_note') as + | string + | undefined; + const noteContent = customNote ? `${customNote}\n\n` : ''; + + // Base disclaimer with privacy policy link + const baseDisclaimer = + 'This AI can access [documentation for InfluxDB, clients, and related tools](https://docs.influxdata.com). Information you submit is used in accordance with our [Privacy Policy](https://www.influxdata.com/legal/privacy-policy/).'; + + return `${noteContent}${baseDisclaimer}`; +} + +/** + * Initialize the Ask AI chat widget with version-aware source filtering + * + * @param params - Configuration parameters + * @param params.userid - Optional unique user ID + * @param params.email - Optional user email + * @param params.onChatLoad - Optional callback when chat widget loads + * @param params.chatParams - Additional Kapa widget configuration attributes + */ +export default function AskAI({ + userid, + email, + onChatLoad, + ...chatParams +}: AskAIParams): void { + const modalExampleQuestions = getProductExampleQuestions(); + const modalAskAiInputPlaceholder = getProductInputPlaceholder(); + const modalDisclaimer = getProductDisclaimer(); + const sourceGroupIds = getProductSourceGroupIds(); + const chatAttributes: ChatAttributes = { + ...(modalExampleQuestions && { modalExampleQuestions }), + ...(modalAskAiInputPlaceholder && { modalAskAiInputPlaceholder }), + ...(modalDisclaimer && { modalDisclaimer }), + ...(sourceGroupIds && { sourceGroupIdsInclude: sourceGroupIds }), + ...(chatParams as Record), + }; + + const wrappedOnChatLoad = (): void => { + // Call original onChatLoad if provided + if (onChatLoad) { + onChatLoad(); + } + }; + + initializeChat({ onChatLoad: wrappedOnChatLoad, chatAttributes }); + + if (userid) { + setUser(userid, email); + } +} diff --git a/assets/js/page-context.js b/assets/js/page-context.js index 6779fbca27..f8e816c932 100644 --- a/assets/js/page-context.js +++ b/assets/js/page-context.js @@ -9,7 +9,7 @@ function getCurrentProductData() { const mappings = [ { pattern: /\/influxdb\/cloud\//, - product: products.cloud, + product: products.influxdb_cloud, urls: influxdbUrls.influxdb_cloud, }, { @@ -38,7 +38,12 @@ function getCurrentProductData() { urls: influxdbUrls.clustered, }, { - pattern: /\/enterprise_v1\//, + pattern: /\/influxdb3\/explorer/, + product: products.influxdb3_explorer, + urls: influxdbUrls.core, + }, + { + pattern: /\/enterprise_influxdb\//, product: products.enterprise_influxdb, urls: influxdbUrls.oss, }, @@ -83,7 +88,7 @@ function getCurrentProductData() { } // Return the page context -// (cloud, serverless, oss/enterprise, dedicated, clustered, other) +// (cloud, serverless, oss/enterprise, dedicated, clustered, explorer, other) function getContext() { if (/\/influxdb\/cloud\//.test(window.location.pathname)) { return 'cloud'; @@ -97,6 +102,8 @@ function getContext() { return 'dedicated'; } else if (/\/influxdb3\/clustered/.test(window.location.pathname)) { return 'clustered'; + } else if (/\/influxdb3\/explorer/.test(window.location.pathname)) { + return 'explorer'; } else if ( /\/(enterprise_|influxdb).*\/v[1-2]\//.test(window.location.pathname) ) { diff --git a/content/enterprise_influxdb/v1/administration/identify-version.md b/content/enterprise_influxdb/v1/administration/identify-version.md new file mode 100644 index 0000000000..facbcf2387 --- /dev/null +++ b/content/enterprise_influxdb/v1/administration/identify-version.md @@ -0,0 +1,21 @@ +--- +title: Identify InfluxDB Enterprise v1 version +description: Learn how to identify your InfluxDB Enterprise v1 version using command-line tools, HTTP endpoints, and other methods. +menu: + enterprise_influxdb_v1: + name: Identify version + parent: Administration +weight: 10 +source: /shared/identify-version.md +related: + - /enterprise_influxdb/v1/install-and-deploy/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + v2: /influxdb/v2/admin/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ +--- diff --git a/content/example.md b/content/example.md index 44800941f7..4682bf6faf 100644 --- a/content/example.md +++ b/content/example.md @@ -15,7 +15,7 @@ This is a paragraph. Lorem ipsum dolor ({{< icon "trash" "v2" >}}) sit amet, con [foo]: https://docs.influxdata.com -This is **bold** text. This is _italic_ text. This is _**bold and italic**_. +This is **bold** text. This is *italic* text. This is ***bold and italic***. ### Clockface v2 icons @@ -29,68 +29,68 @@ This is **bold** text. This is _italic_ text. This is _**bold and italic**_. {{< nav-icon "settings" "v2" >}} {{< nav-icon "notebooks" "v2" >}} -{{< icon "add-cell" "v2" >}} add-cell -{{< icon "add-label" "v2" >}} add-label -{{< icon "alert" "v2" >}} alert -{{< icon "calendar" "v2" >}} calendar -{{< icon "chat" "v2" >}} chat -{{< icon "checkmark" "v2" >}} checkmark -{{< icon "clone" "v2" >}} clone -{{< icon "cloud" "v2" >}} cloud -{{< icon "cog" "v2" >}} cog -{{< icon "config" "v2" >}} config -{{< icon "copy" "v2" >}} copy -{{< icon "crown" "v2" >}} crown -{{< icon "dashboard" "v2" >}} dashboard -{{< icon "dashboards" "v2" >}} dashboards -{{< icon "data-explorer" "v2" >}} data-explorer -{{< icon "delete" "v2" >}} delete -{{< icon "download" "v2" >}} download -{{< icon "duplicate" "v2" >}} duplicate -{{< icon "edit" "v2" >}} edit -{{< icon "expand" "v2" >}} expand -{{< icon "export" "v2" >}} export -{{< icon "eye" "v2" >}} eye -{{< icon "eye-closed" "v2" >}} eye-closed -{{< icon "eye-open" "v2" >}} eye-open -{{< icon "feedback" "v2" >}} feedback -{{< icon "fullscreen" "v2" >}} fullscreen -{{< icon "gear" "v2" >}} gear -{{< icon "graph" "v2" >}} graph -{{< icon "hide" "v2" >}} hide -{{< icon "influx" "v2" >}} influx -{{< icon "influx-icon" "v2" >}} influx-icon -{{< icon "nav-admin" "v2" >}} nav-admin -{{< icon "nav-config" "v2" >}} nav-config -{{< icon "nav-configuration" "v2" >}} nav-configuration -{{< icon "nav-dashboards" "v2" >}} nav-dashboards -{{< icon "nav-data-explorer" "v2" >}} nav-data-explorer -{{< icon "nav-organizations" "v2" >}} nav-organizations -{{< icon "nav-orgs" "v2" >}} nav-orgs -{{< icon "nav-tasks" "v2" >}} nav-tasks -{{< icon "note" "v2" >}} note -{{< icon "notebook" "v2" >}} notebook -{{< icon "notebooks" "v2" >}} notebooks -{{< icon "org" "v2" >}} org -{{< icon "orgs" "v2" >}} orgs -{{< icon "pause" "v2" >}} pause -{{< icon "pencil" "v2" >}} pencil -{{< icon "play" "v2" >}} play -{{< icon "plus" "v2" >}} plus -{{< icon "refresh" "v2" >}} refresh -{{< icon "remove" "v2" >}} remove -{{< icon "replay" "v2" >}} replay -{{< icon "save-as" "v2" >}} save-as -{{< icon "search" "v2" >}} search -{{< icon "settings" "v2" >}} settings -{{< icon "tasks" "v2" >}} tasks -{{< icon "toggle" "v2" >}} toggle -{{< icon "trash" "v2" >}} trash -{{< icon "trashcan" "v2" >}} trashcan -{{< icon "triangle" "v2" >}} triangle -{{< icon "view" "v2" >}} view -{{< icon "wrench" "v2" >}} wrench -{{< icon "x" "v2" >}} x +{{< icon "add-cell" "v2" >}} add-cell\ +{{< icon "add-label" "v2" >}} add-label\ +{{< icon "alert" "v2" >}} alert\ +{{< icon "calendar" "v2" >}} calendar\ +{{< icon "chat" "v2" >}} chat\ +{{< icon "checkmark" "v2" >}} checkmark\ +{{< icon "clone" "v2" >}} clone\ +{{< icon "cloud" "v2" >}} cloud\ +{{< icon "cog" "v2" >}} cog\ +{{< icon "config" "v2" >}} config\ +{{< icon "copy" "v2" >}} copy\ +{{< icon "crown" "v2" >}} crown\ +{{< icon "dashboard" "v2" >}} dashboard\ +{{< icon "dashboards" "v2" >}} dashboards\ +{{< icon "data-explorer" "v2" >}} data-explorer\ +{{< icon "delete" "v2" >}} delete\ +{{< icon "download" "v2" >}} download\ +{{< icon "duplicate" "v2" >}} duplicate\ +{{< icon "edit" "v2" >}} edit\ +{{< icon "expand" "v2" >}} expand\ +{{< icon "export" "v2" >}} export\ +{{< icon "eye" "v2" >}} eye\ +{{< icon "eye-closed" "v2" >}} eye-closed\ +{{< icon "eye-open" "v2" >}} eye-open\ +{{< icon "feedback" "v2" >}} feedback\ +{{< icon "fullscreen" "v2" >}} fullscreen\ +{{< icon "gear" "v2" >}} gear\ +{{< icon "graph" "v2" >}} graph\ +{{< icon "hide" "v2" >}} hide\ +{{< icon "influx" "v2" >}} influx\ +{{< icon "influx-icon" "v2" >}} influx-icon\ +{{< icon "nav-admin" "v2" >}} nav-admin\ +{{< icon "nav-config" "v2" >}} nav-config\ +{{< icon "nav-configuration" "v2" >}} nav-configuration\ +{{< icon "nav-dashboards" "v2" >}} nav-dashboards\ +{{< icon "nav-data-explorer" "v2" >}} nav-data-explorer\ +{{< icon "nav-organizations" "v2" >}} nav-organizations\ +{{< icon "nav-orgs" "v2" >}} nav-orgs\ +{{< icon "nav-tasks" "v2" >}} nav-tasks\ +{{< icon "note" "v2" >}} note\ +{{< icon "notebook" "v2" >}} notebook\ +{{< icon "notebooks" "v2" >}} notebooks\ +{{< icon "org" "v2" >}} org\ +{{< icon "orgs" "v2" >}} orgs\ +{{< icon "pause" "v2" >}} pause\ +{{< icon "pencil" "v2" >}} pencil\ +{{< icon "play" "v2" >}} play\ +{{< icon "plus" "v2" >}} plus\ +{{< icon "refresh" "v2" >}} refresh\ +{{< icon "remove" "v2" >}} remove\ +{{< icon "replay" "v2" >}} replay\ +{{< icon "save-as" "v2" >}} save-as\ +{{< icon "search" "v2" >}} search\ +{{< icon "settings" "v2" >}} settings\ +{{< icon "tasks" "v2" >}} tasks\ +{{< icon "toggle" "v2" >}} toggle\ +{{< icon "trash" "v2" >}} trash\ +{{< icon "trashcan" "v2" >}} trashcan\ +{{< icon "triangle" "v2" >}} triangle\ +{{< icon "view" "v2" >}} view\ +{{< icon "wrench" "v2" >}} wrench\ +{{< icon "x" "v2" >}} x ### Clockface v3 icons @@ -103,76 +103,76 @@ This is **bold** text. This is _italic_ text. This is _**bold and italic**_. {{< nav-icon "settings" "v3" >}} {{< nav-icon "notebooks" "v3" >}} -{{< icon "add-cell" "v3" >}} add-cell -{{< icon "add-label" "v3" >}} add-label -{{< icon "alert" "v3" >}} alert -{{< icon "annotate" "v3" >}} annotate -{{< icon "bar-chart" "v3" >}} bar-chart -{{< icon "bar-graph" "v3" >}} bar-graph -{{< icon "calendar" "v3" >}} calendar -{{< icon "chat" "v3" >}} chat -{{< icon "checkmark" "v3" >}} checkmark -{{< icon "clock" "v3" >}} clock -{{< icon "clone" "v3" >}} clone -{{< icon "cloud" "v3" >}} cloud -{{< icon "cog" "v3" >}} cog -{{< icon "config" "v3" >}} config -{{< icon "copy" "v3" >}} copy -{{< icon "crown" "v3" >}} crown -{{< icon "dashboard" "v3" >}} dashboard -{{< icon "dashboards" "v3" >}} dashboards -{{< icon "data-explorer" "v3" >}} data-explorer -{{< icon "delete" "v3" >}} delete -{{< icon "download" "v3" >}} download -{{< icon "duplicate" "v3" >}} duplicate -{{< icon "edit" "v3" >}} edit -{{< icon "expand" "v3" >}} expand -{{< icon "export" "v3" >}} export -{{< icon "eye" "v3" >}} eye -{{< icon "eye-closed" "v3" >}} eye-closed -{{< icon "eye-open" "v3" >}} eye-open -{{< icon "feedback" "v3" >}} feedback -{{< icon "fullscreen" "v3" >}} fullscreen -{{< icon "gear" "v3" >}} gear -{{< icon "graph" "v3" >}} graph -{{< icon "handle" "v3" >}} handle -{{< icon "hide" "v3" >}} hide -{{< icon "influx" "v3" >}} influx -{{< icon "influx-icon" "v3" >}} influx-icon -{{< icon "move" "v3" >}} move -{{< icon "move-cell" "v3" >}} move-cell -{{< icon "nav-admin" "v3" >}} nav-admin -{{< icon "nav-config" "v3" >}} nav-config -{{< icon "nav-configuration" "v3" >}} nav-configuration -{{< icon "nav-dashboards" "v3" >}} nav-dashboards -{{< icon "nav-data-explorer" "v3" >}} nav-data-explorer -{{< icon "nav-organizations" "v3" >}} nav-organizations -{{< icon "nav-orgs" "v3" >}} nav-orgs -{{< icon "nav-tasks" "v3" >}} nav-tasks -{{< icon "note" "v3" >}} note -{{< icon "notebook" "v3" >}} notebook -{{< icon "notebooks" "v3" >}} notebooks -{{< icon "org" "v3" >}} org -{{< icon "orgs" "v3" >}} orgs -{{< icon "pause" "v3" >}} pause -{{< icon "pencil" "v3" >}} pencil -{{< icon "pin" "v3" >}} pin -{{< icon "play" "v3" >}} play -{{< icon "plus" "v3" >}} plus -{{< icon "refresh" "v3" >}} refresh -{{< icon "remove" "v3" >}} remove -{{< icon "replay" "v3" >}} replay -{{< icon "save-as" "v3" >}} save-as -{{< icon "search" "v3" >}} search -{{< icon "settings" "v3" >}} settings -{{< icon "tasks" "v3" >}} tasks -{{< icon "toggle" "v3" >}} toggle -{{< icon "trash" "v3" >}} trash -{{< icon "trashcan" "v3" >}} trashcan -{{< icon "triangle" "v3" >}} triangle -{{< icon "view" "v3" >}} view -{{< icon "wrench" "v3" >}} wrench -{{< icon "x" "v3" >}} x +{{< icon "add-cell" "v3" >}} add-cell\ +{{< icon "add-label" "v3" >}} add-label\ +{{< icon "alert" "v3" >}} alert\ +{{< icon "annotate" "v3" >}} annotate\ +{{< icon "bar-chart" "v3" >}} bar-chart\ +{{< icon "bar-graph" "v3" >}} bar-graph\ +{{< icon "calendar" "v3" >}} calendar\ +{{< icon "chat" "v3" >}} chat\ +{{< icon "checkmark" "v3" >}} checkmark\ +{{< icon "clock" "v3" >}} clock\ +{{< icon "clone" "v3" >}} clone\ +{{< icon "cloud" "v3" >}} cloud\ +{{< icon "cog" "v3" >}} cog\ +{{< icon "config" "v3" >}} config\ +{{< icon "copy" "v3" >}} copy\ +{{< icon "crown" "v3" >}} crown\ +{{< icon "dashboard" "v3" >}} dashboard\ +{{< icon "dashboards" "v3" >}} dashboards\ +{{< icon "data-explorer" "v3" >}} data-explorer\ +{{< icon "delete" "v3" >}} delete\ +{{< icon "download" "v3" >}} download\ +{{< icon "duplicate" "v3" >}} duplicate\ +{{< icon "edit" "v3" >}} edit\ +{{< icon "expand" "v3" >}} expand\ +{{< icon "export" "v3" >}} export\ +{{< icon "eye" "v3" >}} eye\ +{{< icon "eye-closed" "v3" >}} eye-closed\ +{{< icon "eye-open" "v3" >}} eye-open\ +{{< icon "feedback" "v3" >}} feedback\ +{{< icon "fullscreen" "v3" >}} fullscreen\ +{{< icon "gear" "v3" >}} gear\ +{{< icon "graph" "v3" >}} graph\ +{{< icon "handle" "v3" >}} handle\ +{{< icon "hide" "v3" >}} hide\ +{{< icon "influx" "v3" >}} influx\ +{{< icon "influx-icon" "v3" >}} influx-icon\ +{{< icon "move" "v3" >}} move\ +{{< icon "move-cell" "v3" >}} move-cell\ +{{< icon "nav-admin" "v3" >}} nav-admin\ +{{< icon "nav-config" "v3" >}} nav-config\ +{{< icon "nav-configuration" "v3" >}} nav-configuration\ +{{< icon "nav-dashboards" "v3" >}} nav-dashboards\ +{{< icon "nav-data-explorer" "v3" >}} nav-data-explorer\ +{{< icon "nav-organizations" "v3" >}} nav-organizations\ +{{< icon "nav-orgs" "v3" >}} nav-orgs\ +{{< icon "nav-tasks" "v3" >}} nav-tasks\ +{{< icon "note" "v3" >}} note\ +{{< icon "notebook" "v3" >}} notebook\ +{{< icon "notebooks" "v3" >}} notebooks\ +{{< icon "org" "v3" >}} org\ +{{< icon "orgs" "v3" >}} orgs\ +{{< icon "pause" "v3" >}} pause\ +{{< icon "pencil" "v3" >}} pencil\ +{{< icon "pin" "v3" >}} pin\ +{{< icon "play" "v3" >}} play\ +{{< icon "plus" "v3" >}} plus\ +{{< icon "refresh" "v3" >}} refresh\ +{{< icon "remove" "v3" >}} remove\ +{{< icon "replay" "v3" >}} replay\ +{{< icon "save-as" "v3" >}} save-as\ +{{< icon "search" "v3" >}} search\ +{{< icon "settings" "v3" >}} settings\ +{{< icon "tasks" "v3" >}} tasks\ +{{< icon "toggle" "v3" >}} toggle\ +{{< icon "trash" "v3" >}} trash\ +{{< icon "trashcan" "v3" >}} trashcan\ +{{< icon "triangle" "v3" >}} triangle\ +{{< icon "view" "v3" >}} view\ +{{< icon "wrench" "v3" >}} wrench\ +{{< icon "x" "v3" >}} x ### Clockface v4 icons @@ -185,72 +185,72 @@ This is **bold** text. This is _italic_ text. This is _**bold and italic**_. {{< nav-icon "settings" >}} {{< nav-icon "notebooks" >}} -{{< icon "add-cell" >}} add-cell -{{< icon "add-label" >}} add-label -{{< icon "alert" >}} alert -{{< icon "annotate" >}} annotate -{{< icon "bar-chart" >}} bar-chart -{{< icon "bar-graph" >}} bar-graph -{{< icon "calendar" >}} calendar -{{< icon "chat" >}} chat -{{< icon "checkmark" >}} checkmark -{{< icon "clock" >}} clock -{{< icon "clone" >}} clone -{{< icon "cloud" >}} cloud -{{< icon "cog" >}} cog -{{< icon "config" >}} config -{{< icon "copy" >}} copy -{{< icon "crown" >}} crown -{{< icon "dashboard" >}} dashboard -{{< icon "dashboards" >}} dashboards -{{< icon "data-explorer" >}} data-explorer -{{< icon "delete" >}} delete -{{< icon "download" >}} download -{{< icon "duplicate" >}} duplicate -{{< icon "edit" >}} edit -{{< icon "expand" >}} expand -{{< icon "export" >}} export -{{< icon "eye" >}} eye -{{< icon "eye-closed" >}} eye-closed -{{< icon "eye-open" >}} eye-open -{{< icon "feedback" >}} feedback -{{< icon "fullscreen" >}} fullscreen -{{< icon "gear" >}} gear -{{< icon "graph" >}} graph -{{< icon "handle" >}} handle -{{< icon "hide" >}} hide -{{< icon "influx" >}} influx -{{< icon "influx-icon" >}} influx-icon -{{< icon "move" >}} move -{{< icon "move-cell" >}} move-cell -{{< icon "nav-admin" >}} nav-admin -{{< icon "nav-dashboards" >}} nav-dashboards -{{< icon "nav-data-explorer" >}} nav-data-explorer -{{< icon "nav-organizations" >}} nav-organizations -{{< icon "nav-orgs" >}} nav-orgs -{{< icon "nav-tasks" >}} nav-tasks -{{< icon "note" >}} note -{{< icon "notebook" >}} notebook -{{< icon "notebooks" >}} notebooks -{{< icon "org" >}} org -{{< icon "orgs" >}} orgs -{{< icon "pause" >}} pause -{{< icon "pencil" >}} pencil -{{< icon "pin" >}} pin -{{< icon "play" >}} play -{{< icon "plus" >}} plus -{{< icon "refresh" >}} refresh -{{< icon "remove" >}} remove -{{< icon "replay" >}} replay -{{< icon "save-as" >}} save-as -{{< icon "search" >}} search -{{< icon "settings" >}} settings -{{< icon "tasks" >}} tasks -{{< icon "toggle" >}} toggle -{{< icon "trash" >}} trash -{{< icon "trashcan" >}} trashcan -{{< icon "view" >}} view -{{< icon "x" >}} x +{{< icon "add-cell" >}} add-cell\ +{{< icon "add-label" >}} add-label\ +{{< icon "alert" >}} alert\ +{{< icon "annotate" >}} annotate\ +{{< icon "bar-chart" >}} bar-chart\ +{{< icon "bar-graph" >}} bar-graph\ +{{< icon "calendar" >}} calendar\ +{{< icon "chat" >}} chat\ +{{< icon "checkmark" >}} checkmark\ +{{< icon "clock" >}} clock\ +{{< icon "clone" >}} clone\ +{{< icon "cloud" >}} cloud\ +{{< icon "cog" >}} cog\ +{{< icon "config" >}} config\ +{{< icon "copy" >}} copy\ +{{< icon "crown" >}} crown\ +{{< icon "dashboard" >}} dashboard\ +{{< icon "dashboards" >}} dashboards\ +{{< icon "data-explorer" >}} data-explorer\ +{{< icon "delete" >}} delete\ +{{< icon "download" >}} download\ +{{< icon "duplicate" >}} duplicate\ +{{< icon "edit" >}} edit\ +{{< icon "expand" >}} expand\ +{{< icon "export" >}} export\ +{{< icon "eye" >}} eye\ +{{< icon "eye-closed" >}} eye-closed\ +{{< icon "eye-open" >}} eye-open\ +{{< icon "feedback" >}} feedback\ +{{< icon "fullscreen" >}} fullscreen\ +{{< icon "gear" >}} gear\ +{{< icon "graph" >}} graph\ +{{< icon "handle" >}} handle\ +{{< icon "hide" >}} hide\ +{{< icon "influx" >}} influx\ +{{< icon "influx-icon" >}} influx-icon\ +{{< icon "move" >}} move\ +{{< icon "move-cell" >}} move-cell\ +{{< icon "nav-admin" >}} nav-admin\ +{{< icon "nav-dashboards" >}} nav-dashboards\ +{{< icon "nav-data-explorer" >}} nav-data-explorer\ +{{< icon "nav-organizations" >}} nav-organizations\ +{{< icon "nav-orgs" >}} nav-orgs\ +{{< icon "nav-tasks" >}} nav-tasks\ +{{< icon "note" >}} note\ +{{< icon "notebook" >}} notebook\ +{{< icon "notebooks" >}} notebooks\ +{{< icon "org" >}} org\ +{{< icon "orgs" >}} orgs\ +{{< icon "pause" >}} pause\ +{{< icon "pencil" >}} pencil\ +{{< icon "pin" >}} pin\ +{{< icon "play" >}} play\ +{{< icon "plus" >}} plus\ +{{< icon "refresh" >}} refresh\ +{{< icon "remove" >}} remove\ +{{< icon "replay" >}} replay\ +{{< icon "save-as" >}} save-as\ +{{< icon "search" >}} search\ +{{< icon "settings" >}} settings\ +{{< icon "tasks" >}} tasks\ +{{< icon "toggle" >}} toggle\ +{{< icon "trash" >}} trash\ +{{< icon "trashcan" >}} trashcan\ +{{< icon "view" >}} view\ +{{< icon "x" >}} x ## h2 This is a header2 @@ -274,6 +274,7 @@ vel tempor odio dolor blandit justo. [InfluxQL](#) {{% /code-tabs %}} {{% code-tab-content %}} + ```js data = from(bucket: "example-bucket") |> range(start: -15m) @@ -282,13 +283,16 @@ data = from(bucket: "example-bucket") r._field == "used_percent" ) ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```sql SELECT "used_percent" FROM "telegraf"."autogen"."mem" WHERE time > now() - 15m ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} @@ -352,28 +356,31 @@ enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. ---- +*** -There is a horizontal rule above and below this line. +This line has a horizontal rule above and below. ---- +*** #### Inline Styles This is an [inline link](#). This is `inline code`. This is an [`inline code link`](#). This is an [`inline code link` with text in the link](#). -This is **bold**. This is _italic_. +This is **bold**. This is *italic*. - Unordered list line-item 1 + - Unordered list line-item 2 - Unordered list line-item 2.1 - Unordered list line-item 2.2 - - Unordered list line-item 2.3 _(this is just an li, no p tag)_ - 1. Ordered list item nested 1 - 2. Ordered list item nested 2 - 3. Ordered list item nested 3 + - Unordered list line-item 2.3 *(this is just an li, no p tag)* + 1. Ordered list item nested 1 + 2. Ordered list item nested 2 + 3. Ordered list item nested 3 + - Unordered list line-item 3 + - Unordered list line-item with multiple paragraphs. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. @@ -391,212 +398,232 @@ This is **bold**. This is _italic_. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. - -1. Ordered list line-item 1 -2. Ordered list line-item 2 - 1. Ordered list line-item 2.1 - 2. Ordered list line-item 2.2 - 3. Ordered list line-item 2.3 _(this is just an li, no p tag)_ - - Unordered list item nested 1 - - Unordered list item nested 2 - - Unordered list item nested 3 - 4. Ordered list line-item 2.4 with hard return. - - - Unordered list item nested 1 - - Unordered list item nested 2 - - Unordered list item nested 3 - - With Another paragraph. - -3. Ordered list line-item 3 -4. Ordered list line-item with multiple paragraphs. - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. - Etiam tristique nisi et tristique auctor. - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. - Etiam tristique nisi et tristique auctor. - -5. Ordered list line-item with multiple paragraphs. - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. - Etiam tristique nisi et tristique auctor. - - Lorem ipsum dolor sit amet, consectetur adipiscing elit. - Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. - Etiam tristique nisi et tristique auctor. - - ```js - // This is a code block - cpu = from(bucket:"example-bucket") - |> range(start:-30m) - |> filter(fn:(r) => r._measurement == "cpu") - |> filter(fn:(r) => r._measurement == "cpu") |> filter(fn:(r) => r._measurement == "cpu") - - avg_cpu = cpu |> window(every:5m) |> mean() - - avg_cpu - |> group(none:true) - |> yield() - // - ``` - - ###### Here's a codeblock with a title - - ```js - // This is a code block - cpu = from(bucket:"example-bucket") - |> range(start:-30m) - |> filter(fn:(r) => r._measurement == "cpu") - - avg_cpu = cpu |> window(every:5m) |> mean() - - avg_cpu - |> group(none:true) - |> yield() - // - ``` - - --- + +1. Ordered list line-item 1 + +2. Ordered list line-item 2 + 1. Ordered list line-item 2.1 + 2. Ordered list line-item 2.2 + 3. Ordered list line-item 2.3 *(this is just an li, no p tag)* + - Unordered list item nested 1 + - Unordered list item nested 2 + - Unordered list item nested 3 + +3. Ordered list line-item 2.4 with hard return. + + - Unordered list item nested 1 + - Unordered list item nested 2 + - Unordered list item nested 3 + + With Another paragraph. + +4. Ordered list line-item 3 + +5. Ordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +6. Ordered list line-item with multiple paragraphs. + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. + Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. + Etiam tristique nisi et tristique auctor. + +```js +// This is a code block +cpu = from(bucket:"example-bucket") + |> range(start:-30m) + |> filter(fn:(r) => r._measurement == "cpu") + |> filter(fn:(r) => r._measurement == "cpu") |> filter(fn:(r) => r._measurement == "cpu") + +avg_cpu = cpu |> window(every:5m) |> mean() + +avg_cpu + |> group(none:true) + |> yield() +// +``` + +###### Here's a codeblock with a title + +```js +// This is a code block +cpu = from(bucket:"example-bucket") + |> range(start:-30m) + |> filter(fn:(r) => r._measurement == "cpu") + +avg_cpu = cpu |> window(every:5m) |> mean() + +avg_cpu + |> group(none:true) + |> yield() +// +``` + +*** ## Alert blocks -> [!NOTE] +> \[!NOTE] > This is a **Note**. > Useful information that users should know, even when skimming content. -> [!TIP] +> \[!TIP] > This is a **Tip**. > Helpful advice for doing things better or more easily. -> [!IMPORTANT] +> \[!IMPORTANT] > This is an **Important**. > Key information users need to know to achieve their goal. -> [!WARNING] +> \[!WARNING] > This is a **Warning**. > Urgent info that needs immediate user attention to avoid problems. -> [!CAUTION] +> \[!CAUTION] > This is a **Caution**. > Advises about risks or negative outcomes of certain actions. - --- +*** -> [!Note] +> \[!Note] > This is a basic note. -> [!Note] +> \[!Note] +> > ## h2 This is a header2 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ### h3 This is a header3 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ![Test image](/img/chronograf/1-6-alerts-conditions.png) -> +> > {{< img-hd src="/img/influxdb/2-0-controls-time-range.png" alt="Test Image" />}} -> +> > #### h4 This is a header4 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ##### h5 This is a header5 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ###### h6 This is a header6 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. -> +> > #### Inline Styles +> > This is an [inline link](#). This is `inline code`. > This is an [`inline code link`](#) . -> This is **bold**. This is _italic_. -> +> This is **bold**. This is *italic*. +> > - Unordered list line-item 1 +> > - Unordered list line-item 2 > - Unordered list line-item 2.1 > - Unordered list line-item 2.2 > - Unordered list line-item 2.3 +> > - Unordered list line-item 3 -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 1. Unordered list line-item 1 -> 2. Unordered list line-item 2 -> 1. Unordered list line-item 2.1 -> 2. Unordered list line-item 2.2 -> 3. Unordered list line-item 2.3 -> 3. Unordered list line-item 3 -> 4. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 5. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 1. Unordered list line-item 1 +> +> 2. Unordered list line-item 2 +> 1. Unordered list line-item 2.1 +> 2. Unordered list line-item 2.2 +> 3. Unordered list line-item 2.3 +> +> 3. Unordered list line-item 3 +> +> 4. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 5. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> > {{< code-tabs-wrapper >}} -{{% code-tabs %}} -[tab1](#) -[tab2](#) -{{% /code-tabs %}} -{{% code-tab-content %}} +> {{% code-tabs %}} +> [tab1](#) +> [tab2](#) +> {{% /code-tabs %}} +> {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"example-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu" and r._field == "someReallyLongFieldName") ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"my-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu") ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -> + > ###### This is a table > > | Column 1 | Column 2 | Column 3 | Column 4 | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | +> | -------- | --------- | -------- | -------- | -------- | --------- | -------- | -------- | > | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | > | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | > | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | @@ -604,128 +631,145 @@ cpu = from(bucket:"my-bucket") > > ###### This is a table with lots of stuff > -> | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | +> | Column 1 | Column 2 | Column 3 | Column 4 | +> | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | > | Row 1.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 2.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 3.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 4.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | ---- +*** -> [!Tip] +> \[!Tip] > This is a basic tip. -> [!Tip] +> \[!Tip] +> > ## h2 This is a header2 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ### h3 This is a header3 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ![Test image](/img/chronograf/1-6-alerts-conditions.png) -> +> > {{< img-hd src="/img/influxdb/2-0-controls-time-range.png" alt="Test Image" />}} -> +> > #### h4 This is a header4 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ##### h5 This is a header5 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ###### h6 This is a header6 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. -> +> > #### Inline Styles +> > This is an [inline link](#). This is `inline code`. > This is an [`inline code link`](#) . -> This is **bold**. This is _italic_. -> +> This is **bold**. This is *italic*. +> > - Unordered list line-item 1 +> > - Unordered list line-item 2 > - Unordered list line-item 2.1 > - Unordered list line-item 2.2 > - Unordered list line-item 2.3 +> > - Unordered list line-item 3 -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 1. Unordered list line-item 1 -> 2. Unordered list line-item 2 -> 1. Unordered list line-item 2.1 -> 2. Unordered list line-item 2.2 -> 3. Unordered list line-item 2.3 -> 3. Unordered list line-item 3 -> 4. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 5. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 1. Unordered list line-item 1 +> +> 2. Unordered list line-item 2 +> 1. Unordered list line-item 2.1 +> 2. Unordered list line-item 2.2 +> 3. Unordered list line-item 2.3 +> +> 3. Unordered list line-item 3 +> +> 4. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 5. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> > {{< code-tabs-wrapper >}} -{{% code-tabs %}} -[tab1](#) -[tab2](#) -{{% /code-tabs %}} -{{% code-tab-content %}} +> {{% code-tabs %}} +> [tab1](#) +> [tab2](#) +> {{% /code-tabs %}} +> {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"example-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu" and r._field == "someReallyLongFieldName") ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"my-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu") ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -> + > ###### This is a table > > | Column 1 | Column 2 | Column 3 | Column 4 | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | +> | -------- | --------- | -------- | -------- | -------- | --------- | -------- | -------- | > | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | > | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | > | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | @@ -733,128 +777,145 @@ cpu = from(bucket:"my-bucket") > > ###### This is a table with lots of stuff > -> | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | +> | Column 1 | Column 2 | Column 3 | Column 4 | +> | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | > | Row 1.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 2.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 3.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 4.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | ---- +*** -> [!Important] +> \[!Important] > This is a basic important block. -> [!Important] +> \[!Important] +> > ## h2 This is a header2 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ### h3 This is a header3 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ![Test image](/img/chronograf/1-6-alerts-conditions.png) -> +> > {{< img-hd src="/img/influxdb/2-0-controls-time-range.png" alt="Test Image" />}} -> +> > #### h4 This is a header4 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ##### h5 This is a header5 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ###### h6 This is a header6 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. -> +> > #### Inline Styles +> > This is an [inline link](#). This is `inline code`. > This is an [`inline code link`](#) . -> This is **bold**. This is _italic_. -> +> This is **bold**. This is *italic*. +> > - Unordered list line-item 1 +> > - Unordered list line-item 2 > - Unordered list line-item 2.1 > - Unordered list line-item 2.2 > - Unordered list line-item 2.3 +> > - Unordered list line-item 3 -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 1. Unordered list line-item 1 -> 2. Unordered list line-item 2 -> 1. Unordered list line-item 2.1 -> 2. Unordered list line-item 2.2 -> 3. Unordered list line-item 2.3 -> 3. Unordered list line-item 3 -> 4. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 5. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 1. Unordered list line-item 1 +> +> 2. Unordered list line-item 2 +> 1. Unordered list line-item 2.1 +> 2. Unordered list line-item 2.2 +> 3. Unordered list line-item 2.3 +> +> 3. Unordered list line-item 3 +> +> 4. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 5. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> > {{< code-tabs-wrapper >}} -{{% code-tabs %}} -[tab1](#) -[tab2](#) -{{% /code-tabs %}} -{{% code-tab-content %}} +> {{% code-tabs %}} +> [tab1](#) +> [tab2](#) +> {{% /code-tabs %}} +> {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"example-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu" and r._field == "someReallyLongFieldName") ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"my-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu") ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -> + > ###### This is a table > > | Column 1 | Column 2 | Column 3 | Column 4 | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | +> | -------- | --------- | -------- | -------- | -------- | --------- | -------- | -------- | > | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | > | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | > | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | @@ -862,130 +923,145 @@ cpu = from(bucket:"my-bucket") > > ###### This is a table with lots of stuff > -> | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | +> | Column 1 | Column 2 | Column 3 | Column 4 | +> | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | > | Row 1.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 2.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 3.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 4.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | +*** - ---- - -> [!Warning] +> \[!Warning] > This is a basic warning. -> [!Warning] +> \[!Warning] +> > ## h2 This is a header2 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ### h3 This is a header3 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ![Test image](/img/chronograf/1-6-alerts-conditions.png) -> +> > {{< img-hd src="/img/influxdb/2-0-controls-time-range.png" alt="Test Image" />}} -> +> > #### h4 This is a header4 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ##### h5 This is a header5 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ###### h6 This is a header6 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. -> +> > #### Inline Styles +> > This is an [inline link](#). This is `inline code`. > This is an [`inline code link`](#) . -> This is **bold**. This is _italic_. -> +> This is **bold**. This is *italic*. +> > - Unordered list line-item 1 +> > - Unordered list line-item 2 > - Unordered list line-item 2.1 > - Unordered list line-item 2.2 > - Unordered list line-item 2.3 +> > - Unordered list line-item 3 -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 1. Unordered list line-item 1 -> 2. Unordered list line-item 2 -> 1. Unordered list line-item 2.1 -> 2. Unordered list line-item 2.2 -> 3. Unordered list line-item 2.3 -> 3. Unordered list line-item 3 -> 4. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 5. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 1. Unordered list line-item 1 +> +> 2. Unordered list line-item 2 +> 1. Unordered list line-item 2.1 +> 2. Unordered list line-item 2.2 +> 3. Unordered list line-item 2.3 +> +> 3. Unordered list line-item 3 +> +> 4. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 5. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> > {{< code-tabs-wrapper >}} -{{% code-tabs %}} -[tab1](#) -[tab2](#) -{{% /code-tabs %}} -{{% code-tab-content %}} +> {{% code-tabs %}} +> [tab1](#) +> [tab2](#) +> {{% /code-tabs %}} +> {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"example-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu" and r._field == "someReallyLongFieldName") ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"my-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu") ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -> + > ###### This is a table > > | Column 1 | Column 2 | Column 3 | Column 4 | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | +> | -------- | --------- | -------- | -------- | -------- | --------- | -------- | -------- | > | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | > | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | > | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | @@ -993,128 +1069,145 @@ cpu = from(bucket:"my-bucket") > > ###### This is a table with lots of stuff > -> | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | +> | Column 1 | Column 2 | Column 3 | Column 4 | +> | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | > | Row 1.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 2.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 3.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 4.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 4.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | ---- +*** -> [!Caution] +> \[!Caution] > This is a basic caution. -> [!Caution] +> \[!Caution] +> > ## h2 This is a header2 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ### h3 This is a header3 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ![Test image](/img/chronograf/1-6-alerts-conditions.png) -> +> > {{< img-hd src="/img/influxdb/2-0-controls-time-range.png" alt="Test Image" />}} -> +> > #### h4 This is a header4 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ##### h5 This is a header5 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > ###### h6 This is a header6 +> > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > Etiam tristique nisi et tristique auctor. -> +> > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. > > Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. > > Etiam tristique nisi et tristique auctor. -> +> > #### Inline Styles +> > This is an [inline link](#). This is `inline code`. > This is an [`inline code link`](#) . -> This is **bold**. This is _italic_. -> +> This is **bold**. This is *italic*. +> > - Unordered list line-item 1 +> > - Unordered list line-item 2 > - Unordered list line-item 2.1 > - Unordered list line-item 2.2 > - Unordered list line-item 2.3 +> > - Unordered list line-item 3 -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> - Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 1. Unordered list line-item 1 -> 2. Unordered list line-item 2 -> 1. Unordered list line-item 2.1 -> 2. Unordered list line-item 2.2 -> 3. Unordered list line-item 2.3 -> 3. Unordered list line-item 3 -> 4. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> 5. Unordered list line-item with multiple paragraphs. -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> -> Lorem ipsum dolor sit amet, consectetur adipiscing elit. -> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. -> Etiam tristique nisi et tristique auctor. -> +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> - Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 1. Unordered list line-item 1 +> +> 2. Unordered list line-item 2 +> 1. Unordered list line-item 2.1 +> 2. Unordered list line-item 2.2 +> 3. Unordered list line-item 2.3 +> +> 3. Unordered list line-item 3 +> +> 4. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> 5. Unordered list line-item with multiple paragraphs. +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> +> Lorem ipsum dolor sit amet, consectetur adipiscing elit. +> Nunc rutrum, metus id scelerisque euismod, erat ante, ac congue enim risus id est. +> Etiam tristique nisi et tristique auctor. +> > {{< code-tabs-wrapper >}} -{{% code-tabs %}} -[tab1](#) -[tab2](#) -{{% /code-tabs %}} -{{% code-tab-content %}} +> {{% code-tabs %}} +> [tab1](#) +> [tab2](#) +> {{% /code-tabs %}} +> {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"example-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu" and r._field == "someReallyLongFieldName") ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```js // This is a code block inside of a blockquote cpu = from(bucket:"my-bucket") |> range(start:-30m) |> filter(fn:(r) => r._measurement == "cpu") ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} -> + > ###### This is a table > > | Column 1 | Column 2 | Column 3 | Column 4 | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | +> | -------- | --------- | -------- | -------- | -------- | --------- | -------- | -------- | > | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | Row 1.1 | `Row 1.2` | Row 1.3 | Row 1.4 | > | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | Row 2.1 | `Row 2.2` | Row 2.3 | Row 2.4 | > | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | Row 3.1 | `Row 3.2` | Row 3.3 | Row 3.4 | @@ -1122,8 +1215,8 @@ cpu = from(bucket:"my-bucket") > > ###### This is a table with lots of stuff > -> | Column 1 | Column 2 | Column 3 | Column 4 | -> | -------- | -------- | -------- | -------- | +> | Column 1 | Column 2 | Column 3 | Column 4 | +> | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | > | Row 1.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 1.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 2.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 2.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | > | Row 3.1Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.2Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.3Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Row 3.4Lorem ipsum dolor sit amet, consectetur adipiscing elit. | @@ -1141,6 +1234,7 @@ cpu = from(bucket:"my-bucket") This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. ## h2 This is a header2 + This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc rutrum, metus id scelerisque euismod, erat ante suscipit nibh, ac congue enim risus id est. Etiam tristique nisi et tristique auctor. Morbi eu bibendum erat. Sed ullamcorper, dui id lobortis efficitur, mauris odio pharetra neque, vel tempor odio dolor blandit justo. @@ -1152,6 +1246,7 @@ This is a paragraph. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nu {{% /code-tabs %}} {{% code-tab-content %}} + ```js data = from(bucket: "example-bucket") |> range(start: -15m) @@ -1160,13 +1255,16 @@ data = from(bucket: "example-bucket") r._field == "used_percent" ) ``` + {{% /code-tab-content %}} {{% code-tab-content %}} + ```sql SELECT "used_percent" FROM "telegraf"."autogen"."mem" WHERE time > now() - 15m ``` + {{% /code-tab-content %}} {{< /code-tabs-wrapper >}} @@ -1213,33 +1311,33 @@ This is tab 2.4 content. {{< /tabs-wrapper >}} {{% truncate %}} -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. -This is truncated content. +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ +This is truncated content.\ {{% /truncate %}} {{< tabs-wrapper >}} @@ -1275,47 +1373,46 @@ Used to demonstrate Flux group keys {{< tabs-wrapper >}} {{% tabs "small" %}} [Input](#) -[Output](#) -Click to view output +[Output](#) Click to view output {{% /tabs %}} {{% tab-content %}} The following data is output from the last `filter()` and piped forward into `group()`: -> [!Note] +> \[!Note] > `_start` and `_stop` columns have been omitted. -{{% flux/group-key "[_measurement=home, room=Kitchen, _field=hum]" true %}} +{{% flux/group-key "\[\_measurement=home, room=Kitchen, \_field=hum]" true %}} -| _time | _measurement | room | _field | _value | -| :------------------- | :----------- | :---------- | :----- | :----- | -| 2022-01-01T08:00:00Z | home | Kitchen | hum | 35.9 | -| 2022-01-01T09:00:00Z | home | Kitchen | hum | 36.2 | -| 2022-01-01T10:00:00Z | home | Kitchen | hum | 36.1 | +| \_time | \_measurement | room | \_field | \_value | +| :------------------- | :------------ | :------ | :------ | :------ | +| 2022-01-01T08:00:00Z | home | Kitchen | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Kitchen | hum | 36.2 | +| 2022-01-01T10:00:00Z | home | Kitchen | hum | 36.1 | -{{% flux/group-key "[_measurement=home, room=Living Room, _field=hum]" true %}} +{{% flux/group-key "\[\_measurement=home, room=Living Room, \_field=hum]" true %}} -| _time | _measurement | room | _field | _value | -| :------------------- | :----------- | :---------- | :----- | :----- | -| 2022-01-01T08:00:00Z | home | Living Room | hum | 35.9 | -| 2022-01-01T09:00:00Z | home | Living Room | hum | 35.9 | -| 2022-01-01T10:00:00Z | home | Living Room | hum | 36 | +| \_time | \_measurement | room | \_field | \_value | +| :------------------- | :------------ | :---------- | :------ | :------ | +| 2022-01-01T08:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T10:00:00Z | home | Living Room | hum | 36 | -{{% flux/group-key "[_measurement=home, room=Kitchen, _field=temp]" true %}} +{{% flux/group-key "\[\_measurement=home, room=Kitchen, \_field=temp]" true %}} -| _time | _measurement | room | _field | _value | -| :------------------- | :----------- | :---------- | :----- | :----- | -| 2022-01-01T08:00:00Z | home | Kitchen | temp | 21 | -| 2022-01-01T09:00:00Z | home | Kitchen | temp | 23 | -| 2022-01-01T10:00:00Z | home | Kitchen | temp | 22.7 | +| \_time | \_measurement | room | \_field | \_value | +| :------------------- | :------------ | :------ | :------ | :------ | +| 2022-01-01T08:00:00Z | home | Kitchen | temp | 21 | +| 2022-01-01T09:00:00Z | home | Kitchen | temp | 23 | +| 2022-01-01T10:00:00Z | home | Kitchen | temp | 22.7 | -{{% flux/group-key "[_measurement=home, room=Living Room, _field=temp]" true %}} +{{% flux/group-key "\[\_measurement=home, room=Living Room, \_field=temp]" true %}} -| _time | _measurement | room | _field | _value | -| :------------------- | :----------- | :---------- | :----- | :----- | -| 2022-01-01T08:00:00Z | home | Living Room | temp | 21.1 | -| 2022-01-01T09:00:00Z | home | Living Room | temp | 21.4 | -| 2022-01-01T10:00:00Z | home | Living Room | temp | 21.8 | +| \_time | \_measurement | room | \_field | \_value | +| :------------------- | :------------ | :---------- | :------ | :------ | +| 2022-01-01T08:00:00Z | home | Living Room | temp | 21.1 | +| 2022-01-01T09:00:00Z | home | Living Room | temp | 21.4 | +| 2022-01-01T10:00:00Z | home | Living Room | temp | 21.8 | {{% /tab-content %}} {{% tab-content %}} @@ -1328,34 +1425,34 @@ and all the rows with the `hum` field will be in another. `_start` and `_stop` columns have been omitted. {{% /note %}} -{{% flux/group-key "[_field=hum]" true %}} +{{% flux/group-key "\[\_field=hum]" true %}} -| _time | _measurement | room | _field | _value | -| :------------------- | :----------- | :---------- | :----- | :----- | -| 2022-01-01T08:00:00Z | home | Kitchen | hum | 35.9 | -| 2022-01-01T09:00:00Z | home | Kitchen | hum | 36.2 | -| 2022-01-01T10:00:00Z | home | Kitchen | hum | 36.1 | -| 2022-01-01T08:00:00Z | home | Living Room | hum | 35.9 | -| 2022-01-01T09:00:00Z | home | Living Room | hum | 35.9 | -| 2022-01-01T10:00:00Z | home | Living Room | hum | 36 | +| \_time | \_measurement | room | \_field | \_value | +| :------------------- | :------------ | :---------- | :------ | :------ | +| 2022-01-01T08:00:00Z | home | Kitchen | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Kitchen | hum | 36.2 | +| 2022-01-01T10:00:00Z | home | Kitchen | hum | 36.1 | +| 2022-01-01T08:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T09:00:00Z | home | Living Room | hum | 35.9 | +| 2022-01-01T10:00:00Z | home | Living Room | hum | 36 | -{{% flux/group-key "[_field=temp]" true %}} +{{% flux/group-key "\[\_field=temp]" true %}} -| _time | _measurement | room | _field | _value | -| :------------------- | :----------- | :---------- | :----- | :----- | -| 2022-01-01T08:00:00Z | home | Kitchen | temp | 21 | -| 2022-01-01T09:00:00Z | home | Kitchen | temp | 23 | -| 2022-01-01T10:00:00Z | home | Kitchen | temp | 22.7 | -| 2022-01-01T08:00:00Z | home | Living Room | temp | 21.1 | -| 2022-01-01T09:00:00Z | home | Living Room | temp | 21.4 | -| 2022-01-01T10:00:00Z | home | Living Room | temp | 21.8 | +| \_time | \_measurement | room | \_field | \_value | +| :------------------- | :------------ | :---------- | :------ | :------ | +| 2022-01-01T08:00:00Z | home | Kitchen | temp | 21 | +| 2022-01-01T09:00:00Z | home | Kitchen | temp | 23 | +| 2022-01-01T10:00:00Z | home | Kitchen | temp | 22.7 | +| 2022-01-01T08:00:00Z | home | Living Room | temp | 21.1 | +| 2022-01-01T09:00:00Z | home | Living Room | temp | 21.4 | +| 2022-01-01T10:00:00Z | home | Living Room | temp | 21.8 | {{% /tab-content %}} {{< /tabs-wrapper >}} ## datetime/current-timestamp shortcode -### Default usage +### Default usage {{< datetime/current-timestamp >}} @@ -1367,6 +1464,10 @@ and all the rows with the `hum` field will be in another. {{< datetime/current-timestamp format="YYYY-MM-DD HH:mm:ss" timezone="UTC" >}} -### Format with America/New_York timezone +### Format with America/New\_York timezone + +{{< datetime/current-timestamp format="YYYY-MM-DD HH:mm:ss" timezone="America/New\_York" >}} + +## Ask AI Link -{{< datetime/current-timestamp format="YYYY-MM-DD HH:mm:ss" timezone="America/New_York" >}} +Can't access your InfluxDB instance? {{< ask-ai-link link-text="Ask InfluxData AI" query="What's my InfluxDB version?" >}} for help. diff --git a/content/influxdb/cloud/admin/identify-version.md b/content/influxdb/cloud/admin/identify-version.md new file mode 100644 index 0000000000..b79ba94131 --- /dev/null +++ b/content/influxdb/cloud/admin/identify-version.md @@ -0,0 +1,22 @@ +--- +title: Identify InfluxDB Cloud (TSM) version +description: Learn how to identify your InfluxDB Cloud (TSM) instance through URL patterns, account settings, and HTTP headers. +menu: + influxdb_cloud: + name: Identify version + parent: Administer InfluxDB Cloud +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb/cloud/get-started/ + - /influxdb/cloud/admin/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + v2: /influxdb/v2/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb/v1/administration/identify-version.md b/content/influxdb/v1/administration/identify-version.md new file mode 100644 index 0000000000..67bd3981ff --- /dev/null +++ b/content/influxdb/v1/administration/identify-version.md @@ -0,0 +1,21 @@ +--- +title: Identify InfluxDB OSS v1 version +description: Learn how to identify your InfluxDB OSS v1 version using command-line tools, HTTP endpoints, and other methods. +menu: + influxdb_v1: + name: Identify version + parent: Administration +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb/v1/introduction/installation/ +alt_links: + v2: /influxdb/v2/admin/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb/v2/admin/identify-version.md b/content/influxdb/v2/admin/identify-version.md new file mode 100644 index 0000000000..e3ee0392a9 --- /dev/null +++ b/content/influxdb/v2/admin/identify-version.md @@ -0,0 +1,23 @@ +--- +title: Identify InfluxDB OSS v2 version +description: Learn how to identify your InfluxDB OSS v2 version using command-line tools, the UI, and HTTP endpoints. +menu: + influxdb_v2: + name: Identify version + parent: Administer InfluxDB +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb/v2/get-started/ + - /influxdb/v2/reference/faq/#administration-1 + - /influxdb/v2/reference/cli/influxd/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb3/cloud-dedicated/admin/identify-version.md b/content/influxdb3/cloud-dedicated/admin/identify-version.md new file mode 100644 index 0000000000..7be69f14be --- /dev/null +++ b/content/influxdb3/cloud-dedicated/admin/identify-version.md @@ -0,0 +1,22 @@ +--- +title: Identify InfluxDB Cloud Dedicated version +description: Learn how to identify your InfluxDB Cloud Dedicated cluster through URL patterns, account settings, and HTTP headers. +menu: + influxdb3_cloud_dedicated: + name: Identify version + parent: Administer InfluxDB +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb3/cloud-dedicated/get-started/ + - /influxdb3/cloud-dedicated/admin/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + v2: /influxdb/v2/admin/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb3/cloud-serverless/admin/identify-version.md b/content/influxdb3/cloud-serverless/admin/identify-version.md new file mode 100644 index 0000000000..2c7e6c562d --- /dev/null +++ b/content/influxdb3/cloud-serverless/admin/identify-version.md @@ -0,0 +1,22 @@ +--- +title: Identify InfluxDB Cloud Serverless version +description: Learn how to identify your InfluxDB Cloud Serverless instance through URL patterns, account settings, and HTTP headers. +menu: + influxdb3_cloud_serverless: + name: Identify version + parent: Administer InfluxDB +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb3/cloud-serverless/get-started/ + - /influxdb3/cloud-serverless/admin/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + v2: /influxdb/v2/admin/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb3/clustered/admin/identify-version.md b/content/influxdb3/clustered/admin/identify-version.md new file mode 100644 index 0000000000..85df36448b --- /dev/null +++ b/content/influxdb3/clustered/admin/identify-version.md @@ -0,0 +1,23 @@ +--- +title: Identify InfluxDB Clustered version +description: Learn how to identify your InfluxDB Clustered version using influxctl CLI and other methods. +menu: + influxdb3_clustered: + name: Identify version + parent: Administer InfluxDB Clustered +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb3/clustered/get-started/ + - /influxdb3/clustered/admin/ + - /influxdb3/clustered/reference/cli/influxctl/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + v2: /influxdb/v2/admin/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb3/core/admin/identify-version.md b/content/influxdb3/core/admin/identify-version.md new file mode 100644 index 0000000000..4849192311 --- /dev/null +++ b/content/influxdb3/core/admin/identify-version.md @@ -0,0 +1,23 @@ +--- +title: Identify InfluxDB 3 Core version +description: Learn how to identify your InfluxDB 3 Core version using command-line tools, HTTP endpoints, and other methods. +menu: + influxdb3_core: + name: Identify version + parent: Administer InfluxDB +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb3/core/get-started/ + - /influxdb3/core/admin/ + - /influxdb3/core/reference/cli/influxdb3/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + v2: /influxdb/v2/admin/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + enterprise: /influxdb3/enterprise/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb3/enterprise/_index.md b/content/influxdb3/enterprise/_index.md index bcf4549282..a270bdb796 100644 --- a/content/influxdb3/enterprise/_index.md +++ b/content/influxdb3/enterprise/_index.md @@ -2,7 +2,7 @@ title: InfluxDB 3 Enterprise documentation description: > InfluxDB 3 Enterprise is a time series database built on InfluxDB 3 Core open source. - It is designed to handle high write and query loads using a diskless architechture + It is designed to handle high write and query loads using a diskless architecture that scales horizontally. Learn how to use and leverage InfluxDB in use cases such as monitoring metrics, IoT data, and events. menu: diff --git a/content/influxdb3/enterprise/admin/identify-version.md b/content/influxdb3/enterprise/admin/identify-version.md new file mode 100644 index 0000000000..e3535dd9bd --- /dev/null +++ b/content/influxdb3/enterprise/admin/identify-version.md @@ -0,0 +1,23 @@ +--- +title: Identify InfluxDB 3 Enterprise version +description: Learn how to identify your InfluxDB 3 Enterprise version using command-line tools, HTTP endpoints, and other methods. +menu: + influxdb3_enterprise: + name: Identify version + parent: Administer InfluxDB +weight: 10 +source: /shared/identify-version.md +related: + - /influxdb3/enterprise/get-started/ + - /influxdb3/enterprise/admin/ + - /influxdb3/enterprise/reference/cli/influxdb3/ +alt_links: + v1: /influxdb/v1/administration/identify-version/ + v2: /influxdb/v2/admin/identify-version/ + cloud: /influxdb/cloud/admin/identify-version/ + cloud-serverless: /influxdb3/cloud-serverless/admin/identify-version/ + cloud-dedicated: /influxdb3/cloud-dedicated/admin/identify-version/ + clustered: /influxdb3/clustered/admin/identify-version/ + core: /influxdb3/core/admin/identify-version/ + enterprise_influxdb_v1: /enterprise_influxdb/v1/administration/identify-version/ +--- diff --git a/content/influxdb3/enterprise/get-started/_index.md b/content/influxdb3/enterprise/get-started/_index.md index f140950834..a8109dcded 100644 --- a/content/influxdb3/enterprise/get-started/_index.md +++ b/content/influxdb3/enterprise/get-started/_index.md @@ -2,7 +2,7 @@ title: Get started with InfluxDB 3 Enterprise description: > InfluxDB 3 Enterprise is a time series database built on InfluxDB 3 Core open source. - It is designed to handle high write and query loads using a diskless architechture + It is designed to handle high write and query loads using a diskless architecture that scales horizontally. Learn how to use and leverage InfluxDB in use cases such as monitoring metrics, IoT data, and events. menu: diff --git a/content/platform/_index.md b/content/platform/_index.md index 4d988f8067..75d143b2e8 100644 --- a/content/platform/_index.md +++ b/content/platform/_index.md @@ -21,6 +21,21 @@ weight: 1 **InfluxData platform** is the leading modern [time series](/platform/faq/#what-is-time-series-data) platform, built for metrics and events. +> \[!Note] +> +> #### What's my InfluxDB version? +> +> With multiple InfluxDB deployment options available, identifying which one you're using is important for accessing the correct documentation and features. +> +> **[Identify your InfluxDB version](/platform/identify-version/)** using: +> +> - Interactive version detector +> - URL pattern recognition +> - Command-line tools +> - HTTP API headers +> +> Or browse the product lineup below to find yours. + ## InfluxDB 3 **InfluxDB 3** is InfluxDB’s next generation that unlocks series limitations present in the Time Structured Merge Tree (TSM) storage engine and allows infinite series cardinality without any impact on overall database performance. It also brings with it native SQL support and improved InfluxQL performance. @@ -46,7 +61,8 @@ weight: 1 ## InfluxDB 2 -> [!Note] +> \[!Note] +> > #### New InfluxDB Cloud signups use InfluxDB 3 > > New InfluxDB Cloud signups are for [InfluxDB Cloud Serverless, powered by the InfluxDB 3 storage engine](/influxdb3/cloud-serverless/). @@ -55,11 +71,12 @@ weight: 1 The **InfluxDB 2 platform** consolidates InfluxDB, Chronograf, and Kapacitor from the **InfluxData 1.x platform** into a single packaged solution, with added features and flexibility: - - [InfluxDB OSS 2.x](/influxdb/v2/get-started/): open source platform solution in a single binary - - [InfluxDB Cloud](/influxdb/cloud/get-started/) (**commercial offering**): hosted cloud solution - - [Telegraf](#telegraf): collect data +- [InfluxDB OSS 2.x](/influxdb/v2/get-started/): open source platform solution in a single binary +- [InfluxDB Cloud](/influxdb/cloud/get-started/) (**commercial offering**): hosted cloud solution +- [Telegraf](#telegraf): collect data -> [!Note] +> \[!Note] +> > #### Integrate InfluxDB 2.0 applications with InfluxDB Enterprise 1.8+ > > Use [InfluxDB 2.0 API compatibility endpoints](/enterprise_influxdb/v1/tools/api/#influxdb-20-api-compatibility-endpoints) to integrate applications built on InfluxDB 2.0 or InfluxDB Cloud with InfluxDB Enterprise 1.8+: @@ -71,16 +88,16 @@ The **InfluxDB 2 platform** consolidates InfluxDB, Chronograf, and Kapacitor fro The **InfluxData 1.x platform** includes the following open source components ([TICK stack](#influxdata-1-x-tick-stack)): - - [Telegraf](#telegraf): collect data - - [InfluxDB](#influxdb): store data - - [Chronograf](#chronograf): visualize data - - [Kapacitor](#kapacitor): process data and alerts +- [Telegraf](#telegraf): collect data +- [InfluxDB](#influxdb): store data +- [Chronograf](#chronograf): visualize data +- [Kapacitor](#kapacitor): process data and alerts **InfluxData 1.x** also includes the following **commercial offerings**: - - [InfluxDB Enterprise](#influxdb-enterprise) - - [Kapacitor Enterprise](#kapacitor-enterprise) - - [InfluxCloud 1.x](https://help.influxcloud.net) (hosted cloud solution) +- [InfluxDB Enterprise](#influxdb-enterprise) +- [Kapacitor Enterprise](#kapacitor-enterprise) +- [InfluxCloud 1.x](https://help.influxcloud.net) (hosted cloud solution) ## InfluxData 1.x TICK stack @@ -116,7 +133,7 @@ based on user-defined logic, and running ETL jobs. InfluxDB Enterprise and Kapacitor Enterprise provide clustering, access control, and incremental backup functionality for production infrastructures at scale. You'll also receive direct support from the InfluxData support team. -> [!Note] +> \[!Note] > InfluxDB Enterprise and Kapacitor Enterprise are compatible with open source versions of Telegraf and Chronograf. ### InfluxDB Enterprise diff --git a/content/platform/identify-version.md b/content/platform/identify-version.md new file mode 100644 index 0000000000..fd1074697b --- /dev/null +++ b/content/platform/identify-version.md @@ -0,0 +1,10 @@ +--- +title: Identify your InfluxDB version +description: > + Learn how to identify which InfluxDB product and version you're using. +menu: + platform: + name: Identify version +weight: 102 +source: /shared/identify-version.md +--- diff --git a/content/shared/identify-version.md b/content/shared/identify-version.md new file mode 100644 index 0000000000..2a76b35ff0 --- /dev/null +++ b/content/shared/identify-version.md @@ -0,0 +1,432 @@ +Identifying which InfluxDB product and version you're using is essential for accessing the correct documentation, troubleshooting issues, and planning upgrades. + +> \[!Note] +> {{< influxdb-version-detector >}} + +## Quick detection methods + +{{% hide-in "core,enterprise,cloud-serverless,cloud-dedicated,clustered,v2,cloud,v1" %}} + +### By URL pattern + +If you access InfluxDB via a URL, the hostname often indicates which product you're using: + +| URL Pattern | Product | +| ------------------------------------------ | ------------------------- | +| `*.influxdb.io` | InfluxDB Cloud Dedicated | +| `us-east-1-1.aws.cloud2.influxdata.com` | InfluxDB Cloud Serverless | +| `eu-central-1-1.aws.cloud2.influxdata.com` | InfluxDB Cloud Serverless | +| `*.influxcloud.net` | InfluxDB Cloud 1 (legacy) | +| Other `*.cloud2.influxdata.com` regions | InfluxDB Cloud (TSM) | + +### By default port + +Different InfluxDB products use different default ports: + +- **Port 8181**: InfluxDB 3 (Core or Enterprise) +- **Port 8086**: InfluxDB v1 or v2 + +### By HTTP headers + +Check the `/ping` endpoint to examine HTTP response headers: + +```bash +curl -i http://localhost:8086/ping +``` + +The response headers reveal your InfluxDB product: + +| Headers | Product | +| ------------------------------------------------------------- | ---------------------- | +| `x-influxdb-version: ^3.*`
`x-influxdb-build: Core` | InfluxDB 3 Core | +| `x-influxdb-version: ^3.*`
`x-influxdb-build: Enterprise` | InfluxDB 3 Enterprise | +| `x-influxdb-version: ^2.*`
`x-influxdb-build: OSS` | InfluxDB OSS v2 | +| `x-influxdb-version: ^1.*`
`x-influxdb-build: OSS` | InfluxDB OSS v1 | +| `x-influxdb-build: Enterprise`
(with v1 version) | InfluxDB Enterprise v1 | + +{{% /hide-in %}} + +{{% show-in "core" %}} + +### InfluxDB 3 Core detection + +Check the version using the `influxdb3` command: + +```bash +influxdb3 --version +``` + +Query the `/health` endpoint: + +```bash +curl http://localhost:8181/health +``` + +Check the `/ping` endpoint headers: + +```bash +curl -i http://localhost:8181/ping +``` + +Look for: + +- `x-influxdb-version`: Version number (for example, `3.6.0`) +- `x-influxdb-build`: `Core` + +{{% /show-in %}} + +{{% show-in "enterprise" %}} + +### InfluxDB 3 Enterprise detection + +Check the version using the `influxdb3` command: + +```bash +influxdb3 --version +``` + +Query the `/health` endpoint: + +```bash +curl http://localhost:8181/health +``` + +Check the `/ping` endpoint headers: + +```bash +curl -i http://localhost:8181/ping +``` + +Look for: + +- `x-influxdb-version`: Version number (for example, `3.6.0`) +- `x-influxdb-build`: `Enterprise` + +{{% /show-in %}} + +{{% show-in "clustered" %}} + +### InfluxDB Clustered detection + +Use the `influxctl` CLI to check your cluster version: + +```bash +influxctl version +``` + +To view cluster information: + +```bash +influxctl cluster list +``` + +{{% /show-in %}} + +{{% show-in "cloud-serverless" %}} + +### InfluxDB Cloud Serverless detection + +**InfluxDB Cloud Serverless** can be identified by: + +**URL patterns**: + +- `us-east-1-1.aws.cloud2.influxdata.com` +- `eu-central-1-1.aws.cloud2.influxdata.com` + +**Account settings**: Check your InfluxDB Cloud account dashboard for product and version details. + +**HTTP headers**: API responses include version information in response headers. + +{{% /show-in %}} + +{{% show-in "cloud-dedicated" %}} + +### InfluxDB Cloud Dedicated detection + +**InfluxDB Cloud Dedicated** can be identified by: + +**URL pattern**: `*.influxdb.io` + +- Example: `cluster-id.a.influxdb.io` + +**Account settings**: Check your InfluxDB Cloud Dedicated account dashboard for cluster and version details. + +**HTTP headers**: API responses include version information in response headers. + +{{% /show-in %}} + +{{% show-in "v2" %}} + +### InfluxDB OSS v2 detection + +Check the version using `influxd`: + +```bash +influxd version +``` + +Query the `/health` endpoint and extract the version: + +```bash +curl -s http://localhost:8086/health | jq -r '.version' +``` + +The InfluxDB UI displays the version: + +- On the login page +- In the right column of the main landing page +- In the user menu dropdown + +For more details, see [How can I identify my InfluxDB version?](/influxdb/v2/reference/faq/#administration-1) + +{{% /show-in %}} + +{{% show-in "cloud" %}} + +### InfluxDB Cloud (TSM) detection + +**InfluxDB Cloud (TSM)** can be identified by: + +**URL patterns** (regional cloud2.influxdata.com URLs, excluding Serverless regions): + +- `us-west-2-1.aws.cloud2.influxdata.com` +- `us-west-2-2.aws.cloud2.influxdata.com` +- `us-east-1-2.aws.cloud2.influxdata.com` (note: different from Serverless) +- `us-central1-1.gcp.cloud2.influxdata.com` +- `westeurope-1.azure.cloud2.influxdata.com` +- `eastus-1.azure.cloud2.influxdata.com` + +**Account settings**: Check your InfluxDB Cloud account dashboard for product details. + +**HTTP headers**: API responses include version information in response headers. + +{{% /show-in %}} + +{{% show-in "v1" %}} + +### InfluxDB OSS v1 / Enterprise v1 detection + +Check the version using `influxd`: + +```bash +influxd version +``` + +Check the `/ping` endpoint headers: + +```bash +curl -i http://localhost:8086/ping +``` + +Look for the `x-influxdb-version` header (for example, `1.11.7`). + +For Enterprise v1, the `x-influxdb-build` header will show `Enterprise`. + +{{% /show-in %}} + +{{% hide-in "core,enterprise,cloud-serverless,cloud-dedicated,clustered,v2,cloud,v1" %}} + +## Product-specific methods + +### InfluxDB 3 Core and Enterprise + +{{< tabs-wrapper >}} +{{% tabs %}} +[Command line](#) +[Health endpoint](#) +[HTTP headers](#) +{{% /tabs %}} + +{{% tab-content %}} + +Check the version using the `influxdb3` command: + +```bash +influxdb3 --version +``` + +{{% /tab-content %}} + +{{% tab-content %}} + +Query the `/health` endpoint: + +```bash +curl http://localhost:8181/health +``` + +The response includes version information and build details. + +{{% /tab-content %}} + +{{% tab-content %}} + +Check the `/ping` endpoint headers: + +```bash +curl -i http://localhost:8181/ping +``` + +Look for: + +- `x-influxdb-version`: Version number (for example, `3.6.0`) +- `x-influxdb-build`: `Core` or `Enterprise` + +{{% /tab-content %}} + +{{< /tabs-wrapper >}} + +### InfluxDB Clustered + +Use the `influxctl` CLI to check your cluster version: + +```bash +influxctl version +``` + +To view cluster information: + +```bash +influxctl cluster list +``` + +### InfluxDB OSS v2 + +{{< tabs-wrapper >}} +{{% tabs %}} +[Command line](#) +[Health API](#) +[User interface](#) +{{% /tabs %}} + +{{% tab-content %}} + +Check the version using `influxd`: + +```bash +influxd version +``` + +**Example output:** + +``` +InfluxDB 2.7.12 (git: x0x000xx0x) build_date: 2024-MM-DDThh:mm:ssZ +``` + +{{% /tab-content %}} + +{{% tab-content %}} + +Query the `/health` endpoint and extract the version: + +```bash +curl -s http://localhost:8086/health | jq -r '.version' +``` + +{{% /tab-content %}} + +{{% tab-content %}} + +The InfluxDB UI displays the version: + +- On the login page +- In the right column of the main landing page +- In the user menu dropdown + +{{% /tab-content %}} + +{{< /tabs-wrapper >}} + +For more details, see [How can I identify my InfluxDB version?](/influxdb/v2/reference/faq/#administration-1) + +### InfluxDB Cloud (Serverless, Dedicated, TSM) + +For InfluxDB Cloud products, check the version information: + +- **Account settings**: Version details appear in your account dashboard +- **UI footer**: The version may be displayed at the bottom of the web interface +- **HTTP headers**: API responses include version headers +- **URL pattern**: See [By URL pattern](#by-url-pattern) above + +### InfluxDB OSS v1 and Enterprise v1 + +{{< tabs-wrapper >}} +{{% tabs %}} +[Command line](#) +[HTTP API](#) +{{% /tabs %}} + +{{% tab-content %}} + +Check the version using `influxd`: + +```bash +influxd version +``` + +{{% /tab-content %}} + +{{% tab-content %}} + +Check the `/ping` endpoint headers: + +```bash +curl -i http://localhost:8086/ping +``` + +Look for the `x-influxdb-version` header (for example, `1.11.7`). + +{{% /tab-content %}} + +{{< /tabs-wrapper >}} + +{{% /hide-in %}} + +{{% hide-in "core,enterprise,cloud-serverless,cloud-dedicated,clustered,v2,cloud,v1,enterprise-v1" %}} + +## Understanding InfluxDB products + +InfluxData offers multiple InfluxDB products to suit different use cases: + +| Product | License | Hosting | Query Languages | Default Port | +| ----------------------------- | --------- | ------------------------ | ------------------- | ------------ | +| **InfluxDB 3 Core** | Free | Self-hosted | SQL, InfluxQL | 8181 | +| **InfluxDB 3 Enterprise** | Paid | Self-hosted | SQL, InfluxQL | 8181 | +| **InfluxDB Cloud Serverless** | Free/Paid | Cloud | SQL, InfluxQL, Flux | N/A | +| **InfluxDB Cloud Dedicated** | Paid | Cloud | SQL, InfluxQL | N/A | +| **InfluxDB Clustered** | Paid | Self-hosted (Kubernetes) | SQL, InfluxQL | Custom | +| **InfluxDB OSS v2** | Free | Self-hosted | InfluxQL, Flux | 8086 | +| **InfluxDB Cloud (TSM)** | Free/Paid | Cloud | InfluxQL, Flux | N/A | +| **InfluxDB OSS v1** | Free | Self-hosted | InfluxQL | 8086 | +| **InfluxDB Enterprise v1** | Paid | Self-hosted | InfluxQL, Flux | 8086 | +| **InfluxDB Cloud 1** | Paid | Cloud | InfluxQL | N/A | + +### Key characteristics + +- **InfluxDB 3** products use SQL and InfluxQL, run on port 8181 (self-hosted), and provide improved performance and scalability +- **InfluxDB v2** products use InfluxQL and Flux, run on port 8086 (self-hosted), and use a bucket-based data model +- **InfluxDB v1** products use InfluxQL, run on port 8086 (self-hosted), and use a database-based data model + +{{% /hide-in %}} + +## Understanding InfluxDB products + +For a complete comparison of InfluxDB versions and deployment options, see the [InfluxDB platform overview](/platform/). + +## Troubleshooting + +### Can't access your InfluxDB instance? + +If you can't directly access your InfluxDB instance: + +1. Use the [interactive version detector](#identify-your-influxdb-version) above or {{< ask-ai-link link-text="Ask InfluxData AI" query="Help determine my InfluxDB version based on licensing, hosting, server age, and API." >}} +2. Answer questions about your setup: + - License type (paid or free) + - Hosting model (cloud or self-hosted) + - Server age + - Query language preferences +3. Get product recommendations based on your answers + +### Still not sure? + +If you're still uncertain, see the [Support and feedback](#bug-reports-and-feedback) options. diff --git a/content/shared/influxdb-v2/query-data/influxql/_index.md b/content/shared/influxdb-v2/query-data/influxql/_index.md index d2f5a5c3e6..8993a93d81 100644 --- a/content/shared/influxdb-v2/query-data/influxql/_index.md +++ b/content/shared/influxdb-v2/query-data/influxql/_index.md @@ -1,5 +1,4 @@ - -Use InfluxQL (an SQL-like query language) to interact with InfluxDB, and query and analyze your times series data. +Use InfluxQL (an SQL-like query language) to interact with InfluxDB, and API features analyze your times series data. In InfluxDB 1.x, data is stored in [databases](/influxdb/v1/concepts/glossary/#database) and [retention policies](/influxdb/v1/concepts/glossary/#retention-policy-rp). @@ -23,16 +22,16 @@ For complete InfluxQL reference documentation, see the ## Verify buckets have a mapping 1. To verify the buckets you want to query are mapped to a database and retention policy, use the [`influx` CLI](/influxdb/version/reference/cli/influx/) or the [InfluxDB API](/influxdb/version/reference/api/). -_For examples, see [List DBRP mappings](/influxdb/version/query-data/influxql/dbrp/#list-dbrp-mappings)._ + *For examples, see [List DBRP mappings](/influxdb/version/query-data/influxql/dbrp/#list-dbrp-mappings).* 2. If you **do not find a DBRP mapping for a bucket**, [create a new DBRP mapping](/influxdb/version/query-data/influxql/dbrp/#create-dbrp-mappings) to -map the unmapped bucket. + map the unmapped bucket. ## Create DBRP mappings for unmapped buckets - Use the [`influx` CLI](/influxdb/version/reference/cli/influx/) or the [InfluxDB API](/influxdb/version/reference/api/) -to manually create DBRP mappings for unmapped buckets. -_For examples, see [Create DBRP mappings](/influxdb/version/query-data/influxql/dbrp/#create-dbrp-mappings)._ + to manually create DBRP mappings for unmapped buckets. + *For examples, see [Create DBRP mappings](/influxdb/version/query-data/influxql/dbrp/#create-dbrp-mappings).* ## Query a mapped bucket with InfluxQL @@ -42,6 +41,7 @@ _For examples, see [Create DBRP mappings](/influxdb/version/query-data/influxql/ [InfluxDB API](#) {{% /tabs %}} {{% tab-content %}} + The [`influx` CLI](/influxdb/version/reference/cli/influx/) provides an [InfluxQL shell](/influxdb/version/tools/influxql-shell/) where you can execute InfluxQL queries in an interactive Read-Eval-Print-Loop (REPL). @@ -66,8 +66,10 @@ The [`influx` CLI](/influxdb/version/reference/cli/influx/) provides an [InfluxQ For more information, see how to [use the InfluxQL shell](/influxdb/version/tools/influxql-shell/). For more information about DBRP mappings, see [Manage DBRP mappings](/influxdb/version/query-data/influxql/dbrp/). + {{% /tab-content %}} {{% tab-content %}} + The [InfluxDB 1.x compatibility API](/influxdb/version/reference/api/influxdb-1x/) supports @@ -77,10 +79,10 @@ all InfluxDB 1.x client libraries and integrations in InfluxDB {{< current-versi - **Request method:** `GET` - **Headers:** - - **Authorization:** _See [compatibility API authentication](/influxdb/version/reference/api/influxdb-1x/#authentication)_ + - **Authorization:** *See [compatibility API authentication](/influxdb/version/reference/api/influxdb-1x/#authentication)* - **Query parameters:** - **db**: 1.x database to query - - **rp**: 1.x retention policy to query _(if no retention policy is specified, InfluxDB uses the default retention policy for the specified database)_ + - **rp**: 1.x retention policy to query *(if no retention policy is specified, InfluxDB uses the default retention policy for the specified database)* - **q**: URL-encoded InfluxQL query {{% api/url-encode-note %}} @@ -96,7 +98,9 @@ all InfluxDB 1.x client libraries and integrations in InfluxDB {{< current-versi 2. (Optional) To return results as **CSV**, include the `Accept: application/csv` header. For more information about DBRP mappings, see [Manage DBRP mappings](/influxdb/version/query-data/influxql/dbrp/). + + {{% /tab-content %}} {{< /tabs-wrapper >}} @@ -107,12 +111,13 @@ InfluxDB OSS 2.x supports the following InfluxQL statements and clauses. See sup {{< flex >}} {{< flex-content >}} {{% note %}} + ##### Supported InfluxQL queries -- `DELETE`* -- `DROP MEASUREMENT`* +- `DELETE`\* +- `DROP MEASUREMENT`\* - `EXPLAIN ANALYZE` -- `SELECT` _(read-only)_ +- `SELECT` *(read-only)* - `SHOW DATABASES` - `SHOW SERIES` - `SHOW MEASUREMENTS` @@ -133,11 +138,11 @@ InfluxDB OSS 2.x supports the following InfluxQL statements and clauses. See sup - `SELECT INTO` - `ALTER` - `CREATE` -- `DROP` _(limited support)_ +- `DROP` *(limited support)* - `GRANT` - `KILL` - `REVOKE` - `SHOW SERIES CARDINALITY` -{{% /warn %}} -{{< /flex-content >}} -{{< /flex >}} + {{% /warn %}} + {{< /flex-content >}} + {{< /flex >}} diff --git a/cypress/e2e/content/ask-ai.cy.js b/cypress/e2e/content/ask-ai.cy.js new file mode 100644 index 0000000000..102b907ab6 --- /dev/null +++ b/cypress/e2e/content/ask-ai.cy.js @@ -0,0 +1,402 @@ +/// + +/** + * Ask AI Widget E2E Test Suite + * + * Tests for the Kapa.ai Ask AI widget and ask-ai-link shortcode + * + * NOTE: Open the chat window sparingly. + * + * COMPREHENSIVE TEST SCENARIOS CHECKLIST: + * + * Widget Initialization: + * ---------------------- + * - [x] Widget script loads without errors + * - [x] window.Kapa object is available + * - [x] Widget trigger button is visible + * - [ ] Widget initializes with correct configuration + * - [ ] No JavaScript console errors during initialization + * + * Widget Trigger Button: + * ---------------------- + * - [x] Button exists in footer + * - [x] Button has correct class (ask-ai-open) + * - [x] Button opens widget when clicked + * - [x] Widget modal becomes visible after click + * - [ ] Widget overlay appears (if configured) + * + * Ask AI Link Shortcode: + * ---------------------- + * - [x] Link renders correctly in content + * - [x] Link has correct text (default or custom) + * - [x] Link has ask-ai-open class + * - [x] Link has onclick handler for analytics + * - [x] Link has data-query attribute with query + * - [x] Link includes gtag analytics in onclick + * - [x] Link opens widget when clicked + * - [x] Query is pre-filled without auto-submitting + * - [x] Widget modal becomes visible after click + * - [x] Widget overlay appears (if configured) + * + * Widget Functionality: + * --------------------- + * - [ ] Widget opens in modal/drawer + * - [ ] Widget shows input field + * - [ ] Widget shows example questions + * - [ ] Widget accepts user input + * - [ ] Widget submits queries to AI + * - [ ] Widget displays AI responses + * - [ ] Widget can be closed + * - [ ] Widget reopens with history preserved + * + * Query Pre-population: + * --------------------- + * - [x] window.Kapa.open() accepts query parameter + * - [x] Query appears in input field when pre-populated + * - [x] Query is submitted automatically with submit: true + * - [ ] Pre-populated query respects special characters + * - [ ] Pre-populated query handles HTML entities correctly + * + * Analytics Tracking: + * ------------------- + * - [ ] Link click fires gtag event + * - [ ] Event includes correct custom_map fields + * - [ ] Event includes query text + * - [ ] Event includes section (pathname) + * - [ ] Event includes interaction_type: 'inline_link' + * + * Error Handling: + * --------------- + * - [x] No console errors when widget loads + * - [ ] Graceful handling if window.Kapa is undefined + * - [ ] Graceful handling if widget script fails to load + * - [ ] Error messages are user-friendly + * + * Accessibility: + * -------------- + * - [ ] Widget trigger button is keyboard accessible + * - [ ] Ask AI links are keyboard accessible + * - [ ] Widget modal has proper focus management + * - [ ] Widget has ARIA labels + * - [ ] Screen reader announcements work + * + * Cross-browser: + * -------------- + * - [ ] Works in Chrome + * - [ ] Works in Firefox + * - [ ] Works in Safari + * - [ ] Works in Edge + */ + +function beforeTest() { + cy.viewport(1440, 900); +} + +describe('Ask AI Widget and Link', function () { + describe('Widget Initialization', function () { + beforeEach(() => { + cy.visit('/influxdb3/core/admin/identify-version/'); + beforeTest(); + }); + + it('should load widget script without JavaScript errors', function () { + cy.window().then((win) => { + const errors = []; + const originalError = win.console.error; + + win.console.error = (...args) => { + errors.push(args.join(' ')); + originalError.apply(win.console, args); + }; + + // Wait for widget to initialize + cy.wait(2000); + + cy.then(() => { + // Filter for Kapa-related errors + const kapaErrors = errors.filter( + (log) => + log.includes('kapa') || + log.includes('Kapa') || + log.includes('ask-ai') + ); + expect(kapaErrors).to.have.length(0); + }); + }); + }); + + it('should make window.Kapa available', function () { + cy.window().should('have.property', 'Kapa'); + cy.window().then((win) => { + expect(win.Kapa).to.be.a('function'); + }); + }); + + it('should render widget trigger button in footer', function () { + cy.get('.ask-ai-trigger a.ask-ai-open').should('be.visible'); + cy.get('.ask-ai-trigger').should('contain', 'Ask AI'); + }); + + it('should have correct class for widget trigger', function () { + cy.get('.ask-ai-trigger a.ask-ai-open') + .should('have.class', 'ask-ai-open') + .and('be.visible'); + }); + }); + + describe('Widget Trigger Button', function () { + // ONLY test that opens widget via button - combines all button functionality tests + it('should open widget when trigger button is clicked', function () { + cy.visit('/influxdb3/core/admin/identify-version/'); + beforeTest(); + + // Click the Ask AI button + cy.get('.ask-ai-trigger a.ask-ai-open').click(); + + // Wait for widget modal to appear + cy.get('#kapa-modal-content', { + includeShadowDom: true, + timeout: 1000, + }).should('be.visible'); + }); + }); + + describe('Ask AI Link Shortcode', function () { + beforeEach(() => { + cy.visit('/influxdb3/core/admin/identify-version/'); + beforeTest(); + }); + + it('should render ask-ai-link with correct attributes', function () { + // Validate DOM without clicking + cy.get('a.ask-ai-open') + .contains('Ask InfluxData AI') + .should('be.visible') + .should('have.class', 'ask-ai-open') + .should( + 'have.attr', + 'data-query', + 'Help determine my InfluxDB version based on licensing, hosting, server age, and API.' + ); + }); + + // This is the only test that opens the widget modal + it('should open widget with pre-filled query when ask-ai-link is clicked', function () { + cy.get('.article--content a.ask-ai-open') + .contains('Ask InfluxData AI') + .as('askAILink'); + cy.get('@askAILink').click(); + // Widget container MUST become visible + cy.get('#kapa-modal-content', { includeShadowDom: true, timeout: 1000 }) + .should('be.visible', 'Widget must open when ask-ai-link is clicked') + // Verify query is pre-filled (validates pre-fill behavior) + .find('textarea, input[type="text"]') + .should( + 'have.value', + 'Help determine my InfluxDB version based on licensing, hosting, server age, and API.' + ); + }); + }); + + describe('Error Handling', function () { + beforeEach(() => { + cy.visit('/influxdb3/core/admin/identify-version/'); + beforeTest(); + }); + + it('should not throw console errors when link is clicked', function () { + cy.window().then((win) => { + const errors = []; + const originalError = win.console.error; + + win.console.error = (...args) => { + errors.push(args.join(' ')); + originalError.apply(win.console, args); + }; + + // Validate without actually clicking (DOM interaction only) + cy.get('a.ask-ai-open').contains('Ask InfluxData AI'); + + cy.wait(500); + + cy.then(() => { + // Check for Kapa-related errors + const kapaErrors = errors.filter( + (log) => + (log.includes('kapa') || log.includes('Kapa')) && + !log.includes('Unknown method') + ); + expect(kapaErrors).to.have.length(0); + }); + }); + }); + + it('should handle missing window.Kapa gracefully', function () { + cy.window().then((win) => { + // Temporarily remove Kapa + const originalKapa = win.Kapa; + delete win.Kapa; + + // Validate link without opening widget + cy.get('a.ask-ai-open') + .contains('Ask InfluxData AI') + .should('have.attr', 'onclick'); + + // Restore Kapa + win.Kapa = originalKapa; + }); + }); + }); + + describe('Ask AI Widget Configuration', function () { + describe('Input Placeholder', function () { + it('should have the version name in the placeholder on v3 pages', function () { + cy.visit('/influxdb3/core/'); + beforeTest(); + + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const placeholder = $script.attr( + 'data-modal-ask-ai-input-placeholder' + ); + expect(placeholder).to.contain( + 'Specify your version and product') + .and.to.contain("Core"); + }); + }); + + it('should have the version name in the placeholder on v2 pages', function () { + cy.visit('/influxdb/v2/'); + beforeTest(); + + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const placeholder = $script.attr( + 'data-modal-ask-ai-input-placeholder' + ); + expect(placeholder).to.contain( + 'Specify your version and product') + .and.to.contain("v2"); + }); + }); + + it('should have the version name in the placeholder on v1 pages', function () { + cy.visit('/influxdb/v1/'); + beforeTest(); + + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const placeholder = $script.attr( + 'data-modal-ask-ai-input-placeholder' + ); + expect(placeholder).to.contain( + 'Specify your version and product') + .and.to.contain("v1"); + }); + }); + + it('should have default placeholder when no product-specific one exists', function () { + cy.visit('/platform/'); + beforeTest(); + + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const placeholder = $script.attr( + 'data-modal-ask-ai-input-placeholder' + ); + expect(placeholder).to.include('Ask questions about InfluxDB'); + expect(placeholder).to.include('Specify your product and version'); + }); + }); + }); + + describe('InfluxDB 3 Products', function () { + it('should configure Explorer-specific questions in Kapa widget', function () { + cy.visit('/influxdb3/explorer/'); + beforeTest(); + + // Check the Kapa widget script tag has correct data-modal-example-questions attribute + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const questions = $script.attr('data-modal-example-questions'); + expect(questions).to.include('visualize data using Explorer'); + }); + }); + + it('should configure Core-specific questions in Kapa widget', function () { + cy.visit('/influxdb3/core/'); + beforeTest(); + + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const questions = $script.attr('data-modal-example-questions'); + expect(questions).to.include( + 'Python Processing engine using InfluxDB 3 Core' + ); + // Should NOT have read replica question + expect(questions).to.not.include('replica'); + }); + }); + + it('should configure Enterprise-specific questions in Kapa widget', function () { + cy.visit('/influxdb3/enterprise/'); + beforeTest(); + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const questions = $script.attr('data-modal-example-questions'); + expect(questions).to.include('install and run InfluxDB 3 Enterprise'); + }); + }); + }); + + describe('InfluxDB v1 Products', function () { + it('should configure Enterprise v1-specific questions in Kapa widget', function () { + cy.visit('/enterprise_influxdb/v1/'); + beforeTest(); + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const questions = $script.attr('data-modal-example-questions'); + expect(questions).to.include('configure InfluxDB Enterprise v1'); + }); + }); + }); + + describe('InfluxDB OSS v2', function () { + it('should configure v2-specific questions with version name in Kapa widget', function () { + cy.visit('/influxdb/v2/get-started/'); + beforeTest(); + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const questions = $script.attr('data-modal-example-questions'); + // Check for v2-specific questions + expect(questions).to.include( + 'write and query data using InfluxDB OSS v2' + ); + // Should NOT have v1-specific questions + expect(questions).to.not.include('retention policies'); + }); + }); + }); + + describe('InfluxDB OSS v1', function () { + it('should configure v1-specific questions with version name in Kapa widget', function () { + cy.visit('/influxdb/v1/'); + beforeTest(); + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const questions = $script.attr('data-modal-example-questions'); + // Check for v1-specific questions + expect(questions).to.include( + 'query data with InfluxQL using InfluxDB OSS v1' + ); + // Should NOT have v2-specific questions + expect(questions).to.not.include('auth tokens'); + }); + }); + }); + + describe('InfluxDB Cloud (TSM)', function () { + it('should configure Cloud-specific questions with correct naming in Kapa widget', function () { + cy.visit('/influxdb/cloud/'); + beforeTest(); + cy.get('script[src*="kapa-widget.bundle.js"]').should(($script) => { + const questions = $script.attr('data-modal-example-questions'); + // Check for Cloud-specific questions + expect(questions).to.include( + 'write and query data using InfluxDB Cloud (TSM)' + ); + }); + }); + }); + }); +}); diff --git a/cypress/e2e/page-context.cy.js b/cypress/e2e/page-context.cy.js new file mode 100644 index 0000000000..fa42c6e5fd --- /dev/null +++ b/cypress/e2e/page-context.cy.js @@ -0,0 +1,114 @@ +/// + +/** + * Page Context E2E Test Suite + * Tests that all products in products.yml are correctly mapped in page-context.js + */ + +describe('Page Context - Product Mapping', function () { + describe('InfluxDB 3 Products', function () { + it('should map Explorer pages correctly', function () { + cy.visit('/influxdb3/explorer/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb3/explorer/'); + cy.get('h1').should('contain', 'InfluxDB 3 Explorer'); + }); + + it('should map Core pages correctly', function () { + cy.visit('/influxdb3/core/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb3/core/'); + cy.get('h1').should('contain', 'InfluxDB 3 Core'); + }); + + it('should map Enterprise pages correctly', function () { + cy.visit('/influxdb3/enterprise/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb3/enterprise/'); + cy.get('h1').should('contain', 'InfluxDB 3 Enterprise'); + }); + + it('should map Cloud Serverless pages correctly', function () { + cy.visit('/influxdb3/cloud-serverless/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb3/cloud-serverless/'); + cy.get('h1').should('contain', 'InfluxDB Cloud Serverless'); + }); + + it('should map Cloud Dedicated pages correctly', function () { + cy.visit('/influxdb3/cloud-dedicated/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb3/cloud-dedicated/'); + cy.get('h1').should('contain', 'InfluxDB Cloud Dedicated'); + }); + + it('should map Clustered pages correctly', function () { + cy.visit('/influxdb3/clustered/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb3/clustered/'); + cy.get('h1').should('contain', 'InfluxDB Clustered'); + }); + }); + + describe('InfluxDB v2 and Cloud Products', function () { + it('should map InfluxDB v2 pages correctly', function () { + cy.visit('/influxdb/v2/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb/v2/'); + cy.get('h1').should('contain', 'InfluxDB v2'); + }); + + it('should map InfluxDB Cloud (TSM) pages correctly', function () { + cy.visit('/influxdb/cloud/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb/cloud/'); + cy.get('h1').should('contain', 'InfluxDB Cloud'); + }); + }); + + describe('InfluxDB v1 Products', function () { + it('should map InfluxDB v1 pages correctly', function () { + cy.visit('/influxdb/v1/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/influxdb/v1/'); + cy.get('h1').should('contain', 'InfluxDB OSS'); + }); + + it('should map Enterprise v1 pages correctly', function () { + cy.visit('/enterprise_influxdb/v1/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/enterprise_influxdb/v1/'); + cy.get('h1').should('contain', 'InfluxDB Enterprise'); + }); + }); + + describe('Other Products', function () { + it('should map Telegraf pages correctly', function () { + cy.visit('/telegraf/v1/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/telegraf/v1/'); + cy.get('h1').should('contain', 'Telegraf'); + }); + + it('should map Chronograf pages correctly', function () { + cy.visit('/chronograf/v1/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/chronograf/v1/'); + cy.get('h1').should('contain', 'Chronograf'); + }); + + it('should map Kapacitor pages correctly', function () { + cy.visit('/kapacitor/v1/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/kapacitor/v1/'); + cy.get('h1').should('contain', 'Kapacitor'); + }); + + it('should map Flux pages correctly', function () { + cy.visit('/flux/v0/'); + cy.get('body').should('be.visible'); + cy.url().should('include', '/flux/v0/'); + cy.get('h1').should('contain', 'Flux'); + }); + }); +}); diff --git a/data/products.yml b/data/products.yml index 6e2aafdfec..6ce4bf7d91 100644 --- a/data/products.yml +++ b/data/products.yml @@ -23,9 +23,11 @@ influxdb3_core: x-influxdb-build: 'Core' url_contains: ['localhost:8181'] ai_sample_questions: + - What's my InfluxDB version? - How do I install and run InfluxDB 3 Core? - - How do I write a plugin for the Python Processing engine? - - How do I write data using the HTTP API for InfluxDB 3 Core? + - Help me write a plugin for the Python Processing engine using InfluxDB 3 Core + ai_input_placeholder: "Specify your version and product (\"Core\", \"InfluxDB 3 Enterprise\", \"OSS v1\") for better results" + ai_source_group_ids: "b650cf0b-4b52-42e8-bde7-a02738f27262" influxdb3_enterprise: name: InfluxDB 3 Enterprise @@ -52,9 +54,11 @@ influxdb3_enterprise: x-influxdb-build: 'Enterprise' url_contains: ['localhost:8181'] ai_sample_questions: + - What's my InfluxDB version? - How do I install and run InfluxDB 3 Enterprise? - - Help me write a plugin for the Python Processing engine? - - How do I start a read replica node with InfluxDB 3 Enterprise? + - How do I start a read replica node using InfluxDB 3 Enterprise? + ai_input_placeholder: "Specify your version and product (\"InfluxDB 3 Enterprise\", \"Core\", \"Enterprise v1\") for better results" + ai_source_group_ids: "b650cf0b-4b52-42e8-bde7-a02738f27262" influxdb3_explorer: name: InfluxDB 3 Explorer @@ -66,9 +70,11 @@ influxdb3_explorer: latest_patch: 1.4.0 placeholder_host: localhost:8888 ai_sample_questions: - - How do I query data using InfluxDB 3 Explorer? - - How do I use InfluxDB 3 Explorer to visualize data? - - How do I install InfluxDB 3 Explorer? + - How do I install and run Explorer? + - How do I query data using Explorer? + - How do I visualize data using Explorer? + ai_input_placeholder: "Specify your version and product (\"InfluxDB 3 Explorer and Enterprise\", \"InfluxDB 3 Explorer and Core\") for better results" + ai_source_group_ids: "b650cf0b-4b52-42e8-bde7-a02738f27262" influxdb3_cloud_serverless: name: InfluxDB Cloud Serverless @@ -94,8 +100,11 @@ influxdb3_cloud_serverless: detection: url_contains: ['us-east-1-1.aws.cloud2.influxdata.com', 'eu-central-1-1.aws.cloud2.influxdata.com'] ai_sample_questions: - - How do I migrate from InfluxDB Cloud 2 to InfluxDB Cloud Serverless? + - What's my InfluxDB version? + - How do I migrate from Cloud (TSM) to Cloud Serverless? - What tools can I use to write data to InfluxDB Cloud Serverless? + ai_input_placeholder: "Specify your version and product (\"InfluxDB Cloud Serverless\", \"InfluxDB 3 Enterprise\", \"Core\") for better results" + ai_source_group_ids: "b650cf0b-4b52-42e8-bde7-a02738f27262" influxdb3_cloud_dedicated: name: InfluxDB Cloud Dedicated @@ -120,9 +129,11 @@ influxdb3_cloud_dedicated: detection: url_contains: ['influxdb.io'] ai_sample_questions: - - How do I migrate from InfluxDB v1 to InfluxDB Cloud Dedicated? - - What tools can I use to write data to Cloud Dedicated? - - How do I use SQL and parameterized queries with Cloud Dedicated? + - What's my InfluxDB version? + - How do I migrate from InfluxDB v1 to Cloud Dedicated? + - How do I use SQL and parameterized queries with InfluxDB Cloud Dedicated? + ai_input_placeholder: "Specify your version and product (\"InfluxDB Cloud Dedicated\", \"InfluxDB 3 Enterprise\", \"Core\") for better results" + ai_source_group_ids: "b650cf0b-4b52-42e8-bde7-a02738f27262" influxdb3_clustered: name: InfluxDB Clustered @@ -147,12 +158,16 @@ influxdb3_clustered: ping_headers: x-influxdb-version: 'influxqlbridged-development' ai_sample_questions: - - How do I use a Helm chart to configure Clustered? - - What tools can I use to write data to Clustered? + - What's my InfluxDB version? + - How do I use a Helm chart to configure InfluxDB Clustered? - How do I use SQL and parameterized queries with InfluxDB Clustered? + ai_input_placeholder: "Specify your version and product (\"InfluxDB Clustered\", \"InfluxDB 3 Enterprise\", \"Core\") for better results" + ai_source_group_ids: "b650cf0b-4b52-42e8-bde7-a02738f27262" influxdb: name: InfluxDB + name__v2: InfluxDB OSS v2 + name__v1: InfluxDB OSS v1 altname: InfluxDB OSS namespace: influxdb succeeded_by: influxdb3_core @@ -183,12 +198,20 @@ influxdb: x-influxdb-version: '^(1|2)\.' url_contains: ['localhost:8086'] ai_sample_questions: - - How do I write and query data with InfluxDB v2 OSS? - - How can I migrate from InfluxDB v2 OSS to InfluxDB 3 Core? - - How do I manage auth tokens in InfluxDB v2 OSS? + - What's my InfluxDB version? + - How do I write and query data using InfluxDB OSS v2? + - How can I migrate from InfluxDB OSS v2 to InfluxDB 3? + ai_input_placeholder: "Specify your version and product (\"InfluxDB OSS v2\", \"InfluxDB v1\", \"InfluxDB 3 Core\") for better results" + ai_source_group_ids: "3e905caa-dd6f-464b-abf9-c3880e09f128" + ai_sample_questions__v1: + - What's my InfluxDB version? + - How do I query data with InfluxQL using InfluxDB OSS v1? + - How do I set up continuous queries in InfluxDB OSS v1? + ai_source_group_ids__v1: "d809f67b-867d-4f17-95f0-c33dbadbf15f" influxdb_cloud: name: InfluxDB Cloud (TSM) + name__vcloud: InfluxDB Cloud (TSM) altname: InfluxDB Cloud namespace: influxdb menu_category: managed @@ -208,9 +231,11 @@ influxdb_cloud: detection: url_contains: ['us-west-2-1.aws.cloud2.influxdata.com', 'us-west-2-2.aws.cloud2.influxdata.com', 'us-east-1-1.aws.cloud2.influxdata.com', 'eu-central-1-1.aws.cloud2.influxdata.com', 'us-central1-1.gcp.cloud2.influxdata.com', 'westeurope-1.azure.cloud2.influxdata.com', 'eastus-1.azure.cloud2.influxdata.com'] ai_sample_questions: - - How do I write and query data with InfluxDB Cloud 2? - - How is Cloud 2 different from Cloud Serverless? - - How do I manage auth tokens in InfluxDB Cloud 2? + - What's my InfluxDB version? + - How do I write and query data using InfluxDB Cloud (TSM)? + - How is Cloud (TSM) different from Cloud Serverless? + ai_input_placeholder: "Specify your version and product (\"InfluxDB Cloud (TSM)\", \"InfluxDB 3 Enterprise\", \"Core\") for better results" + ai_source_group_ids: "3e905caa-dd6f-464b-abf9-c3880e09f128" telegraf: name: Telegraf @@ -222,9 +247,10 @@ telegraf: latest_patches: v1: 1.36.4 ai_sample_questions: - - How do I install and configure Telegraf? + - How do I configure Telegraf for InfluxDB 3? - How do I write a custom Telegraf plugin? - How do I use Telegraf for MQTT? + ai_input_placeholder: "Ask questions about Telegraf and InfluxDB" chronograf: name: Chronograf @@ -239,6 +265,7 @@ chronograf: - How do I configure Chronograf for InfluxDB v1? - How do I create a dashboard in Chronograf? - How do I use Grafana to visualize data stored in InfluxDB 3? + ai_input_placeholder: "Ask questions about Chronograf and InfluxDB" kapacitor: name: Kapacitor @@ -251,8 +278,9 @@ kapacitor: v1: 1.8.2 ai_sample_questions: - How do I configure Kapacitor for InfluxDB v1? - - How do I write a custom Kapacitor task? + - How do I write a custom task for Kapacitor? - How do I create tasks using InfluxDB 3 Core? + ai_input_placeholder: "Ask questions about Kapacitor" enterprise_influxdb: name: "InfluxDB Enterprise v1" @@ -276,9 +304,11 @@ enterprise_influxdb: ping_headers: x-influxdb-build: 'Enterprise' ai_sample_questions: - - How can I configure my InfluxDB v1 Enterprise server? - - How do I replicate data between InfluxDB v1 Enterprise and OSS? - - How do I query data stored in InfluxDB v1? + - What's my InfluxDB version? + - How can I configure InfluxDB Enterprise v1? + - How do I replicate data from OSS to InfluxDB Enterprise v1? + ai_input_placeholder: "Specify your version and product (\"Enterprise v1\", \"InfluxDB 3 Enterprise\", \"Core\") for better results" + ai_source_group_ids: "d809f67b-867d-4f17-95f0-c33dbadbf15f" flux: name: Flux @@ -288,6 +318,8 @@ flux: versions: [v0] latest: v0.x ai_sample_questions: - - How do I write a Flux query for InfluxDB v2 (TSM)? - - How do I use Flux to transform data stored in InfluxDB v2? + - How do I query with Flux? + - How do I transform data with Flux? - How do I join data with Flux? + ai_input_placeholder: "Ask questions about Flux and InfluxDB" + ai_source_group_ids: "d809f67b-867d-4f17-95f0-c33dbadbf15f,3e905caa-dd6f-464b-abf9-c3880e09f128" diff --git a/layouts/partials/article.html b/layouts/partials/article.html index e6becbb1fc..f97e72b76c 100644 --- a/layouts/partials/article.html +++ b/layouts/partials/article.html @@ -1,7 +1,7 @@
-

{{ .Title | .RenderString }}

+

{{ .RenderString .Title }}

{{ partial "article/supported-versions.html" . }} {{ partial "article/page-meta.html" . }}
diff --git a/layouts/partials/article/prepend.html b/layouts/partials/article/prepend.html index 6ab3c90613..2b1c44bcaa 100644 --- a/layouts/partials/article/prepend.html +++ b/layouts/partials/article/prepend.html @@ -1,3 +1,12 @@ {{- if .Params.prepend -}} -{{ .Params.prepend | .RenderString }} + {{- if reflect.IsMap .Params.prepend -}} + {{- if .Params.prepend.title -}} +

{{ .Params.prepend.title }}

+ {{- end -}} + {{- if .Params.prepend.content -}} +{{ .RenderString .Params.prepend.content }} + {{- end -}} + {{- else -}} +{{ .RenderString .Params.prepend }} + {{- end -}} {{- end -}} \ No newline at end of file diff --git a/layouts/shortcodes/ask-ai-link.html b/layouts/shortcodes/ask-ai-link.html new file mode 100644 index 0000000000..191e2c397d --- /dev/null +++ b/layouts/shortcodes/ask-ai-link.html @@ -0,0 +1,17 @@ +{{- $linkText := .Get "link-text" | default "Ask Docs AI" -}} +{{- $query := .Get "query" | default "" -}} +{{ $linkText }} diff --git a/layouts/shortcodes/influxdb-version-detector.html b/layouts/shortcodes/influxdb-version-detector.html index 2b9c903210..f7dff204e5 100644 --- a/layouts/shortcodes/influxdb-version-detector.html +++ b/layouts/shortcodes/influxdb-version-detector.html @@ -14,7 +14,7 @@ {{ $context := .Get "context" }} {{ $aiInstruction := .Get "ai_instruction" }} -

Identify your InfluxDB version

+

Identify your InfluxDB version

If you are unsure which InfluxDB product you are using, use our interactive version detector to help identify it:

diff --git a/yarn.lock b/yarn.lock index 0d27ab5529..fa4a17fcf1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1131,9 +1131,9 @@ callsites@^3.0.0: integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== caniuse-lite@^1.0.30001702, caniuse-lite@^1.0.30001737: - version "1.0.30001745" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001745.tgz" - integrity sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ== + version "1.0.30001754" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz" + integrity sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg== careful-downloader@^3.0.0: version "3.0.0"