InfluxDB get started (#4628)

* WIP new influxdb get started

* WIP get started tutorial

* WIP get started

* persist tab selection when navigating tutorials

* WIP wrapped up query get-started

* WIP small updated to query get-started

* WIP influxdb get started

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* minor updates to get started started docs

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* fixed truncate behavior

* centralize get-started credential storing

* add suggestions from PR review

* Get started processing and visualizing data (#4648)

* remove draft from process and visualize

* WIP get started processing data

* updated get started processing data with PR feedback

* add get started visualizing data content

* udpated vis get started with PR feedback

* added clockface v4

* last updates from PR review

* ported get started content to 2.5

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
pull/4651/head
Scott Anderson 2022-11-21 15:44:14 -07:00 committed by GitHub
parent 71fdf4d34e
commit 4dcb7dfe6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
60 changed files with 7230 additions and 369 deletions

View File

@ -527,6 +527,7 @@ The shortcode has the following parameters:
- **next:** path of the next document _(optional)_
- **prevText:** override the button text linking to the previous document _(optional)_
- **nextText:** override the button text linking to the next document _(optional)_
- **keepTab:** include the currently selected tab in the button link _(optional)_
The shortcode generates buttons that link to both the previous and next documents.
By default, the shortcode uses either the `list_title` or the `title` of the linked
@ -539,6 +540,10 @@ document, but you can use `prevText` and `nextText` to override button text.
<!-- Override button text -->
{{ page-nav prev="/path/to/prev/" prevText="Previous" next="/path/to/next" nextText="Next" >}}
<!-- Add currently selected tab to button link -->
{{ page-nav prev="/path/to/prev/" next="/path/to/next" keepTab=true>}}
```
### Keybinds
Use the `{{< keybind >}}` shortcode to include OS-specific keybindings/hotkeys.
The following parameters are available:

View File

@ -27,7 +27,6 @@ headingElements.each(function() {
var elementWhiteList = [
".tabs p a",
".code-tabs p a",
".truncate-toggle",
".children-links a",
".list-links a",
"a.url-trigger",
@ -75,91 +74,21 @@ $('#contents-toggle-btn').click(function(e) {
$('#nav-tree').toggleClass('open');
})
//////////////////////////////// Tabbed Content ////////////////////////////////
function tabbedContent(container, tab, content) {
// Add the active class to the first tab in each tab group,
// in case it wasn't already set in the markup.
$(container).each(function () {
$(tab, this).removeClass('is-active');
$(tab + ':first', this).addClass('is-active');
});
$(tab).on('click', function(e) {
e.preventDefault();
// Make sure the tab being clicked is marked as active, and make the rest inactive.
$(this).addClass('is-active').siblings().removeClass('is-active');
// Render the correct tab content based on the position of the tab being clicked.
const activeIndex = $(tab).index(this);
$(content).each(function(i) {
if (i === activeIndex) {
$(this).show();
$(this).siblings(content).hide();
}
});
});
}
tabbedContent('.code-tabs-wrapper', '.code-tabs p a', '.code-tab-content');
tabbedContent('.tabs-wrapper', '.tabs p a', '.tab-content');
// Retrieve the user's programming language (client library) preference.
function getApiLibPreference() {
return Cookies.get('influx-docs-api-lib') || '';
}
function getTabQueryParam() {
const queryParams = new URLSearchParams(window.location.search);
return $('<textarea />').html(queryParams.get('t')).text();
}
function activateTabs(selector, tab) {
const anchor = window.location.hash;
if (tab !== "") {
let targetTab = $(`${selector} a:contains("${tab}")`);
if(!targetTab.length) {
targetTab = Array.from(document.querySelectorAll(`${selector} a`))
.find(function(el) {
let targetText = el.text &&
el.text.toLowerCase().replace(/[^a-z0-9]/, '')
return targetText && tab.includes(targetText);
})
}
if(targetTab) {
$(targetTab).click();
scrollToAnchor(anchor);
}
}
const queryParams = new URLSearchParams(window.location.search);
$(`${selector} p a`).click(function() {
if ($(this).is(':not(":first-child")')) {
queryParams.set('t', $(this).html())
window.history.replaceState({}, '', `${location.pathname}?${queryParams}${anchor}`);
} else {
queryParams.delete('t')
window.history.replaceState({}, '', `${location.pathname}${anchor}`);
}
})
};
//////////////////// Activate Tab with Cookie or Query Param ///////////////////
/**
* Activate code-tabs based on the cookie then override with query param.
**/
var tab = getApiLibPreference();
(['.code-tabs']).forEach(selector => activateTabs(selector, tab));
tab = getTabQueryParam();
(['.tabs', '.code-tabs']).forEach(selector => activateTabs(selector, tab));
/////////////////////////////// Truncate Content ///////////////////////////////
$(".truncate-toggle").click(function(e) {
e.preventDefault()
$(this).closest('.truncate').toggleClass('closed');
var truncateParent = $(this).closest('.truncate')
var truncateParentID = $(this).closest('.truncate')[0].id
if (truncateParent.hasClass('closed')) {
$(this)[0].href = `#${truncateParentID}`
} else {
$(this)[0].href = "#"
}
truncateParent.toggleClass('closed')
truncateParent.find('.truncate-content').toggleClass('closed')
})
////////////////////////////// Expand Accordions ///////////////////////////////

View File

@ -39,7 +39,7 @@ function buildTable(inputData) {
return value
}
}
var groupKeyString = "Group key = [" + (groupKey.map(column => column + ": " + wrapString(column, (inputData[0])[column])) ).join(", ") + "]";
var groupKeyString = "Group key instance = [" + (groupKey.map(column => column + ": " + wrapString(column, (inputData[0])[column])) ).join(", ") + "]";
var groupKeyLabel = document.createElement("p");
groupKeyLabel.className = "table-group-key"
groupKeyLabel.innerHTML = groupKeyString

101
assets/js/tabbed-content.js Normal file
View File

@ -0,0 +1,101 @@
//////////////////////////////// Tabbed Content ////////////////////////////////
/**
* NOTE: Tab <a> elements are whitelisted elements that do not trigger
* smoothscroll when clicked. The whitelist is defined in content-interactions.js.
**/
function tabbedContent(container, tab, content) {
// Add the active class to the first tab in each tab group,
// in case it wasn't already set in the markup.
$(container).each(function () {
$(tab, this).removeClass('is-active');
$(tab + ':first', this).addClass('is-active');
});
$(tab).on('click', function(e) {
e.preventDefault();
// Make sure the tab being clicked is marked as active, and make the rest inactive.
$(this).addClass('is-active').siblings().removeClass('is-active');
// Render the correct tab content based on the position of the tab being clicked.
const activeIndex = $(tab).index(this);
$(content).each(function(i) {
if (i === activeIndex) {
$(this).show();
$(this).siblings(content).hide();
}
});
});
}
tabbedContent('.code-tabs-wrapper', '.code-tabs p a', '.code-tab-content');
tabbedContent('.tabs-wrapper', '.tabs p a', '.tab-content');
// Retrieve the user's programming language (client library) preference.
function getApiLibPreference() {
return Cookies.get('influx-docs-api-lib') || '';
}
function getTabQueryParam() {
const queryParams = new URLSearchParams(window.location.search);
return $('<textarea />').html(queryParams.get('t')).text();
}
// Add query param to .keep-tab paginated navigation buttons to persist tab
// selection when navigating between the pages.
function updateBtnURLs(tabId, op="update") {
$('a.keep-tab').each(function () {
var link = $(this)[0].href
var tabStr = tabId.replace(/ /, '+')
if (op === "delete") {
$(this)[0].href=link.replace(/\?t.*$/, '')
} else {
$(this)[0].href=link.replace(/($)|(\?t=.*$)/, `?t=${tabStr}`)
}
});
}
function activateTabs(selector, tab) {
const anchor = window.location.hash;
if (tab !== "") {
let targetTab = $(`${selector} a:contains("${tab}")`);
if(!targetTab.length) {
targetTab = Array.from(document.querySelectorAll(`${selector} a`))
.find(function(el) {
let targetText = el.text &&
el.text.toLowerCase().replace(/[^a-z0-9]/, '')
return targetText && tab.includes(targetText);
})
}
if(targetTab) {
$(targetTab).click();
scrollToAnchor(anchor);
}
}
const queryParams = new URLSearchParams(window.location.search);
$(`${selector} p a`).click(function() {
if ($(this).is(':not(":first-child")')) {
queryParams.set('t', $(this).html())
window.history.replaceState({}, '', `${location.pathname}?${queryParams}${anchor}`);
updateBtnURLs($(this).html())
} else {
queryParams.delete('t')
window.history.replaceState({}, '', `${location.pathname}${anchor}`);
updateBtnURLs($(this).html(), "delete")
}
})
};
//////////////////// Activate Tab with Cookie or Query Param ///////////////////
/**
* Activate code-tabs based on the cookie then override with query param.
**/
var tab = getApiLibPreference();
(['.code-tabs']).forEach(selector => activateTabs(selector, tab), updateBtnURLs(tab));
tab = getTabQueryParam();
(['.tabs', '.code-tabs']).forEach(selector => activateTabs(selector, tab), updateBtnURLs(tab));

View File

@ -23,7 +23,7 @@
padding-left: .29rem;
line-height: 1.25rem;
&.v3 {
&.v3, &.v4 {
position: relative;
background: $g5-pepper;
width: 18px;
@ -61,7 +61,7 @@
.circle {left: 4px;}
}
&.v3 {
&.v3, &.v4 {
width: 26px;
.circle {
height: 12px;
@ -244,12 +244,14 @@
}
}
}
///////////////////////////////// CLOCKFACE V3 /////////////////////////////////
}
.nav-items-v3 {
.nav-item-v3 {
////////////////////////////// CLOCKFACE V3 & v4 ///////////////////////////////
.nav-items-v3,
.nav-items-v4 {
.nav-item-v3,
.nav-item-v4 {
display: inline-flex;
align-items: center;
margin: 0 1rem 1.25rem 0;
@ -262,13 +264,15 @@
&.account {
padding: 8px;
.acct-inner-v3 {
.acct-inner-v3,
.acct-inner-v4 {
display: flex;
background-color: #f1f1f30d;
border-radius: $radius;
}
.acct-icon-v3 {
.acct-icon-v3,
.acct-icon-v4 {
display: flex;
align-content: center;
justify-content: center;
@ -283,7 +287,8 @@
}
}
.acct-label-v3 {
.acct-label-v3,
.acct-label-v4 {
display: inline-block;
padding: 8px 0px 0px 8px;
width: 165px;
@ -303,7 +308,8 @@
}
}
.nav-icon-v3 {
.nav-icon-v3,
.nav-icon-v4 {
display: flex;
justify-content: center;
align-items: center;
@ -312,7 +318,8 @@
flex-shrink: 0;
}
p.nav-label-v3 {
p.nav-label-v3,
p.nav-label-v4 {
display: inline-block;
margin: 0;
padding: 0;
@ -326,6 +333,9 @@
.cf-icon {
display: inline-block;
font-size: 1.35rem;
&.v3 {font-family: 'icomoon-v3'}
&.v4 {font-family: 'icomoon-v4'}
}
}
@ -338,4 +348,5 @@
@include media(small) {
.article--content.nav-item:nth-child(2) {display: none;}
.article--content.nav-item-v3:nth-child(2) {display: none;}
.article--content.nav-item-v4:nth-child(2) {display: none;}
}

View File

@ -133,6 +133,133 @@
}
}
///////////////// Data model table in InfluxDB 2.4+ get started ////////////////
#series-diagram {
display: flex;
width: fit-content;
max-width: 100%;
margin: 1rem 3.25rem 1.75rem 0;
padding-right: 1.5rem;
border-right: 2px solid $tooltip-bg;
table {margin: 0;}
&:after {
content: "series";
top: 4rem;
right: -3.4rem;
}
& + #series-diagram {margin-bottom: 3rem;}
}
table tr.point{
border: 2px solid $tooltip-bg;
&:after {
content: "point";
bottom: -.8rem;
left: 1rem;
}
}
#series-diagram, table tr.point {
position: relative;
&:after {
color: $tooltip-text;
background: $tooltip-bg;
border-radius: $radius;
position: absolute;
font-size: .9rem;
font-weight: $medium;
padding: .2rem .5rem;
line-height: .9rem;
}
}
////////////// Line protocol anatomy in InfluxDB 2.4+ get started //////////////
#line-protocol-anatomy {
overflow: scroll;
margin: 3rem 0 2.5rem;
p {
padding: 3rem 0 2rem;
white-space: nowrap;
font-family: $code;
overflow: visible;
text-align: center;
span{
padding: .75rem 0 .75rem;
&.el {
position: relative;
border-top: 2px solid $tooltip-bg;
&:before{
display: block;
position: absolute;
font-family: $proxima;
font-size: .95rem;
color: $tooltip-bg;
font-weight: $medium;
top: -2.75rem;
left: 50%;
transform: translateX(-50%);
}
&:after{
content: "";
display: block;
position: absolute;
height: 1rem;
width: 2px;
top: -1rem;
left: 50%;
transform: translateX(-50%);
background: $tooltip-bg;
}
&.measurement:before{content: "measurement"}
&.tagset:before{content: "tag set"}
&.fieldset:before{content: "field set"}
&.timestamp:before{content: "timestamp"}
}
&.whitespace, &.comma{
position: relative;
border-bottom: 2px solid $tooltip-bg;
&:before{
white-space: nowrap;
display: block;
position: absolute;
font-family: $proxima;
font-size: .95rem;
color: $tooltip-bg;
font-weight: $medium;
bottom: -2.75rem;
left: 50%;
transform: translateX(-50%);
}
&:after{
content: "";
display: block;
position: absolute;
height: 1rem;
width: 2px;
bottom: -1rem;
left: 50%;
transform: translateX(-50%);
background: $tooltip-bg;
}
&.whitespace:before{content: attr(data-whitespace) " whitespace";}
&.comma:before{content: attr(data-whitespace) "1st comma";}
}
}
}
}
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////// MEDIA QUERIES ////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
@ -158,4 +285,8 @@
.shard-group { margin: .25rem 0;}
}
}
#series-diagram {
width: auto;
}
};

View File

@ -59,6 +59,25 @@
flex-grow: unset;
padding: .35rem 1rem;
}
.tab-view-output {
padding: .5rem .5rem 0;
font-size: .9rem;
opacity: .65;
font-style: italic;
transition: opacity .2s;
&:before {
content: "\e97a";
margin-right: 0.25em;
font-family: 'icomoon';
font-style: normal;
}
}
a.is-active + .tab-view-output {
opacity: 0;
}
}
// Style suggested for tabs that have uneven button widths because of wrapping.
&.even-wrap a {
@ -106,6 +125,8 @@
width: 100%;
margin-left: 0;
}
& table:last-child { margin-bottom: 0; }
}
.tab-content:not(:first-of-type) { display: none; }

View File

@ -77,6 +77,10 @@ p.table-group-key {
font-size: .95rem;
}
table + .table-group-key {
margin-top: -2rem;
}
// Reverse the order of InfluxDB version rows in Flux versions table
// Hugo doesn't support sorting maps (objects) by keys
table.flux-influxdb-versions tbody {

View File

@ -4,11 +4,22 @@
position: relative;
margin-bottom: 3.5rem;
.truncate-content {
overflow: hidden;
max-height: 9999px;
transition: max-height .4s;
&.closed {
min-height: 250px;
max-height: 25vh;
}
}
.truncate-bottom {
position: absolute;
bottom: -30px;
width: 100%;
z-index: 100%;
z-index: 100;
height: auto;
}
@ -31,12 +42,8 @@
color: $article-link;
}
}
&.closed {
min-height: 200px;
max-height: 25vh;
overflow: hidden;
margin-top: -1.5rem;
&.closed {
.truncate-bottom {
bottom: 0;
background-image: linear-gradient(to bottom, rgba($article-bg, 0), rgba($article-bg, 1));

View File

@ -35,4 +35,8 @@ body {
}
@import "tools/icon-fonts/icomoon-v2";
@import "tools/icon-fonts/icon";
@import "tools/icon-fonts/icon-v3";
@import "tools/icon-fonts/icon-v4";
.v3 {font-family: 'icomoon-v3'}
.v4 {font-family: 'icomoon-v4'}

View File

@ -8,7 +8,7 @@ $bold: 700;
.tooltip {
position: relative;
display: inline;
display: block;
font-weight: $medium;
color: $tooltip-color;

View File

@ -6,19 +6,19 @@
*/
@font-face {
font-family: 'icomoon';
src: url('fonts/icomoon.eot') format('embedded-opentype');
src: url('fonts/icomoon.eot') format('embedded-opentype'),
url('fonts/icomoon.woff2') format('woff2'),
url('fonts/icomoon.ttf') format('truetype'),
url('fonts/icomoon.woff') format('woff'),
url('fonts/icomoon.svg') format('svg');
font-family: 'icomoon-v3';
src: url('fonts/icomoon-v3.eot') format('embedded-opentype');
src: url('fonts/icomoon-v3.eot') format('embedded-opentype'),
url('fonts/icomoon-v3.woff2') format('woff2'),
url('fonts/icomoon-v3.ttf') format('truetype'),
url('fonts/icomoon-v3.woff') format('woff'),
url('fonts/icomoon-v3.svg') format('svg');
font-weight: normal;
font-style: normal;
}
.cf-icon {
font-family: 'icomoon' !important;
font-family: 'icomoon-v3';
font-style: normal;
font-weight: normal;
font-variant: normal;

View File

@ -0,0 +1,295 @@
/*
Icon Font
-----------------------------------------------------------------------------
Created using a tool called IcoMoon
See more at http://icomoon.io
*/
@font-face {
font-family: 'icomoon-v4';
src: url('fonts/icomoon-v4.eot') format('embedded-opentype');
src: url('fonts/icomoon-v4.eot') format('embedded-opentype'),
url('fonts/icomoon-v4.woff2') format('woff2'),
url('fonts/icomoon-v4.ttf') format('truetype'),
url('fonts/icomoon-v4.woff') format('woff'),
url('fonts/icomoon-v4.svg') format('svg');
font-weight: normal;
font-style: normal;
}
.cf-icon {
font-family: 'icomoon-v4';
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
// Better Font Rendering
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
&.FolderOpen:before {
content: '\e956';
}
&.Bill:before {
content: '\e954';
}
&.Logout:before {
content: '\e950';
}
&.PieChart:before {
content: '\e957';
}
&.CurrencyDollar:before {
content: '\e952';
}
&.Sync:before {
content: '\e955';
}
&.Subtract:before {
content: '\e953';
}
&.Timer:before {
content: '\e94f';
}
&.CaretOutlineRight:before {
content: '\e94b';
}
&.CollapseLeft:before {
content: '\e94c';
}
&.CollapseRight:before {
content: '\e94d';
}
&.DoubleCaretVertical:before {
content: '\e94e';
}
&.QuestionMark_Outline:before {
content: '\e94a';
}
&.Info_New:before {
content: '\e949';
}
&.SidebarClose:before {
content: '\e947';
}
&.SidebarOpen:before {
content: '\e948';
}
&.CaretDown_New:before {
content: '\e912';
}
&.CaretLeft_New:before {
content: '\e913';
}
&.CaretRight_New:before {
content: '\e914';
}
&.CaretUp_New:before {
content: '\e915';
}
&.Play:before {
content: '\e900';
}
&.Pause:before {
content: '\e901';
}
&.EyeOpen:before {
content: '\e902';
}
&.Flask:before {
content: '\e903';
}
&.AddCell_New:before {
content: '\e904';
}
&.QuestionMark:before {
content: '\e905';
}
&.AlertTriangle:before {
content: '\e906';
}
&.Annotate_New:before {
content: '\e907';
}
&.ArrowDown_New:before {
content: '\e908';
}
&.ArrowLeft_New:before {
content: '\e909';
}
&.ArrowRight_New:before {
content: '\e90a';
}
&.BarChart_New:before {
content: '\e90b';
}
&.Bell:before {
content: '\e90c';
}
&.BookCode:before {
content: '\e90d';
}
&.BookOutline:before {
content: '\e90e';
}
&.Braces:before {
content: '\e90f';
}
&.BucketSolid:before {
content: '\e910';
}
&.Calendar:before {
content: '\e911';
}
&.Chat:before {
content: '\e916';
}
&.Checkmark_New:before {
content: '\e917';
}
&.CircleThick:before {
content: '\e918';
}
&.Clipboard_New:before {
content: '\e919';
}
&.Clock_New:before {
content: '\e91a';
}
&.Cloud:before {
content: '\e91b';
}
&.CogOutline_New:before {
content: '\e91c';
}
&.CogSolid_New:before {
content: '\e91d';
}
&.Coppercoin:before {
content: '\e91e';
}
&.CrownSolid_New:before {
content: '\e91f';
}
&.Cube:before {
content: '\e920';
}
&.CuboSolid:before {
content: '\e921';
}
&.Cubouniform:before {
content: '\e922';
}
&.Darkmode_New:before {
content: '\e923';
}
&.DashH:before {
content: '\e924';
}
&.Download_New:before {
content: '\e925';
}
&.ExpandB:before {
content: '\e926';
}
&.Export_New:before {
content: '\e927';
}
&.EyeClosed:before {
content: '\e928';
}
&.FunnelSolid:before {
content: '\e929';
}
&.GraphLine_New:before {
content: '\e92a';
}
&.Group:before {
content: '\e92b';
}
&.History:before {
content: '\e92c';
}
&.Duplicate_New:before {
content: '\e92d';
}
&.Install:before {
content: '\e92e';
}
&.Layers:before {
content: '\e92f';
}
&.Lightmode_New:before {
content: '\e930';
}
&.Link:before {
content: '\e931';
}
&.Lock:before {
content: '\e932';
}
&.More:before {
content: '\e933';
}
&.Pencil:before {
content: '\e934';
}
&.Plus_New:before {
content: '\e935';
}
&.Refresh_New:before {
content: '\e936';
}
&.Remove_New:before {
content: '\e937';
}
&.Save:before {
content: '\e938';
}
&.SaveOutline:before {
content: '\e951';
}
&.Search_New:before {
content: '\e939';
}
&.Share:before {
content: '\e93a';
}
&.Shield:before {
content: '\e93b';
}
&.Star:before {
content: '\e93c';
}
&.StarSmile:before {
content: '\e93d';
}
&.Subscribe:before {
content: '\e93e';
}
&.Switch_New:before {
content: '\e93f';
}
&.Text_New:before {
content: '\e940';
}
&.Trash_New:before {
content: '\e941';
}
&.Undo:before {
content: '\e942';
}
&.Upload_New:before {
content: '\e943';
}
&.Upload_Outline:before {
content: '\e944';
}
&.User:before {
content: '\e945';
}
&.Zap:before {
content: '\e946';
}
}

View File

@ -18,6 +18,8 @@ This is a paragraph. Lorem ipsum dolor ({{< icon "trash" "v2" >}}) sit amet, con
This is **bold** text. This is _italic_ text. This is _**bold and italic**_.
### Clockface 3.x icons
{{< nav-icon "account" "v2" >}}
{{< nav-icon "data" "v2" >}}
{{< nav-icon "explore" "v2" >}}
@ -92,6 +94,89 @@ This is **bold** text. This is _italic_ text. This is _**bold and italic**_.
{{< icon "x" "v2" >}} x
### Clockface 3.x icons
{{< nav-icon "account" "v3" >}}
{{< nav-icon "data" "v3" >}}
{{< nav-icon "explore" "v3" >}}
{{< nav-icon "boards" "v3" >}}
{{< nav-icon "tasks" "v3" >}}
{{< nav-icon "alerts" "v3" >}}
{{< 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
### Clockface 4.x icons
{{< nav-icon "account" >}}
{{< nav-icon "data" >}}
{{< nav-icon "explore" >}}
@ -140,8 +225,6 @@ This is **bold** text. This is _italic_ text. This is _**bold and italic**_.
{{< icon "move" >}} move
{{< icon "move-cell" >}} move-cell
{{< icon "nav-admin" >}} nav-admin
{{< icon "nav-config" >}} nav-config
{{< icon "nav-configuration" >}} nav-configuration
{{< icon "nav-dashboards" >}} nav-dashboards
{{< icon "nav-data-explorer" >}} nav-data-explorer
{{< icon "nav-organizations" >}} nav-organizations
@ -167,9 +250,7 @@ This is **bold** text. This is _italic_ text. This is _**bold and italic**_.
{{< icon "toggle" >}} toggle
{{< icon "trash" >}} trash
{{< icon "trashcan" >}} trashcan
{{< icon "triangle" >}} triangle
{{< icon "view" >}} view
{{< icon "wrench" >}} wrench
{{< icon "x" >}} x
## h2 This is a header2

View File

@ -1,71 +0,0 @@
---
title: Get started with InfluxDB
description: >
Start collecting, processing, and visualizing data in InfluxDB OSS.
menu:
influxdb_2_4:
name: Get started
weight: 3
influxdb/v2.4/tags: [get-started]
aliases:
- /influxdb/v2.4/introduction/get-started/
---
After you've [installed InfluxDB OSS](/influxdb/v2.4/install/), you're ready to get started. Explore the following ways to work with your data:
- [Collect and write data](#collect-and-write-data)
- [Query data](#query-data)
- [Process data](#process-data)
- [Visualize data](#visualize-data)
- [Monitor and alert](#monitor-and-alert)
*Note:** To run InfluxDB, start the `influxd` daemon ([InfluxDB service](/influxdb/v2.4/reference/cli/influxd/)) using the [InfluxDB command line interface](/influxdb/v2.4/reference/cli/influx/). Once you've started the `influxd` daemon, use `localhost:8086` to log in to your InfluxDB instance.
To start InfluxDB, do the following:
1. Open a terminal.
2. Type `influxd` in the command line.
```sh
influxd
```
### Collect and write data
Collect and write data to InfluxDB using the Telegraf plugins, the InfluxDB v2 API, the `influx` command line interface (CLI), the InfluxDB UI (the user interface for InfluxDB 2.4), or the InfluxDB v2 API client libraries.
#### Use Telegraf
Use Telegraf to quickly write data to {{< cloud-name >}}.
Create new Telegraf configurations automatically in the InfluxDB UI, or manually update an existing Telegraf configuration to send data to your {{< cloud-name "short" >}} instance.
For details, see [Automatically configure Telegraf](/influxdb/v2.4/write-data/no-code/use-telegraf/auto-config/)
and [Manually update Telegraf configurations](/influxdb/v2.4/write-data/no-code/use-telegraf/manual-config/).
#### Scrape data
**InfluxDB OSS** lets you scrape Prometheus-formatted metrics from HTTP endpoints. For details, see [Scrape data](/influxdb/v2.4/write-data/no-code/scrape-data/).
#### API, CLI, and client libraries
For information about using the InfluxDB v2 API, `influx` CLI, and client libraries to write data, see [Write data to InfluxDB](/influxdb/v2.4/write-data/).
### Query data
Query data using Flux, the UI, and the `influx` command line interface.
See [Query data](/influxdb/v2.4/query-data/).
### Process data
Use InfluxDB tasks to process and downsample data. See [Process data](/influxdb/v2.4/process-data/).
### Visualize data
Build custom dashboards to visualize your data.
See [Visualize data](/influxdb/v2.4/visualize-data/).
### Monitor and alert
Monitor your data and sends alerts based on specified logic.
See [Monitor and alert](/influxdb/v2.4/monitor-alert/).
{{< influxdbu "influxdb-101" >}}

View File

@ -0,0 +1,118 @@
---
title: Get started with InfluxDB
list_title: Get started
description: >
Start collecting, querying, processing, and visualizing data in InfluxDB OSS.
menu:
influxdb_2_4:
name: Get started
weight: 3
influxdb/v2.4/tags: [get-started]
aliases:
- /influxdb/v2.4/introduction/get-started/
---
InfluxDB {{< current-version >}} is the platform purpose-built to collect, store,
process and visualize time series data.
**Time series data** is a sequence of data points indexed in time order.
Data points typically consist of successive measurements made from the same
source and are used to track changes over time.
Examples of time series data include:
- Industrial sensor data
- Server performance metrics
- Heartbeats per minute
- Electrical activity in the brain
- Rainfall measurements
- Stock prices
This multi-part tutorial walks you through writing time series data to InfluxDB {{< current-version >}},
querying that data, processing and alerting on the data, and then visualizing the data.
## Key concepts before you get started
Before you get started using InfluxDB, it's important to understand how time series
data is organized and stored in InfluxDB and some key definitions that are used
throughout this documentation.
### Data organization
The InfluxDB data model organizes time series data into buckets and measurements.
A bucket can contain multiple measurements. Measurements contain multiple
tags and fields.
- **Bucket**: Named location where time series data is stored.
A bucket can contain multiple _measurements_.
- **Measurement**: Logical grouping for time series data.
All _points_ in a given measurement should have the same _tags_.
A measurement contains multiple _tags_ and _fields_.
- **Tags**: Key-value pairs with values that differ, but do not change often.
Tags are meant for storing metadata for each point--for example,
something to identify the source of the data like host, location, station, etc.
- **Fields**: Key-value pairs with values that change over time--for example: temperature, pressure, stock price, etc.
- **Timestamp**: Timestamp associated with the data.
When stored on disk and queried, all data is ordered by time.
_For detailed information and examples of the InfluxDB data model, see
[Data elements](/influxdb/v2.4/reference/key-concepts/data-elements/)._
### Important definitions
The following are important definitions to understand when using InfluxDB:
- **Point**: Single data record identified by its _measurement, tag keys, tag values, field key, and timestamp_.
- **Series**: A group of points with the same
{{% oss-only %}}_measurement, tag keys, and tag values_.{{% /oss-only %}}
{{% cloud-only %}}_measurement, tag keys and values, and field key_.{{% /cloud-only %}}
##### Example InfluxDB query results
{{< influxdb/points-series >}}
## Tools to use
Throughout this tutorial, there are multiple tools you can use to interact with
InfluxDB {{< current-version >}}. Examples are provided for each of the following:
- [InfluxDB user interface (UI)](#influxdb-user-interface-ui)
- [`influx` CLI](#influx-cli)
- [InfluxDB HTTP API](#influxdb-http-api)
### InfluxDB user interface (UI)
The InfluxDB UI provides a web-based visual interface for interacting with and managing InfluxDB.
{{% oss-only %}}The UI is packaged with InfluxDB and runs as part of the InfluxDB service. To access the UI, with InfluxDB running, visit [localhost:8086](http://localhost:8086) in your browser.{{% /oss-only %}}
{{% cloud-only %}}To access the InfluxDB Cloud UI, [log into your InfluxDB Cloud account](https://cloud2.influxdata.com).{{% /cloud-only %}}
### `influx` CLI
The `influx` CLI lets you interact with and manage InfluxDB {{< current-version >}} from a command line.
{{% oss-only %}}The CLI is packaged separately from InfluxDB and must be downloaded and installed separately.{{% /oss-only %}}
For detailed CLI installation instructions, see
[Use the influx CLI](/influxdb/v2.4/tools/influx-cli/).
### InfluxDB HTTP API
The [InfluxDB API](/influxdb/v2.4/reference/api/) provides a simple way to
interact with the InfluxDB {{< current-version >}} using HTTP(S) clients.
Examples in this tutorial use cURL, but any HTTP(S) client will work.
{{% note %}}
#### InfluxDB client libraries
[InfluxDB client libraries](/influxdb/v2.4/api-guide/client-libraries/) are
language-specific clients that interact with the InfluxDB HTTP API.
Examples for client libraries are not provided in this tutorial, but these can
be used to perform all the actions outlined in this tutorial.
{{% /note %}}
## Authorization
**InfluxDB {{< current-version >}} requires authentication** using [API tokens](/influxdb/v2.4/security/tokens/).
Each API token is associated with a user and a specific set of permissions for InfluxDB resources.
{{< page-nav next="/influxdb/v2.4/get-started/setup/" >}}
---
{{< influxdbu "influxdb-101" >}}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,603 @@
---
title: Get started querying data
seotitle: Query data | Get started with InfluxDB
list_title: Query data
description: >
Get started querying data in InfluxDB by learning about Flux and InfluxQL and
using tools like the InfluxDB UI, `influx` CLI, and InfluxDB API.
menu:
influxdb_2_4:
name: Query data
parent: Get started
identifier: get-started-query-data
weight: 102
metadata: [3 / 5]
related:
- /influxdb/v2.4/query-data/
---
InfluxDB supports many different tools for querying data, including:
- InfluxDB user interface (UI)
- [InfluxDB HTTP API](/influxdb/v2.4/reference/api/)
- [`influx` CLI](/influxdb/v2.4/tools/influx-cli/)
- [Chronograf](/{{< latest "Chronograf" >}}/)
- [Grafana](/influxdb/v2.4/tools/grafana/)
- [InfluxDB client libraries](/influxdb/v2.4/api-guide/client-libraries/)
This tutorial walks you through the fundamentals of querying data in InfluxDB and
focuses primarily on the two languages you can use to query your time series data:
- **Flux**: A functional scripting language designed to query and process data
from InfluxDB and other data sources.
- **InfluxQL**: A SQL-like query language designed to query time series data from
InfluxDB.
{{% note %}}
The examples in this section of the tutorial query the data from written in the
[Get started writing data](/influxdb/v2.4/get-started/write/#write-line-protocol-to-influxdb) section.
{{% /note %}}
###### On this page:
- [Query data with Flux](#query-data-with-flux)
- [Flux query basics](#flux-query-basics)
- [Execute a Flux query](#execute-a-flux-query)
- [Query data with InfluxQL](#query-data-with-influxql)
- [InfluxQL query basics](#influxql-query-basics)
- [Execute an InfluxQL query](#execute-an-influxql-query)
---
## Query data with Flux
Flux is a functional scripting language that lets you query and process data
from InfluxDB and [other data sources](/flux/v0.x/query-data/).
{{% note %}}
This is a brief introduction to writing Flux queries.
For a more in-depth introduction, see [Get started with Flux](/{{< latest "flux" >}}/get-started/).
{{% /note %}}
### Flux query basics
When querying InfluxDB with Flux, there are three primary functions you use:
- [from()](/{{< latest "flux" >}}/stdlib/influxdata/influxdb/from/):
Queries data from an InfluxDB bucket.
- [range()](/{{< latest "flux" >}}/stdlib/universe/range/):
Filters data based on time bounds. Flux requires "bounded" queries—queries
limited to a specific time range.
- [filter()](/{{< latest "flux" >}}/stdlib/universe/filter/):
Filters data based on column values. Each row is represented by `r`
and each column is represented by a property of `r`.
You can apply multiple subsequent filters.
To see how `from()` structures data into rows and tables when returned from InfluxDB,
[view the data written in Get started writing to InfluxDB](/influxdb/v2.4/get-started/write/#view-the-written-data).
{{< expand-wrapper >}}
{{% expand "Learn more about how `filter()` works" %}}
[`filter()`](/{{< latest "flux" >}}/stdlib/universe/filter/) reads each row as a
[record](/flux/v0.x/data-types/composite/record/) named `r`.
In the `r` record, each key-value pair represents a column and its value.
For example:
```js
r = {
_time: 2020-01-01T00:00:00Z,
_measurement: "home",
room: "Kitchen",
_field: "temp",
_value: 21.0,
}
```
To filter rows, use [predicate expressions](/flux/v0.x/get-started/syntax-basics/#predicate-expressions)
to evaluate the values of columns. Given the row record above:
```javascript
(r) => r._measurement == "home" // Returns true
(r) => r.room == "Kitchen" // Returns true
(r) => r._field == "co" // Returns false
(r) => r._field == "co" or r._field == "temp" // Returns true
(r) => r._value <= 20.0 // Returns false
```
Rows that evaluate to `true` are included in the `filter()` output.
Rows that evaluate to `false` are dropped from the `filter()` output.
{{% /expand %}}
{{< /expand-wrapper >}}
#### Pipe-forward operator
Flux uses the pipe-forward operator (`|>`) to pipe the output of one function as
input the next function as input.
#### Query the example data
The following Flux query returns the **co**, **hum**, and **temp** fields stored in
the **home** measurement with timestamps **between 2022-01-01T08:00:00Z and 2022-01-01T20:00:01Z**.
```js
from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
```
### Execute a Flux query
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to execute Flux queries.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!--------------------------- BEGIN FLUX UI CONTENT --------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. In the left navigation bar, click **Data Explorer**.
{{< nav-icon "data-explorer" "v4" >}}
3. The InfluxDB Data Explorer provides two options for querying data with Flux:
- [Query Builder](#query-builder) _(default)_:
Visual query builder that lets you select the time range,
measurement, tags, and fields to query.
- [Script Editor](#script-editor):
In-browser code editor for composing and running Flux scripts.
---
#### Query builder
**To build and execute a Flux query with the query builder**:
1. In the **{{% caps %}}FROM{{% /caps %}}** column, select the bucket to query. For this tutorial,
select the **get-started** bucket.
2. In the next **filter** column, select **_measurement** from the
column dropdown menu, and then select the **home** measurement.
3. _(Optional)_ To query a specific field or fields, in the next **filter**
column, select **_field** from the column dropdown menu, and then
select the fields to query. In this tutorial, there are three
fields: **co**, **hum**, and **temp**.
4. _(Optional)_ To query by specific tag values, in the next **filter**
column, select then tag column from the column dropdown menu, and then
select the tag values to filter by. In this tutorial, the tag only
tag column is **room**.
5. _(Optional)_ In the **{{% caps %}}Aggregate Function{{% /caps %}}** pane,
select an aggregate or selector function to use to downsample the data.
The default aggregate function is `mean`.
6. In the time range dropdown menu, select **Custom Time Range**, and
select the following dates from the date selectors:
- **Start**: 2022-01-01 08:00:00
- **Stop**: 2022-01-01 20:00:01
_Note the addition of one second to the stop time. In Flux, stop
times are exclusive and will exclude points with that timestamp.
By adding one second, the query will include all points to
2022-01-01 20:00:00_.
7. Click **{{% caps %}}Submit{{% /caps %}}** to execute the query with the
selected filters and operations and display the result.
---
#### Script editor
**To write and execute a Flux query with the query builder**:
1. In the Data Explorer, click **{{% caps %}}Script Editor{{% /caps %}}**.
2. Write your Flux query in the Script Editor text field.
_**Note**: You can either hand-write the functions or you can use the function list
to the right of the script editor to search for and inject functions._
1. Use `from()` and specify the bucket to query with the `bucket` parameter.
For this tutorial, query the **get-started** bucket.
2. Use `range()` to specify the time range to query. The `start`
parameter defines the earliest time to include in results.
The `stop` parameter specifies the latest time (exclusively) to
include in results.
- **start**: 2022-01-01T08:00:00Z
- **stop**: 2022-01-01T20:00:01Z
_Note the addition of one second to the stop time. In Flux, stop
times are exclusive and will exclude points with that timestamp.
By adding one second, the query will include all points to
2022-01-01 20:00:00_.
If you want to use the start and stop times selected in the time
selection dropdown menu, use `v.timeRangeStart` and `v.timeRangeStop`
as the values for the `start` and `stop` parameters.
3. Use `filter()` to filter results by the **home** measurement.
4. _(Optional)_ Use `filter()` to filter results by a specific field.
In this tutorial, there are three fields: **co**, **hum**, and **temp**.
5. _(Optional)_ Use `filter()` to filter results by specific
tag values. In this tutorial, there is one tag, **room**, with two
potential values: **Living Room** or **Kitchen**.
```js
from(bucket: from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
```
3. Click **{{% caps %}}Submit{{% /caps %}}** to execute the query with the
selected filters and operations and display the result.
<!---------------------------- END FLUX UI CONTENT ---------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!-------------------------- BEGIN FLUX CLI CONTENT --------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.4/tools/influx-cli/).
2. Use the [`influx query` command](/influxdb/v2.4/reference/cli/influx/query/)
to query InfluxDB using Flux.
**Provide the following**:
- String-encoded Flux query.
- [Connection and authentication credentials](/influxdb/v2.4/get-started/setup/?t=influx+CLI#configure-authentication-credentials)
```sh
influx query '
from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
'
```
<!--------------------------- END FLUX CLI CONTENT ---------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!-------------------------- BEGIN FLUX API CONTENT --------------------------->
To query data from InfluxDB using Flux and the InfluxDB HTTP API, send a request
to the InfluxDB API [`/api/v2/query` endpoint](/influxdb/v2.4/api/#operation/PostQuery)
using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/query" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_TOKEN>
- **Content-Type**: application/vnd.flux
- **Accept**: application/csv
- _(Optional)_ **Accept-Encoding**: gzip
- **Query parameters**:
- **org**: InfluxDB organization name
- **Request body**: Flux query as plain text
The following example uses cURL and the InfluxDB API to query data with Flux:
```sh
curl --request POST \
"$INFLUX_HOST/api/v2/query?org=$INFLUX_ORG&bucket=get-started" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: application/vnd.flux" \
--header "Accept: application/csv" \
--data 'from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
'
```
{{% note %}}
The InfluxDB `/api/v2/query` endpoint returns query results in
[annotated CSV](/influxdb/v2.4/reference/syntax/annotated-csv/).
{{% /note %}}
<!--------------------------- END FLUX API CONTENT ---------------------------->
{{% /tab-content %}}
{{< /tabs-wrapper >}}
### Flux query results
{{< expand-wrapper >}}
{{% expand "View Flux query results" %}}
{{% note %}}
`_start` and `_stop` columns have been omitted.
These columns, by default, represent the query time bounds and are added by `range()`.
{{% /note %}}
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :------ | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T09:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T10:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T11:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T12:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T13:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T14:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T15:00:00Z | home | Kitchen | co | 3 |
| 2022-01-01T16:00:00Z | home | Kitchen | co | 7 |
| 2022-01-01T17:00:00Z | home | Kitchen | co | 9 |
| 2022-01-01T18:00:00Z | home | Kitchen | co | 18 |
| 2022-01-01T19:00:00Z | home | Kitchen | co | 22 |
| 2022-01-01T20:00:00Z | home | Kitchen | co | 26 |
| _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-01T11:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T12:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T13:00:00Z | home | Kitchen | hum | 36.5 |
| 2022-01-01T14:00:00Z | home | Kitchen | hum | 36.3 |
| 2022-01-01T15:00:00Z | home | Kitchen | hum | 36.2 |
| 2022-01-01T16:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T17:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T18:00:00Z | home | Kitchen | hum | 36.9 |
| 2022-01-01T19:00:00Z | home | Kitchen | hum | 36.6 |
| 2022-01-01T20:00:00Z | home | Kitchen | hum | 36.5 |
| _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-01T11:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T12:00:00Z | home | Kitchen | temp | 22.5 |
| 2022-01-01T13:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T14:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T15:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T16:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T18:00:00Z | home | Kitchen | temp | 23.3 |
| 2022-01-01T19:00:00Z | home | Kitchen | temp | 23.1 |
| 2022-01-01T20:00:00Z | home | Kitchen | temp | 22.7 |
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :---------- | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T09:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T10:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T11:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T12:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T13:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T14:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T15:00:00Z | home | Living Room | co | 1 |
| 2022-01-01T16:00:00Z | home | Living Room | co | 4 |
| 2022-01-01T17:00:00Z | home | Living Room | co | 5 |
| 2022-01-01T18:00:00Z | home | Living Room | co | 9 |
| 2022-01-01T19:00:00Z | home | Living Room | co | 14 |
| 2022-01-01T20:00:00Z | home | Living Room | co | 17 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T12:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T13:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T14:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T15:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T16:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T17:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T18:00:00Z | home | Living Room | hum | 36.2 |
| 2022-01-01T19:00:00Z | home | Living Room | hum | 36.3 |
| 2022-01-01T20:00:00Z | home | Living Room | hum | 36.4 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T12:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T13:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T14:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T15:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T16:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Living Room | temp | 22.6 |
| 2022-01-01T18:00:00Z | home | Living Room | temp | 22.8 |
| 2022-01-01T19:00:00Z | home | Living Room | temp | 22.5 |
| 2022-01-01T20:00:00Z | home | Living Room | temp | 22.2 |
{{% /expand %}}
{{< /expand-wrapper >}}
## Query data with InfluxQL
InfluxQL is a SQL-like query language similar to most SQL languages, but
specifically designed to query time series data from InfluxDB 0.x and 1.x.
{{% note %}}
#### Map databases and retention policies to buckets
Because InfluxQL was developed for earlier versions of InfluxDB, it depends on
**databases and retention policies** (DBRP) which have been replaced by
[buckets](/influxdb/v2.4/get-started/#data-organization) in InfluxDB {{< current-version >}}.
To use InfluxQL with InfluxDB {{< current-version >}}, first
[map database and retention policy (DBRP) combinations to an InfluxDB bucket](/influxdb/v2.4/query-data/influxql/dbrp/).
{{% /note %}}
### InfluxQL query basics
When querying InfluxDB with InfluxQL, the most basic query includes the following
statements and clauses:
- `SELECT`: Specify which fields and tags to query.
- `FROM`: Specify the measurement to query.
Use the measurement name or a fully-qualified measurement name which includes
the database and retention policy. For example: `db.rp.measurement`.
- `WHERE`: _(Optional)_ Filter data based on fields, tags, and time.
The following InfluxQL query returns the **co**, **hum**, and **temp** fields and
the **room** tag stored in the **home** measurement with timestamps
**between 2022-01-01T08:00:00Z and 2022-01-01T20:00:00Z**.
```sql
SELECT co,hum,temp,room FROM "get-started".autogen.home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'
```
{{% note %}}
These are just the fundamentals of the InfluxQL syntax.
For more in-depth information, see the [InfluxQL documentation](/influxdb/v2.4/query-data/influxql/).
{{% /note %}}
### Execute an InfluxQL query
Use the **`influx` CLI**, or **InfluxDB API** to execute InfluxQL queries.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------- BEGIN INFLUXQL UI CONTENT ------------------------->
{{% note %}}
#### The InflxuDB UI does not support InfluxQL
The InfluxDB {{< current-version >}} UI does not provide a way to query data with InfluxQL.
For a user interface that builds and executes InfluxQL queries, consider using
[Chronograf](/influxdb/v2.4/tools/chronograf/) or
[Grafana](/influxdb/v2.4/tools/grafana/) with InfluxDB {{< current-version >}}.
{{% /note %}}
<!-------------------------- END INFLUXQL UI CONTENT -------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!------------------------ BEGIN INFLUXQL CLI CONTENT ------------------------->
{{< cli/influx-creds-note >}}
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.4/tools/influx-cli/).
2. Use the [`influx v1 shell` command](/influxdb/v2.4/reference/cli/influx/v1/shell/)
to start an InfluxQL shell and query InfluxDB using InfluxQL.
Provide the following:
- [Connection and authentication credentials](/influxdb/v2.4/get-started/setup/?t=influx+CLI#configure-authentication-credentials)
```sh
influx v1 shell
```
3. Enter an InfluxQL query and press {{< keybind mac="return" other="Enter ↵" >}}.
```sql
SELECT co,hum,temp,room FROM "get-started".autogen.home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'
```
<!------------------------- END INFLUXQL CLI CONTENT -------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!------------------------ BEGIN INFLUXQL API CONTENT ------------------------->
To query data from InfluxDB using InfluxQL and the InfluxDB HTTP API, send a request
to the InfluxDB API [`/query` 1.X compatibility endpoint](/influxdb/v2.4/reference/api/influxdb-1x/query/)
using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/query" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_TOKEN>
- **Accept**: application/json
- _(Optional)_ **Accept-Encoding**: gzip
- **Query parameters**:
- **db**: Database to query.
- **rp**: Retention policy to query data from.
- **q**: InfluxQL query to execute.
- **epoch**: _(Optional)_ Return results with
[Unix timestamps](/influxdb/v2.4/reference/glossary/#unix-timestamp) of a
specified precision instead of [RFC3339 timestamps](/influxdb/v2.4/reference/glossary/#rfc3339-timestamp). The following precisions are available:
- `ns` - nanoseconds
- `u` or `µ` - microseconds
- `ms` - milliseconds
- `s` - seconds
- `m` - minutes
- `h` - hours
- **Request body**: Flux query as plain text
The following example uses cURL and the InfluxDB API to query data with InfluxQL:
```sh
curl --get "$INFLUX_HOST/query?org=$INFLUX_ORG&bucket=get-started" \
--header "Authorization: Token $INFLUX_TOKEN" \
--data-urlencode "db=get-started" \
--data-urlencode "rp=autogen" \
--data-urlencode "q=SELECT co,hum,temp,room FROM home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'"
```
{{% note %}}
The InfluxDB `/write` 1.x compatibility endpoint returns query results in JSON format.
{{% /note %}}
<!------------------------- END INFLUXQL API CONTENT -------------------------->
{{% /tab-content %}}
{{< /tabs-wrapper >}}
### InfluxQL query results
{{< expand-wrapper >}}
{{% expand "View InfluxQL query results" %}}
| time | room | co | hum | temp |
| :------------------- | :---------- | --: | ---: | ---: |
| 2022-01-01T08:00:00Z | Kitchen | 0 | 35.9 | 21 |
| 2022-01-01T08:00:00Z | Living Room | 0 | 35.9 | 21.1 |
| 2022-01-01T09:00:00Z | Kitchen | 0 | 36.2 | 23 |
| 2022-01-01T09:00:00Z | Living Room | 0 | 35.9 | 21.4 |
| 2022-01-01T10:00:00Z | Kitchen | 0 | 36.1 | 22.7 |
| 2022-01-01T10:00:00Z | Living Room | 0 | 36 | 21.8 |
| 2022-01-01T11:00:00Z | Kitchen | 0 | 36 | 22.4 |
| 2022-01-01T11:00:00Z | Living Room | 0 | 36 | 22.2 |
| 2022-01-01T12:00:00Z | Kitchen | 0 | 36 | 22.5 |
| 2022-01-01T12:00:00Z | Living Room | 0 | 35.9 | 22.2 |
| 2022-01-01T13:00:00Z | Kitchen | 1 | 36.5 | 22.8 |
| 2022-01-01T13:00:00Z | Living Room | 0 | 36 | 22.4 |
| 2022-01-01T14:00:00Z | Kitchen | 1 | 36.3 | 22.8 |
| 2022-01-01T14:00:00Z | Living Room | 0 | 36.1 | 22.3 |
| 2022-01-01T15:00:00Z | Kitchen | 3 | 36.2 | 22.7 |
| 2022-01-01T15:00:00Z | Living Room | 1 | 36.1 | 22.3 |
| 2022-01-01T16:00:00Z | Kitchen | 7 | 36 | 22.4 |
| 2022-01-01T16:00:00Z | Living Room | 4 | 36 | 22.4 |
| 2022-01-01T17:00:00Z | Kitchen | 9 | 36 | 22.7 |
| 2022-01-01T17:00:00Z | Living Room | 5 | 35.9 | 22.6 |
| 2022-01-01T18:00:00Z | Kitchen | 18 | 36.9 | 23.3 |
| 2022-01-01T18:00:00Z | Living Room | 9 | 36.2 | 22.8 |
| 2022-01-01T19:00:00Z | Kitchen | 22 | 36.6 | 23.1 |
| 2022-01-01T19:00:00Z | Living Room | 14 | 36.3 | 22.5 |
| 2022-01-01T20:00:00Z | Kitchen | 26 | 36.5 | 22.7 |
| 2022-01-01T20:00:00Z | Living Room | 17 | 36.4 | 22.2 |
{{% /expand %}}
{{< /expand-wrapper >}}
**Congratulations!** You've learned the basics of querying data in InfluxDB.
For a deep dive into all the ways you can query InfluxDB, see the
[Query data in InfluxDB](/influxdb/v2.4/query-data/) section of documentation.
Let's move on to more advanced data processing queries and automating queries
with InfluxDB tasks.
{{< page-nav prev="/influxdb/v2.4/get-started/write/" next="/influxdb/v2.4/get-started/process/" keepTab=true >}}

View File

@ -0,0 +1,457 @@
---
title: Set up InfluxDB
seotitle: Set up InfluxDB | Get started with InfluxDB
list_title: Set up InfluxDB
description: >
Learn how to set up InfluxDB for the "Get started with InfluxDB" tutorial.
menu:
influxdb_2_4:
name: Set up InfluxDB
parent: Get started
identifier: get-started-set-up
weight: 101
metadata: [1 / 5]
related:
- /influxdb/v2.4/install/
- /influxdb/v2.4/reference/config-options/
- /influxdb/v2.4/security/tokens/
- /influxdb/v2.4/organizations/buckets/
- /influxdb/v2.4/tools/influx-cli/
- /influxdb/v2.4/reference/api/
---
As you get started with this tutorial, do the following to make sure everything
you need is in place.
1. If you haven't already, [download and install InfluxDB](/influxdb/v2.4/install/).
Installation instructions depend on your operating system.
Be sure to go through the installation and initialization process fully.
2. **Start InfluxDB**.
Run the `influxd` daemon to start the InfluxDB service, HTTP API, and
user interface (UI).
```sh
influxd
```
{{% note %}}
#### Configure InfluxDB
There are multiple ways to custom-configure InfluxDB.
For information about what configuration options are available and how to set them,
see [InfluxDB configuration options](/influxdb/v2.4/reference/config-options/).
{{% /note %}}
Once running, the InfluxDB UI is accessible at [localhost:8086](http://localhost:8086).
3. {{< req text="(Optional)" color="magenta" >}} **Download, install, and configure the `influx` CLI**.
The `influx` CLI provides a simple way to interact with InfluxDB from a
command line. For detailed installation and setup instructions,
see [Use the influx CLI](/influxdb/v2.4/tools/influx-cli/).
4. {{< req text="(Optional)" color="magenta" >}} **Create an All Access API token.**
<span id="create-an-all-access-api-token"></span>
During the InfluxDB initialization process, you created a user and API token
that has permissions to manage everything in your InfluxDB instance.
This is known as an **Operator token**. While you can use your Operator token
to interact with InfluxDB, we recommend creating an **all access token** that
is scoped to an organization.
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to create an
all access token.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. Navigate to **Load Data** > **API Tokens** using the left navigation bar.
3. Click **+ {{% caps %}}Generate API token{{% /caps %}}** and select
**All Access API Token**.
4. Enter a description for the API token and click **{{< icon "check" >}} {{% caps %}}Save{{% /caps %}}**.
5. Copy the generated token and store it for safe keeping.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.4/tools/influx-cli/).
2. Use the [`influx auth create` command](/influxdb/v2.4/reference/cli/influx/auth/create/)
to create an all access token.
**Provide the following**:
- `--all-access` flag
- `--host` flag with your [InfluxDB host URL](/influxdb/v2.4/reference/urls/)
- `-o, --org` or `--org-id` flags with your InfluxDB organization name or
[ID](/influxdb/v2.4/organizations/view-orgs/#view-your-organization-id)
- `-t, --token` flag with your Operator token
```sh
influx auth create \
--all-access \
--host http://localhost:8086 \
--org <YOUR_INFLUXDB_ORG_NAME> \
--token <YOUR_INFLUXDB_OPERATOR_TOKEN>
```
3. Copy the generated token and store it for safe keeping.
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
Send a request to the InfluxDB API `/api/v2/authorizations` endpoint using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/authorizations" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_OPERATOR_TOKEN>
- **Content-Type**: application/json
- **Request body**: JSON body with the following properties:
- **status**: `"active"`
- **description**: API token description
- **orgID**: [InfluxDB organization ID](/influxdb/v2.4/organizations/view-orgs/#view-your-organization-id)
- **permissions**: Array of objects where each object represents permissions
for an InfluxDB resource type or a specific resource. Each permission contains the following properties:
- **action**: "read" or "write"
- **resource**: JSON object that represents the InfluxDB resource to grant
permission to. Each resource contains at least the following properties:
- **orgID**: [InfluxDB organization ID](/influxdb/v2.4/organizations/view-orgs/#view-your-organization-id)
- **type**: Resource type.
_For information about what InfluxDB resource types exist, use the
[`/api/v2/resources` endpoint](/influxdb/v2.4/api/#operation/GetResources)._
The following example uses cURL and the InfluxDB API to generate an all access token:
{{% truncate %}}
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_OPERATOR_TOKEN>
curl --request POST \
"$INFLUX_HOST/api/v2/authorizations" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: text/plain; charset=utf-8" \
--data '{
"status": "active",
"description": "All access token for get started tutorial",
"orgID": "'"$INFLUX_ORG_ID"'",
"permissions": [
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "authorizations"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "authorizations"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "buckets"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "buckets"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dashboards"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dashboards"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "orgs"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "orgs"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "sources"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "sources"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "tasks"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "tasks"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "telegrafs"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "telegrafs"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "users"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "users"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "variables"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "variables"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "scrapers"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "scrapers"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "secrets"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "secrets"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "labels"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "labels"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "views"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "views"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "documents"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "documents"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationRules"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationRules"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationEndpoints"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationEndpoints"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "checks"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "checks"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dbrp"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dbrp"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notebooks"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notebooks"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "annotations"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "annotations"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "remotes"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "remotes"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "replications"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "replications"}}
]
}
'
```
{{% /truncate %}}
The response body contains a JSON object with the following properties:
- **id**: API Token ID
- **token**: API Token ({{< req "Important" >}})
- **status**: Token status
- **description**: Token description
- **orgID**: InfluxDB organization ID the token is associated with
- **org**: InfluxDB organization name the token is associated with
- **userID**: User ID the token is associated with
- **user**: Username the token is associated with
- **permissions**: List of permissions for organization resources
**Copy the generated `token` and store it for safe keeping.**
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
{{% note %}}
We recommend using a password manager or a secret store to securely store
sensitive tokens.
{{% /note %}}
5. **Configure authentication credentials**. <span id="configure-authentication-credentials"></span>
As you go through this tutorial, interactions with InfluxDB {{< current-version >}}
require your InfluxDB **host**, **organization name or ID**, and your **API token**.
There are different methods for providing these credentials depending on
which client you use to interact with InfluxDB.
{{% note %}}
When configuring your token, if you [created an all access token](#create-an-all-access-api-token),
use that token to interact with InfluxDB. Otherwise, use your operator token.
{{% /note %}}
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
When managing InfluxDB through the InfluxDB UI, authentication credentials are
provided automatically using credentials associated with the user you log in with.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
There are three ways to provided authentication credentials to the `influx` CLI:
{{< expand-wrapper >}}
{{% expand "CLI connection configurations <em>(<span class=\"req\">Recommended</span>)</em>" %}}
The `influx` CLI lets you specify connection configuration presets that let
you store and quickly switch between multiple sets of InfluxDB connection
credentials. Use the [`influx config create` command](/influxdb/v2.4/reference/cli/influx/config/create/)
to create a new CLI connection configuration. Include the following flags:
- `-n, --config-name`: Connection configuration name. This examples uses `get-started`.
- `-u, --host-url`: [InfluxDB host URL](/influxdb/v2.4/reference/urls/).
- `-o, --org`: InfluxDB organization name.
- `-t, --token`: InfluxDB API token.
```sh
influx config create \
--name get-started
--host-url http://localhost:8086
--org <YOUR_INFLUXDB_ORG_NAME>
--token <YOUR_INFLUXDB_API_TOKEN>
```
_For more information about CLI connection configurations, see
[Install and use the `influx` CLI](/influxdb/v2.4/tools/influx-cli/#set-up-the-influx-cli)._
{{% /expand %}}
{{% expand "Environment variables" %}}
The `influx` CLI checks for specific environment variables and, if present,
uses those environment variables to populate authentication credentials.
Set the following environment variables in your command line session:
- `INFLUX_HOST`: [InfluxDB host URL](/influxdb/v2.4/reference/urls/).
- `INFLUX_ORG`: InfluxDB organization name.
- `INFLUX_ORG_ID`: InfluxDB [organization ID](/influxdb/v2.4/organizations/view-orgs/#view-your-organization-id).
- `INFLUX_TOKEN`: InfluxDB API token.
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG=<YOUR_INFLUXDB_ORG_NAME>
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
```
{{% /expand %}}
{{% expand "Command flags" %}}
Use the following `influx` CLI flags to provide required credentials to commands:
- `--host`: [InfluxDB host URL](/influxdb/v2.4/reference/urls/).
- `-o`, `--org` or `--org-id`: InfluxDB organization name or
[ID](/influxdb/v2.4/organizations/view-orgs/#view-your-organization-id).
- `-t`, `--token`: InfluxDB API token.
{{% /expand %}}
{{< /expand-wrapper >}}
{{% note %}}
All `influx` CLI examples in this getting started tutorial assume your InfluxDB
**host**, **organization**, and **token** are provided by either the
[active `influx` CLI configuration](/influxdb/v2.4/reference/cli/influx/#provide-required-authentication-credentials)
or by environment variables.
{{% /note %}}
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
When using the InfluxDB API, provide the required connection credentials in the
following ways:
- **InfluxDB host**: The domain and port to send HTTP(S) requests to.
- **InfluxDB API Token**: Include an `Authorization` header that uses either
`Bearer` or `Token` scheme and your InfluxDB API token. For example:
`Authorization: Bearer 0xxx0o0XxXxx00Xxxx000xXXxoo0==`.
- **InfluxDB organization name or ID**: Depending on the API endpoint used, pass
this as part of the URL path, query string, or in the request body.
All API examples in this tutorial use **cURL** from a command line.
To provide all the necessary credentials to the example cURL commands, set
the following environment variables in your command line session.
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG=<YOUR_INFLUXDB_ORG_NAME>
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
```
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
6. {{< req text="(Optional)" color="magenta" >}} **Create a bucket**.
In the InfluxDB initialization process, you created a bucket.
You can use that bucket or create a new one specifically for this getting
started tutorial. All examples in this tutorial assume a bucket named
_get-started_.
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to create a
new bucket.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. Navigate to **Load Data** > **Buckets** using the left navigation bar.
3. Click **+ {{< caps >}}Create bucket{{< /caps >}}**.
4. Provide a bucket name (get-started) and select {{% caps %}}Never{{% /caps %}}
to create a bucket with an infinite [retention period](/influxdb/v2.4/reference/glossary/#retention-period).
5. Click **{{< caps >}}Create{{< /caps >}}**.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.4/tools/influx-cli/).
2. Use the [`influx bucket create` command](/influxdb/v2.4/reference/cli/influx/bucket/create/)
to create a new bucket.
**Provide the following**:
- `-n, --name` flag with the bucket name.
- [Connection and authentication credentials](#configure-authentication-credentials)
```sh
influx bucket create --name get-started
```
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
To create a bucket using the InfluxDB HTTP API, send a request to
the InfluxDB API `/api/v2/buckets` endpoint using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/buckets" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token `INFLUX_TOKEN`
- **Content-Type**: `application/json`
- **Request body**: JSON object with the following properties:
- **org**: InfluxDB organization name
- **name**: Bucket name
- **retentionRules**: List of retention rule objects that define the bucket's retention period.
Each retention rule object has the following properties:
- **type**: `"expire"`
- **everySeconds**: Retention period duration in seconds.
`0` indicates the retention period is infinite.
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
curl --request POST \
"$INFLUX_HOST/api/v2/buckets" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"orgID": "'"$INFLUX_ORG_ID"'",
"name": "get-started",
"retentionRules": [
{
"type": "expire",
"everySeconds": 0
}
]
}'
```
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
{{< page-nav prev="/influxdb/v2.4/get-started/" next="/influxdb/v2.4/get-started/write/" keepTab=true >}}

View File

@ -0,0 +1,186 @@
---
title: Get started visualizing data
seotitle: Visualize data | Get started with InfluxDB
list_title: Visualize data
description: >
...
menu:
influxdb_2_4:
name: Visualize data
parent: Get started
identifier: get-started-visualize-data
weight: 104
metadata: [5 / 5]
related:
- /influxdb/v2.4/visualize-data/
- /influxdb/v2.4/visualize-data/visualization-types/
- /influxdb/v2.4/tools/chronograf/
- /influxdb/v2.4/tools/grafana/
---
There are many tools you can use to visualize your time series data including the
InfluxDB user interface (UI), [Chronograf](), and
[Grafana](/influxdb/v2.4/tools/grafana/).
This tutorial walks you through using the **InfluxDB UI** to create a simple dashboard.
Dashboards are a powerful way of displaying time series data and can help to
identify trends and anomalies. A dashboard is comprised of one or more
dashboard cells. A **dashboard cell** visualizes the results of a query using
one of the available [visualization types](/influxdb/v2.4/visualize-data/visualization-types/).
- [Create a dashboard](#create-a-dashboard)
- [Create dashboard cells](#create-dashboard-cells)
- [Create and use dashboard variables](#create-and-use-dashboard-variables)
- [Create a custom dashboard variable](#create-a-custom-dashboard-variable)
- [Use a custom dashboard variable](#use-a-custom-dashboard-variable)
## Create a dashboard
1. With InfluxDB running, visit [localhost:8086](http://localhost:8086) in your
browser to access the InfluxDB UI.
2. Log in and select **Dashboards** in the left navigation bar.
{{< nav-icon "dashboards" >}}
3. Click **+ {{% caps %}}Create Dashboard{{% /caps %}}** and select **New Dashboard**.
4. Click _**Name this Dashboard**_ and provide a name for the dashboard.
For this tutorial, we'll use **"Getting Started Dashboard"**.
## Create dashboard cells
With your new dashboard created and named, add a new dashboard cell:
1. Click **{{< icon "add-cell" >}} {{% caps %}}Add Cell{{% /caps %}}**.
2. Click _**Name this Cell**_ and provide a name for the cell.
For this tutorial, we'll use **"Room temperature"**.
3. _(Optional)_ Select the visualization type from the visualization drop-down menu.
There are many different [visualization types](/influxdb/v2.4/visualize-data/visualization-types/)
available.
For this tutorial, use the default **Graph** visualization.
4. Use the query time range selector to select an absolute time range that
covers includes the time range of the
[data written in "Get started writing to InfluxDB"](/influxdb/v2.4/get-started/write/#view-the-written-data):
**2022-01-01T08:00:00Z** to **2022-01-01T20:00:01Z**.
1. The query time range selector defaults to querying data from the last hour
(**{{< icon "clock" >}} Past 1h**).
Click the time range selector drop-down menu and select **Custom Time Range**.
{{< expand-wrapper >}}
{{% expand "View time range selector" %}}
{{< img-hd src="/img/influxdb/2-4-get-started-visualize-time-range.png" alt="InfluxDB time range selector" />}}
{{% /expand %}}
{{< /expand-wrapper >}}
2. Use the date picker to select the stop and stop date and time or manually
enter the following start and stop times:
- **Start**: 2022-01-01 08:00:00
- **Stop**: 2022-01-01 20:00:01
3. Click **{{% caps %}}Apply Time Range{{% /caps %}}**.
5. Use the **Query Builder** to select the measurement, fields, and tags to query:
1. In the **{{% caps %}}From{{% /caps %}}** column, select the **get-started** bucket.
2. In the **Filter** column, select the **home** measurement.
3. In the next **Filter** column, select the **temp** field.
4. In the next **Filter** column, select the **room** tag and the **Kitchen** tag value.
6. Click **{{% caps %}}Submit{{% /caps %}}** to run the query and visualize the
results.
{{< img-hd src="/img/influxdb/2-4-get-started-visualize-query-builder.png" alt="InfluxDB Query Builder" />}}
7. Click **{{< icon "check" >}}** to save the cell and return to the dashboard.
## Create and use dashboard variables
InfluxDB dashboard cells use **dashboard variables** to dynamically change
specific parts of cell queries.
The query builder automatically builds queries using the following
[predefined dashboard variables](/influxdb/v2.4/visualize-data/variables/#predefined-dashboard-variables),
each controlled by selections in your dashboard:
- `v.timeRangeStart`: Start time of the queried time range specified by the time range selector.
- `v.timeRangeStop`: Stop time of the queried time range specified by the time range selector.
- `v.windowPeriod`: Window period used downsample data to one point per pixel in
a cell visualization. The value of this variable is determined by the pixel-width of the cell.
### Create a custom dashboard variable
Let's create a custom dashboard variable that we can use to change the field
displayed by your dashboard cell.
1. Select **Settings > Variables** in the left navigation bar.
{{< nav-icon "settings" >}}
2. Click **+ {{% caps %}}Create Variable{{% /caps %}}** and select **New Variable**.
3. Name your variable. For this tutorial, name the variable, **"room"**.
4. Select the default **Query** dashboard variable type.
This variable type uses the results of a query to populate the list of potential
variable values. _For information about the other dashboard variable types,
see [Variable types](/influxdb/v2.4/visualize-data/variables/variable-types/)._
5. Enter the following Flux query to return all the different `room` tag values
in your `get-started` bucket from the [Unix epoch](/influxdb/v2.4/reference/glossary/#unix-timestamp).
```js
import "influxdata/influxdb/schema"
schema.tagValues(bucket: "get-started", tag: "room", start: time(v: 0))
```
6. Click **{{% caps %}}Create Variable{{% /caps %}}**.
### Use a custom dashboard variable
1. Navigate to your **Getting Started Dashboard** by clicking **Dashboards** in
the left navigation bar and the clicking on the name of your dashboard.
{{< nav-icon "dashboards" >}}
2. Click the **{{< icon "gear" >}}** on the **Room temperature** cell and select
**{{< icon "pencil" >}} Configure**.
3. Click **{{% caps %}}Script Editor{{% /caps %}}** to edit the Flux query
directly.
4. On line 5 of the Flux query, replace `"Kitchen"` with `v.room` to use the
selected value of the `room` dashboard variable.
```js
from(bucket: "get-started")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "home")
|> filter(fn: (r) => r["_field"] == "temp")
|> filter(fn: (r) => r["room"] == v.room)
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")
```
5. Click **{{< icon "check" >}}** to save the cell and return to the dashboard.
6. Refresh the browser to reload the dashboard.
7. Use the **room variable** drop-down menu to select the room to display
recorded temperatures from.
{{< img-hd src="/img/influxdb/2-4-get-started-visualize-variable-select.png" alt="InfluxDB dashboard variable selection" />}}
_For more information about creating custom dashboard variables, see
[Use and manage dashboard variables](/influxdb/v2.4/visualize-data/variables/)._
{{< page-nav prev="/influxdb/v2.4/get-started/process/" >}}
---
## Congratulations!
You have walked through the
[basics of setting up, writing, querying, processing, and visualizing](/influxdb/v2.4/get-started/)
data with InfluxDB {{< current-version >}}.
Feel free to dive in deeper to each of these topics:
- [Write data to InfluxDB](/influxdb/v2.4/write-data/)
- [Query data in InfluxDB](/influxdb/v2.4/query-data/)
- [Process data with InfluxDB](/influxdb/v2.4/process-data/)
- [Visualize data with the InfluxDB UI](/influxdb/v2.4/visualize-data/)
If you have questions as you're getting started, reach out to us using the
available [Support and feedback](#bug-reports-and-feedback) channels.

View File

@ -0,0 +1,394 @@
---
title: Get started writing data
seotitle: Write data | Get started with InfluxDB
list_title: Write data
description: >
Get started writing data to InfluxDB by learning about line protocol and using
tools like the InfluxDB UI, `influx` CLI, and InfluxDB API.
menu:
influxdb_2_4:
name: Write data
parent: Get started
identifier: get-started-write-data
weight: 101
metadata: [2 / 5]
related:
- /influxdb/v2.4/write-data/
- /influxdb/v2.4/write-data/best-practices/
- /influxdb/v2.4/reference/syntax/line-protocol/
- /{{< latest "telegraf" >}}/
---
InfluxDB provides many different options for ingesting or writing data, including
the following:
- Influx user interface (UI)
- [InfluxDB HTTP API](/influxdb/v2.4/reference/api/)
- [`influx` CLI](/influxdb/v2.4/tools/influx-cli/)
- [Telegraf](/{{< latest "telegraf" >}}/)
- {{% cloud-only %}}[MQTT](/influxdb/cloud/write-data/no-code/native-subscriptions/){{% /cloud-only %}}
- [InfluxDB client libraries](/influxdb/v2.4/api-guide/client-libraries/)
This tutorial walks you through the fundamental of using **line protocol** to write
data to InfluxDB. If using tools like Telegraf or InfluxDB client libraries, they will
build the line protocol for you, but it's good to understand how line protocol works.
## Line protocol
All data written to InfluxDB is written using **line protocol**, a text-based
format that lets you provide the necessary information to write a data point to InfluxDB.
_This tutorial covers the basics of line protocol, but for detailed information,
see the [Line protocol reference](/influxdb/v2.4/reference/syntax/line-protocol/)._
### Line protocol elements
Each line of line protocol contains the following elements:
{{< req type="key" >}}
- {{< req "\*" >}} **measurement**: String that identifies the [measurement]() to store the data in.
- **tag set**: Comma-delimited list of key value pairs, each representing a tag.
Tag keys and values are unquoted strings. _Spaces and commas must be escaped._
- {{< req "\*" >}} **field set**: Comma-delimited list key value pairs, each representing a field.
Field keys are unquoted strings. _Spaces and commas must be escaped._
Field values can be [strings](/influxdb/v2.4/reference/syntax/line-protocol/#string) (quoted),
[floats](/influxdb/v2.4/reference/syntax/line-protocol/#float),
[integers](/influxdb/v2.4/reference/syntax/line-protocol/#integer),
[unsigned integers](/influxdb/v2.4/reference/syntax/line-protocol/#uinteger),
or [booleans](/influxdb/v2.4/reference/syntax/line-protocol/#boolean).
- **timestamp**: [Unix timestamp](/influxdb/v2.4/reference/syntax/line-protocol/#unix-timestamp)
associated with the data. InfluxDB supports up to nanosecond precision.
_If the precision if the timestamp is not in nanoseconds, you must specify the
precision when writing the data to InfluxDB._
#### Line protocol element parsing
- **measurement**: Everything before the _first unescaped comma before the first whitespace_.
- **tag set**: Key-value pairs between the _first unescaped comma_ and the _first unescaped whitespace_.
- **field set**: Key-value pairs between the _first and second unescaped whitespaces_.
- **timestamp**: Integer value after the _second unescaped whitespace_.
- Lines are separated by the newline character (`\n`).
Line protocol is whitespace sensitive.
---
{{< influxdb/line-protocol >}}
---
_For schema design recommendataions, see [InfluxDB schema design](/influxdb/v2.4/write-data/best-practices/schema-design/)._
## Construct line protocol
With a basic understanding of line protocol, you can now construct line protocol
and write data to InfluxDB.
Consider a use case where you collect data from sensors in your home.
Each sensor collects temperature, humidity, and carbon monoxide readings.
To collect this data, use the following schema:
- **measurement**: `home`
- **tags**
- `room`: Living Room or Kitchen
- **fields**
- `temp`: temperature in °C (float)
- `hum`: percent humidity (float)
- `co`: carbon monoxide in parts per million (integer)
- **timestamp**: Unix timestamp in _second_ precision
Data is collected hourly beginning at 2022-01-01T08:00:00Z (UTC) until 2022-01-01T20:00:00Z (UTC).
The resulting line protocol would look something like the following:
##### Home sensor data line protocol
```sh
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
```
## Write line protocol to InfluxDB
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to write the
line protocol above to InfluxDB.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. Navigate to **Load Data** > **Buckets** using the left navigation bar.
{{< nav-icon "load data" >}}
3. Click **{{< icon "plus" >}} {{< caps >}}Add Data{{< /caps >}}** on the bucket
you want to write the data to and select **Line Protocol**.
4. Select **{{< caps >}}Enter Manually{{< /caps >}}**.
5. {{< req "Important" >}} In the **Precision** drop-down menu above the line
protocol text field, select **Seconds** (to match to precision of the
timestamps in the line protocol).
6. Copy the [line protocol above](#home-sensor-data-line-protocol) and paste it
into the line protocol text field.
7. Click **{{< caps >}}Write Data{{< /caps >}}**.
The UI will confirm that the data has been written successfully.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.4/tools/influx-cli/).
2. Use the [`influx write` command](/influxdb/v2.4/reference/cli/influx/write/)
to write the [line protocol above](#home-sensor-data-line-protocol) to InfluxDB.
**Provide the following**:
- `-b, --bucket` or `--bucket-id` flag with the bucket name or ID to write do.
- `-p, --precision` flag with the timestamp precision (`s`).
- String-encoded line protocol.
- [Connection and authentication credentials](/influxdb/v2.4/get-started/setup/?t=influx+CLI#configure-authentication-credentials)
```sh
influx write \
--bucket get-started \
--precision s "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
"
```
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
To write data to InfluxDB using the InfluxDB HTTP API, send a request to
the InfluxDB API `/api/v2/write` endpoint using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/write" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_TOKEN>
- **Content-Type**: text/plain; charset=utf-8
- **Accept**: application/json
- **Query parameters**:
- **org**: InfluxDB organization name
- **bucket**: InfluxDB bucket name
- **precision**: timestamp precision (default is `ns`)
- **Request body**: Line protocol as plain text
The following example uses cURL and the InfluxDB API to write line protocol
to InfluxDB:
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG=<YOUR_INFLUXDB_ORG>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
curl --request POST \
"$INFLUX_HOST/api/v2/write?org=$INFLUX_ORG&bucket=get-started&precision=s" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: text/plain; charset=utf-8" \
--header "Accept: application/json" \
--data-binary "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
"
```
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
{{< expand-wrapper >}}
{{% expand "View the written data" %}}
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :------ | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T09:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T10:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T11:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T12:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T13:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T14:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T15:00:00Z | home | Kitchen | co | 3 |
| 2022-01-01T16:00:00Z | home | Kitchen | co | 7 |
| 2022-01-01T17:00:00Z | home | Kitchen | co | 9 |
| 2022-01-01T18:00:00Z | home | Kitchen | co | 18 |
| 2022-01-01T19:00:00Z | home | Kitchen | co | 22 |
| 2022-01-01T20:00:00Z | home | Kitchen | co | 26 |
| _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-01T11:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T12:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T13:00:00Z | home | Kitchen | hum | 36.5 |
| 2022-01-01T14:00:00Z | home | Kitchen | hum | 36.3 |
| 2022-01-01T15:00:00Z | home | Kitchen | hum | 36.2 |
| 2022-01-01T16:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T17:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T18:00:00Z | home | Kitchen | hum | 36.9 |
| 2022-01-01T19:00:00Z | home | Kitchen | hum | 36.6 |
| 2022-01-01T20:00:00Z | home | Kitchen | hum | 36.5 |
| _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-01T11:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T12:00:00Z | home | Kitchen | temp | 22.5 |
| 2022-01-01T13:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T14:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T15:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T16:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T18:00:00Z | home | Kitchen | temp | 23.3 |
| 2022-01-01T19:00:00Z | home | Kitchen | temp | 23.1 |
| 2022-01-01T20:00:00Z | home | Kitchen | temp | 22.7 |
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :---------- | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T09:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T10:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T11:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T12:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T13:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T14:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T15:00:00Z | home | Living Room | co | 1 |
| 2022-01-01T16:00:00Z | home | Living Room | co | 4 |
| 2022-01-01T17:00:00Z | home | Living Room | co | 5 |
| 2022-01-01T18:00:00Z | home | Living Room | co | 9 |
| 2022-01-01T19:00:00Z | home | Living Room | co | 14 |
| 2022-01-01T20:00:00Z | home | Living Room | co | 17 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T12:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T13:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T14:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T15:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T16:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T17:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T18:00:00Z | home | Living Room | hum | 36.2 |
| 2022-01-01T19:00:00Z | home | Living Room | hum | 36.3 |
| 2022-01-01T20:00:00Z | home | Living Room | hum | 36.4 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T12:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T13:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T14:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T15:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T16:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Living Room | temp | 22.6 |
| 2022-01-01T18:00:00Z | home | Living Room | temp | 22.8 |
| 2022-01-01T19:00:00Z | home | Living Room | temp | 22.5 |
| 2022-01-01T20:00:00Z | home | Living Room | temp | 22.2 |
{{% /expand %}}
{{< /expand-wrapper >}}
**Congratulations!** You have written data to InfluxDB. The method described
above is the manual way of writing data, but there are other options available:
- [Write data to InfluxDB using no-code solutions](/influxdb/v2.4/write-data/no-code/)
- [Write data to InfluxDB using developer tools](/influxdb/v2.4/write-data/developer-tools/)
With data now stored in InfluxDB, let's query it.
{{< page-nav prev="/influxdb/v2.4/get-started/setup/" next="/influxdb/v2.4/get-started/query/" keepTab=true >}}

View File

@ -128,6 +128,7 @@ option task = {
## Create a task using the InfluxDB API
{{% oss-only %}}
Use the [`/api/v2/tasks` InfluxDB API endpoint](/influxdb/v2.4/api/#operation/PostTasks) to create a task.
{{< api-endpoint method="POST" endpoint="http://localhost:8086/api/v2/tasks/" >}}

View File

@ -3,10 +3,10 @@ title: Query sample data
description: >
Explore InfluxDB OSS with our sample data buckets.
menu:
influxdb_2_4::
influxdb_2_4:
name: Query with sample data
parent: Execute queries
weight: 10
weight: 210
---
Use **InfluxDB OSS** sample datasets to quickly access data that lets you explore and familiarize yourself with InfluxDB Cloud without requiring you to have or write your own data.

View File

@ -57,7 +57,7 @@ To return the version of Flux installed with InfluxDB using the InfluxDB UI:
1. Click **Data Explorer** in the left navigation bar.
{{< nav-icon "data-explorer" >}}
{{< nav-icon "data-explorer" >}}
2. Click **{{% caps %}}Script Editor{{% /caps %}}** to manually create and
edit a Flux query.

View File

@ -37,7 +37,7 @@ using the InfluxDB user interface (UI).
{{< nav-icon "load-data" >}}
2. Click the **{{< icon "toggle-green" >}} Status** toggle.
2. Click the **{{< icon "toggle" >}} Status** toggle.
{{% /oss-only %}}

View File

@ -1,71 +0,0 @@
---
title: Get started with InfluxDB
description: >
Start collecting, processing, and visualizing data in InfluxDB OSS.
menu:
influxdb_2_5:
name: Get started
weight: 3
influxdb/v2.5/tags: [get-started]
aliases:
- /influxdb/v2.5/introduction/get-started/
---
After you've [installed InfluxDB OSS](/influxdb/v2.5/install/), you're ready to get started. Explore the following ways to work with your data:
- [Collect and write data](#collect-and-write-data)
- [Query data](#query-data)
- [Process data](#process-data)
- [Visualize data](#visualize-data)
- [Monitor and alert](#monitor-and-alert)
*Note:** To run InfluxDB, start the `influxd` daemon ([InfluxDB service](/influxdb/v2.5/reference/cli/influxd/)) using the [InfluxDB command line interface](/influxdb/v2.5/reference/cli/influx/). Once you've started the `influxd` daemon, use `localhost:8086` to log in to your InfluxDB instance.
To start InfluxDB, do the following:
1. Open a terminal.
2. Type `influxd` in the command line.
```sh
influxd
```
### Collect and write data
Collect and write data to InfluxDB using the Telegraf plugins, the InfluxDB v2 API, the `influx` command line interface (CLI), the InfluxDB UI (the user interface for InfluxDB 2.5), or the InfluxDB v2 API client libraries.
#### Use Telegraf
Use Telegraf to quickly write data to {{< cloud-name >}}.
Create new Telegraf configurations automatically in the InfluxDB UI, or manually update an existing Telegraf configuration to send data to your {{< cloud-name "short" >}} instance.
For details, see [Automatically configure Telegraf](/influxdb/v2.5/write-data/no-code/use-telegraf/auto-config/)
and [Manually update Telegraf configurations](/influxdb/v2.5/write-data/no-code/use-telegraf/manual-config/).
#### Scrape data
**InfluxDB OSS** lets you scrape Prometheus-formatted metrics from HTTP endpoints. For details, see [Scrape data](/influxdb/v2.5/write-data/no-code/scrape-data/).
#### API, CLI, and client libraries
For information about using the InfluxDB v2 API, `influx` CLI, and client libraries to write data, see [Write data to InfluxDB](/influxdb/v2.5/write-data/).
### Query data
Query data using Flux, the UI, and the `influx` command line interface.
See [Query data](/influxdb/v2.5/query-data/).
### Process data
Use InfluxDB tasks to process and downsample data. See [Process data](/influxdb/v2.5/process-data/).
### Visualize data
Build custom dashboards to visualize your data.
See [Visualize data](/influxdb/v2.5/visualize-data/).
### Monitor and alert
Monitor your data and sends alerts based on specified logic.
See [Monitor and alert](/influxdb/v2.5/monitor-alert/).
{{< influxdbu "influxdb-101" >}}

View File

@ -0,0 +1,118 @@
---
title: Get started with InfluxDB
list_title: Get started
description: >
Start collecting, querying, processing, and visualizing data in InfluxDB OSS.
menu:
influxdb_2_5:
name: Get started
weight: 3
influxdb/v2.5/tags: [get-started]
aliases:
- /influxdb/v2.5/introduction/get-started/
---
InfluxDB {{< current-version >}} is the platform purpose-built to collect, store,
process and visualize time series data.
**Time series data** is a sequence of data points indexed in time order.
Data points typically consist of successive measurements made from the same
source and are used to track changes over time.
Examples of time series data include:
- Industrial sensor data
- Server performance metrics
- Heartbeats per minute
- Electrical activity in the brain
- Rainfall measurements
- Stock prices
This multi-part tutorial walks you through writing time series data to InfluxDB {{< current-version >}},
querying that data, processing and alerting on the data, and then visualizing the data.
## Key concepts before you get started
Before you get started using InfluxDB, it's important to understand how time series
data is organized and stored in InfluxDB and some key definitions that are used
throughout this documentation.
### Data organization
The InfluxDB data model organizes time series data into buckets and measurements.
A bucket can contain multiple measurements. Measurements contain multiple
tags and fields.
- **Bucket**: Named location where time series data is stored.
A bucket can contain multiple _measurements_.
- **Measurement**: Logical grouping for time series data.
All _points_ in a given measurement should have the same _tags_.
A measurement contains multiple _tags_ and _fields_.
- **Tags**: Key-value pairs with values that differ, but do not change often.
Tags are meant for storing metadata for each point--for example,
something to identify the source of the data like host, location, station, etc.
- **Fields**: Key-value pairs with values that change over time--for example: temperature, pressure, stock price, etc.
- **Timestamp**: Timestamp associated with the data.
When stored on disk and queried, all data is ordered by time.
_For detailed information and examples of the InfluxDB data model, see
[Data elements](/influxdb/v2.5/reference/key-concepts/data-elements/)._
### Important definitions
The following are important definitions to understand when using InfluxDB:
- **Point**: Single data record identified by its _measurement, tag keys, tag values, field key, and timestamp_.
- **Series**: A group of points with the same
{{% oss-only %}}_measurement, tag keys, and tag values_.{{% /oss-only %}}
{{% cloud-only %}}_measurement, tag keys and values, and field key_.{{% /cloud-only %}}
##### Example InfluxDB query results
{{< influxdb/points-series >}}
## Tools to use
Throughout this tutorial, there are multiple tools you can use to interact with
InfluxDB {{< current-version >}}. Examples are provided for each of the following:
- [InfluxDB user interface (UI)](#influxdb-user-interface-ui)
- [`influx` CLI](#influx-cli)
- [InfluxDB HTTP API](#influxdb-http-api)
### InfluxDB user interface (UI)
The InfluxDB UI provides a web-based visual interface for interacting with and managing InfluxDB.
{{% oss-only %}}The UI is packaged with InfluxDB and runs as part of the InfluxDB service. To access the UI, with InfluxDB running, visit [localhost:8086](http://localhost:8086) in your browser.{{% /oss-only %}}
{{% cloud-only %}}To access the InfluxDB Cloud UI, [log into your InfluxDB Cloud account](https://cloud2.influxdata.com).{{% /cloud-only %}}
### `influx` CLI
The `influx` CLI lets you interact with and manage InfluxDB {{< current-version >}} from a command line.
{{% oss-only %}}The CLI is packaged separately from InfluxDB and must be downloaded and installed separately.{{% /oss-only %}}
For detailed CLI installation instructions, see
[Use the influx CLI](/influxdb/v2.5/tools/influx-cli/).
### InfluxDB HTTP API
The [InfluxDB API](/influxdb/v2.5/reference/api/) provides a simple way to
interact with the InfluxDB {{< current-version >}} using HTTP(S) clients.
Examples in this tutorial use cURL, but any HTTP(S) client will work.
{{% note %}}
#### InfluxDB client libraries
[InfluxDB client libraries](/influxdb/v2.5/api-guide/client-libraries/) are
language-specific clients that interact with the InfluxDB HTTP API.
Examples for client libraries are not provided in this tutorial, but these can
be used to perform all the actions outlined in this tutorial.
{{% /note %}}
## Authorization
**InfluxDB {{< current-version >}} requires authentication** using [API tokens](/influxdb/v2.5/security/tokens/).
Each API token is associated with a user and a specific set of permissions for InfluxDB resources.
{{< page-nav next="/influxdb/v2.5/get-started/setup/" >}}
---
{{< influxdbu "influxdb-101" >}}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,603 @@
---
title: Get started querying data
seotitle: Query data | Get started with InfluxDB
list_title: Query data
description: >
Get started querying data in InfluxDB by learning about Flux and InfluxQL and
using tools like the InfluxDB UI, `influx` CLI, and InfluxDB API.
menu:
influxdb_2_5:
name: Query data
parent: Get started
identifier: get-started-query-data
weight: 102
metadata: [3 / 5]
related:
- /influxdb/v2.5/query-data/
---
InfluxDB supports many different tools for querying data, including:
- InfluxDB user interface (UI)
- [InfluxDB HTTP API](/influxdb/v2.5/reference/api/)
- [`influx` CLI](/influxdb/v2.5/tools/influx-cli/)
- [Chronograf](/{{< latest "Chronograf" >}}/)
- [Grafana](/influxdb/v2.5/tools/grafana/)
- [InfluxDB client libraries](/influxdb/v2.5/api-guide/client-libraries/)
This tutorial walks you through the fundamentals of querying data in InfluxDB and
focuses primarily on the two languages you can use to query your time series data:
- **Flux**: A functional scripting language designed to query and process data
from InfluxDB and other data sources.
- **InfluxQL**: A SQL-like query language designed to query time series data from
InfluxDB.
{{% note %}}
The examples in this section of the tutorial query the data from written in the
[Get started writing data](/influxdb/v2.5/get-started/write/#write-line-protocol-to-influxdb) section.
{{% /note %}}
###### On this page:
- [Query data with Flux](#query-data-with-flux)
- [Flux query basics](#flux-query-basics)
- [Execute a Flux query](#execute-a-flux-query)
- [Query data with InfluxQL](#query-data-with-influxql)
- [InfluxQL query basics](#influxql-query-basics)
- [Execute an InfluxQL query](#execute-an-influxql-query)
---
## Query data with Flux
Flux is a functional scripting language that lets you query and process data
from InfluxDB and [other data sources](/flux/v0.x/query-data/).
{{% note %}}
This is a brief introduction to writing Flux queries.
For a more in-depth introduction, see [Get started with Flux](/{{< latest "flux" >}}/get-started/).
{{% /note %}}
### Flux query basics
When querying InfluxDB with Flux, there are three primary functions you use:
- [from()](/{{< latest "flux" >}}/stdlib/influxdata/influxdb/from/):
Queries data from an InfluxDB bucket.
- [range()](/{{< latest "flux" >}}/stdlib/universe/range/):
Filters data based on time bounds. Flux requires "bounded" queries—queries
limited to a specific time range.
- [filter()](/{{< latest "flux" >}}/stdlib/universe/filter/):
Filters data based on column values. Each row is represented by `r`
and each column is represented by a property of `r`.
You can apply multiple subsequent filters.
To see how `from()` structures data into rows and tables when returned from InfluxDB,
[view the data written in Get started writing to InfluxDB](/influxdb/v2.5/get-started/write/#view-the-written-data).
{{< expand-wrapper >}}
{{% expand "Learn more about how `filter()` works" %}}
[`filter()`](/{{< latest "flux" >}}/stdlib/universe/filter/) reads each row as a
[record](/flux/v0.x/data-types/composite/record/) named `r`.
In the `r` record, each key-value pair represents a column and its value.
For example:
```js
r = {
_time: 2020-01-01T00:00:00Z,
_measurement: "home",
room: "Kitchen",
_field: "temp",
_value: 21.0,
}
```
To filter rows, use [predicate expressions](/flux/v0.x/get-started/syntax-basics/#predicate-expressions)
to evaluate the values of columns. Given the row record above:
```javascript
(r) => r._measurement == "home" // Returns true
(r) => r.room == "Kitchen" // Returns true
(r) => r._field == "co" // Returns false
(r) => r._field == "co" or r._field == "temp" // Returns true
(r) => r._value <= 20.0 // Returns false
```
Rows that evaluate to `true` are included in the `filter()` output.
Rows that evaluate to `false` are dropped from the `filter()` output.
{{% /expand %}}
{{< /expand-wrapper >}}
#### Pipe-forward operator
Flux uses the pipe-forward operator (`|>`) to pipe the output of one function as
input the next function as input.
#### Query the example data
The following Flux query returns the **co**, **hum**, and **temp** fields stored in
the **home** measurement with timestamps **between 2022-01-01T08:00:00Z and 2022-01-01T20:00:01Z**.
```js
from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
```
### Execute a Flux query
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to execute Flux queries.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!--------------------------- BEGIN FLUX UI CONTENT --------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. In the left navigation bar, click **Data Explorer**.
{{< nav-icon "data-explorer" "v4" >}}
3. The InfluxDB Data Explorer provides two options for querying data with Flux:
- [Query Builder](#query-builder) _(default)_:
Visual query builder that lets you select the time range,
measurement, tags, and fields to query.
- [Script Editor](#script-editor):
In-browser code editor for composing and running Flux scripts.
---
#### Query builder
**To build and execute a Flux query with the query builder**:
1. In the **{{% caps %}}FROM{{% /caps %}}** column, select the bucket to query. For this tutorial,
select the **get-started** bucket.
2. In the next **filter** column, select **_measurement** from the
column dropdown menu, and then select the **home** measurement.
3. _(Optional)_ To query a specific field or fields, in the next **filter**
column, select **_field** from the column dropdown menu, and then
select the fields to query. In this tutorial, there are three
fields: **co**, **hum**, and **temp**.
4. _(Optional)_ To query by specific tag values, in the next **filter**
column, select then tag column from the column dropdown menu, and then
select the tag values to filter by. In this tutorial, the tag only
tag column is **room**.
5. _(Optional)_ In the **{{% caps %}}Aggregate Function{{% /caps %}}** pane,
select an aggregate or selector function to use to downsample the data.
The default aggregate function is `mean`.
6. In the time range dropdown menu, select **Custom Time Range**, and
select the following dates from the date selectors:
- **Start**: 2022-01-01 08:00:00
- **Stop**: 2022-01-01 20:00:01
_Note the addition of one second to the stop time. In Flux, stop
times are exclusive and will exclude points with that timestamp.
By adding one second, the query will include all points to
2022-01-01 20:00:00_.
7. Click **{{% caps %}}Submit{{% /caps %}}** to execute the query with the
selected filters and operations and display the result.
---
#### Script editor
**To write and execute a Flux query with the query builder**:
1. In the Data Explorer, click **{{% caps %}}Script Editor{{% /caps %}}**.
2. Write your Flux query in the Script Editor text field.
_**Note**: You can either hand-write the functions or you can use the function list
to the right of the script editor to search for and inject functions._
1. Use `from()` and specify the bucket to query with the `bucket` parameter.
For this tutorial, query the **get-started** bucket.
2. Use `range()` to specify the time range to query. The `start`
parameter defines the earliest time to include in results.
The `stop` parameter specifies the latest time (exclusively) to
include in results.
- **start**: 2022-01-01T08:00:00Z
- **stop**: 2022-01-01T20:00:01Z
_Note the addition of one second to the stop time. In Flux, stop
times are exclusive and will exclude points with that timestamp.
By adding one second, the query will include all points to
2022-01-01 20:00:00_.
If you want to use the start and stop times selected in the time
selection dropdown menu, use `v.timeRangeStart` and `v.timeRangeStop`
as the values for the `start` and `stop` parameters.
3. Use `filter()` to filter results by the **home** measurement.
4. _(Optional)_ Use `filter()` to filter results by a specific field.
In this tutorial, there are three fields: **co**, **hum**, and **temp**.
5. _(Optional)_ Use `filter()` to filter results by specific
tag values. In this tutorial, there is one tag, **room**, with two
potential values: **Living Room** or **Kitchen**.
```js
from(bucket: from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
```
3. Click **{{% caps %}}Submit{{% /caps %}}** to execute the query with the
selected filters and operations and display the result.
<!---------------------------- END FLUX UI CONTENT ---------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!-------------------------- BEGIN FLUX CLI CONTENT --------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.5/tools/influx-cli/).
2. Use the [`influx query` command](/influxdb/v2.5/reference/cli/influx/query/)
to query InfluxDB using Flux.
**Provide the following**:
- String-encoded Flux query.
- [Connection and authentication credentials](/influxdb/v2.5/get-started/setup/?t=influx+CLI#configure-authentication-credentials)
```sh
influx query '
from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
'
```
<!--------------------------- END FLUX CLI CONTENT ---------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!-------------------------- BEGIN FLUX API CONTENT --------------------------->
To query data from InfluxDB using Flux and the InfluxDB HTTP API, send a request
to the InfluxDB API [`/api/v2/query` endpoint](/influxdb/v2.5/api/#operation/PostQuery)
using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/query" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_TOKEN>
- **Content-Type**: application/vnd.flux
- **Accept**: application/csv
- _(Optional)_ **Accept-Encoding**: gzip
- **Query parameters**:
- **org**: InfluxDB organization name
- **Request body**: Flux query as plain text
The following example uses cURL and the InfluxDB API to query data with Flux:
```sh
curl --request POST \
"$INFLUX_HOST/api/v2/query?org=$INFLUX_ORG&bucket=get-started" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: application/vnd.flux" \
--header "Accept: application/csv" \
--data 'from(bucket: "get-started")
|> range(start: 2022-01-01T08:00:00Z, stop: 2022-01-01T20:00:01Z)
|> filter(fn: (r) => r._measurement == "home")
|> filter(fn: (r) => r._field== "co" or r._field == "hum" or r._field == "temp")
'
```
{{% note %}}
The InfluxDB `/api/v2/query` endpoint returns query results in
[annotated CSV](/influxdb/v2.5/reference/syntax/annotated-csv/).
{{% /note %}}
<!--------------------------- END FLUX API CONTENT ---------------------------->
{{% /tab-content %}}
{{< /tabs-wrapper >}}
### Flux query results
{{< expand-wrapper >}}
{{% expand "View Flux query results" %}}
{{% note %}}
`_start` and `_stop` columns have been omitted.
These columns, by default, represent the query time bounds and are added by `range()`.
{{% /note %}}
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :------ | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T09:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T10:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T11:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T12:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T13:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T14:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T15:00:00Z | home | Kitchen | co | 3 |
| 2022-01-01T16:00:00Z | home | Kitchen | co | 7 |
| 2022-01-01T17:00:00Z | home | Kitchen | co | 9 |
| 2022-01-01T18:00:00Z | home | Kitchen | co | 18 |
| 2022-01-01T19:00:00Z | home | Kitchen | co | 22 |
| 2022-01-01T20:00:00Z | home | Kitchen | co | 26 |
| _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-01T11:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T12:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T13:00:00Z | home | Kitchen | hum | 36.5 |
| 2022-01-01T14:00:00Z | home | Kitchen | hum | 36.3 |
| 2022-01-01T15:00:00Z | home | Kitchen | hum | 36.2 |
| 2022-01-01T16:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T17:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T18:00:00Z | home | Kitchen | hum | 36.9 |
| 2022-01-01T19:00:00Z | home | Kitchen | hum | 36.6 |
| 2022-01-01T20:00:00Z | home | Kitchen | hum | 36.5 |
| _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-01T11:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T12:00:00Z | home | Kitchen | temp | 22.5 |
| 2022-01-01T13:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T14:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T15:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T16:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T18:00:00Z | home | Kitchen | temp | 23.3 |
| 2022-01-01T19:00:00Z | home | Kitchen | temp | 23.1 |
| 2022-01-01T20:00:00Z | home | Kitchen | temp | 22.7 |
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :---------- | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T09:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T10:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T11:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T12:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T13:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T14:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T15:00:00Z | home | Living Room | co | 1 |
| 2022-01-01T16:00:00Z | home | Living Room | co | 4 |
| 2022-01-01T17:00:00Z | home | Living Room | co | 5 |
| 2022-01-01T18:00:00Z | home | Living Room | co | 9 |
| 2022-01-01T19:00:00Z | home | Living Room | co | 14 |
| 2022-01-01T20:00:00Z | home | Living Room | co | 17 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T12:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T13:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T14:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T15:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T16:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T17:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T18:00:00Z | home | Living Room | hum | 36.2 |
| 2022-01-01T19:00:00Z | home | Living Room | hum | 36.3 |
| 2022-01-01T20:00:00Z | home | Living Room | hum | 36.4 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T12:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T13:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T14:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T15:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T16:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Living Room | temp | 22.6 |
| 2022-01-01T18:00:00Z | home | Living Room | temp | 22.8 |
| 2022-01-01T19:00:00Z | home | Living Room | temp | 22.5 |
| 2022-01-01T20:00:00Z | home | Living Room | temp | 22.2 |
{{% /expand %}}
{{< /expand-wrapper >}}
## Query data with InfluxQL
InfluxQL is a SQL-like query language similar to most SQL languages, but
specifically designed to query time series data from InfluxDB 0.x and 1.x.
{{% note %}}
#### Map databases and retention policies to buckets
Because InfluxQL was developed for earlier versions of InfluxDB, it depends on
**databases and retention policies** (DBRP) which have been replaced by
[buckets](/influxdb/v2.5/get-started/#data-organization) in InfluxDB {{< current-version >}}.
To use InfluxQL with InfluxDB {{< current-version >}}, first
[map database and retention policy (DBRP) combinations to an InfluxDB bucket](/influxdb/v2.5/query-data/influxql/dbrp/).
{{% /note %}}
### InfluxQL query basics
When querying InfluxDB with InfluxQL, the most basic query includes the following
statements and clauses:
- `SELECT`: Specify which fields and tags to query.
- `FROM`: Specify the measurement to query.
Use the measurement name or a fully-qualified measurement name which includes
the database and retention policy. For example: `db.rp.measurement`.
- `WHERE`: _(Optional)_ Filter data based on fields, tags, and time.
The following InfluxQL query returns the **co**, **hum**, and **temp** fields and
the **room** tag stored in the **home** measurement with timestamps
**between 2022-01-01T08:00:00Z and 2022-01-01T20:00:00Z**.
```sql
SELECT co,hum,temp,room FROM "get-started".autogen.home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'
```
{{% note %}}
These are just the fundamentals of the InfluxQL syntax.
For more in-depth information, see the [InfluxQL documentation](/influxdb/v2.5/query-data/influxql/).
{{% /note %}}
### Execute an InfluxQL query
Use the **`influx` CLI**, or **InfluxDB API** to execute InfluxQL queries.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------- BEGIN INFLUXQL UI CONTENT ------------------------->
{{% note %}}
#### The InflxuDB UI does not support InfluxQL
The InfluxDB {{< current-version >}} UI does not provide a way to query data with InfluxQL.
For a user interface that builds and executes InfluxQL queries, consider using
[Chronograf](/influxdb/v2.5/tools/chronograf/) or
[Grafana](/influxdb/v2.5/tools/grafana/) with InfluxDB {{< current-version >}}.
{{% /note %}}
<!-------------------------- END INFLUXQL UI CONTENT -------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!------------------------ BEGIN INFLUXQL CLI CONTENT ------------------------->
{{< cli/influx-creds-note >}}
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.5/tools/influx-cli/).
2. Use the [`influx v1 shell` command](/influxdb/v2.5/reference/cli/influx/v1/shell/)
to start an InfluxQL shell and query InfluxDB using InfluxQL.
Provide the following:
- [Connection and authentication credentials](/influxdb/v2.5/get-started/setup/?t=influx+CLI#configure-authentication-credentials)
```sh
influx v1 shell
```
3. Enter an InfluxQL query and press {{< keybind mac="return" other="Enter ↵" >}}.
```sql
SELECT co,hum,temp,room FROM "get-started".autogen.home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'
```
<!------------------------- END INFLUXQL CLI CONTENT -------------------------->
{{% /tab-content %}}
{{% tab-content %}}
<!------------------------ BEGIN INFLUXQL API CONTENT ------------------------->
To query data from InfluxDB using InfluxQL and the InfluxDB HTTP API, send a request
to the InfluxDB API [`/query` 1.X compatibility endpoint](/influxdb/v2.5/reference/api/influxdb-1x/query/)
using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/query" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_TOKEN>
- **Accept**: application/json
- _(Optional)_ **Accept-Encoding**: gzip
- **Query parameters**:
- **db**: Database to query.
- **rp**: Retention policy to query data from.
- **q**: InfluxQL query to execute.
- **epoch**: _(Optional)_ Return results with
[Unix timestamps](/influxdb/v2.5/reference/glossary/#unix-timestamp) of a
specified precision instead of [RFC3339 timestamps](/influxdb/v2.5/reference/glossary/#rfc3339-timestamp). The following precisions are available:
- `ns` - nanoseconds
- `u` or `µ` - microseconds
- `ms` - milliseconds
- `s` - seconds
- `m` - minutes
- `h` - hours
- **Request body**: Flux query as plain text
The following example uses cURL and the InfluxDB API to query data with InfluxQL:
```sh
curl --get "$INFLUX_HOST/query?org=$INFLUX_ORG&bucket=get-started" \
--header "Authorization: Token $INFLUX_TOKEN" \
--data-urlencode "db=get-started" \
--data-urlencode "rp=autogen" \
--data-urlencode "q=SELECT co,hum,temp,room FROM home WHERE time >= '2022-01-01T08:00:00Z' AND time <= '2022-01-01T20:00:00Z'"
```
{{% note %}}
The InfluxDB `/write` 1.x compatibility endpoint returns query results in JSON format.
{{% /note %}}
<!------------------------- END INFLUXQL API CONTENT -------------------------->
{{% /tab-content %}}
{{< /tabs-wrapper >}}
### InfluxQL query results
{{< expand-wrapper >}}
{{% expand "View InfluxQL query results" %}}
| time | room | co | hum | temp |
| :------------------- | :---------- | --: | ---: | ---: |
| 2022-01-01T08:00:00Z | Kitchen | 0 | 35.9 | 21 |
| 2022-01-01T08:00:00Z | Living Room | 0 | 35.9 | 21.1 |
| 2022-01-01T09:00:00Z | Kitchen | 0 | 36.2 | 23 |
| 2022-01-01T09:00:00Z | Living Room | 0 | 35.9 | 21.4 |
| 2022-01-01T10:00:00Z | Kitchen | 0 | 36.1 | 22.7 |
| 2022-01-01T10:00:00Z | Living Room | 0 | 36 | 21.8 |
| 2022-01-01T11:00:00Z | Kitchen | 0 | 36 | 22.4 |
| 2022-01-01T11:00:00Z | Living Room | 0 | 36 | 22.2 |
| 2022-01-01T12:00:00Z | Kitchen | 0 | 36 | 22.5 |
| 2022-01-01T12:00:00Z | Living Room | 0 | 35.9 | 22.2 |
| 2022-01-01T13:00:00Z | Kitchen | 1 | 36.5 | 22.8 |
| 2022-01-01T13:00:00Z | Living Room | 0 | 36 | 22.4 |
| 2022-01-01T14:00:00Z | Kitchen | 1 | 36.3 | 22.8 |
| 2022-01-01T14:00:00Z | Living Room | 0 | 36.1 | 22.3 |
| 2022-01-01T15:00:00Z | Kitchen | 3 | 36.2 | 22.7 |
| 2022-01-01T15:00:00Z | Living Room | 1 | 36.1 | 22.3 |
| 2022-01-01T16:00:00Z | Kitchen | 7 | 36 | 22.4 |
| 2022-01-01T16:00:00Z | Living Room | 4 | 36 | 22.4 |
| 2022-01-01T17:00:00Z | Kitchen | 9 | 36 | 22.7 |
| 2022-01-01T17:00:00Z | Living Room | 5 | 35.9 | 22.6 |
| 2022-01-01T18:00:00Z | Kitchen | 18 | 36.9 | 23.3 |
| 2022-01-01T18:00:00Z | Living Room | 9 | 36.2 | 22.8 |
| 2022-01-01T19:00:00Z | Kitchen | 22 | 36.6 | 23.1 |
| 2022-01-01T19:00:00Z | Living Room | 14 | 36.3 | 22.5 |
| 2022-01-01T20:00:00Z | Kitchen | 26 | 36.5 | 22.7 |
| 2022-01-01T20:00:00Z | Living Room | 17 | 36.4 | 22.2 |
{{% /expand %}}
{{< /expand-wrapper >}}
**Congratulations!** You've learned the basics of querying data in InfluxDB.
For a deep dive into all the ways you can query InfluxDB, see the
[Query data in InfluxDB](/influxdb/v2.5/query-data/) section of documentation.
Let's move on to more advanced data processing queries and automating queries
with InfluxDB tasks.
{{< page-nav prev="/influxdb/v2.5/get-started/write/" next="/influxdb/v2.5/get-started/process/" keepTab=true >}}

View File

@ -0,0 +1,457 @@
---
title: Set up InfluxDB
seotitle: Set up InfluxDB | Get started with InfluxDB
list_title: Set up InfluxDB
description: >
Learn how to set up InfluxDB for the "Get started with InfluxDB" tutorial.
menu:
influxdb_2_5:
name: Set up InfluxDB
parent: Get started
identifier: get-started-set-up
weight: 101
metadata: [1 / 5]
related:
- /influxdb/v2.5/install/
- /influxdb/v2.5/reference/config-options/
- /influxdb/v2.5/security/tokens/
- /influxdb/v2.5/organizations/buckets/
- /influxdb/v2.5/tools/influx-cli/
- /influxdb/v2.5/reference/api/
---
As you get started with this tutorial, do the following to make sure everything
you need is in place.
1. If you haven't already, [download and install InfluxDB](/influxdb/v2.5/install/).
Installation instructions depend on your operating system.
Be sure to go through the installation and initialization process fully.
2. **Start InfluxDB**.
Run the `influxd` daemon to start the InfluxDB service, HTTP API, and
user interface (UI).
```sh
influxd
```
{{% note %}}
#### Configure InfluxDB
There are multiple ways to custom-configure InfluxDB.
For information about what configuration options are available and how to set them,
see [InfluxDB configuration options](/influxdb/v2.5/reference/config-options/).
{{% /note %}}
Once running, the InfluxDB UI is accessible at [localhost:8086](http://localhost:8086).
3. {{< req text="(Optional)" color="magenta" >}} **Download, install, and configure the `influx` CLI**.
The `influx` CLI provides a simple way to interact with InfluxDB from a
command line. For detailed installation and setup instructions,
see [Use the influx CLI](/influxdb/v2.5/tools/influx-cli/).
4. {{< req text="(Optional)" color="magenta" >}} **Create an All Access API token.**
<span id="create-an-all-access-api-token"></span>
During the InfluxDB initialization process, you created a user and API token
that has permissions to manage everything in your InfluxDB instance.
This is known as an **Operator token**. While you can use your Operator token
to interact with InfluxDB, we recommend creating an **all access token** that
is scoped to an organization.
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to create an
all access token.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. Navigate to **Load Data** > **API Tokens** using the left navigation bar.
3. Click **+ {{% caps %}}Generate API token{{% /caps %}}** and select
**All Access API Token**.
4. Enter a description for the API token and click **{{< icon "check" >}} {{% caps %}}Save{{% /caps %}}**.
5. Copy the generated token and store it for safe keeping.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.5/tools/influx-cli/).
2. Use the [`influx auth create` command](/influxdb/v2.5/reference/cli/influx/auth/create/)
to create an all access token.
**Provide the following**:
- `--all-access` flag
- `--host` flag with your [InfluxDB host URL](/influxdb/v2.5/reference/urls/)
- `-o, --org` or `--org-id` flags with your InfluxDB organization name or
[ID](/influxdb/v2.5/organizations/view-orgs/#view-your-organization-id)
- `-t, --token` flag with your Operator token
```sh
influx auth create \
--all-access \
--host http://localhost:8086 \
--org <YOUR_INFLUXDB_ORG_NAME> \
--token <YOUR_INFLUXDB_OPERATOR_TOKEN>
```
3. Copy the generated token and store it for safe keeping.
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
Send a request to the InfluxDB API `/api/v2/authorizations` endpoint using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/authorizations" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_OPERATOR_TOKEN>
- **Content-Type**: application/json
- **Request body**: JSON body with the following properties:
- **status**: `"active"`
- **description**: API token description
- **orgID**: [InfluxDB organization ID](/influxdb/v2.5/organizations/view-orgs/#view-your-organization-id)
- **permissions**: Array of objects where each object represents permissions
for an InfluxDB resource type or a specific resource. Each permission contains the following properties:
- **action**: "read" or "write"
- **resource**: JSON object that represents the InfluxDB resource to grant
permission to. Each resource contains at least the following properties:
- **orgID**: [InfluxDB organization ID](/influxdb/v2.5/organizations/view-orgs/#view-your-organization-id)
- **type**: Resource type.
_For information about what InfluxDB resource types exist, use the
[`/api/v2/resources` endpoint](/influxdb/v2.5/api/#operation/GetResources)._
The following example uses cURL and the InfluxDB API to generate an all access token:
{{% truncate %}}
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_OPERATOR_TOKEN>
curl --request POST \
"$INFLUX_HOST/api/v2/authorizations" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: text/plain; charset=utf-8" \
--data '{
"status": "active",
"description": "All access token for get started tutorial",
"orgID": "'"$INFLUX_ORG_ID"'",
"permissions": [
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "authorizations"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "authorizations"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "buckets"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "buckets"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dashboards"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dashboards"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "orgs"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "orgs"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "sources"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "sources"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "tasks"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "tasks"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "telegrafs"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "telegrafs"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "users"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "users"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "variables"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "variables"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "scrapers"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "scrapers"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "secrets"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "secrets"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "labels"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "labels"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "views"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "views"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "documents"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "documents"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationRules"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationRules"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationEndpoints"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notificationEndpoints"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "checks"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "checks"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dbrp"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "dbrp"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notebooks"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "notebooks"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "annotations"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "annotations"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "remotes"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "remotes"}},
{"action": "read", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "replications"}},
{"action": "write", "resource": {"orgID": "'"$INFLUX_ORG_ID"'", "type": "replications"}}
]
}
'
```
{{% /truncate %}}
The response body contains a JSON object with the following properties:
- **id**: API Token ID
- **token**: API Token ({{< req "Important" >}})
- **status**: Token status
- **description**: Token description
- **orgID**: InfluxDB organization ID the token is associated with
- **org**: InfluxDB organization name the token is associated with
- **userID**: User ID the token is associated with
- **user**: Username the token is associated with
- **permissions**: List of permissions for organization resources
**Copy the generated `token` and store it for safe keeping.**
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
{{% note %}}
We recommend using a password manager or a secret store to securely store
sensitive tokens.
{{% /note %}}
5. **Configure authentication credentials**. <span id="configure-authentication-credentials"></span>
As you go through this tutorial, interactions with InfluxDB {{< current-version >}}
require your InfluxDB **host**, **organization name or ID**, and your **API token**.
There are different methods for providing these credentials depending on
which client you use to interact with InfluxDB.
{{% note %}}
When configuring your token, if you [created an all access token](#create-an-all-access-api-token),
use that token to interact with InfluxDB. Otherwise, use your operator token.
{{% /note %}}
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
When managing InfluxDB through the InfluxDB UI, authentication credentials are
provided automatically using credentials associated with the user you log in with.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
There are three ways to provided authentication credentials to the `influx` CLI:
{{< expand-wrapper >}}
{{% expand "CLI connection configurations <em>(<span class=\"req\">Recommended</span>)</em>" %}}
The `influx` CLI lets you specify connection configuration presets that let
you store and quickly switch between multiple sets of InfluxDB connection
credentials. Use the [`influx config create` command](/influxdb/v2.5/reference/cli/influx/config/create/)
to create a new CLI connection configuration. Include the following flags:
- `-n, --config-name`: Connection configuration name. This examples uses `get-started`.
- `-u, --host-url`: [InfluxDB host URL](/influxdb/v2.5/reference/urls/).
- `-o, --org`: InfluxDB organization name.
- `-t, --token`: InfluxDB API token.
```sh
influx config create \
--name get-started
--host-url http://localhost:8086
--org <YOUR_INFLUXDB_ORG_NAME>
--token <YOUR_INFLUXDB_API_TOKEN>
```
_For more information about CLI connection configurations, see
[Install and use the `influx` CLI](/influxdb/v2.5/tools/influx-cli/#set-up-the-influx-cli)._
{{% /expand %}}
{{% expand "Environment variables" %}}
The `influx` CLI checks for specific environment variables and, if present,
uses those environment variables to populate authentication credentials.
Set the following environment variables in your command line session:
- `INFLUX_HOST`: [InfluxDB host URL](/influxdb/v2.5/reference/urls/).
- `INFLUX_ORG`: InfluxDB organization name.
- `INFLUX_ORG_ID`: InfluxDB [organization ID](/influxdb/v2.5/organizations/view-orgs/#view-your-organization-id).
- `INFLUX_TOKEN`: InfluxDB API token.
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG=<YOUR_INFLUXDB_ORG_NAME>
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
```
{{% /expand %}}
{{% expand "Command flags" %}}
Use the following `influx` CLI flags to provide required credentials to commands:
- `--host`: [InfluxDB host URL](/influxdb/v2.5/reference/urls/).
- `-o`, `--org` or `--org-id`: InfluxDB organization name or
[ID](/influxdb/v2.5/organizations/view-orgs/#view-your-organization-id).
- `-t`, `--token`: InfluxDB API token.
{{% /expand %}}
{{< /expand-wrapper >}}
{{% note %}}
All `influx` CLI examples in this getting started tutorial assume your InfluxDB
**host**, **organization**, and **token** are provided by either the
[active `influx` CLI configuration](/influxdb/v2.5/reference/cli/influx/#provide-required-authentication-credentials)
or by environment variables.
{{% /note %}}
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
When using the InfluxDB API, provide the required connection credentials in the
following ways:
- **InfluxDB host**: The domain and port to send HTTP(S) requests to.
- **InfluxDB API Token**: Include an `Authorization` header that uses either
`Bearer` or `Token` scheme and your InfluxDB API token. For example:
`Authorization: Bearer 0xxx0o0XxXxx00Xxxx000xXXxoo0==`.
- **InfluxDB organization name or ID**: Depending on the API endpoint used, pass
this as part of the URL path, query string, or in the request body.
All API examples in this tutorial use **cURL** from a command line.
To provide all the necessary credentials to the example cURL commands, set
the following environment variables in your command line session.
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG=<YOUR_INFLUXDB_ORG_NAME>
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
```
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
6. {{< req text="(Optional)" color="magenta" >}} **Create a bucket**.
In the InfluxDB initialization process, you created a bucket.
You can use that bucket or create a new one specifically for this getting
started tutorial. All examples in this tutorial assume a bucket named
_get-started_.
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to create a
new bucket.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. Navigate to **Load Data** > **Buckets** using the left navigation bar.
3. Click **+ {{< caps >}}Create bucket{{< /caps >}}**.
4. Provide a bucket name (get-started) and select {{% caps %}}Never{{% /caps %}}
to create a bucket with an infinite [retention period](/influxdb/v2.5/reference/glossary/#retention-period).
5. Click **{{< caps >}}Create{{< /caps >}}**.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.5/tools/influx-cli/).
2. Use the [`influx bucket create` command](/influxdb/v2.5/reference/cli/influx/bucket/create/)
to create a new bucket.
**Provide the following**:
- `-n, --name` flag with the bucket name.
- [Connection and authentication credentials](#configure-authentication-credentials)
```sh
influx bucket create --name get-started
```
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
To create a bucket using the InfluxDB HTTP API, send a request to
the InfluxDB API `/api/v2/buckets` endpoint using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/buckets" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token `INFLUX_TOKEN`
- **Content-Type**: `application/json`
- **Request body**: JSON object with the following properties:
- **org**: InfluxDB organization name
- **name**: Bucket name
- **retentionRules**: List of retention rule objects that define the bucket's retention period.
Each retention rule object has the following properties:
- **type**: `"expire"`
- **everySeconds**: Retention period duration in seconds.
`0` indicates the retention period is infinite.
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG_ID=<YOUR_INFLUXDB_ORG_ID>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
curl --request POST \
"$INFLUX_HOST/api/v2/buckets" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"orgID": "'"$INFLUX_ORG_ID"'",
"name": "get-started",
"retentionRules": [
{
"type": "expire",
"everySeconds": 0
}
]
}'
```
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
{{< page-nav prev="/influxdb/v2.5/get-started/" next="/influxdb/v2.5/get-started/write/" keepTab=true >}}

View File

@ -0,0 +1,186 @@
---
title: Get started visualizing data
seotitle: Visualize data | Get started with InfluxDB
list_title: Visualize data
description: >
...
menu:
influxdb_2_5:
name: Visualize data
parent: Get started
identifier: get-started-visualize-data
weight: 104
metadata: [5 / 5]
related:
- /influxdb/v2.5/visualize-data/
- /influxdb/v2.5/visualize-data/visualization-types/
- /influxdb/v2.5/tools/chronograf/
- /influxdb/v2.5/tools/grafana/
---
There are many tools you can use to visualize your time series data including the
InfluxDB user interface (UI), [Chronograf](), and
[Grafana](/influxdb/v2.5/tools/grafana/).
This tutorial walks you through using the **InfluxDB UI** to create a simple dashboard.
Dashboards are a powerful way of displaying time series data and can help to
identify trends and anomalies. A dashboard is comprised of one or more
dashboard cells. A **dashboard cell** visualizes the results of a query using
one of the available [visualization types](/influxdb/v2.5/visualize-data/visualization-types/).
- [Create a dashboard](#create-a-dashboard)
- [Create dashboard cells](#create-dashboard-cells)
- [Create and use dashboard variables](#create-and-use-dashboard-variables)
- [Create a custom dashboard variable](#create-a-custom-dashboard-variable)
- [Use a custom dashboard variable](#use-a-custom-dashboard-variable)
## Create a dashboard
1. With InfluxDB running, visit [localhost:8086](http://localhost:8086) in your
browser to access the InfluxDB UI.
2. Log in and select **Dashboards** in the left navigation bar.
{{< nav-icon "dashboards" >}}
3. Click **+ {{% caps %}}Create Dashboard{{% /caps %}}** and select **New Dashboard**.
4. Click _**Name this Dashboard**_ and provide a name for the dashboard.
For this tutorial, we'll use **"Getting Started Dashboard"**.
## Create dashboard cells
With your new dashboard created and named, add a new dashboard cell:
1. Click **{{< icon "add-cell" >}} {{% caps %}}Add Cell{{% /caps %}}**.
2. Click _**Name this Cell**_ and provide a name for the cell.
For this tutorial, we'll use **"Room temperature"**.
3. _(Optional)_ Select the visualization type from the visualization drop-down menu.
There are many different [visualization types](/influxdb/v2.5/visualize-data/visualization-types/)
available.
For this tutorial, use the default **Graph** visualization.
4. Use the query time range selector to select an absolute time range that
covers includes the time range of the
[data written in "Get started writing to InfluxDB"](/influxdb/v2.5/get-started/write/#view-the-written-data):
**2022-01-01T08:00:00Z** to **2022-01-01T20:00:01Z**.
1. The query time range selector defaults to querying data from the last hour
(**{{< icon "clock" >}} Past 1h**).
Click the time range selector drop-down menu and select **Custom Time Range**.
{{< expand-wrapper >}}
{{% expand "View time range selector" %}}
{{< img-hd src="/img/influxdb/2-4-get-started-visualize-time-range.png" alt="InfluxDB time range selector" />}}
{{% /expand %}}
{{< /expand-wrapper >}}
2. Use the date picker to select the stop and stop date and time or manually
enter the following start and stop times:
- **Start**: 2022-01-01 08:00:00
- **Stop**: 2022-01-01 20:00:01
3. Click **{{% caps %}}Apply Time Range{{% /caps %}}**.
5. Use the **Query Builder** to select the measurement, fields, and tags to query:
1. In the **{{% caps %}}From{{% /caps %}}** column, select the **get-started** bucket.
2. In the **Filter** column, select the **home** measurement.
3. In the next **Filter** column, select the **temp** field.
4. In the next **Filter** column, select the **room** tag and the **Kitchen** tag value.
6. Click **{{% caps %}}Submit{{% /caps %}}** to run the query and visualize the
results.
{{< img-hd src="/img/influxdb/2-4-get-started-visualize-query-builder.png" alt="InfluxDB Query Builder" />}}
7. Click **{{< icon "check" >}}** to save the cell and return to the dashboard.
## Create and use dashboard variables
InfluxDB dashboard cells use **dashboard variables** to dynamically change
specific parts of cell queries.
The query builder automatically builds queries using the following
[predefined dashboard variables](/influxdb/v2.5/visualize-data/variables/#predefined-dashboard-variables),
each controlled by selections in your dashboard:
- `v.timeRangeStart`: Start time of the queried time range specified by the time range selector.
- `v.timeRangeStop`: Stop time of the queried time range specified by the time range selector.
- `v.windowPeriod`: Window period used downsample data to one point per pixel in
a cell visualization. The value of this variable is determined by the pixel-width of the cell.
### Create a custom dashboard variable
Let's create a custom dashboard variable that we can use to change the field
displayed by your dashboard cell.
1. Select **Settings > Variables** in the left navigation bar.
{{< nav-icon "settings" >}}
2. Click **+ {{% caps %}}Create Variable{{% /caps %}}** and select **New Variable**.
3. Name your variable. For this tutorial, name the variable, **"room"**.
4. Select the default **Query** dashboard variable type.
This variable type uses the results of a query to populate the list of potential
variable values. _For information about the other dashboard variable types,
see [Variable types](/influxdb/v2.5/visualize-data/variables/variable-types/)._
5. Enter the following Flux query to return all the different `room` tag values
in your `get-started` bucket from the [Unix epoch](/influxdb/v2.5/reference/glossary/#unix-timestamp).
```js
import "influxdata/influxdb/schema"
schema.tagValues(bucket: "get-started", tag: "room", start: time(v: 0))
```
6. Click **{{% caps %}}Create Variable{{% /caps %}}**.
### Use a custom dashboard variable
1. Navigate to your **Getting Started Dashboard** by clicking **Dashboards** in
the left navigation bar and the clicking on the name of your dashboard.
{{< nav-icon "dashboards" >}}
2. Click the **{{< icon "gear" >}}** on the **Room temperature** cell and select
**{{< icon "pencil" >}} Configure**.
3. Click **{{% caps %}}Script Editor{{% /caps %}}** to edit the Flux query
directly.
4. On line 5 of the Flux query, replace `"Kitchen"` with `v.room` to use the
selected value of the `room` dashboard variable.
```js
from(bucket: "get-started")
|> range(start: v.timeRangeStart, stop: v.timeRangeStop)
|> filter(fn: (r) => r["_measurement"] == "home")
|> filter(fn: (r) => r["_field"] == "temp")
|> filter(fn: (r) => r["room"] == v.room)
|> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
|> yield(name: "mean")
```
5. Click **{{< icon "check" >}}** to save the cell and return to the dashboard.
6. Refresh the browser to reload the dashboard.
7. Use the **room variable** drop-down menu to select the room to display
recorded temperatures from.
{{< img-hd src="/img/influxdb/2-4-get-started-visualize-variable-select.png" alt="InfluxDB dashboard variable selection" />}}
_For more information about creating custom dashboard variables, see
[Use and manage dashboard variables](/influxdb/v2.5/visualize-data/variables/)._
{{< page-nav prev="/influxdb/v2.5/get-started/process/" >}}
---
## Congratulations!
You have walked through the
[basics of setting up, writing, querying, processing, and visualizing](/influxdb/v2.5/get-started/)
data with InfluxDB {{< current-version >}}.
Feel free to dive in deeper to each of these topics:
- [Write data to InfluxDB](/influxdb/v2.5/write-data/)
- [Query data in InfluxDB](/influxdb/v2.5/query-data/)
- [Process data with InfluxDB](/influxdb/v2.5/process-data/)
- [Visualize data with the InfluxDB UI](/influxdb/v2.5/visualize-data/)
If you have questions as you're getting started, reach out to us using the
available [Support and feedback](#bug-reports-and-feedback) channels.

View File

@ -0,0 +1,394 @@
---
title: Get started writing data
seotitle: Write data | Get started with InfluxDB
list_title: Write data
description: >
Get started writing data to InfluxDB by learning about line protocol and using
tools like the InfluxDB UI, `influx` CLI, and InfluxDB API.
menu:
influxdb_2_5:
name: Write data
parent: Get started
identifier: get-started-write-data
weight: 101
metadata: [2 / 5]
related:
- /influxdb/v2.5/write-data/
- /influxdb/v2.5/write-data/best-practices/
- /influxdb/v2.5/reference/syntax/line-protocol/
- /{{< latest "telegraf" >}}/
---
InfluxDB provides many different options for ingesting or writing data, including
the following:
- Influx user interface (UI)
- [InfluxDB HTTP API](/influxdb/v2.5/reference/api/)
- [`influx` CLI](/influxdb/v2.5/tools/influx-cli/)
- [Telegraf](/{{< latest "telegraf" >}}/)
- {{% cloud-only %}}[MQTT](/influxdb/cloud/write-data/no-code/native-subscriptions/){{% /cloud-only %}}
- [InfluxDB client libraries](/influxdb/v2.5/api-guide/client-libraries/)
This tutorial walks you through the fundamental of using **line protocol** to write
data to InfluxDB. If using tools like Telegraf or InfluxDB client libraries, they will
build the line protocol for you, but it's good to understand how line protocol works.
## Line protocol
All data written to InfluxDB is written using **line protocol**, a text-based
format that lets you provide the necessary information to write a data point to InfluxDB.
_This tutorial covers the basics of line protocol, but for detailed information,
see the [Line protocol reference](/influxdb/v2.5/reference/syntax/line-protocol/)._
### Line protocol elements
Each line of line protocol contains the following elements:
{{< req type="key" >}}
- {{< req "\*" >}} **measurement**: String that identifies the [measurement]() to store the data in.
- **tag set**: Comma-delimited list of key value pairs, each representing a tag.
Tag keys and values are unquoted strings. _Spaces and commas must be escaped._
- {{< req "\*" >}} **field set**: Comma-delimited list key value pairs, each representing a field.
Field keys are unquoted strings. _Spaces and commas must be escaped._
Field values can be [strings](/influxdb/v2.5/reference/syntax/line-protocol/#string) (quoted),
[floats](/influxdb/v2.5/reference/syntax/line-protocol/#float),
[integers](/influxdb/v2.5/reference/syntax/line-protocol/#integer),
[unsigned integers](/influxdb/v2.5/reference/syntax/line-protocol/#uinteger),
or [booleans](/influxdb/v2.5/reference/syntax/line-protocol/#boolean).
- **timestamp**: [Unix timestamp](/influxdb/v2.5/reference/syntax/line-protocol/#unix-timestamp)
associated with the data. InfluxDB supports up to nanosecond precision.
_If the precision if the timestamp is not in nanoseconds, you must specify the
precision when writing the data to InfluxDB._
#### Line protocol element parsing
- **measurement**: Everything before the _first unescaped comma before the first whitespace_.
- **tag set**: Key-value pairs between the _first unescaped comma_ and the _first unescaped whitespace_.
- **field set**: Key-value pairs between the _first and second unescaped whitespaces_.
- **timestamp**: Integer value after the _second unescaped whitespace_.
- Lines are separated by the newline character (`\n`).
Line protocol is whitespace sensitive.
---
{{< influxdb/line-protocol >}}
---
_For schema design recommendataions, see [InfluxDB schema design](/influxdb/v2.5/write-data/best-practices/schema-design/)._
## Construct line protocol
With a basic understanding of line protocol, you can now construct line protocol
and write data to InfluxDB.
Consider a use case where you collect data from sensors in your home.
Each sensor collects temperature, humidity, and carbon monoxide readings.
To collect this data, use the following schema:
- **measurement**: `home`
- **tags**
- `room`: Living Room or Kitchen
- **fields**
- `temp`: temperature in °C (float)
- `hum`: percent humidity (float)
- `co`: carbon monoxide in parts per million (integer)
- **timestamp**: Unix timestamp in _second_ precision
Data is collected hourly beginning at 2022-01-01T08:00:00Z (UTC) until 2022-01-01T20:00:00Z (UTC).
The resulting line protocol would look something like the following:
##### Home sensor data line protocol
```sh
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
```
## Write line protocol to InfluxDB
Use the **InfluxDB UI**, **`influx` CLI**, or **InfluxDB API** to write the
line protocol above to InfluxDB.
{{< tabs-wrapper >}}
{{% tabs %}}
[InfluxDB UI](#)
[influx CLI](#)
[InfluxDB API](#)
{{% /tabs %}}
{{% tab-content %}}
<!------------------------------ BEGIN UI CONTENT ----------------------------->
1. Visit
{{% oss-only %}}[localhost:8086](http://localhost:8086){{% /oss-only %}}
{{% cloud-only %}}[cloud2.influxdata.com](https://cloud2.influxdata.com){{% /cloud-only %}}
in a browser to log in and access the InfluxDB UI.
2. Navigate to **Load Data** > **Buckets** using the left navigation bar.
{{< nav-icon "load data" >}}
3. Click **{{< icon "plus" >}} {{< caps >}}Add Data{{< /caps >}}** on the bucket
you want to write the data to and select **Line Protocol**.
4. Select **{{< caps >}}Enter Manually{{< /caps >}}**.
5. {{< req "Important" >}} In the **Precision** drop-down menu above the line
protocol text field, select **Seconds** (to match to precision of the
timestamps in the line protocol).
6. Copy the [line protocol above](#home-sensor-data-line-protocol) and paste it
into the line protocol text field.
7. Click **{{< caps >}}Write Data{{< /caps >}}**.
The UI will confirm that the data has been written successfully.
<!------------------------------- END UI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!---------------------------- BEGIN CLI CONTENT ----------------------------->
1. If you haven't already, [download, install, and configure the `influx` CLI](/influxdb/v2.5/tools/influx-cli/).
2. Use the [`influx write` command](/influxdb/v2.5/reference/cli/influx/write/)
to write the [line protocol above](#home-sensor-data-line-protocol) to InfluxDB.
**Provide the following**:
- `-b, --bucket` or `--bucket-id` flag with the bucket name or ID to write do.
- `-p, --precision` flag with the timestamp precision (`s`).
- String-encoded line protocol.
- [Connection and authentication credentials](/influxdb/v2.5/get-started/setup/?t=influx+CLI#configure-authentication-credentials)
```sh
influx write \
--bucket get-started \
--precision s "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
"
```
<!------------------------------ END CLI CONTENT ------------------------------>
{{% /tab-content %}}
{{% tab-content %}}
<!----------------------------- BEGIN API CONTENT ----------------------------->
To write data to InfluxDB using the InfluxDB HTTP API, send a request to
the InfluxDB API `/api/v2/write` endpoint using the `POST` request method.
{{< api-endpoint endpoint="http://localhost:8086/api/v2/write" method="post" >}}
Include the following with your request:
- **Headers**:
- **Authorization**: Token <INFLUX_TOKEN>
- **Content-Type**: text/plain; charset=utf-8
- **Accept**: application/json
- **Query parameters**:
- **org**: InfluxDB organization name
- **bucket**: InfluxDB bucket name
- **precision**: timestamp precision (default is `ns`)
- **Request body**: Line protocol as plain text
The following example uses cURL and the InfluxDB API to write line protocol
to InfluxDB:
```sh
export INFLUX_HOST=http://localhost:8086
export INFLUX_ORG=<YOUR_INFLUXDB_ORG>
export INFLUX_TOKEN=<YOUR_INFLUXDB_API_TOKEN>
curl --request POST \
"$INFLUX_HOST/api/v2/write?org=$INFLUX_ORG&bucket=get-started&precision=s" \
--header "Authorization: Token $INFLUX_TOKEN" \
--header "Content-Type: text/plain; charset=utf-8" \
--header "Accept: application/json" \
--data-binary "
home,room=Living\ Room temp=21.1,hum=35.9,co=0i 1641024000
home,room=Kitchen temp=21.0,hum=35.9,co=0i 1641024000
home,room=Living\ Room temp=21.4,hum=35.9,co=0i 1641027600
home,room=Kitchen temp=23.0,hum=36.2,co=0i 1641027600
home,room=Living\ Room temp=21.8,hum=36.0,co=0i 1641031200
home,room=Kitchen temp=22.7,hum=36.1,co=0i 1641031200
home,room=Living\ Room temp=22.2,hum=36.0,co=0i 1641034800
home,room=Kitchen temp=22.4,hum=36.0,co=0i 1641034800
home,room=Living\ Room temp=22.2,hum=35.9,co=0i 1641038400
home,room=Kitchen temp=22.5,hum=36.0,co=0i 1641038400
home,room=Living\ Room temp=22.4,hum=36.0,co=0i 1641042000
home,room=Kitchen temp=22.8,hum=36.5,co=1i 1641042000
home,room=Living\ Room temp=22.3,hum=36.1,co=0i 1641045600
home,room=Kitchen temp=22.8,hum=36.3,co=1i 1641045600
home,room=Living\ Room temp=22.3,hum=36.1,co=1i 1641049200
home,room=Kitchen temp=22.7,hum=36.2,co=3i 1641049200
home,room=Living\ Room temp=22.4,hum=36.0,co=4i 1641052800
home,room=Kitchen temp=22.4,hum=36.0,co=7i 1641052800
home,room=Living\ Room temp=22.6,hum=35.9,co=5i 1641056400
home,room=Kitchen temp=22.7,hum=36.0,co=9i 1641056400
home,room=Living\ Room temp=22.8,hum=36.2,co=9i 1641060000
home,room=Kitchen temp=23.3,hum=36.9,co=18i 1641060000
home,room=Living\ Room temp=22.5,hum=36.3,co=14i 1641063600
home,room=Kitchen temp=23.1,hum=36.6,co=22i 1641063600
home,room=Living\ Room temp=22.2,hum=36.4,co=17i 1641067200
home,room=Kitchen temp=22.7,hum=36.5,co=26i 1641067200
"
```
<!------------------------------ END API CONTENT ------------------------------>
{{% /tab-content %}}
{{< /tabs-wrapper >}}
{{< expand-wrapper >}}
{{% expand "View the written data" %}}
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :------ | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T09:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T10:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T11:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T12:00:00Z | home | Kitchen | co | 0 |
| 2022-01-01T13:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T14:00:00Z | home | Kitchen | co | 1 |
| 2022-01-01T15:00:00Z | home | Kitchen | co | 3 |
| 2022-01-01T16:00:00Z | home | Kitchen | co | 7 |
| 2022-01-01T17:00:00Z | home | Kitchen | co | 9 |
| 2022-01-01T18:00:00Z | home | Kitchen | co | 18 |
| 2022-01-01T19:00:00Z | home | Kitchen | co | 22 |
| 2022-01-01T20:00:00Z | home | Kitchen | co | 26 |
| _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-01T11:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T12:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T13:00:00Z | home | Kitchen | hum | 36.5 |
| 2022-01-01T14:00:00Z | home | Kitchen | hum | 36.3 |
| 2022-01-01T15:00:00Z | home | Kitchen | hum | 36.2 |
| 2022-01-01T16:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T17:00:00Z | home | Kitchen | hum | 36 |
| 2022-01-01T18:00:00Z | home | Kitchen | hum | 36.9 |
| 2022-01-01T19:00:00Z | home | Kitchen | hum | 36.6 |
| 2022-01-01T20:00:00Z | home | Kitchen | hum | 36.5 |
| _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-01T11:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T12:00:00Z | home | Kitchen | temp | 22.5 |
| 2022-01-01T13:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T14:00:00Z | home | Kitchen | temp | 22.8 |
| 2022-01-01T15:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T16:00:00Z | home | Kitchen | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Kitchen | temp | 22.7 |
| 2022-01-01T18:00:00Z | home | Kitchen | temp | 23.3 |
| 2022-01-01T19:00:00Z | home | Kitchen | temp | 23.1 |
| 2022-01-01T20:00:00Z | home | Kitchen | temp | 22.7 |
| _time | _measurement | room | _field | _value |
| :------------------- | :----------- | :---------- | :----- | -----: |
| 2022-01-01T08:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T09:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T10:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T11:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T12:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T13:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T14:00:00Z | home | Living Room | co | 0 |
| 2022-01-01T15:00:00Z | home | Living Room | co | 1 |
| 2022-01-01T16:00:00Z | home | Living Room | co | 4 |
| 2022-01-01T17:00:00Z | home | Living Room | co | 5 |
| 2022-01-01T18:00:00Z | home | Living Room | co | 9 |
| 2022-01-01T19:00:00Z | home | Living Room | co | 14 |
| 2022-01-01T20:00:00Z | home | Living Room | co | 17 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T12:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T13:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T14:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T15:00:00Z | home | Living Room | hum | 36.1 |
| 2022-01-01T16:00:00Z | home | Living Room | hum | 36 |
| 2022-01-01T17:00:00Z | home | Living Room | hum | 35.9 |
| 2022-01-01T18:00:00Z | home | Living Room | hum | 36.2 |
| 2022-01-01T19:00:00Z | home | Living Room | hum | 36.3 |
| 2022-01-01T20:00:00Z | home | Living Room | hum | 36.4 |
| _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 |
| 2022-01-01T11:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T12:00:00Z | home | Living Room | temp | 22.2 |
| 2022-01-01T13:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T14:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T15:00:00Z | home | Living Room | temp | 22.3 |
| 2022-01-01T16:00:00Z | home | Living Room | temp | 22.4 |
| 2022-01-01T17:00:00Z | home | Living Room | temp | 22.6 |
| 2022-01-01T18:00:00Z | home | Living Room | temp | 22.8 |
| 2022-01-01T19:00:00Z | home | Living Room | temp | 22.5 |
| 2022-01-01T20:00:00Z | home | Living Room | temp | 22.2 |
{{% /expand %}}
{{< /expand-wrapper >}}
**Congratulations!** You have written data to InfluxDB. The method described
above is the manual way of writing data, but there are other options available:
- [Write data to InfluxDB using no-code solutions](/influxdb/v2.5/write-data/no-code/)
- [Write data to InfluxDB using developer tools](/influxdb/v2.5/write-data/developer-tools/)
With data now stored in InfluxDB, let's query it.
{{< page-nav prev="/influxdb/v2.5/get-started/setup/" next="/influxdb/v2.5/get-started/query/" keepTab=true >}}

View File

@ -128,6 +128,7 @@ option task = {
## Create a task using the InfluxDB API
{{% oss-only %}}
Use the [`/api/v2/tasks` InfluxDB API endpoint](/influxdb/v2.5/api/#operation/PostTasks) to create a task.
{{< api-endpoint method="POST" endpoint="http://localhost:8086/api/v2/tasks/" >}}

View File

@ -3,10 +3,10 @@ title: Query sample data
description: >
Explore InfluxDB OSS with our sample data buckets.
menu:
influxdb_2_5::
influxdb_2_5:
name: Query with sample data
parent: Execute queries
weight: 10
weight: 210
---
Use **InfluxDB OSS** sample datasets to quickly access data that lets you explore and familiarize yourself with InfluxDB Cloud without requiring you to have or write your own data.

View File

@ -57,7 +57,7 @@ To return the version of Flux installed with InfluxDB using the InfluxDB UI:
1. Click **Data Explorer** in the left navigation bar.
{{< nav-icon "data-explorer" >}}
{{< nav-icon "data-explorer" >}}
2. Click **{{% caps %}}Script Editor{{% /caps %}}** to manually create and
edit a Flux query.

View File

@ -37,7 +37,7 @@ using the InfluxDB user interface (UI).
{{< nav-icon "load-data" >}}
2. Click the **{{< icon "toggle-green" >}} Status** toggle.
2. Click the **{{< icon "toggle" >}} Status** toggle.
{{% /oss-only %}}

28
data/clockface.yml Normal file
View File

@ -0,0 +1,28 @@
influxdb:
default: v4
cloud: v4
v2.5: v4
v2.4: v4
v2.3: v3
v2.2: v3
v2.1: v3
v2.0: v2
enterprise_influxdb:
default: v2
chronograf:
default: v2
telegraf:
default: v2
kapacitor:
default: v2
resources:
default: v4
# Only used by content/example.md for testing icons
example:
default: v4

View File

@ -5,6 +5,7 @@
{{ $modals := resources.Get "js/modals.js" }}
{{ $influxdbURLs := resources.Get "js/influxdb-url.js" }}
{{ $featureCallouts := resources.Get "js/feature-callouts.js" }}
{{ $tabbedContent := resources.Get "js/tabbed-content.js" }}
{{ $notifications := resources.Get "js/notifications.js" }}
{{ $keybindings := resources.Get "js/keybindings.js" }}
{{ $fluxGroupKeys := resources.Get "js/flux-group-keys.js" }}
@ -13,7 +14,7 @@
{{ $pageFeedback := resources.Get "js/page-feedback.js" }}
{{ $homepageInteractions := resources.Get "js/home-interactions.js" }}
{{ $fluxInfluxDBVersions := resources.Get "/js/flux-influxdb-versions.js"}}
{{ $footerjs := slice $versionSelector $contentInteractions $searchInteractions $listFilters $modals $influxdbURLs $featureCallouts $notifications $keybindings $fullscreenCode $pageFeedback $homepageInteractions $fluxInfluxDBVersions | resources.Concat "js/footer.bundle.js" | resources.Fingerprint }}
{{ $footerjs := slice $versionSelector $contentInteractions $searchInteractions $listFilters $modals $influxdbURLs $featureCallouts $tabbedContent $notifications $keybindings $fullscreenCode $pageFeedback $homepageInteractions $fluxInfluxDBVersions | resources.Concat "js/footer.bundle.js" | resources.Fingerprint }}
{{ $fluxGroupKeyjs := slice $fluxGroupKeys | resources.Concat "js/flux-group-keys.js" | resources.Fingerprint }}
{{ $fluxCurrentTimejs := slice $fluxCurrentTime | resources.Concat "js/flux-current-time.js" | resources.Fingerprint }}

View File

@ -3,7 +3,12 @@
<h4 id="authentication-credentials">Authentication credentials</h4>
<p>
The examples below assume your InfluxDB <strong>host</strong>, <strong>organization</strong>, and <strong>token</strong> are
provided by the <a href="/influxdb/{{ $currentVersion }}/reference/cli/influx/#provide-required-authentication-credentials">active <code>influx</code> CLI configuration</a>.
If you do not have a CLI configuration set up, use the appropriate flags to provide these required credentials.
provided by either the <a href="/influxdb/{{ $currentVersion }}/reference/cli/influx/#provide-required-authentication-credentials">active <code>influx</code> CLI configuration</a> or by environment variables (<code>INFLUX_HOST</code>, <code>INFLUX_ORG</code>, and <code>INFLUX_TOKEN</code>).
If you do not have a CLI configuration set up or the environment variables set, include these required credentials for each command with the following flags:
</p>
<ul>
<li><code>--host</code>: <a href="/influxdb/{{ $currentVersion }}/reference/urls/">InfluxDB host</a></li>
<li><code>-o, --org</code> or <code>--org-id</code>: InfluxDB organization name or ID</li>
<li><code>-t, --token</code>: InfluxDB API token</li>
</ul>
</div>

View File

@ -1,4 +1,3 @@
{{ $_hugo_config := `{ "version": 1 }` }}
{{ $expandLabel := .Get 0 }}
<div class="expand" id="{{ $expandLabel | anchorize }}">
<p class="expand-label">

View File

@ -1,2 +1,3 @@
{{- $groupKey := .Get 0 -}}
<p class="table-group-key">Group key = {{ $groupKey }}</p>
{{- $instance := .Get 1 | default false -}}
<p class="table-group-key">Group key{{ if $instance }} instance{{ end }} = {{ $groupKey }}</p>

View File

@ -1,6 +1,10 @@
{{- $_hugo_config := `{ "version": 1 }` -}}
{{- $icon := .Get 0 | default "influx" -}}
{{- $version := .Get 1 | default "v3" -}}
{{- $productPathData := findRE "[^/]+.*?" .Page.RelPermalink -}}
{{- $product := index $productPathData 0 -}}
{{- $productVersion := index $productPathData 1 | default "v0.0" -}}
{{- $defaultClockface := cond (isset (index .Site.Data.clockface $product) $productVersion) (index (index .Site.Data.clockface $product) $productVersion) (index (index .Site.Data.clockface $product) "default") }}
{{- $version := .Get 1 | default $defaultClockface -}}
{{- if eq $version "v2" -}}
{{- if or (eq $icon "nav-admin") (eq $icon "influx") (eq $icon "influx-icon") -}}
@ -74,55 +78,55 @@
{{- else if eq $icon "toggle-green" -}}
<span class="inline ui-toggle green"><span class="circle"></span></span>
{{- end -}}
{{- else -}}
{{- else if eq $version "v3" -}}
{{- if or (eq $icon "nav-admin") (eq $icon "influx") (eq $icon "influx-icon") -}}
<span class="inline cf-icon cubo middle"></span>
<span class="inline {{ $version }} cf-icon cubo middle"></span>
{{- else if or (eq $icon "nav-data-explorer") (eq $icon "data-explorer") (eq $icon "graph") -}}
<span class="inline cf-icon graphline-2 middle large"></span>
<span class="inline {{ $version }} cf-icon graphline-2 middle large"></span>
{{- else if or (eq $icon "nav-dashboards") (eq $icon "dashboard") (eq $icon "dashboards") -}}
<span class="inline cf-icon graph-line-new"></span>
<span class="inline {{ $version }} cf-icon graph-line-new"></span>
{{- else if or (eq $icon "nav-tasks") (eq $icon "calendar") (eq $icon "tasks") -}}
<span class="inline cf-icon calendar"></span>
<span class="inline {{ $version }} cf-icon calendar"></span>
{{- else if or (eq $icon "nav-organizations") (eq $icon "nav-orgs") (eq $icon "orgs") (eq $icon "org") -}}
<span class="inline cf-icon users-duo middle"></span>
<span class="inline {{ $version }} cf-icon users-duo middle"></span>
{{- else if or (eq $icon "nav-configuration") (eq $icon "nav-config") (eq $icon "wrench") -}}
<span class="inline cf-icon wrench-nav middle large"></span>
<span class="inline {{ $version }} cf-icon wrench-nav middle large"></span>
{{- else if eq $icon "add-cell" -}}
<span class="inline cf-icon add-cell-new small"></span>
<span class="inline {{ $version }} cf-icon add-cell-new small"></span>
{{- else if eq $icon "alert" -}}
<span class="inline cf-icon alert-triangle-new middle"></span>
<span class="inline {{ $version }} cf-icon alert-triangle-new middle"></span>
{{- else if or (eq $icon "checkmark") (eq $icon "check") -}}
<span class="inline cf-icon checkmark-new large"></span>
<span class="inline {{ $version }} cf-icon checkmark-new large"></span>
{{- else if or (eq $icon "gear") (eq $icon "cog") (eq $icon "settings") (eq $icon "config") -}}
<span class="inline cf-icon cog-solid-new middle small"></span>
<span class="inline {{ $version }} cf-icon cog-solid-new middle small"></span>
{{- else if eq $icon "download" -}}
<span class="inline cf-icon download-new middle large"></span>
<span class="inline {{ $version }} cf-icon download-new middle large"></span>
{{- else if or (eq $icon "duplicate") (eq $icon "copy") (eq $icon "clone") -}}
<span class="inline cf-icon duplicate middle small"></span>
<span class="inline {{ $version }} cf-icon duplicate middle small"></span>
{{- else if or (eq $icon "export") (eq $icon "save-as") -}}
<span class="inline cf-icon export-new middle"></span>
<span class="inline {{ $version }} cf-icon export-new middle"></span>
{{- else if or (eq $icon "expand") (eq $icon "fullscreen") -}}
<span class="inline cf-icon expand-b middle"></span>
<span class="inline {{ $version }} cf-icon expand-b middle"></span>
{{- else if eq $icon "note" -}}
<span class="inline cf-icon text-new middle"></span>
<span class="inline {{ $version }} cf-icon text-new middle"></span>
{{- else if eq $icon "pause" -}}
<span class="inline cf-icon pause middle"></span>
<span class="inline {{ $version }} cf-icon pause middle"></span>
{{- else if or (eq $icon "pencil") (eq $icon "edit") -}}
<span class="inline cf-icon pencil"></span>
<span class="inline {{ $version }} cf-icon pencil"></span>
{{- else if eq $icon "play" -}}
<span class="inline cf-icon play middle small"></span>
<span class="inline {{ $version }} cf-icon play middle small"></span>
{{- else if eq $icon "plus" -}}
<span class="inline cf-icon plus-new top"></span>
<span class="inline {{ $version }} cf-icon plus-new top"></span>
{{- else if or (eq $icon "refresh") (eq $icon "replay") -}}
<span class="inline cf-icon refresh-new middle"></span>
<span class="inline {{ $version }} cf-icon refresh-new middle"></span>
{{- else if or (eq $icon "remove") (eq $icon "x") -}}
<span class="inline cf-icon remove-new large"></span>
<span class="inline {{ $version }} cf-icon remove-new large"></span>
{{- else if eq $icon "search" -}}
<span class="inline cf-icon search middle small"></span>
<span class="inline {{ $version }} cf-icon search middle small"></span>
{{- else if or (eq $icon "trash") (eq $icon "trashcan") (eq $icon "delete") -}}
<span class="inline cf-icon trash-new top small"></span>
<span class="inline {{ $version }} cf-icon trash-new top small"></span>
{{- else if eq $icon "triangle" -}}
<span class="inline cf-icon triangle middle"></span>
<span class="inline {{ $version }} cf-icon triangle middle"></span>
{{- else if eq $icon "cloud" -}}
<span class="inline icon-cloud large"></span>
{{- else if eq $icon "feedback" -}}
@ -130,15 +134,15 @@
{{- else if eq $icon "chat" -}}
<span class="inline icon-chat large"></span>
{{- else if or (eq $icon "eye-open") (eq $icon "eye") (eq $icon "view") -}}
<span class="inline cf-icon eye-open-new"></span>
<span class="inline {{ $version }} cf-icon eye-open-new"></span>
{{- else if or (eq $icon "eye-closed") (eq $icon "hide") -}}
<span class="inline cf-icon eye-closed large"></span>
<span class="inline {{ $version }} cf-icon eye-closed large"></span>
{{- else if or (eq $icon "notebook") (eq $icon "notebooks") -}}
<span class="inline cf-icon book-pencil"></span>
<span class="inline {{ $version }} cf-icon book-pencil"></span>
{{- else if eq $icon "crown" -}}
<span class="inline cf-icon crown-solid-new "></span>
<span class="inline {{ $version }} cf-icon crown-solid-new "></span>
{{- else if or (eq $icon "bar-chart") (eq $icon "bar-graph") -}}
<span class="inline cf-icon bar-chart-new top"></span>
<span class="inline {{ $version }} cf-icon bar-chart-new top"></span>
{{- else if eq $icon "add-label" -}}
<span class="inline add-btn-round {{ $version }}">&#xe931;</span>
{{- else if or (eq $icon "toggle") (eq $icon "toggle-blue") -}}
@ -150,16 +154,100 @@
{{- else if or (eq $icon "notebook-add") (eq $icon "notebook-add-cell") -}}
<span class="inline notebook-add-cell {{ $version }}"><span class="cf-icon plus-new"></span></span>
{{- else if or (eq $icon "annotate") (eq $icon "pin") -}}
<span class="inline cf-icon annotate-new"></span>
<span class="inline {{ $version }} cf-icon annotate-new"></span>
{{- else if eq $icon "clock" -}}
<span class="inline cf-icon clock-new top small"></span>
<span class="inline {{ $version }} cf-icon clock-new top small"></span>
{{- else if or (eq $icon "handle") (eq $icon "move-cell") (eq $icon "move") -}}
<span class="inline cf-icon handle-new middle xsmall"></span>
<span class="inline {{ $version }} cf-icon handle-new middle xsmall"></span>
{{- else if eq $icon "share" -}}
<span class="inline cf-icon share middle"></span>
<span class="inline {{ $version }} cf-icon share middle"></span>
{{- else if eq $icon "bucket" -}}
<span class="inline cf-icon bucket-solid top"></span>
<span class="inline {{ $version }} cf-icon bucket-solid top"></span>
{{- else if or (eq $icon "more") (eq $icon "...") (eq $icon "ellipses") -}}
<span class="inline cf-icon more bottom"></span>
<span class="inline {{ $version }} cf-icon more bottom"></span>
{{- end -}}
{{- else -}}
{{- if or (eq $icon "nav-admin") (eq $icon "influx") (eq $icon "influx-icon") -}}
<span class="inline {{ $version }} cf-icon CuboSolid middle"></span>
{{- else if or (eq $icon "nav-data-explorer") (eq $icon "data-explorer") (eq $icon "graph") -}}
<span class="inline {{ $version }} cf-icon GraphLine_New middle large"></span>
{{- else if or (eq $icon "nav-dashboards") (eq $icon "dashboard") (eq $icon "dashboards") -}}
<span class="inline {{ $version }} cf-icon DashH"></span>
{{- else if or (eq $icon "nav-tasks") (eq $icon "calendar") (eq $icon "tasks") -}}
<span class="inline {{ $version }} cf-icon Calendar"></span>
{{- else if or (eq $icon "nav-organizations") (eq $icon "nav-orgs") (eq $icon "orgs") (eq $icon "org") -}}
<span class="inline {{ $version }} cf-icon User middle"></span>
{{- else if eq $icon "add-cell" -}}
<span class="inline {{ $version }} cf-icon AddCell_New small"></span>
{{- else if eq $icon "alert" -}}
<span class="inline {{ $version }} cf-icon AlertTriangle middle"></span>
{{- else if or (eq $icon "checkmark") (eq $icon "check") -}}
<span class="inline {{ $version }} cf-icon Checkmark_New large"></span>
{{- else if or (eq $icon "gear") (eq $icon "cog") (eq $icon "settings") (eq $icon "config") -}}
<span class="inline {{ $version }} cf-icon CogSolid_New middle small"></span>
{{- else if eq $icon "download" -}}
<span class="inline {{ $version }} cf-icon Download_New middle large"></span>
{{- else if or (eq $icon "duplicate") (eq $icon "copy") (eq $icon "clone") -}}
<span class="inline {{ $version }} cf-icon Duplicate_New middle small"></span>
{{- else if or (eq $icon "export") (eq $icon "save-as") -}}
<span class="inline {{ $version }} cf-icon Export_New middle"></span>
{{- else if or (eq $icon "expand") (eq $icon "fullscreen") -}}
<span class="inline {{ $version }} cf-icon ExpandB middle"></span>
{{- else if eq $icon "note" -}}
<span class="inline {{ $version }} cf-icon Text_New middle"></span>
{{- else if eq $icon "pause" -}}
<span class="inline {{ $version }} cf-icon Pause middle"></span>
{{- else if or (eq $icon "pencil") (eq $icon "edit") -}}
<span class="inline {{ $version }} cf-icon Pencil"></span>
{{- else if eq $icon "play" -}}
<span class="inline {{ $version }} cf-icon Play middle small"></span>
{{- else if eq $icon "plus" -}}
<span class="inline {{ $version }} cf-icon Plus_New top"></span>
{{- else if or (eq $icon "refresh") (eq $icon "replay") -}}
<span class="inline {{ $version }} cf-icon Refresh_New middle"></span>
{{- else if or (eq $icon "remove") (eq $icon "x") -}}
<span class="inline {{ $version }} cf-icon Remove_New large"></span>
{{- else if eq $icon "search" -}}
<span class="inline {{ $version }} cf-icon Search_New middle small"></span>
{{- else if or (eq $icon "trash") (eq $icon "trashcan") (eq $icon "delete") -}}
<span class="inline {{ $version }} cf-icon Trash_New top small"></span>
{{- else if eq $icon "cloud" -}}
<span class="inline cf-icon Cloud large"></span>
{{- else if eq $icon "feedback" -}}
<span class="inline df-icon Chat large"></span>
{{- else if eq $icon "chat" -}}
<span class="inline cf-icon Chat large"></span>
{{- else if or (eq $icon "eye-open") (eq $icon "eye") (eq $icon "view") -}}
<span class="inline {{ $version }} cf-icon EyeOpen"></span>
{{- else if or (eq $icon "eye-closed") (eq $icon "hide") -}}
<span class="inline {{ $version }} cf-icon EyeClosed large"></span>
{{- else if or (eq $icon "notebook") (eq $icon "notebooks") -}}
<span class="inline {{ $version }} cf-icon BookCode"></span>
{{- else if eq $icon "crown" -}}
<span class="inline {{ $version }} cf-icon CrownSolid_New "></span>
{{- else if or (eq $icon "bar-chart") (eq $icon "bar-graph") -}}
<span class="inline {{ $version }} cf-icon BarChart_New top"></span>
{{- else if eq $icon "add-label" -}}
<span class="inline add-btn-round {{ $version }}">&#xe931;</span>
{{- else if or (eq $icon "toggle") (eq $icon "toggle-blue") -}}
<span class="inline ui-toggle blue {{ $version }}"><span class="circle"></span></span>
{{- else if eq $icon "toggle-green" -}}
<span class="inline ui-toggle green {{ $version }}"><span class="circle"></span></span>
{{- else if eq $icon "toggle-off" -}}
<span class="inline ui-toggle off {{ $version }}"><span class="circle"></span></span>
{{- else if or (eq $icon "notebook-add") (eq $icon "notebook-add-cell") -}}
<span class="inline notebook-add-cell {{ $version }}"><span class="{{ $version }} cf-icon Plus_New"></span></span>
{{- else if or (eq $icon "annotate") (eq $icon "pin") -}}
<span class="inline {{ $version }} cf-icon Annotate_New"></span>
{{- else if eq $icon "clock" -}}
<span class="inline {{ $version }} cf-icon Clock_New top small"></span>
{{- else if or (eq $icon "handle") (eq $icon "move-cell") (eq $icon "move") -}}
<span class="inline v3 cf-icon handle-new middle xsmall"></span>
{{- else if eq $icon "share" -}}
<span class="inline {{ $version }} cf-icon Share middle"></span>
{{- else if eq $icon "bucket" -}}
<span class="inline {{ $version }} cf-icon BucketSolid top"></span>
{{- else if or (eq $icon "more") (eq $icon "...") (eq $icon "ellipses") -}}
<span class="inline {{ $version }} cf-icon More bottom"></span>
{{- end -}}
{{- end -}}

View File

@ -0,0 +1,6 @@
<div id="line-protocol-anatomy">
<p>
<span class="el measurement">measurement</span><span class="comma">,</span><span class="el tagset">tag11=val1,tag2=val2</span><span class="whitespace" data-whitespace="1st"> </span>
<span class="el fieldset">field1="v1",field2=1i</span><span class="whitespace" data-whitespace="2nd"> </span><span class="el timestamp">0000000000000000000</span>
</p>
</div>

View File

@ -0,0 +1,87 @@
<div id="series-diagram">
<table>
<thead>
<tr>
<th align="left">_time</th>
<th align="left">_measurement</th>
<th align="left"><span class="tooltip" data-tooltip-text="tag key">location</span></th>
<th align="left">_field</th>
<th align="right">_value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><span class="tooltip" data-tooltip-text="timestamp">2022-01-01T12:00:00Z</span></td>
<td align="left"><span class="tooltip" data-tooltip-text="measurement">weather</span></td>
<td align="left"><span class="tooltip" data-tooltip-text="tag value">London, UK</span></td>
<td align="left"><span class="tooltip" data-tooltip-text="field key">temperature</span></td>
<td align="right"><span class="tooltip" data-tooltip-text="field value">12.0</span></td>
</tr>
<tr class="point">
<td align="left">2022-02-01T12:00:00Z</td>
<td align="left">weather</td>
<td align="left">London, UK</td>
<td align="left">temperature</td>
<td align="right">12.1</td>
</tr>
<tr>
<td align="left">2022-03-01T12:00:00Z</td>
<td align="left">weather</td>
<td align="left">London, UK</td>
<td align="left">temperature</td>
<td align="right">11.5</td>
</tr>
<tr>
<td align="left">2022-04-01T12:00:00Z</td>
<td align="left">weather</td>
<td align="left">London, UK</td>
<td align="left">temperature</td>
<td align="right">5.9</td>
</tr>
</tbody>
</table>
</div>
<div id="series-diagram">
<table>
<thead>
<tr>
<th align="left">_time</th>
<th align="left">_measurement</th>
<th align="left">location</th>
<th align="left">_field</th>
<th align="right">_value</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">2022-01-01T12:00:00Z</td>
<td align="left">weather</td>
<td align="left">Cologne, DE</td>
<td align="left">temperature</td>
<td align="right">13.2</td>
</tr>
<tr>
<td align="left">2022-02-01T12:00:00Z</td>
<td align="left">weather</td>
<td align="left">Cologne, DE</td>
<td align="left">temperature</td>
<td align="right">11.5</td>
</tr>
<tr>
<td align="left">2022-03-01T12:00:00Z</td>
<td align="left">weather</td>
<td align="left">Cologne, DE</td>
<td align="left">temperature</td>
<td align="right">10.2</td>
</tr>
<tr>
<td align="left">2022-04-01T12:00:00Z</td>
<td align="left">weather</td>
<td align="left">Cologne, DE</td>
<td align="left">temperature</td>
<td align="right">7.9</td>
</tr>
</tbody>
</table>
</div>

View File

@ -1,5 +1,9 @@
{{ $navIcon := lower (.Get 0) | default "influx" }}
{{ $version := lower (.Get 1) | default "v3" }}
{{- $productPathData := findRE "[^/]+.*?" .Page.RelPermalink -}}
{{- $product := index $productPathData 0 -}}
{{- $productVersion := index $productPathData 1 | default "v0.0" -}}
{{- $defaultClockface := cond (isset (index .Site.Data.clockface $product) $productVersion) (index (index .Site.Data.clockface $product) $productVersion) (index (index .Site.Data.clockface $product) "default") }}
{{- $version := .Get 1 | default $defaultClockface -}}
{{ if eq $version "v2" }}
{{ if or (eq $navIcon "admin") (eq $navIcon "influx") }}
@ -84,66 +88,93 @@
{{ end }}
{{ else }}
{{ if eq $version "v3" }}
{{/* ----------------------- CLOCKFACE v3 ----------------------- */}}
{{/* ----------------------- CLOCKFACE v3 ----------------------- */}}
{{ if or (eq $navIcon "data-explorer") (eq $navIcon "data explorer") (eq $navIcon "explore") }}
{{ .Scratch.Set "icon" "graphline-2" }}
{{ .Scratch.Set "title" "Data Explorer" }}
{{ else if or (eq $navIcon "notebooks") (eq $navIcon "books") }}
{{ .Scratch.Set "icon" "book-pencil" }}
{{ .Scratch.Set "title" "Notebooks" }}
{{ else if or (eq $navIcon "dashboards") (eq $navIcon "boards") }}
{{ .Scratch.Set "icon" "graph-line-new" }}
{{ .Scratch.Set "title" "Dashboards" }}
{{ else if eq $navIcon "tasks" }}
{{ .Scratch.Set "icon" "calendar" }}
{{ .Scratch.Set "title" "Tasks" }}
{{ else if or (eq $navIcon "monitor") (eq $navIcon "alerts") (eq $navIcon "bell") }}
{{ .Scratch.Set "icon" "bell" }}
{{ .Scratch.Set "title" "Alerts" }}
{{ else if or (eq $navIcon "load data") (eq $navIcon "load-data") (eq $navIcon "data") }}
{{ .Scratch.Set "icon" "ingest-new" }}
{{ .Scratch.Set "title" "Load Data" }}
{{ else if eq $navIcon "settings" }}
{{ .Scratch.Set "icon" "wrench-nav" }}
{{ .Scratch.Set "title" "Settings" }}
{{ end }}
{{ if or (eq $navIcon "data-explorer") (eq $navIcon "data explorer") (eq $navIcon "explore") }}
{{ .Scratch.Set "icon" "graphline-2" }}
{{ .Scratch.Set "title" "Data Explorer" }}
{{ else if or (eq $navIcon "notebooks") (eq $navIcon "books") }}
{{ .Scratch.Set "icon" "book-pencil" }}
{{ .Scratch.Set "title" "Notebooks" }}
{{ else if or (eq $navIcon "dashboards") (eq $navIcon "boards") }}
{{ .Scratch.Set "icon" "graph-line-new" }}
{{ .Scratch.Set "title" "Dashboards" }}
{{ else if eq $navIcon "tasks" }}
{{ .Scratch.Set "icon" "calendar" }}
{{ .Scratch.Set "title" "Tasks" }}
{{ else if or (eq $navIcon "monitor") (eq $navIcon "alerts") (eq $navIcon "bell") }}
{{ .Scratch.Set "icon" "bell" }}
{{ .Scratch.Set "title" "Alerts" }}
{{ else if or (eq $navIcon "load data") (eq $navIcon "load-data") (eq $navIcon "data") }}
{{ .Scratch.Set "icon" "ingest-new" }}
{{ .Scratch.Set "title" "Load Data" }}
{{ else if eq $navIcon "settings" }}
{{ .Scratch.Set "icon" "wrench-nav" }}
{{ .Scratch.Set "title" "Settings" }}
{{ end }}
{{ if or (eq $navIcon "profile") (eq $navIcon "account") }}
<div class="nav-items-v3">
<div class="nav-item-v3 account">
<div class="acct-inner-v3">
<div class="acct-icon-v3"><span class="initial">u</span></div>
</div>
</div>
<div class="nav-item-v3 account">
<div class="acct-inner-v3">
<div class="acct-icon-v3"><span class="initial">u</span></div>
<div class="acct-label-v3">
<div class="username">username</div>
<div class="orgname">org-name</div>
</div>
</div>
</div>
</div>
{{ else }}
{{ $icon := .Scratch.Get "icon" }}
{{ $title := .Scratch.Get "title" }}
<div class="nav-items-v3">
<div class="nav-item-v3">
<div class="nav-icon-v3">
<span class="cf-icon {{ $icon }}"></span>
</div>
</div>
<div class="nav-item-v3">
<div class="nav-icon-v3">
<span class="cf-icon {{ $icon }}"></span>
</div>
<p class="nav-label-v3">{{ $title }}</p>
</div>
</div>
{{/* ----------------------- CLOCKFACE v4 ----------------------- */}}
{{ if or (eq $navIcon "data-explorer") (eq $navIcon "data explorer") (eq $navIcon "explore") }}
{{ .Scratch.Set "icon" "GraphLine_New" }}
{{ .Scratch.Set "title" "Data Explorer" }}
{{ else if or (eq $navIcon "notebooks") (eq $navIcon "books") }}
{{ .Scratch.Set "icon" "Pencil" }}
{{ .Scratch.Set "title" "Notebooks" }}
{{ else if or (eq $navIcon "dashboards") (eq $navIcon "boards") }}
{{ .Scratch.Set "icon" "DashH" }}
{{ .Scratch.Set "title" "Dashboards" }}
{{ else if eq $navIcon "tasks" }}
{{ .Scratch.Set "icon" "Calendar" }}
{{ .Scratch.Set "title" "Tasks" }}
{{ else if or (eq $navIcon "monitor") (eq $navIcon "alerts") (eq $navIcon "bell") }}
{{ .Scratch.Set "icon" "Bell" }}
{{ .Scratch.Set "title" "Alerts" }}
{{ else if or (eq $navIcon "load data") (eq $navIcon "load-data") (eq $navIcon "data") }}
{{ .Scratch.Set "icon" "Upload_New" }}
{{ .Scratch.Set "title" "Load Data" }}
{{ else if eq $navIcon "settings" }}
{{ .Scratch.Set "icon" "CogOutline_New" }}
{{ .Scratch.Set "title" "Settings" }}
{{ end }}
{{ end }}
{{ if or (eq $navIcon "profile") (eq $navIcon "account") }}
<div class="nav-items-{{ $version }}">
<div class="nav-item-{{ $version }} account">
<div class="acct-inner-{{ $version }}">
<div class="acct-icon-{{ $version }}"><span class="initial">u</span></div>
</div>
</div>
<div class="nav-item-{{ $version }} account">
<div class="acct-inner-{{ $version }}">
<div class="acct-icon-{{ $version }}"><span class="initial">u</span></div>
<div class="acct-label-{{ $version }}">
<div class="username">username</div>
<div class="orgname">org-name</div>
</div>
</div>
</div>
</div>
{{ else }}
{{ $icon := .Scratch.Get "icon" }}
{{ $title := .Scratch.Get "title" }}
<div class="nav-items-{{ $version }}">
<div class="nav-item-{{ $version }}">
<div class="nav-icon-{{ $version }}">
<span class="{{ $version }} cf-icon {{ $icon }}"></span>
</div>
</div>
<div class="nav-item-{{ $version }}">
<div class="nav-icon-{{ $version }}">
<span class="{{ $version }} cf-icon {{ $icon }}"></span>
</div>
<p class="nav-label-{{ $version }}">{{ $title }}</p>
</div>
</div>
{{ end }}
{{ end }}

View File

@ -4,11 +4,12 @@
{{ $nextText := .Get "nextText" | default "" }}
{{ $prevPage := .Site.GetPage (replaceRE `\/$` "" $prev) }}
{{ $nextPage := .Site.GetPage (replaceRE `\/$` "" $next) }}
{{ $keepTab := .Get "keepTab" | default false}}
<div class="page-nav-btns">
{{ if ne (len $prev) 0 }}
<a class="btn prev" href="{{ $prevPage.RelPermalink }}">{{ if ne (len $prevText) 0 }}{{ $prevText }}{{ else if $prevPage.Params.list_title }}{{ $prevPage.Params.list_title }}{{ else }}{{ $prevPage.Title }}{{ end }}</a>
<a class="btn prev{{if $keepTab}} keep-tab{{end}}" href="{{ $prevPage.RelPermalink }}">{{ if ne (len $prevText) 0 }}{{ $prevText }}{{ else if $prevPage.Params.list_title }}{{ $prevPage.Params.list_title }}{{ else }}{{ $prevPage.Title }}{{ end }}</a>
{{ end }}
{{ if ne (len $next) 0 }}
<a class="btn next" href="{{ $nextPage.RelPermalink }}">{{ if ne (len $nextText) 0 }}{{ $nextText }}{{ else if $nextPage.Params.list_title }}{{ $nextPage.Params.list_title }}{{ else }}{{ $nextPage.Title }}{{ end }}</a>
<a class="btn next{{if $keepTab}} keep-tab{{end}}" href="{{ $nextPage.RelPermalink }}">{{ if ne (len $nextText) 0 }}{{ $nextText }}{{ else if $nextPage.Params.list_title }}{{ $nextPage.Params.list_title }}{{ else }}{{ $nextPage.Title }}{{ end }}</a>
{{ end }}
</div>

View File

@ -1,6 +1,7 @@
{{ $_hugo_config := `{ "version": 1 }` }}
<div class="truncate closed">
{{ .Inner }}
<div class="truncate closed" id="truncate-{{ .Ordinal }}">
<div class="truncate-content closed">
{{ .Inner }}
</div>
<div class="truncate-bottom">
<a class="truncate-toggle" href="#"></a>
</div>

View File

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 108 KiB

BIN
static/fonts/icomoon-v4.eot Normal file

Binary file not shown.

BIN
static/fonts/icomoon-v4.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,98 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="icomoon" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="Play" d="M785.276 396.647l-493.126-328.751c-3.503-2.33-7.573-3.669-11.776-3.87s-8.382 0.742-12.091 2.731c-3.71 1.984-6.811 4.941-8.974 8.55s-3.307 7.735-3.309 11.942v657.5c0.002 4.208 1.146 8.336 3.309 11.946s5.264 6.564 8.974 8.55c3.709 1.986 7.888 2.929 12.091 2.728s8.273-1.539 11.776-3.87l493.126-328.75c3.183-2.125 5.798-5.001 7.603-8.38 1.809-3.375 2.752-7.147 2.752-10.974 0-3.831-0.943-7.599-2.752-10.974-1.805-3.379-4.42-6.255-7.603-8.38v0z" />
<glyph unicode="&#xe901;" glyph-name="Pause" horiz-adv-x="983" d="M425.984 132.779c0-18.022-15.77-33.792-33.792-33.792h-112.64c-18.022 0-33.792 15.77-33.792 33.792v608.256c0 18.022 15.77 33.792 33.792 33.792h112.64c18.022 0 33.792-15.77 33.792-33.792v-608.256zM741.421 132.779c0-18.022-15.774-33.792-33.796-33.792h-112.64c-18.022 0-33.792 15.77-33.792 33.792v608.256c0 18.022 15.77 33.792 33.792 33.792h112.64c18.022 0 33.796-15.77 33.796-33.792v-608.256z" />
<glyph unicode="&#xe902;" glyph-name="EyeOpen" d="M50.391 426.667c40.107 218.453 231.552 384 461.609 384 230.059 0 421.461-165.547 461.611-384-40.107-218.453-231.552-384-461.611-384-230.057 0-421.46 165.547-461.609 384v0zM512 213.334c56.58 0 110.844 22.477 150.852 62.485 40.004 40.004 62.481 94.268 62.481 150.848s-22.477 110.842-62.481 150.849c-40.009 40.008-94.272 62.484-150.852 62.484s-110.84-22.476-150.848-62.484c-40.008-40.008-62.484-94.269-62.484-150.849s22.476-110.844 62.484-150.848c40.008-40.009 94.268-62.485 150.848-62.485zM512 298.667c-33.946 0-66.505 13.487-90.508 37.491s-37.49 56.563-37.49 90.509c0 33.946 13.486 66.505 37.49 90.51s56.563 37.49 90.508 37.49c33.95 0 66.505-13.486 90.513-37.49 24.004-24.005 37.487-56.564 37.487-90.51s-13.483-66.505-37.487-90.509c-24.009-24.004-56.563-37.491-90.513-37.491z" />
<glyph unicode="&#xe903;" glyph-name="Flask" d="M682.667 853.334v-85.333h-42.667v-138.368c0-49.408 10.709-98.176 31.403-143.019l182.699-395.776c14.805-32.128 0.768-70.144-31.317-84.907-8.405-3.925-17.536-5.931-26.795-5.931h-567.979c-35.328 0-64 28.672-64 64 0 9.259 2.005 18.432 5.888 26.837l182.699 395.776c20.693 44.8 31.403 93.611 31.403 143.019v138.368h-42.667v85.333h341.333zM554.667 768h-85.333v-170.667h85.333v170.667z" />
<glyph unicode="&#xe904;" glyph-name="AddCell_New" d="M938.667 384.043v-298.709c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-341.333v341.376h384zM469.333 384.043v-341.376h-341.333c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v298.709h384zM469.333 810.667v-341.291h-384v298.624c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h341.333zM896 810.667c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-298.624h-384v341.291h341.333z" />
<glyph unicode="&#xe905;" glyph-name="QuestionMark" d="M512-0c-235.648 0-426.667 191.019-426.667 426.667s191.019 426.667 426.667 426.667c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.667-426.667-426.667zM469.333 298.667v-85.333h85.333v85.333h-85.333zM554.667 368.854c34.291 10.334 63.727 32.64 82.953 62.861 19.221 30.217 26.953 66.33 21.781 101.77-5.167 35.439-22.895 67.841-49.95 91.307s-61.636 36.434-97.451 36.542c-34.522 0.003-67.981-11.953-94.686-33.834-26.704-21.881-45.004-52.337-51.788-86.187l83.712-16.768c2.377 11.886 8.077 22.852 16.444 31.624 8.363 8.772 19.046 14.988 30.805 17.925s24.111 2.475 35.618-1.334c11.507-3.808 21.696-10.806 29.38-20.179 7.689-9.373 12.553-20.735 14.033-32.765s-0.486-24.233-5.67-35.19c-5.184-10.957-13.376-20.215-23.616-26.697-10.24-6.485-22.11-9.929-34.231-9.929-11.315 0-22.17-4.497-30.17-12.497s-12.497-18.854-12.497-30.17v-64h85.333v27.52z" />
<glyph unicode="&#xe906;" glyph-name="AlertTriangle" horiz-adv-x="983" d="M526.991 778.929l390.185-675.842c3.592-6.226 5.485-13.287 5.485-20.48 0-7.188-1.892-14.25-5.485-20.476-3.596-6.23-8.765-11.399-14.991-14.995-6.23-3.592-13.292-5.489-20.48-5.489h-780.371c-7.19 0-14.253 1.896-20.48 5.489-6.226 3.596-11.397 8.765-14.992 14.995-3.595 6.226-5.487 13.287-5.487 20.476 0 7.193 1.893 14.254 5.487 20.48l390.186 675.842c3.592 6.226 8.765 11.397 14.991 14.991s13.287 5.487 20.48 5.487c7.188 0 14.25-1.892 20.48-5.487 6.226-3.595 11.395-8.765 14.991-14.991v0zM450.56 246.447v-81.92h81.92v81.92h-81.92zM450.56 533.169v-204.802h81.92v204.802h-81.92z" />
<glyph unicode="&#xe907;" glyph-name="Annotate_New" horiz-adv-x="983" d="M737.28 783.017v-81.92h-40.96v-245.758l81.92-122.88v-81.92h-245.76v-286.72h-81.92v286.72h-245.76v81.92l81.92 122.88v245.758h-40.96v81.92h491.52z" />
<glyph unicode="&#xe908;" glyph-name="ArrowDown_New" horiz-adv-x="983" d="M450.548 247.59v498.567h81.92v-498.567l219.709 219.709 57.917-57.917-318.587-318.587-318.586 318.587 57.917 57.917 219.709-219.709z" />
<glyph unicode="&#xe909;" glyph-name="ArrowLeft_New" horiz-adv-x="983" d="M320.62 463.523h498.564v-81.92h-498.564l219.708-219.709-57.917-57.917-318.586 318.587 318.586 318.588 57.917-57.917-219.708-219.711z" />
<glyph unicode="&#xe90a;" glyph-name="ArrowRight_New" horiz-adv-x="983" d="M662.389 385.711h-498.564v81.92h498.564l-219.709 219.709 57.917 57.917 318.587-318.586-318.587-318.587-57.917 57.917 219.709 219.709z" />
<glyph unicode="&#xe90b;" glyph-name="BarChart_New" horiz-adv-x="983" d="M163.84 391.962h145.636v-329.834h-145.636v329.834zM673.563 538.557h145.637v-476.43h-145.637v476.43zM418.701 758.447h145.637v-696.32h-145.637v696.32z" />
<glyph unicode="&#xe90c;" glyph-name="Bell" horiz-adv-x="983" d="M901.12 107.179h-819.2v81.92h40.96v285.45c0 204.306 165.069 369.908 368.64 369.908s368.64-165.601 368.64-369.908v-285.45h40.96v-81.92zM204.8 189.099h573.44v285.45c0 159.046-128.369 287.988-286.72 287.988s-286.72-128.942-286.72-287.988v-285.45zM389.12 66.219h204.8c0-27.161-10.789-53.207-29.991-72.409-19.206-19.206-45.253-29.991-72.409-29.991s-53.203 10.785-72.409 29.991c-19.202 19.202-29.991 45.249-29.991 72.409v0z" />
<glyph unicode="&#xe90d;" glyph-name="BookCode" horiz-adv-x="983" d="M819.405 848.557c45.138 0 81.715-36.782 81.715-81.51v-656.181c0-45.015-36.577-81.51-81.715-81.51h-655.565v163.84h-81.92v81.92h81.92v122.88h-81.92v81.92h81.92v122.882h-81.92v81.92h81.92v163.84h655.565zM327.68 766.637h-81.92v-655.362h81.92v655.362zM819.2 766.637h-409.6v-655.362h409.6v655.362z" />
<glyph unicode="&#xe90e;" glyph-name="BookOutline" horiz-adv-x="983" d="M122.88 176.807v552.96c0 32.59 12.946 63.845 35.991 86.889s54.299 35.991 86.889 35.991h573.44c10.863 0 21.283-4.315 28.963-11.997s11.997-18.1 11.997-28.963v-737.28c0-10.863-4.317-21.283-11.997-28.963s-18.1-11.997-28.963-11.997h-552.96c-38.022 0-74.486 15.106-101.371 41.988-26.885 26.886-41.989 63.349-41.989 101.372v0zM778.24 115.367v122.88h-512c-16.295 0-31.923-6.472-43.445-17.994s-17.995-27.152-17.995-43.446c0-16.294 6.473-31.924 17.995-43.446s27.15-17.994 43.445-17.994h512zM204.8 306.363c19.198 9.118 40.188 13.832 61.44 13.804h512v450.56h-532.48c-10.863 0-21.282-4.315-28.963-11.997s-11.997-18.1-11.997-28.963v-423.404z" />
<glyph unicode="&#xe90f;" glyph-name="Braces" d="M170.667 170.667v157.867c0 16.973-6.743 33.254-18.745 45.257s-28.281 18.743-45.255 18.743h-21.333v68.267h21.333c8.404 0 16.727 1.655 24.492 4.873s14.82 7.932 20.763 13.871c5.943 5.943 10.657 13.001 13.873 20.766s4.872 16.086 4.872 24.491v157.867c0 33.948 13.486 66.505 37.49 90.51s56.562 37.49 90.51 37.49h42.667v-85.333h-42.667c-11.316 0-22.168-4.495-30.17-12.497s-12.497-18.854-12.497-30.17v-174.933c0.004-17.963-5.66-35.469-16.186-50.027-10.526-14.554-25.377-25.417-42.438-31.040 17.061-5.623 31.912-16.486 42.438-31.040 10.526-14.558 16.19-32.064 16.186-50.027v-174.933c0-11.315 4.495-22.17 12.497-30.17s18.854-12.497 30.17-12.497h42.667v-85.333h-42.667c-33.948 0-66.505 13.487-90.51 37.491s-37.49 56.563-37.49 90.509v0zM853.333 328.534v-157.867c0-33.946-13.487-66.505-37.491-90.509s-56.563-37.491-90.509-37.491h-42.667v85.333h42.667c11.315 0 22.17 4.497 30.17 12.497s12.497 18.854 12.497 30.17v174.933c-0.004 17.963 5.662 35.469 16.188 50.027 10.526 14.554 25.374 25.417 42.436 31.040-17.062 5.623-31.91 16.486-42.436 31.040-10.526 14.558-16.192 32.064-16.188 50.027v174.933c0 11.316-4.497 22.168-12.497 30.17s-18.854 12.497-30.17 12.497h-42.667v85.333h42.667c33.946 0 66.505-13.486 90.509-37.49s37.491-56.562 37.491-90.51v-157.867c0-16.973 6.741-33.254 18.743-45.257s28.284-18.743 45.257-18.743h21.333v-68.267h-21.333c-16.973 0-33.254-6.741-45.257-18.743s-18.743-28.284-18.743-45.257v0z" />
<glyph unicode="&#xe910;" glyph-name="BucketSolid" horiz-adv-x="983" d="M858.911 670.801c0 100.729-191.693 147.456-368.64 147.456s-368.641-46.727-368.641-147.456c0-4.915 0-7.34 2.49-12.321l98.304-538.182c4.915-81.134 142.541-117.965 270.337-117.965s265.421 36.897 270.336 117.965l98.304 538.247c-2.425 4.915-2.425 7.34-2.425 12.321l-0.066-0.066zM490.271 744.529c194.183 0 294.912-54.067 294.912-73.728s-100.729-73.728-294.912-73.728c-194.184 0-294.913 54.067-294.913 73.728s100.729 73.728 294.913 73.728v0z" />
<glyph unicode="&#xe911;" glyph-name="Calendar" horiz-adv-x="983" d="M706.56 705.193h155.648c10.322 0 20.218-4.1 27.517-11.397 7.295-7.297 11.395-17.195 11.395-27.515v-622.59c0-10.322-4.1-20.218-11.395-27.517-7.299-7.299-17.195-11.395-27.517-11.395h-700.416c-10.32 0-20.217 4.096-27.515 11.395s-11.397 17.195-11.397 27.517v622.59c0 10.32 4.1 20.217 11.397 27.515s17.195 11.397 27.515 11.397h155.648v77.824h77.824v-77.824h233.472v77.824h77.824v-77.824zM823.296 393.899h-622.592v-311.296h622.592v311.296zM628.736 627.369h-233.472v-77.824h-77.824v77.824h-116.736v-155.646h622.592v155.646h-116.736v-77.824h-77.824v77.824zM278.528 316.075h77.824v-77.824h-77.824v77.824zM473.088 316.075h77.824v-77.824h-77.824v77.824zM667.648 316.075h77.824v-77.824h-77.824v77.824z" />
<glyph unicode="&#xe912;" glyph-name="CaretDown_New" d="M512 298.667l-256 256h512l-256-256z" />
<glyph unicode="&#xe913;" glyph-name="CaretLeft_New" d="M384 426.667l256 256v-512l-256 256z" />
<glyph unicode="&#xe914;" glyph-name="CaretRight_New" d="M640 426.667l-256-256v512l256-256z" />
<glyph unicode="&#xe915;" glyph-name="CaretUp_New" d="M512 554.667l256-256h-512l256 256z" />
<glyph unicode="&#xe916;" glyph-name="Chat" d="M275.413 128l-190.080-149.333v789.333c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h768c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-597.333c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-620.587z" />
<glyph unicode="&#xe917;" glyph-name="Checkmark_New" d="M426.666 291.328l392.192 392.235 60.373-60.331-452.566-452.565-271.531 271.531 60.331 60.331 211.2-211.2z" />
<glyph unicode="&#xe918;" glyph-name="CircleThick" horiz-adv-x="983" d="M491.516 38.85c-220.534 0-402.151 181.621-402.151 402.153 0 220.537 181.617 402.154 402.151 402.154 220.537 0 402.153-181.617 402.153-402.154 0-220.533-181.617-402.153-402.153-402.153v0zM491.516 661.54c-121.941 0-220.534-98.592-220.534-220.537 0-121.942 98.592-220.533 220.534-220.533 121.946 0 220.537 98.591 220.537 220.533 0 121.944-98.591 220.537-220.537 220.537z" />
<glyph unicode="&#xe919;" glyph-name="Clipboard_New" d="M256 768v-170.667h512v170.667h85.632c23.381 0 42.368-18.987 42.368-42.368v-683.264c-0.013-11.234-4.48-22.003-12.42-29.948-7.945-7.94-18.714-12.407-29.948-12.42h-683.264c-11.233 0.013-22.003 4.48-29.946 12.42-7.943 7.945-12.411 18.714-12.422 29.948v683.264c0 23.381 18.987 42.368 42.368 42.368h85.632zM341.333 853.334h341.333v-170.667h-341.333v170.667z" />
<glyph unicode="&#xe91a;" glyph-name="Clock_New" d="M512-0c-235.648 0-426.667 191.019-426.667 426.667s191.019 426.667 426.667 426.667c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.667-426.667-426.667zM554.667 426.667v213.333h-85.333v-298.667h256v85.333h-170.667z" />
<glyph unicode="&#xe91b;" glyph-name="Cloud" d="M725.333 42.667h-426.667c-60.449-0.038-118.961 21.316-165.176 60.284-46.215 38.963-77.15 93.026-87.329 152.61-10.179 59.588 1.056 120.853 31.715 172.949s78.764 91.663 135.798 111.695c-1.932 40.377 4.352 80.726 18.473 118.603s35.783 72.493 63.675 101.752c27.892 29.259 61.434 52.551 98.592 68.465s77.163 24.121 117.585 24.121c40.422 0 80.427-8.206 117.585-24.121s70.699-39.207 98.594-68.465c27.891-29.259 49.553-63.875 63.671-101.752 14.123-37.877 20.407-78.226 18.475-118.603 57.033-20.031 105.139-59.599 135.799-111.695 30.656-52.096 41.894-113.361 31.714-172.949-10.18-59.584-41.114-113.647-87.33-152.61-46.217-38.967-104.725-60.322-165.175-60.284zM725.333 554.669c0.009 28.458-5.675 56.631-16.717 82.86s-27.221 49.983-47.582 69.864c-20.365 19.881-44.497 35.487-70.985 45.899-26.483 10.412-54.784 15.419-83.234 14.728s-56.478-7.069-82.424-18.756c-25.948-11.687-49.296-28.447-68.668-49.294s-34.377-45.359-44.133-72.093c-9.755-26.735-14.063-55.151-12.669-83.575l2.987-63.49-59.904-21.077c-37.952-13.419-69.941-39.821-90.321-74.534s-27.839-75.516-21.062-115.196c6.778-39.68 27.356-75.691 58.103-101.67 30.747-25.984 69.686-40.269 109.941-40.333h426.667c31.415 0.013 62.221 8.695 89.020 25.092s48.55 39.872 62.861 67.844c14.31 27.968 20.621 59.345 18.24 90.671s-13.363 61.389-31.74 86.874c-18.372 25.485-43.426 45.402-72.393 57.557-28.971 12.16-60.736 16.081-91.793 11.345-31.057-4.74-60.203-17.963-84.228-38.208s-41.993-46.729-51.93-76.535l-80.981 27.008c17.015 50.974 49.634 95.3 93.235 126.707 43.597 31.411 95.974 48.313 149.709 48.313z" />
<glyph unicode="&#xe91c;" glyph-name="CogOutline_New" horiz-adv-x="983" d="M121.979 236.133c-17.315 29.942-30.775 61.956-40.059 95.273 20.206 10.277 37.175 25.944 49.030 45.265 11.855 19.325 18.135 41.55 18.143 64.217 0.009 22.671-6.254 44.9-18.095 64.229-11.841 19.333-28.798 35.011-48.996 45.303 18.516 66.95 53.769 128.084 102.441 177.644 19.009-12.358 41.067-19.217 63.733-19.816s45.055 5.085 64.69 16.423c19.635 11.338 35.751 27.887 46.563 47.816s15.9 42.462 14.699 65.103c67.26 17.383 137.839 17.354 205.087-0.082-1.188-22.641 3.908-45.17 14.729-65.094s26.943-36.465 46.58-47.794c19.64-11.329 42.029-17.004 64.696-16.396 22.663 0.608 44.716 7.474 63.721 19.839 23.716-24.166 44.769-51.651 62.464-82.33 17.736-30.679 31.007-62.669 40.059-95.273-20.206-10.277-37.175-25.945-49.029-45.266-11.858-19.321-18.137-41.546-18.145-64.217-0.008-22.667 6.255-44.896 18.096-64.229 11.842-19.329 28.799-35.009 48.996-45.302-18.514-66.949-53.768-128.082-102.441-177.644-19.010 12.358-41.066 19.218-63.734 19.816-22.663 0.598-45.056-5.083-64.688-16.421-19.636-11.338-35.754-27.89-46.563-47.817-10.813-19.931-15.901-42.463-14.701-65.106-67.26-17.383-137.839-17.355-205.087 0.082 1.19 22.643-3.908 45.171-14.728 65.094s-26.943 36.467-46.582 47.796c-19.639 11.33-42.030 17.002-64.694 16.396-22.664-0.61-44.719-7.475-63.723-19.841-24.208 24.703-45.196 52.363-62.464 82.33v0zM353.812 228.105c43.648-25.174 76.464-65.577 92.16-113.459 20.439-1.925 40.96-1.966 61.399-0.041 15.704 47.89 48.538 88.293 92.201 113.459 43.631 25.244 95.048 33.485 144.384 23.142 11.878 16.712 22.118 34.529 30.638 53.166-33.612 37.544-52.179 86.172-52.142 136.561 0 51.61 19.251 99.82 52.142 136.561-8.581 18.631-18.862 36.429-30.72 53.166-49.304-10.335-100.688-2.108-144.302 23.101-43.647 25.175-76.464 65.578-92.16 113.459-20.439 1.925-40.96 1.966-61.399 0.041-15.704-47.888-48.538-88.292-92.201-113.459-43.631-25.244-95.048-33.486-144.384-23.142-11.855-16.723-22.113-34.524-30.638-53.166 33.611-37.542 52.178-86.172 52.142-136.561 0-51.61-19.251-99.82-52.142-136.561 8.58-18.629 18.864-36.426 30.72-53.166 49.304 10.334 100.688 2.109 144.302-23.101zM476.692 318.053c-32.588 0-63.844 12.947-86.889 35.992s-35.991 54.301-35.991 86.888c0 32.592 12.946 63.844 35.991 86.888 23.045 23.046 54.301 35.992 86.889 35.992s63.844-12.946 86.888-35.992c23.044-23.044 35.992-54.297 35.992-86.888 0-32.588-12.947-63.844-35.992-86.888s-54.301-35.992-86.888-35.992zM476.692 399.973c10.863 0 21.283 4.317 28.963 11.997 7.68 7.684 11.997 18.1 11.997 28.963s-4.317 21.283-11.997 28.963c-7.68 7.684-18.1 11.997-28.963 11.997s-21.283-4.313-28.963-11.997c-7.68-7.68-11.997-18.1-11.997-28.963s4.317-21.279 11.997-28.963c7.68-7.68 18.1-11.997 28.963-11.997v0z" />
<glyph unicode="&#xe91d;" glyph-name="CogSolid_New" d="M424.706 844.375c57.555 12.069 116.981 12.098 174.547 0.085 3.836-25.314 13.329-49.437 27.767-70.578 14.443-21.141 33.463-38.755 55.646-51.534 22.17-12.823 46.942-20.483 72.478-22.411 25.54-1.928 51.183 1.926 75.021 11.275 39.181-43.864 68.86-95.362 87.168-151.253-19.994-15.982-36.13-36.265-47.211-59.342-11.081-23.074-16.819-48.35-16.789-73.95 0-53.931 25.003-102.016 64.085-133.291-18.415-55.842-48.132-107.302-87.296-151.168-23.834 9.344-49.468 13.193-74.995 11.264-25.532-1.924-50.295-9.583-72.461-22.4-22.165-12.774-41.169-30.374-55.603-51.503-14.434-21.124-23.923-45.227-27.767-70.524-57.545-12.096-116.975-12.156-174.547-0.171-3.817 25.335-13.299 49.485-27.741 70.652-14.442 21.163-33.472 38.797-55.672 51.588-22.171 12.817-46.946 20.471-72.483 22.391s-51.178-1.941-75.016-11.298c-39.185 43.878-68.864 95.39-87.168 151.296 19.985 15.974 36.116 36.241 47.195 59.302s16.823 48.32 16.805 73.903c0.021 25.604-5.73 50.889-16.825 73.963-11.095 23.077-27.249 43.356-47.26 59.329 18.418 55.846 48.133 107.302 87.296 151.168 23.836-9.342 49.471-13.193 74.999-11.264s50.294 9.584 72.457 22.4c22.167 12.774 41.172 30.378 55.606 51.503s23.923 45.23 27.765 70.524v0.043zM512 298.667c33.95 0 66.509 13.487 90.513 37.491s37.487 56.563 37.487 90.509c0 33.95-13.483 66.505-37.487 90.511-24.004 24.005-56.563 37.49-90.513 37.49-33.946 0-66.505-13.486-90.508-37.49-24.005-24.006-37.49-56.561-37.49-90.511 0-33.946 13.486-66.505 37.49-90.509 24.003-24.004 56.562-37.491 90.508-37.491v0z" />
<glyph unicode="&#xe91e;" glyph-name="Coppercoin" d="M512-0c-235.648 0-426.667 191.019-426.667 426.667s191.019 426.667 426.667 426.667c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.667-426.667-426.667zM512 85.334c90.526 0 177.348 35.964 241.361 99.972 64.009 64.013 99.972 150.835 99.972 241.361 0 90.527-35.964 177.347-99.972 241.359-64.013 64.013-150.835 99.974-241.361 99.974-90.527 0-177.347-35.962-241.359-99.974s-99.974-150.832-99.974-241.359c0-90.526 35.962-177.348 99.974-241.361 64.012-64.009 150.832-99.972 241.359-99.972v0zM512 637.867l211.2-211.2-211.2-211.2-211.2 211.2 211.2 211.2zM512 517.163l-90.496-90.496 90.496-90.496 90.496 90.496-90.496 90.496z" />
<glyph unicode="&#xe91f;" glyph-name="CrownSolid_New" d="M85.333 128h853.333v-85.333h-853.333v85.333zM85.333 725.334l213.333-128 213.333 256 213.333-256 213.333 128v-512h-853.333v512z" />
<glyph unicode="&#xe920;" glyph-name="Cube" d="M955.947 634.778c0 0 0 2.347-2.347 2.347 0 2.347-2.347 4.693-2.347 4.693l-2.347 2.347c0 2.347-2.347 2.347-2.347 4.693l-4.693 4.693-401.28 211.2c-9.387 4.693-23.467 4.693-32.853 0l-401.28-211.2c-4.693 2.347-7.040 0-9.387-2.347 0 0 0 0-2.347-2.347s-2.347-2.347-4.693-4.693c0 0 0-2.347-2.347-2.347 0-2.347-2.347-4.693-2.347-7.040s0-4.693 0-7.040v-422.4c0-14.080 7.040-25.813 18.773-30.507l401.28-211.2c2.347 0 2.347-2.347 4.693-2.347h2.347c2.347 0 7.040-2.347 9.387-2.347 4.693 0 11.733 2.347 16.427 4.693l401.28 211.2c11.733 7.040 18.773 18.773 18.773 30.507v420.053c0 2.347 0 7.040-2.347 9.387v0zM521.813 796.698l326.187-171.307-326.187-171.307-326.187 171.307 326.187 171.307zM155.733 566.725l330.88-173.653v-342.613l-330.88 173.653v342.613z" />
<glyph unicode="&#xe921;" glyph-name="CuboSolid" d="M756.996 231.168l237.38 55.859c4.659 0 9.31 0 9.31 4.655 4.659 0 4.659 4.655 9.31 9.31 0 4.655 4.659 4.655 4.659 9.31 0 4.651 0 9.31 0 9.31l-102.4 437.526c0 9.31-4.659 13.964-13.965 18.617-4.655 4.656-13.965 4.656-23.275 4.656l-237.38-55.856c-9.31 0-13.965-4.656-18.62-13.964-4.655-4.656-4.655-13.964-4.655-23.273l102.4-437.526c0-9.31 4.655-13.965 13.965-18.62 4.655 0 13.961 0 23.27 0v-0.004zM673.212-38.792l288.585 265.31c9.31 9.31 9.31 18.615-4.655 13.961l-200.145-46.541c-9.31 0-13.965-4.659-23.275-13.965-4.655-4.655-9.31-13.965-13.961-23.275l-60.51-195.49c-4.659-4.655 4.655-9.31 13.961 0v0zM147.249 49.643l432.872-134.985c9.31 0 13.965 0 23.275 4.659 4.655 4.655 9.31 9.31 13.965 18.615l69.815 232.725c0 4.659 0 9.31 0 9.31 0 4.659 0 9.31-4.655 9.31 0 4.659-4.659 4.659-9.31 9.31-4.655 4.655-4.659 4.659-9.31 4.659l-428.218 130.325c-9.31 0-13.964 0-23.273-4.655-4.656-4.659-13.964-9.31-13.964-18.62l-69.817-232.725c0-9.31 0-13.965 0-23.275 4.656 0 13.964-4.655 18.617-4.655h0.003zM7.613 519.753l88.437-381.675c4.656-13.961 9.309-13.961 13.964 0l60.509 195.49c0 9.31 0 18.62 0 23.275s-4.656 18.615-9.309 23.275l-139.637 148.943c-9.31 9.309-18.617 9.309-13.963-9.31v0.003zM347.396 929.353l-330.473-302.544c-4.656-4.656-9.31-13.964-9.31-23.273s4.656-13.964 9.31-18.617l167.563-176.871c4.656-4.659 13.964-9.31 18.617-9.31 9.309 0 13.964 4.655 18.617 9.31l330.472 307.198c4.659 0 4.659 9.31 4.659 13.964 0 9.31 0 18.617-4.659 23.273l-167.562 176.873c0 4.656-4.656 4.656-9.309 4.656 0 4.656-4.656 4.656-9.31 4.656s-9.31 0-9.31 0c-4.656-4.656-9.309-4.656-9.309-9.31l0.005-0.005zM663.902 240.478c13.965-4.655 23.275 4.659 18.62 18.62l-97.745 414.255c-4.655 13.963-18.615 18.617-27.925 9.309l-311.858-288.584c-9.309-9.31-9.309-23.27 4.656-27.925l414.252-125.675zM826.812 817.643l-377.015 111.71c-13.965 4.656-18.62 0-4.655-13.963l139.635-148.944c4.655-4.656 13.965-9.309 23.275-13.963s18.615-4.656 23.27 0l200.145 46.544c9.31 4.656 9.31 13.964-4.655 18.617v0z" />
<glyph unicode="&#xe922;" glyph-name="Cubouniform" d="M981.333 290.134c0 8.533 0 12.8 0 17.067l-102.4 426.667c0 4.267-4.267 8.533-4.267 12.8 0 0 0 4.267-4.267 4.267-4.267 4.267-4.267 4.267-8.533 8.533-4.267 0-8.533 4.267-8.533 4.267l-426.667 128c-8.533 4.267-12.8 4.267-12.8 4.267-8.533 0-12.8 0-17.067-4.267h-4.267c-4.267 0-8.533-4.267-12.8-8.533l-324.267-298.667c-4.267 0-4.267-4.267-8.533-8.533v-4.267c-4.267-4.267-4.267-8.533-4.267-12.8s0-8.533 0-12.8l102.4-426.667c0-4.267 0-4.267 4.267-8.533s4.267-8.533 8.533-12.8c0 0 0 0 4.267-4.267s8.533-4.267 12.8-8.533l426.667-128c4.267 0 8.533 0 12.8 0s8.533 0 12.8 4.267h4.267c4.267 0 4.267 4.267 8.533 4.267l324.267 298.667c4.267 4.267 4.267 4.267 8.533 8.533s4.267 8.533 8.533 17.067v0zM238.933 157.867l51.2 157.867 345.6-102.4-51.2-157.867-345.6 102.4zM409.6 793.6l115.2-123.733-260.267-238.933-119.467 123.733 264.533 238.933zM887.467 328.534l-166.4-38.4-81.067 345.6 166.4 38.4 81.067-345.6zM563.2 588.8l68.267-285.867-285.867 85.333 217.6 200.533zM601.6 716.8l-46.933 46.933 115.2-34.133-68.267-12.8zM162.133 409.6l51.2-51.2-21.333-68.267-29.867 119.467zM721.067 204.8l68.267 17.067-89.6-85.333 21.333 68.267z" />
<glyph unicode="&#xe923;" glyph-name="Darkmode_New" d="M485.547 852.521c-31.441-29.296-56.657-64.624-74.147-103.877s-26.895-81.627-27.653-124.593c-0.758-42.967 7.146-85.646 23.24-125.49 16.094-39.846 40.048-76.041 70.435-106.428s66.581-54.345 106.428-70.438c39.846-16.094 82.526-23.996 125.491-23.241 42.97 0.759 85.342 10.163 124.595 27.652 39.253 17.493 74.581 42.709 103.876 74.15-13.568-223.36-198.997-400.256-425.771-400.256-235.691 0-426.709 191.019-426.709 426.667 0 226.772 176.896 412.201 400.213 425.854z" />
<glyph unicode="&#xe924;" glyph-name="DashH" d="M554.667 42.667v426.667h341.333v-426.667h-341.333zM128 384v426.667h341.333v-426.667h-341.333zM384 469.334v256h-170.667v-256h170.667zM128 42.667v256h341.333v-256h-341.333zM213.333 128h170.667v85.333h-170.667v-85.333zM640 128h170.667v256h-170.667v-256zM554.667 810.667h341.333v-256h-341.333v256zM640 725.334v-85.333h170.667v85.333h-170.667z" />
<glyph unicode="&#xe925;" glyph-name="Download_New" d="M128 128h768v-85.333h-768v85.333zM554.667 376.662l259.029 259.072 60.331-60.331-362.027-362.069-362.027 362.027 60.331 60.373 259.029-258.987v476.587h85.333v-476.672z" />
<glyph unicode="&#xe926;" glyph-name="ExpandB" d="M853.333 810.667h85.333v-256h-85.333v170.667h-170.667v85.333h170.667zM170.667 810.667h170.667v-85.333h-170.667v-170.667h-85.333v256h85.333zM853.333 128v170.667h85.333v-256h-256v85.333h170.667zM170.667 128h170.667v-85.333h-256v256h85.333v-170.667z" />
<glyph unicode="&#xe927;" glyph-name="Export_New" d="M426.667 810.667v-85.333h-213.333v-597.333h597.333v213.333h85.333v-256c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-682.667c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v682.667c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h256zM750.336 725.334h-195.669v85.333h341.333v-341.333h-85.333v195.669l-298.667-298.667-60.331 60.331 298.667 298.667z" />
<glyph unicode="&#xe928;" glyph-name="EyeClosed" d="M192.855 685.48l-133.419 133.376 60.373 60.373 844.756-844.801-60.373-60.331-141.227 141.227c-75.042-47.595-162.099-72.802-250.965-72.661-230.057 0-421.46 165.547-461.609 384 18.348 99.384 68.336 190.171 142.507 258.817h-0.043zM629.632 248.657l-62.464 62.464c-23.889-11.43-50.739-15.168-76.843-10.701-26.108 4.471-50.185 16.93-68.911 35.657-18.728 18.726-31.185 42.803-35.654 68.911-4.47 26.103-0.731 52.954 10.7 76.843l-62.464 62.465c-27.148-41.025-39.284-90.169-34.354-139.116 4.931-48.943 26.625-94.682 61.41-129.463 34.785-34.786 80.523-56.482 129.466-61.41 48.947-4.932 98.091 7.202 139.115 34.351v0zM340.225 778.237c53.205 20.907 111.188 32.427 171.775 32.427 230.059 0 421.461-165.547 461.611-384.001-13.073-71.070-42.458-138.138-85.845-195.925l-164.693 164.693c4.894 32.956 2.001 66.598-8.448 98.236-10.449 31.634-28.164 60.383-51.721 83.941-23.561 23.558-52.309 41.271-83.942 51.72-31.637 10.449-65.28 13.343-98.236 8.451l-140.5 140.459z" />
<glyph unicode="&#xe929;" glyph-name="FunnelSolid" d="M426.667 341.334l-256 384v85.333h682.667v-85.333l-256-384v-256l-170.667-85.333v341.333z" />
<glyph unicode="&#xe92a;" glyph-name="GraphLine_New" d="M213.333 810.667v-682.667h682.667v-85.333h-768v768h85.333zM865.835 670.166l60.331-60.331-243.499-243.499-128 127.957-183.168-183.125-60.331 60.331 243.499 243.499 128-127.957 183.168 183.125z" />
<glyph unicode="&#xe92b;" glyph-name="Group" horiz-adv-x="983" d="M81.92 8.875c0 86.909 34.523 170.254 95.975 231.707s144.799 95.973 231.705 95.973c86.905 0 170.254-34.521 231.707-95.973 61.448-61.452 95.973-144.798 95.973-231.707h-655.36zM409.6 377.515c-135.782 0-245.76 109.978-245.76 245.762 0 135.782 109.978 245.76 245.76 245.76s245.76-109.978 245.76-245.76c0-135.784-109.978-245.762-245.76-245.762zM711.188 286.051c62.652-16.101 118.632-51.56 159.961-101.327 41.333-49.766 65.909-111.301 70.234-175.849h-122.184c0 106.906-40.96 204.227-108.012 277.176zM628.326 379.276c34.324 30.704 61.776 68.309 80.552 110.359s28.455 87.591 28.402 133.642c0.086 55.973-14.23 111.027-41.574 159.867 46.391-9.322 88.125-34.422 118.108-71.033 29.979-36.611 46.354-82.474 46.346-129.794 0.012-29.183-6.218-58.030-18.264-84.609s-29.639-50.278-51.589-69.505c-21.955-19.227-47.763-33.538-75.702-41.976-27.935-8.438-57.352-10.809-86.278-6.951v0z" />
<glyph unicode="&#xe92c;" glyph-name="History" d="M512 853.334c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.667-426.667-426.667c-235.648 0-426.667 191.019-426.667 426.667h85.333c0-188.501 152.832-341.333 341.333-341.333s341.333 152.832 341.333 341.333c0 188.501-152.832 341.333-341.333 341.333-117.333 0-220.843-59.179-282.24-149.333h111.573v-85.333h-256v256h85.333v-106.667c77.824 103.68 201.771 170.667 341.333 170.667zM554.667 640v-195.627l138.368-138.368-60.373-60.373-163.328 163.413v230.955h85.333z" />
<glyph unicode="&#xe92d;" glyph-name="Duplicate_New" d="M298.667 682.667v128c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h512c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-597.333c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-128v-128c0-23.552-19.2-42.667-42.965-42.667h-511.403c-5.626-0.034-11.204 1.045-16.413 3.174s-9.945 5.265-13.937 9.229c-3.993 3.964-7.162 8.678-9.327 13.875-2.164 5.193-3.282 10.761-3.287 16.388l0.128 597.333c0 23.552 19.2 42.667 42.965 42.667h127.573zM384 682.667h341.333v-426.667h85.333v512h-426.667v-85.333z" />
<glyph unicode="&#xe92e;" glyph-name="Install" horiz-adv-x="983" d="M368.64 819.877v-81.92h-163.84l-0.041-409.598h573.44l0.041 409.598h-163.84v81.92h204.8c10.863 0 21.283-4.315 28.963-11.997s11.997-18.1 11.997-28.963v-737.278c0-10.867-4.317-21.283-11.997-28.967-7.68-7.68-18.1-11.993-28.963-11.993h-655.36c-10.863 0-21.282 4.313-28.963 11.993-7.681 7.684-11.997 18.1-11.997 28.967v737.278c0 10.863 4.316 21.282 11.997 28.963s18.1 11.997 28.963 11.997h204.8zM778.199 246.439h-573.44l0.041-163.84h573.44l-0.041 163.84zM696.32 205.479v-81.92h-81.92v81.92h81.92zM532.48 819.877v-204.8h122.88l-163.84-163.838-163.84 163.838h122.88v204.8h81.92z" />
<glyph unicode="&#xe92f;" glyph-name="Layers" horiz-adv-x="983" d="M822.6 283.303l49.234-29.532c3.035-1.819 5.55-4.395 7.295-7.475 1.749-3.076 2.666-6.558 2.666-10.097s-0.918-7.021-2.666-10.101c-1.745-3.080-4.26-5.652-7.295-7.471l-359.219-215.532c-6.373-3.83-13.664-5.849-21.094-5.849-7.434 0-14.725 2.019-21.094 5.849l-359.22 215.532c-3.038 1.819-5.552 4.391-7.297 7.471s-2.663 6.562-2.663 10.101c0 3.539 0.918 7.021 2.663 10.097 1.746 3.080 4.26 5.657 7.297 7.475l49.234 29.532 331.080-198.656 331.080 198.656zM822.6 475.815l49.234-29.532c3.035-1.819 5.55-4.395 7.295-7.475 1.749-3.076 2.666-6.558 2.666-10.097s-0.918-7.021-2.666-10.101c-1.745-3.080-4.26-5.652-7.295-7.471l-380.314-228.188-380.314 228.188c-3.038 1.819-5.552 4.391-7.297 7.471s-2.663 6.562-2.663 10.101c0 3.539 0.918 7.021 2.663 10.097 1.746 3.080 4.26 5.657 7.297 7.475l49.234 29.532 331.080-198.656 331.080 198.656zM512.573 852.277l359.26-215.532c3.035-1.818 5.55-4.393 7.295-7.472 1.749-3.080 2.666-6.559 2.666-10.1s-0.918-7.020-2.666-10.099c-1.745-3.080-4.26-5.655-7.295-7.473l-380.314-228.187-380.314 228.187c-3.038 1.818-5.552 4.393-7.297 7.473s-2.663 6.559-2.663 10.099c0 3.54 0.918 7.020 2.663 10.1s4.26 5.654 7.297 7.472l359.22 215.532c6.369 3.828 13.66 5.849 21.094 5.849 7.43 0 14.721-2.022 21.094-5.849h-0.041zM491.52 769.415l-250.389-150.241 250.389-150.24 250.388 150.24-250.388 150.241z" />
<glyph unicode="&#xe930;" glyph-name="Lightmode_New" horiz-adv-x="983" d="M491.52 172.715c-65.18 0-127.69 25.895-173.779 71.983s-71.981 108.597-71.981 173.777c0 65.18 25.892 127.692 71.981 173.781s108.599 71.981 173.779 71.981c65.18 0 127.689-25.892 173.777-71.981 46.092-46.089 71.983-108.601 71.983-173.781s-25.891-127.689-71.983-173.777c-46.088-46.088-108.597-71.983-173.777-71.983zM450.56 869.037h81.92v-122.88h-81.92v122.88zM450.56 90.795h81.92v-122.88h-81.92v122.88zM143.974 708.105l57.917 57.917 86.876-86.876-57.917-57.917-86.876 86.876zM694.272 157.806l57.917 57.917 86.876-86.876-57.917-57.917-86.876 86.876zM781.148 766.064l57.917-57.958-86.876-86.876-57.917 57.917 86.876 86.917zM230.851 215.723l57.917-57.917-86.876-86.876-57.917 57.917 86.876 86.876zM942.080 459.435v-81.92h-122.88v81.92h122.88zM163.84 459.435v-81.92h-122.88v81.92h122.88z" />
<glyph unicode="&#xe931;" glyph-name="Link" horiz-adv-x="983" d="M752.189 277.732l-57.917 57.999 57.917 57.917c19.153 18.989 34.37 41.57 44.773 66.454s15.786 51.577 15.847 78.547c0.057 26.97-5.21 53.686-15.503 78.615s-25.412 47.578-44.483 66.649c-19.071 19.071-41.718 34.187-66.646 44.481-24.932 10.294-51.646 15.562-78.619 15.503-26.968-0.059-53.662-5.445-78.545-15.847s-47.464-25.618-66.454-44.773l-57.917-57.958-57.958 57.917 57.999 57.917c53.772 53.774 126.705 83.983 202.752 83.983s148.98-30.209 202.752-83.983c53.772-53.773 83.984-126.705 83.984-202.752s-30.212-148.98-83.984-202.752l-57.999-57.917zM636.355 161.897l-57.958-57.917c-53.772-53.772-126.706-83.98-202.752-83.98s-148.979 30.208-202.752 83.98c-53.773 53.772-83.983 126.706-83.983 202.752s30.21 148.98 83.983 202.752l57.958 57.918 57.917-58-57.917-57.917c-19.154-18.985-34.369-41.57-44.772-66.454s-15.788-51.577-15.847-78.545c-0.059-26.972 5.21-53.686 15.503-78.615s25.41-47.579 44.481-66.65c19.071-19.071 41.721-34.185 66.649-44.483 24.928-10.293 51.645-15.561 78.615-15.503 26.97 0.061 53.663 5.448 78.546 15.847 24.883 10.404 47.469 25.62 66.454 44.773l57.917 57.917 57.958-57.876zM607.355 596.361l57.958-57.958-289.628-289.588-57.958 57.917 289.628 289.629z" />
<glyph unicode="&#xe932;" glyph-name="Lock" horiz-adv-x="983" d="M737.28 590.497h81.92c10.863 0 21.283-4.316 28.963-11.997s11.997-18.1 11.997-28.963v-491.518c0-10.867-4.317-21.283-11.997-28.967-7.68-7.68-18.1-11.993-28.963-11.993h-655.36c-10.863 0-21.282 4.313-28.963 11.993-7.681 7.684-11.997 18.1-11.997 28.967v491.518c0 10.863 4.316 21.282 11.997 28.963s18.1 11.997 28.963 11.997h81.92v40.96c0 65.179 25.892 127.69 71.981 173.779s108.599 71.981 173.779 71.981c65.18 0 127.689-25.893 173.777-71.981 46.092-46.089 71.983-108.599 71.983-173.779v-40.96zM450.56 273.796v-92.897h81.92v92.897c15.618 9.015 27.824 22.934 34.726 39.592 6.898 16.663 8.11 35.135 3.445 52.552-4.669 17.42-14.954 32.813-29.262 43.79s-31.834 16.929-49.869 16.929c-18.035 0-35.561-5.951-49.869-16.929s-24.592-26.37-29.262-43.79c-4.665-17.416-3.455-35.889 3.445-52.552 6.902-16.658 19.108-30.577 34.726-39.592v0zM655.36 590.497v40.96c0 43.453-17.261 85.126-47.989 115.852-30.724 30.726-72.397 47.988-115.851 47.988s-85.126-17.262-115.852-47.988c-30.726-30.726-47.988-72.399-47.988-115.852v-40.96h327.68z" />
<glyph unicode="&#xe933;" glyph-name="More" horiz-adv-x="983" d="M204.8 512.679c-45.056 0-81.92-36.864-81.92-81.92s36.864-81.92 81.92-81.92c45.056 0 81.92 36.864 81.92 81.92s-36.864 81.92-81.92 81.92zM778.24 512.679c-45.056 0-81.92-36.864-81.92-81.92s36.864-81.92 81.92-81.92c45.056 0 81.92 36.864 81.92 81.92s-36.864 81.92-81.92 81.92zM491.52 512.679c-45.056 0-81.92-36.864-81.92-81.92s36.864-81.92 81.92-81.92c45.056 0 81.92 36.864 81.92 81.92s-36.864 81.92-81.92 81.92z" />
<glyph unicode="&#xe934;" glyph-name="Pencil" horiz-adv-x="983" d="M528.384 649.56l173.752-173.794-405.504-405.463h-173.752v173.793l405.504 405.464zM586.301 707.477l86.876 86.917c7.68 7.679 18.096 11.993 28.959 11.993s21.279-4.314 28.959-11.993l115.876-115.876c7.68-7.681 11.993-18.097 11.993-28.959s-4.313-21.277-11.993-28.959l-86.917-86.876-173.752 173.752z" />
<glyph unicode="&#xe935;" glyph-name="Plus_New" horiz-adv-x="983" d="M450.56 483.999v245.758h81.92v-245.758h245.76v-81.92h-245.76v-245.76h-81.92v245.76h-245.76v81.92h245.76z" />
<glyph unicode="&#xe936;" glyph-name="Refresh_New" horiz-adv-x="983" d="M223.764 720.221c74.324 64.403 169.41 99.793 267.756 99.656 226.222 0 409.6-183.378 409.6-409.602 0-87.491-27.443-168.591-74.138-235.11l-130.662 235.11h122.88c0.004 64.242-18.874 127.068-54.284 180.666-35.414 53.598-85.803 95.605-144.896 120.796-59.097 25.192-124.293 32.458-187.482 20.894-63.193-11.564-121.592-41.447-167.936-85.934l-40.837 73.523zM759.276 100.33c-74.326-64.401-169.411-99.791-267.756-99.656-226.222 0-409.6 183.378-409.6 409.6 0 87.491 27.443 168.593 74.138 235.112l130.662-235.112h-122.88c-0.005-64.238 18.872-127.066 54.286-180.662s85.8-95.605 144.895-120.795c59.096-25.194 124.292-32.461 187.481-20.894 63.193 11.563 121.59 41.443 167.936 85.93l40.837-73.523z" />
<glyph unicode="&#xe937;" glyph-name="Remove_New" horiz-adv-x="983" d="M491.52 472.284l202.752 202.753 57.917-57.917-202.752-202.753 202.752-202.752-57.917-57.917-202.752 202.752-202.752-202.752-57.917 57.917 202.752 202.752-202.752 202.753 57.917 57.917 202.752-202.753z" />
<glyph unicode="&#xe938;" glyph-name="Save" horiz-adv-x="983" d="M737.28 49.819v327.68h-491.52v-327.68h-81.92c-10.863 0-21.282 4.313-28.963 11.997-7.681 7.68-11.997 18.096-11.997 28.963v655.358c0 10.863 4.316 21.282 11.997 28.963s18.1 11.997 28.963 11.997h532.48l163.84-163.84v-532.478c0-10.867-4.317-21.283-11.997-28.963-7.68-7.684-18.1-11.997-28.963-11.997h-81.92zM655.36 49.819h-327.68v245.76h327.68v-245.76z" />
<glyph unicode="&#xe939;" glyph-name="Search_New" d="M769.323 229.675l182.741-182.699-60.373-60.373-182.699 182.741c-67.981-54.494-152.533-84.134-239.659-84.011-211.968 0-384 172.032-384 384s172.032 384 384 384c211.968 0 384-172.032 384-384 0.124-87.125-29.517-171.678-84.011-239.659zM683.733 261.334c54.148 55.684 84.39 130.33 84.267 208 0 165.035-133.675 298.667-298.667 298.667-165.035 0-298.667-133.632-298.667-298.667 0-164.992 133.632-298.667 298.667-298.667 77.67-0.124 152.316 30.118 208 84.267l6.4 6.4z" />
<glyph unicode="&#xe93a;" glyph-name="Share" horiz-adv-x="983" d="M537.395 204.537l-171.993 93.798c-22.454-24.007-51.61-40.702-83.678-47.919s-65.565-4.62-96.139 7.451c-30.574 12.067-56.81 33.055-75.299 60.232-18.489 27.181-28.376 59.29-28.376 92.16s9.887 64.979 28.376 92.156c18.489 27.179 44.725 48.167 75.299 60.237s64.071 14.666 96.139 7.449c32.068-7.217 61.224-23.913 83.678-47.918l172.034 93.798c-9.769 38.663-5.1 79.562 13.132 115.028s48.771 63.067 85.893 77.627c37.126 14.56 78.287 15.081 115.765 1.465 37.482-13.616 68.71-40.435 87.835-75.429 19.12-34.994 24.822-75.76 16.040-114.659-8.786-38.898-31.457-73.257-63.762-96.635-32.305-23.38-72.028-34.173-111.722-30.36s-76.636 21.975-103.899 51.077l-172.034-93.798c6.604-26.272 6.604-53.764 0-80.036l171.993-93.798c27.263 29.102 64.201 47.264 103.899 51.077 39.694 3.813 79.417-6.98 111.722-30.36s54.977-57.737 63.762-96.637c8.782-38.896 3.080-79.663-16.040-114.655-19.124-34.996-50.352-61.813-87.835-75.432-37.478-13.615-78.639-13.095-115.765 1.466-37.122 14.561-67.662 42.16-85.893 77.627s-22.901 76.366-13.132 115.028v-0.041zM245.758 328.359c21.726 0 42.563 8.63 57.926 23.994s23.994 36.2 23.994 57.926c0 21.725-8.631 42.562-23.994 57.926s-36.2 23.994-57.926 23.994c-21.726 0-42.563-8.63-57.926-23.994s-23.994-36.2-23.994-57.926c0-21.725 8.631-42.562 23.994-57.926s36.2-23.994 57.926-23.994v0zM696.32 574.118c21.725 0 42.562 8.631 57.926 23.994 15.36 15.363 23.994 36.2 23.994 57.926s-8.634 42.563-23.994 57.926c-15.364 15.363-36.2 23.994-57.926 23.994-21.729 0-42.566-8.631-57.93-23.994-15.36-15.363-23.99-36.2-23.99-57.926s8.63-42.563 23.99-57.926c15.364-15.363 36.2-23.994 57.93-23.994v0zM696.32 82.599c21.725 0 42.562 8.63 57.926 23.994 15.36 15.364 23.994 36.2 23.994 57.926s-8.634 42.562-23.994 57.926c-15.364 15.364-36.2 23.994-57.926 23.994-21.729 0-42.566-8.63-57.93-23.994-15.36-15.364-23.99-36.2-23.99-57.926s8.63-42.562 23.99-57.926c15.364-15.364 36.2-23.994 57.93-23.994v0z" />
<glyph unicode="&#xe93b;" glyph-name="Shield" horiz-adv-x="983" d="M154.952 790.144l336.568 74.793 336.568-74.793c9.097-2.022 17.232-7.084 23.060-14.352 5.833-7.268 9.011-16.307 9.011-25.625v-409.065c-0.004-40.46-9.994-80.29-29.086-115.962-19.091-35.668-46.694-66.073-80.359-88.51l-259.195-172.81-259.195 172.81c-33.658 22.434-61.257 52.834-80.349 88.494s-29.086 75.485-29.096 115.937v409.106c0.002 9.318 3.18 18.357 9.011 25.625s13.965 12.331 23.061 14.352v0zM204.8 717.317v-376.216c0-26.972 6.659-53.527 19.385-77.304 12.726-23.781 31.125-44.052 53.565-59.011l213.77-142.541 213.77 142.541c22.434 14.954 40.829 35.222 53.555 58.991 12.726 23.773 19.386 50.319 19.395 77.283v376.257l-286.72 63.652-286.72-63.652z" />
<glyph unicode="&#xe93c;" glyph-name="Star" d="M512 159.565l-300.926-168.448 67.2 338.261-253.227 234.153 342.486 40.619 144.468 313.173 144.469-313.173 342.485-40.619-253.227-234.153 67.2-338.261-300.928 168.448z" />
<glyph unicode="&#xe93d;" glyph-name="StarSmile" d="M512 917.323l180.309-263.808 306.645-89.984-195.2-253.012 9.173-319.403-300.928 107.435-300.926-107.435 9.173 319.403-195.2 253.012 306.646 89.984 180.308 263.808zM512 766.113l-127.060-185.941-216.107-63.36 137.6-178.26-6.528-225.067 212.094 75.691 212.053-75.691-6.485 225.067 137.557 178.26-216.064 63.36-127.061 185.941zM426.667 426.658c0-22.635 8.994-44.339 24.994-60.343 16.004-16 37.709-24.99 60.339-24.99 22.635 0 44.339 8.99 60.339 24.99 16.004 16.004 24.994 37.709 24.994 60.343h85.333c0-45.265-17.98-88.674-49.984-120.683-32.009-32.004-75.418-49.984-120.683-49.984-45.261 0-88.672 17.98-120.678 49.984-32.006 32.009-49.987 75.418-49.987 120.683h85.332z" />
<glyph unicode="&#xe93e;" glyph-name="Subscribe" horiz-adv-x="983" d="M532.505 764.597v-81.895h-409.624v-548.236l72.216 56.717h583.168v286.745h81.895v-327.655c0-22.61-18.375-40.985-40.985-40.985h-595.798l-182.467-143.372v757.771c0 22.61 18.375 40.985 40.985 40.985l450.61-0.076zM737.28 764.597v122.88h81.895v-122.88h122.88v-81.895h-122.88v-122.88h-81.895v122.88h-122.88v81.895h122.88z" />
<glyph unicode="&#xe93f;" glyph-name="Switch_New" horiz-adv-x="983" d="M657.408 428.715l202.752-202.752-202.752-202.752-57.917 57.917 103.875 103.916-539.525-0.041v81.92h539.525l-103.875 103.875 57.917 57.917zM325.632 838.317l57.917-57.917-103.875-103.875h539.525v-81.92h-539.525l103.875-103.877-57.917-57.917-202.752 202.754 202.752 202.752z" />
<glyph unicode="&#xe940;" glyph-name="Text_New" horiz-adv-x="983" d="M122.88 762.537h737.28v-81.92h-737.28v81.92zM122.88 148.139h573.44v-81.92h-573.44v81.92zM122.88 352.939h737.28v-81.92h-737.28v81.92zM122.88 557.737h573.44v-81.918h-573.44v81.918z" />
<glyph unicode="&#xe941;" glyph-name="Trash_New" horiz-adv-x="983" d="M286.72 684.717v122.88c0 10.863 4.316 21.282 11.997 28.963s18.1 11.997 28.963 11.997h327.68c10.863 0 21.283-4.316 28.963-11.997s11.997-18.1 11.997-28.963v-122.88h204.8v-81.92h-81.92v-532.482c0-10.863-4.317-21.279-11.997-28.963-7.68-7.68-18.1-11.997-28.963-11.997h-573.44c-10.863 0-21.282 4.317-28.963 11.997-7.681 7.684-11.997 18.1-11.997 28.963v532.482h-81.92v81.92h204.8zM368.64 766.637v-81.92h245.76v81.92h-245.76z" />
<glyph unicode="&#xe942;" glyph-name="Undo" horiz-adv-x="983" d="M238.715 647.835l103.875-103.875-57.917-57.918-202.752 202.752 202.752 202.752 57.917-57.917-103.875-103.875h293.765c86.905 0 170.254-34.524 231.707-95.975 61.448-61.452 95.973-144.8 95.973-231.705s-34.525-170.254-95.973-231.703c-61.452-61.452-144.802-95.977-231.707-95.977h-368.64v81.92h368.64c65.18 0 127.689 25.891 173.777 71.983 46.092 46.088 71.983 108.597 71.983 173.777s-25.891 127.69-71.983 173.779c-46.088 46.089-108.597 71.981-173.777 71.981h-293.765z" />
<glyph unicode="&#xe943;" glyph-name="Upload_New" d="M128 127.992h768v-85.333h-768v85.333zM554.667 689.995v-476.67h-85.333v476.67l-259.029-259.070-60.331 60.331 362.027 362.068 362.027-362.025-60.331-60.331-259.029 259.028z" />
<glyph unicode="&#xe944;" glyph-name="Upload_Outline" horiz-adv-x="983" d="M491.52 386.276l173.793-173.752-57.958-57.958-74.875 74.875v-228.762h-81.92v228.844l-74.874-74.957-57.958 57.958 173.792 173.752zM491.52 819.877c70.328-0.003 138.203-25.85 190.718-72.627s86.012-111.221 94.118-181.080c50.967-13.898 95.425-45.267 125.612-88.619 30.183-43.352 44.175-95.932 39.522-148.554-4.649-52.621-27.644-101.937-64.963-139.325-37.323-37.384-86.594-60.469-139.207-65.212v82.493c18.85 2.691 36.975 9.11 53.314 18.883s30.573 22.7 41.861 38.031c11.289 15.335 19.411 32.76 23.892 51.266s5.231 37.716 2.204 56.517c-3.023 18.797-9.765 36.803-19.825 52.969s-23.237 30.163-38.769 41.181c-15.528 11.014-33.096 18.829-51.679 22.979-18.579 4.153-37.802 4.563-56.545 1.208 6.414 29.864 6.070 60.784-1.016 90.497-7.082 29.713-20.722 57.466-39.92 81.224s-43.467 42.923-71.029 56.088c-27.562 13.165-57.721 19.998-88.269 19.998-30.544 0-60.703-6.833-88.267-19.998-27.563-13.165-51.832-32.329-71.030-56.088s-32.838-51.511-39.92-81.224c-7.083-29.713-7.43-60.633-1.015-90.497-37.37 7.016-75.997-1.098-107.383-22.561s-52.962-54.514-59.979-91.881c-7.018-37.372 1.097-75.997 22.559-107.385s54.513-52.961 91.883-59.978l7.373-1.229v-82.493c-52.615 4.735-101.892 27.816-139.218 65.2s-60.326 86.696-64.981 139.317c-4.655 52.625 9.331 105.21 39.514 148.566s74.643 74.726 125.609 88.627c8.098 69.863 41.591 134.312 94.109 181.090s120.398 72.622 190.726 72.616v0z" />
<glyph unicode="&#xe945;" glyph-name="User" horiz-adv-x="983" d="M163.84 4.779c0 86.905 34.523 170.25 95.975 231.703s144.799 95.977 231.705 95.977c86.905 0 170.254-34.525 231.707-95.977 61.448-61.452 95.973-144.798 95.973-231.703h-655.36zM491.52 373.419c-135.782 0-245.76 109.978-245.76 245.758 0 135.782 109.978 245.76 245.76 245.76s245.76-109.978 245.76-245.76c0-135.78-109.978-245.758-245.76-245.758z" />
<glyph unicode="&#xe946;" glyph-name="Zap" horiz-adv-x="983" d="M768 497.327h-225.28l168.96 394.24-506.88-506.88h225.28l-168.96-394.24 506.88 506.88z" />
<glyph unicode="&#xe947;" glyph-name="SidebarClose" d="M128 810.667h768c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-682.667c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-768c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v682.667c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497v0zM341.333 725.334h-170.667v-597.333h170.667v597.333zM426.667 725.334v-597.333h426.667v597.333h-426.667zM712.836 627.5l60.339-60.34-140.497-140.498 140.497-140.497-60.339-60.339-200.836 200.836 200.836 200.838z" />
<glyph unicode="&#xe948;" glyph-name="SidebarOpen" d="M128 810.667h768c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-682.667c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-768c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v682.667c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497v0zM341.333 725.334h-170.667v-597.333h170.667v597.333zM426.667 725.334v-597.333h426.667v597.333h-426.667zM572.339 627.5l-60.339-60.34 140.497-140.498-140.497-140.497 60.339-60.339 200.836 200.836-200.836 200.838z" />
<glyph unicode="&#xe949;" glyph-name="Info_New" d="M512-0c-235.648 0-426.667 191.019-426.667 426.667s191.019 426.667 426.667 426.667c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.667-426.667-426.667zM469.333 469.334v-256h85.333v256h-85.333zM469.333 640v-85.333h85.333v85.333h-85.333z" />
<glyph unicode="&#xe94a;" glyph-name="QuestionMark_Outline" d="M512-0c-235.648 0-426.667 191.019-426.667 426.667s191.019 426.667 426.667 426.667c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.667-426.667-426.667zM512 85.334c90.526 0 177.348 35.964 241.361 99.972 64.009 64.013 99.972 150.835 99.972 241.361 0 90.527-35.964 177.347-99.972 241.359-64.013 64.013-150.835 99.974-241.361 99.974-90.527 0-177.347-35.962-241.359-99.974s-99.974-150.832-99.974-241.359c0-90.526 35.962-177.348 99.974-241.361 64.012-64.009 150.832-99.972 241.359-99.972v0zM469.333 298.667h85.333v-85.333h-85.333v85.333zM554.667 368.854v-27.52h-85.333v64c0 11.315 4.497 22.17 12.497 30.17s18.854 12.497 30.17 12.497c12.122 0 23.991 3.443 34.231 9.929 10.24 6.481 18.432 15.74 23.616 26.697s7.151 23.159 5.67 35.19c-1.481 12.030-6.345 23.392-14.033 32.765-7.684 9.373-17.873 16.37-29.38 20.179s-23.859 4.271-35.618 1.334c-11.759-2.937-22.443-9.153-30.805-17.925-8.367-8.771-14.067-19.738-16.444-31.624l-83.712 16.768c5.19 25.938 17.174 50.032 34.727 69.82s40.046 34.56 65.181 42.806c25.135 8.246 52.006 9.67 77.871 4.126s49.792-17.856 69.338-35.678c19.546-17.823 34.010-40.516 41.911-65.76s8.96-52.132 3.063-77.92c-5.897-25.788-18.534-49.545-36.625-68.847-18.086-19.298-40.977-33.451-66.325-41.007v0z" />
<glyph unicode="&#xe94b;" glyph-name="CaretOutlineRight" d="M562.005 426.667l-211.201 211.2 60.331 60.331 271.532-271.531-271.532-271.531-60.331 60.331 211.201 211.2z" />
<glyph unicode="&#xe94c;" glyph-name="CollapseLeft" d="M547.328 411.136l211.2-211.2-60.331-60.331-271.531 271.531 271.531 271.529 60.331-60.331-211.2-211.199zM298.667 128v554.667h85.333v-554.667h-85.333z" />
<glyph unicode="&#xe94d;" glyph-name="CollapseRight" d="M476.672 411.136l-211.201 211.2 60.331 60.331 271.532-271.531-271.532-271.531-60.331 60.331 211.201 211.2zM725.333 682.667v-554.667h-85.333v554.667h85.333z" />
<glyph unicode="&#xe94e;" glyph-name="DoubleCaretVertical" d="M522.368 99.968l-181.035 181.035 60.373 60.331 120.661-120.704 120.661 120.704 60.373-60.331-181.035-181.035zM522.368 604.672l-120.661-120.704-60.373 60.331 181.035 181.035 181.035-181.035-60.373-60.331-120.661 120.704z" />
<glyph unicode="&#xe94f;" glyph-name="Timer" d="M751.701 684.032l61.995 61.995 60.331-60.331-61.995-61.995c61.261-76.679 90.833-173.905 82.65-271.706-8.188-97.805-53.508-188.762-126.66-254.191s-168.58-100.369-266.688-97.638c-98.108 2.731-191.445 42.923-260.844 112.324-69.399 69.397-109.591 162.735-112.322 260.843s32.206 193.535 97.637 266.688c65.431 73.152 156.387 118.475 254.192 126.66 97.801 8.185 195.025-21.389 271.706-82.649v0zM512 85.334c39.223 0 78.059 7.727 114.295 22.733 36.237 15.010 69.158 37.009 96.892 64.747 27.738 27.733 49.737 60.655 64.747 96.892 15.006 36.237 22.733 75.072 22.733 114.295s-7.727 78.059-22.733 114.295c-15.010 36.235-37.009 69.16-64.747 96.894-27.733 27.734-60.655 49.733-96.892 64.743s-75.072 22.735-114.295 22.735c-79.211 0-155.178-31.467-211.189-87.477s-87.477-131.979-87.477-211.189c0-79.211 31.467-155.179 87.477-211.187 56.011-56.013 131.979-87.479 211.189-87.479v0zM469.333 597.334h85.333v-256h-85.333v256zM341.333 896h341.333v-85.333h-341.333v85.333z" />
<glyph unicode="&#xe950;" glyph-name="Logout" d="M213.333-0c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v768c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h597.333c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-128h-85.333v85.333h-512v-682.667h512v85.333h85.333v-128c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-597.333zM768 256v128h-298.667v85.333h298.667v128l213.333-170.667-213.333-170.667z" />
<glyph unicode="&#xe951;" glyph-name="SaveOutline" d="M298.667 128v256h426.667v-256h85.333v476.672l-120.661 120.661h-476.672v-597.333h85.333zM170.667 810.667h554.667l170.667-170.667v-554.667c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497h-682.667c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v682.667c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497zM384 298.667v-170.667h256v170.667h-256z" />
<glyph unicode="&#xe952;" glyph-name="CurrencyDollar" d="M512-0c-235.648 0-426.667 191.019-426.667 426.667s191.019 426.667 426.667 426.667c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.667-426.667-426.667zM512 85.334c90.526 0 177.348 35.964 241.361 99.972 64.009 64.013 99.972 150.835 99.972 241.361 0 90.527-35.964 177.347-99.972 241.359-64.013 64.013-150.835 99.974-241.361 99.974-90.527 0-177.347-35.962-241.359-99.974s-99.974-150.832-99.974-241.359c0-90.526 35.962-177.348 99.974-241.361 64.012-64.009 150.832-99.972 241.359-99.972v0zM362.667 341.334h234.667c5.658 0 11.085 2.249 15.087 6.246 3.998 4.002 6.246 9.429 6.246 15.087s-2.249 11.085-6.246 15.087c-4.002 3.998-9.429 6.246-15.087 6.246h-170.667c-28.29 0-55.421 11.238-75.425 31.241-20.004 20.006-31.242 47.138-31.242 75.426 0 28.29 11.238 55.421 31.242 75.425s47.135 31.242 75.425 31.242h42.667v85.333h85.333v-85.333h106.667v-85.333h-234.667c-5.658 0-11.084-2.249-15.085-6.246-4.001-4.002-6.249-9.429-6.249-15.087s2.248-11.085 6.249-15.087c4-3.998 9.427-6.246 15.085-6.246h170.667c28.288 0 55.42-11.238 75.426-31.241 20.002-20.006 31.241-47.138 31.241-75.426s-11.238-55.42-31.241-75.426c-20.006-20.002-47.138-31.241-75.426-31.241h-42.667v-85.333h-85.333v85.333h-106.667v85.333z" />
<glyph unicode="&#xe953;" glyph-name="Subtract" d="M213.334 469.334h597.333v-85.333h-597.333v85.333z" />
<glyph unicode="&#xe954;" glyph-name="Bill" d="M853.333-0h-682.667c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v768c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h682.667c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-768c0-11.315-4.497-22.17-12.497-30.17s-18.854-12.497-30.17-12.497zM341.333 554.667v-85.333h341.333v85.333h-341.333zM341.333 384v-85.333h341.333v85.333h-341.333z" />
<glyph unicode="&#xe955;" glyph-name="Sync" d="M376.538 595.512l97.327 100.079-61.174 59.493-238.172-244.905h678.815v85.333h-476.795zM647.462 257.831h-476.796v85.333h678.814l-238.174-244.907-61.171 59.494 97.327 100.079z" />
<glyph unicode="&#xe956;" glyph-name="FolderOpen" d="M128 42.667c-11.316 0-22.168 4.497-30.17 12.497s-12.497 18.854-12.497 30.17v682.667c0 11.316 4.495 22.168 12.497 30.17s18.854 12.497 30.17 12.497h316.331l85.333-85.333h323.669c11.315 0 22.17-4.495 30.17-12.497s12.497-18.854 12.497-30.17v-128h-85.333v85.333h-316.331l-85.333 85.333h-238.336v-511.915l64 255.915h725.333l-98.56-394.368c-2.313-9.225-7.637-17.417-15.138-23.266-7.497-5.854-16.738-9.033-26.249-9.033h-692.053zM850.688 384h-549.376l-64-256h549.376l64 256z" />
<glyph unicode="&#xe957;" glyph-name="PieChart" d="M469.333 851.2v-467.2h467.2c-21.376-215.595-203.307-384-424.533-384-235.648 0-426.667 191.019-426.667 426.667 0 221.227 168.405 403.157 384 424.533zM554.667 851.2c201.917-20.937 360.93-179.95 381.712-380.033l0.154-1.834h-381.867v381.867z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB