Merge pull request #3565 from influxdata/ifql/table

Introduce line graph visualization to Flux page
pull/3571/head
Chris Henn 2018-06-04 16:12:10 -07:00 committed by GitHub
commit 2add416531
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 386 additions and 575 deletions

View File

@ -19,6 +19,7 @@
"test": "jest",
"test:lint": "yarn run lint; yarn run test",
"test:watch": "jest --watch",
"test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand --watch",
"clean": "rm -rf ./build/*",
"eslint:fix": "eslint src --fix",
"tslint:fix": "tslint --fix -c ./tslint.json '{src,test}/**/*.ts?(x)'",

View File

@ -1,9 +1,9 @@
import _ from 'lodash'
import AJAX from 'src/utils/ajax'
import {Service, ScriptResult} from 'src/types'
import {Service, FluxTable} from 'src/types'
import {updateService} from 'src/shared/apis'
import {parseResults} from 'src/shared/parsing/v2/results'
import {parseResponse} from 'src/shared/parsing/v2/results'
export const getSuggestions = async (url: string) => {
try {
@ -42,7 +42,7 @@ export const getAST = async (request: ASTRequest) => {
export const getTimeSeries = async (
service: Service,
script: string
): Promise<ScriptResult[]> => {
): Promise<FluxTable[]> => {
const and = encodeURIComponent('&')
const mark = encodeURIComponent('?')
const garbage = script.replace(/\s/g, '') // server cannot handle whitespace
@ -55,7 +55,7 @@ export const getTimeSeries = async (
}?path=/v1/query${mark}orgName=defaulorgname${and}q=${garbage}`,
})
return parseResults(data)
return parseResponse(data)
} catch (error) {
console.error('Problem fetching data', error)

View File

@ -0,0 +1,70 @@
import React, {PureComponent} from 'react'
import {connect} from 'react-redux'
import {fluxTablesToDygraph} from 'src/shared/parsing/v2/dygraph'
import Dygraph from 'src/shared/components/Dygraph'
import {FluxTable} from 'src/types'
import {DygraphSeries, DygraphValue} from 'src/utils/timeSeriesTransformers'
import {DEFAULT_LINE_COLORS} from 'src/shared/constants/graphColorPalettes'
import {setHoverTime as setHoverTimeAction} from 'src/dashboards/actions'
interface Props {
data: FluxTable[]
setHoverTime: (time: number) => void
}
class FluxGraph extends PureComponent<Props> {
public render() {
const containerStyle = {
width: 'calc(100% - 50px)',
height: 'calc(100% - 70px)',
position: 'absolute',
}
return (
<div className="flux-graph" style={{width: '100%', height: '100%'}}>
<Dygraph
labels={this.labels}
staticLegend={false}
timeSeries={this.timeSeries}
colors={DEFAULT_LINE_COLORS}
dygraphSeries={this.dygraphSeries}
options={this.options}
containerStyle={containerStyle}
handleSetHoverTime={this.props.setHoverTime}
/>
</div>
)
}
private get options() {
return {
axisLineColor: '#383846',
gridLineColor: '#383846',
}
}
// [time, v1, v2, null, v3]
// time: [v1, v2, null, v3]
private get timeSeries(): DygraphValue[][] {
return fluxTablesToDygraph(this.props.data)
}
private get labels(): string[] {
const {data} = this.props
const names = data.map(d => d.name)
return ['time', ...names]
}
private get dygraphSeries(): DygraphSeries {
return {}
}
}
const mdtp = {
setHoverTime: setHoverTimeAction,
}
export default connect(null, mdtp)(FluxGraph)

View File

@ -1,14 +1,14 @@
import React, {PureComponent, CSSProperties} from 'react'
import _ from 'lodash'
import {ScriptResult} from 'src/types'
import {FluxTable} from 'src/types'
import {ErrorHandling} from 'src/shared/decorators/errors'
import FancyScrollbar from 'src/shared/components/FancyScrollbar'
import TableSidebarItem from 'src/ifql/components/TableSidebarItem'
import {vis} from 'src/ifql/constants'
interface Props {
data: ScriptResult[]
data: FluxTable[]
selectedResultID: string
onSelectResult: (id: string) => void
}
@ -22,7 +22,7 @@ export default class TableSidebar extends PureComponent<Props> {
<div className="time-machine--sidebar">
{!this.isDataEmpty && (
<div className="query-builder--heading" style={this.headingStyle}>
Results
Tables
</div>
)}
<FancyScrollbar>

View File

@ -14,7 +14,7 @@ export default class TableSidebarItem extends PureComponent<Props> {
public render() {
return (
<div
className={`query-builder--list-item ${this.active}`}
className={`query-builder--list-item flux-table ${this.active}`}
onClick={this.handleClick}
>
{this.props.name}

View File

@ -1,4 +1,4 @@
import React, {PureComponent} from 'react'
import React, {PureComponent, CSSProperties} from 'react'
import SchemaExplorer from 'src/ifql/components/SchemaExplorer'
import BodyBuilder from 'src/ifql/components/BodyBuilder'
import TimeMachineEditor from 'src/ifql/components/TimeMachineEditor'
@ -10,7 +10,7 @@ import {
OnSubmitScript,
FlatBody,
ScriptStatus,
ScriptResult,
FluxTable,
} from 'src/types/ifql'
import {Service} from 'src/types'
@ -19,7 +19,7 @@ import {HANDLE_VERTICAL, HANDLE_HORIZONTAL} from 'src/shared/constants'
interface Props {
service: Service
data: ScriptResult[]
data: FluxTable[]
script: string
body: Body[]
status: ScriptStatus
@ -65,6 +65,7 @@ class TimeMachine extends PureComponent<Props> {
handlePixels: 8,
menuOptions: [],
headerButtons: [],
style: {overflow: 'visible'} as CSSProperties,
render: () => <TimeMachineVis data={data} />,
},
]

View File

@ -3,7 +3,7 @@ import _ from 'lodash'
import {Grid, GridCellProps, AutoSizer, ColumnSizer} from 'react-virtualized'
import {ErrorHandling} from 'src/shared/decorators/errors'
import {ScriptResult} from 'src/types'
import {FluxTable} from 'src/types'
import {vis} from 'src/ifql/constants'
const NUM_FIXED_ROWS = 1
@ -13,10 +13,7 @@ interface State {
}
@ErrorHandling
export default class TimeMachineTable extends PureComponent<
ScriptResult,
State
> {
export default class TimeMachineTable extends PureComponent<FluxTable, State> {
constructor(props) {
super(props)
this.state = {

View File

@ -1,19 +1,26 @@
import React, {PureComponent, CSSProperties} from 'react'
import React, {PureComponent} from 'react'
import _ from 'lodash'
import {ErrorHandling} from 'src/shared/decorators/errors'
import {ScriptResult} from 'src/types'
import {FluxTable} from 'src/types'
import VisHeaderTabs from 'src/data_explorer/components/VisHeaderTabs'
import TableSidebar from 'src/ifql/components/TableSidebar'
import TimeMachineTable from 'src/ifql/components/TimeMachineTable'
import {HANDLE_PIXELS} from 'src/shared/constants'
import FluxGraph from 'src/ifql/components/FluxGraph'
import NoResults from 'src/ifql/components/NoResults'
interface Props {
data: ScriptResult[]
data: FluxTable[]
}
enum VisType {
Table = 'Table View',
Line = 'Line Graph',
}
interface State {
selectedResultID: string | null
visType: VisType
}
@ErrorHandling
@ -21,7 +28,10 @@ class TimeMachineVis extends PureComponent<Props, State> {
constructor(props) {
super(props)
this.state = {selectedResultID: this.initialResultID}
this.state = {
selectedResultID: this.initialResultID,
visType: VisType.Line,
}
}
public componentDidUpdate() {
@ -31,8 +41,38 @@ class TimeMachineVis extends PureComponent<Props, State> {
}
public render() {
const {visType} = this.state
return (
<div className="time-machine-visualization" style={this.style}>
<div className="time-machine-visualization">
<div className="time-machine-visualization--settings">
<VisHeaderTabs
view={visType}
views={[VisType.Table, VisType.Line]}
currentView={visType}
onToggleView={this.selectVisType}
/>
</div>
<div className="time-machine-visualization--visualization">
{this.vis}
</div>
</div>
)
}
private get vis(): JSX.Element {
const {visType} = this.state
const {data} = this.props
if (visType === VisType.Line) {
return <FluxGraph data={data} />
}
return this.table
}
private get table(): JSX.Element {
return (
<>
{this.showSidebar && (
<TableSidebar
data={this.props.data}
@ -46,7 +86,7 @@ class TimeMachineVis extends PureComponent<Props, State> {
)}
{!this.hasResults && <NoResults />}
</div>
</div>
</>
)
}
@ -58,10 +98,8 @@ class TimeMachineVis extends PureComponent<Props, State> {
this.setState({selectedResultID})
}
private get style(): CSSProperties {
return {
padding: `${HANDLE_PIXELS}px`,
}
private selectVisType = (visType: VisType): void => {
this.setState({visType})
}
private get showSidebar(): boolean {
@ -76,7 +114,7 @@ class TimeMachineVis extends PureComponent<Props, State> {
return !!this.props.data && !!this.selectedResult
}
private get selectedResult(): ScriptResult {
private get selectedResult(): FluxTable {
return this.props.data.find(d => d.id === this.state.selectedResultID)
}
}

View File

@ -16,7 +16,7 @@ import {bodyNodes} from 'src/ifql/helpers'
import {getSuggestions, getAST, getTimeSeries} from 'src/ifql/apis'
import {builder, argTypes} from 'src/ifql/constants'
import {Source, Service, Notification, ScriptResult} from 'src/types'
import {Source, Service, Notification, FluxTable} from 'src/types'
import {
Suggestion,
FlatBody,
@ -49,7 +49,7 @@ interface Body extends FlatBody {
interface State {
body: Body[]
ast: object
data: ScriptResult[]
data: FluxTable[]
status: ScriptStatus
suggestions: Suggestion[]
}

View File

@ -390,6 +390,7 @@ Dygraph.defaultProps = {
staticLegend: {
type: null,
},
setResolution: () => {},
}
Dygraph.propTypes = {

View File

@ -1,4 +1,9 @@
import React, {PureComponent, ReactElement, MouseEvent} from 'react'
import React, {
CSSProperties,
PureComponent,
ReactElement,
MouseEvent,
} from 'react'
import classnames from 'classnames'
import calculateSize from 'calculate-size'
@ -12,6 +17,7 @@ interface Props {
name?: string
handleDisplay?: string
menuOptions?: MenuItem[]
style?: CSSProperties
handlePixels: number
id: string
size: number
@ -27,16 +33,11 @@ interface Props {
headerButtons: JSX.Element[]
}
interface Style {
width?: string
height?: string
display?: string
}
class Division extends PureComponent<Props> {
public static defaultProps: Partial<Props> = {
name: '',
handleDisplay: 'visible',
style: {},
}
private collapseThreshold: number = 0
@ -109,7 +110,7 @@ class Division extends PureComponent<Props> {
return 'Drag to resize.\nDouble click to expand.'
}
private get contentStyle(): Style {
private get contentStyle(): CSSProperties {
if (this.props.orientation === HANDLE_HORIZONTAL) {
return {
height: `calc(100% - ${this.handlePixels}px)`,
@ -121,7 +122,7 @@ class Division extends PureComponent<Props> {
}
}
private get handleStyle(): Style {
private get handleStyle(): CSSProperties {
const {handleDisplay: display, orientation, handlePixels} = this.props
if (orientation === HANDLE_HORIZONTAL) {
@ -137,14 +138,17 @@ class Division extends PureComponent<Props> {
}
}
private get containerStyle(): Style {
if (this.props.orientation === HANDLE_HORIZONTAL) {
private get containerStyle(): CSSProperties {
const {style, orientation} = this.props
if (orientation === HANDLE_HORIZONTAL) {
return {
...style,
height: this.size,
}
}
return {
...style,
width: this.size,
}
}

View File

@ -1,4 +1,4 @@
import React, {Component, ReactElement, MouseEvent} from 'react'
import React, {Component, ReactElement, MouseEvent, CSSProperties} from 'react'
import classnames from 'classnames'
import uuid from 'uuid'
import _ from 'lodash'
@ -34,6 +34,7 @@ interface DivisionProps {
name?: string
handleDisplay?: string
handlePixels?: number
style?: CSSProperties
headerButtons?: JSX.Element[]
menuOptions: MenuItem[]
render: (visibility?: string) => ReactElement<any>
@ -138,6 +139,7 @@ class Threesizer extends Component<Props, State> {
id={d.id}
name={d.name}
size={d.size}
style={d.style}
offset={this.offset}
draggable={i > 0}
orientation={orientation}

View File

@ -0,0 +1,37 @@
import _ from 'lodash'
import {FluxTable} from 'src/types'
import {DygraphValue} from 'src/utils/timeSeriesTransformers'
export const fluxTablesToDygraph = (data: FluxTable[]): DygraphValue[][] => {
interface V {
[time: string]: number[]
}
const valuesForTime: V = {}
data.forEach(table => {
const header = table.data[0]
const timeColIndex = header.findIndex(col => col === '_time')
table.data.slice(1).forEach(row => {
valuesForTime[row[timeColIndex]] = Array(data.length).fill(null)
})
})
data.forEach((table, i) => {
const header = table.data[0]
const timeColIndex = header.findIndex(col => col === '_time')
const valueColIndex = header.findIndex(col => col === '_value')
table.data.slice(1).forEach(row => {
const time = row[timeColIndex]
const value = row[valueColIndex]
valuesForTime[time][i] = +value
})
})
return _.sortBy(Object.entries(valuesForTime), ([time]) => time).map(
([time, values]) => [new Date(time), ...values]
)
}

View File

@ -1,7 +1,7 @@
import {parseResults} from 'src/shared/parsing/v2/results'
import {parseResponse} from 'src/shared/parsing/v2/results'
const parseMeasurements = (resp: string): string[] => {
const results = parseResults(resp)
const results = parseResponse(resp)
if (results.length === 0) {
return []

View File

@ -2,35 +2,80 @@ import Papa from 'papaparse'
import _ from 'lodash'
import uuid from 'uuid'
import {ScriptResult} from 'src/types'
import {FluxTable} from 'src/types'
export const parseResults = (response: string): ScriptResult[] => {
export const parseResponse = (response: string): FluxTable[] => {
const trimmedReponse = response.trim()
if (_.isEmpty(trimmedReponse)) {
return []
}
return trimmedReponse.split(/\n\s*\n/).map(parseResult)
return trimmedReponse.split(/\n\s*\n/).reduce((acc, chunk) => {
return [...acc, ...parseTables(chunk)]
}, [])
}
export const parseResult = (raw: string, index: number): ScriptResult => {
const lines = raw.split('\n')
const rawMetadata: string = lines
export const parseTables = (responseChunk: string): FluxTable[] => {
const lines = responseChunk.split('\n')
const annotationLines: string = lines
.filter(line => line.startsWith('#'))
.map(line => line.slice(1))
.join('\n')
const rawData: string = lines.filter(line => !line.startsWith('#')).join('\n')
const nonAnnotationLines: string = lines
.filter(line => !line.startsWith('#'))
.join('\n')
const metadata = Papa.parse(rawMetadata).data
const data = Papa.parse(rawData).data
if (_.isEmpty(annotationLines)) {
throw new Error('Unable to extract annotation data')
}
const name = `Result ${index}`
const nonAnnotationData = Papa.parse(nonAnnotationLines).data
const annotationData = Papa.parse(annotationLines).data
const headerRow = nonAnnotationData[0]
const tableColIndex = headerRow.findIndex(h => h === 'table')
interface TableGroup {
[tableId: string]: string[]
}
// Group rows by their table id
const tablesData = Object.values(
_.groupBy<TableGroup[]>(
nonAnnotationData.slice(1),
row => row[tableColIndex]
)
)
const partitionRow = annotationData.find(row => row[0] === '#partition')
const defaultsRow = annotationData.find(row => row[0] === '#default')
// partitionRow = ['#partition', 'false', 'true', 'true', 'false']
const partitionKeyIndices = partitionRow.reduce((acc, value, i) => {
if (value === 'true') {
return [...acc, i]
}
return acc
}, [])
const tables = tablesData.map(tableData => {
const dataRow = _.get(tableData, '0', defaultsRow)
const partitionKey = partitionKeyIndices.reduce((acc, i) => {
return {...acc, [headerRow[i]]: _.get(dataRow, i, '')}
}, {})
const name = Object.entries(partitionKey)
.filter(([k]) => !['_start', '_stop'].includes(k))
.map(([k, v]) => `${k}=${v}`)
.join(' ')
return {
id: uuid.v4(),
data: [[...headerRow], ...tableData],
name,
data,
metadata,
partitionKey,
}
})
return tables
}

View File

@ -1,16 +1,16 @@
import _ from 'lodash'
import {ScriptResult} from 'src/types'
import {parseResults} from 'src/shared/parsing/v2/results'
import {FluxTable} from 'src/types'
import {parseResponse} from 'src/shared/parsing/v2/results'
const parseValuesColumn = (resp: string): string[] => {
const results = parseResults(resp)
const results = parseResponse(resp)
if (results.length === 0) {
return []
}
const tags = results.reduce<string[]>((acc, result: ScriptResult) => {
const tags = results.reduce<string[]>((acc, result: FluxTable) => {
const colIndex = result.data[0].findIndex(header => header === '_value')
if (colIndex === -1) {

View File

@ -6,13 +6,26 @@
.time-machine-visualization {
display: flex;
align-content: center;
align-items: center;
justify-content: center;
align-items: flex-start;
justify-content: flex-start;
flex-direction: column;
width: 100%;
height: 100%;
padding: 10px;
@include gradient-v($g2-kevlar, $g0-obsidian);
}
.time-machine-visualization--settings {
margin-bottom: 10px;
}
.time-machine-visualization--visualization {
display: flex;
flex: 1 1 auto;
width: 100%;
height: 100%;
}
.time-machine--sidebar,
.time-machine--vis {
background-color: $g3-castle;
@ -55,3 +68,19 @@
padding: 0 16px 8px 16px;
flex: 1 0 0;
}
.query-builder--list-item.flux-table {
white-space: nowrap;
overflow-x: hidden;
}
.flux-graph {
background-color: $g3-castle;
position: relative;
padding: 20px;
.dygraph-child {
width: 100%;
height: 100%;
}
}

View File

@ -113,13 +113,15 @@ export interface Links {
ast: string
}
// ScriptResult is the result of a request to IFQL
// FluxTable is the result of a request to IFQL
// https://github.com/influxdata/platform/blob/master/query/docs/SPEC.md#response-format
export interface ScriptResult {
export interface FluxTable {
id: string
name: string
data: string[][]
metadata: string[][]
partitionKey: {
[key: string]: string
}
}
export interface SchemaFilter {

View File

@ -22,7 +22,7 @@ import {AlertRule, Kapacitor, Task} from './kapacitor'
import {Source, SourceLinks} from './sources'
import {DropdownAction, DropdownItem} from './shared'
import {Notification, NotificationFunc} from './notifications'
import {ScriptResult, ScriptStatus, SchemaFilter, RemoteDataState} from './ifql'
import {FluxTable, ScriptStatus, SchemaFilter, RemoteDataState} from './ifql'
export {
Me,
@ -62,7 +62,7 @@ export {
NewService,
LayoutCell,
LayoutQuery,
ScriptResult,
FluxTable,
ScriptStatus,
SchemaFilter,
RemoteDataState,

View File

@ -4,7 +4,7 @@ import {groupByTimeSeriesTransform} from 'src/utils/groupByTimeSeriesTransform'
import {TimeSeriesServerResponse, TimeSeries} from 'src/types/series'
import {TimeSeriesValue} from 'src/types/series'
type DygraphValue = string | number | Date | null
export type DygraphValue = string | number | Date | null
interface Label {
label: string
@ -23,7 +23,7 @@ interface TimeSeriesToTableGraphReturnType {
sortedLabels: Label[]
}
interface DygraphSeries {
export interface DygraphSeries {
[x: string]: {
axis: string
}

View File

@ -92,482 +92,45 @@ export const TAGS_RESPONSE = `#datatype,string,long,string
`
// prettier-ignore
export const LARGE_RESPONSE = `#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string
export const MULTI_SCHEMA_RESPONSE = `#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true
#default,_result,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,cpu,host
,,0,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu-total,WattsInfluxDB
,,1,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu-total,WattsInfluxDB
,,2,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,70.76923076923077,usage_idle,cpu,cpu-total,WattsInfluxDB
,,3,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu-total,WattsInfluxDB
,,4,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu-total,WattsInfluxDB
,,5,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu-total,WattsInfluxDB
,,6,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu-total,WattsInfluxDB
,,7,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu-total,WattsInfluxDB
,,8,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,11.794871794871796,usage_system,cpu,cpu-total,WattsInfluxDB
,,9,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,17.435897435897434,usage_user,cpu,cpu-total,WattsInfluxDB
,,10,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu0,WattsInfluxDB
,,11,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu0,WattsInfluxDB
,,12,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,47.82608695652174,usage_idle,cpu,cpu0,WattsInfluxDB
,,13,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu0,WattsInfluxDB
,,14,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu0,WattsInfluxDB
,,15,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu0,WattsInfluxDB
,,16,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu0,WattsInfluxDB
,,17,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu0,WattsInfluxDB
,,18,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,26.08695652173913,usage_system,cpu,cpu0,WattsInfluxDB
,,19,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,26.08695652173913,usage_user,cpu,cpu0,WattsInfluxDB
,,20,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu1,WattsInfluxDB
,,21,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu1,WattsInfluxDB
,,22,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,92,usage_idle,cpu,cpu1,WattsInfluxDB
,,23,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu1,WattsInfluxDB
,,24,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu1,WattsInfluxDB
,,25,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu1,WattsInfluxDB
,,26,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu1,WattsInfluxDB
,,27,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu1,WattsInfluxDB
,,28,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4,usage_system,cpu,cpu1,WattsInfluxDB
,,29,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4,usage_user,cpu,cpu1,WattsInfluxDB
,,30,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu2,WattsInfluxDB
,,31,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu2,WattsInfluxDB
,,32,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,52,usage_idle,cpu,cpu2,WattsInfluxDB
,,33,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu2,WattsInfluxDB
,,34,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu2,WattsInfluxDB
,,35,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu2,WattsInfluxDB
,,36,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu2,WattsInfluxDB
,,37,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu2,WattsInfluxDB
,,38,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,16,usage_system,cpu,cpu2,WattsInfluxDB
,,39,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,32,usage_user,cpu,cpu2,WattsInfluxDB
,,40,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu3,WattsInfluxDB
,,41,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu3,WattsInfluxDB
,,42,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,91.66666666666667,usage_idle,cpu,cpu3,WattsInfluxDB
,,43,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu3,WattsInfluxDB
,,44,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu3,WattsInfluxDB
,,45,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu3,WattsInfluxDB
,,46,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu3,WattsInfluxDB
,,47,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu3,WattsInfluxDB
,,48,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4.166666666666667,usage_system,cpu,cpu3,WattsInfluxDB
,,49,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4.166666666666667,usage_user,cpu,cpu3,WattsInfluxDB
,,50,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu4,WattsInfluxDB
,,51,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu4,WattsInfluxDB
,,52,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,45.833333333333336,usage_idle,cpu,cpu4,WattsInfluxDB
,,53,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu4,WattsInfluxDB
,,54,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu4,WattsInfluxDB
,,55,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu4,WattsInfluxDB
,,56,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu4,WattsInfluxDB
,,57,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu4,WattsInfluxDB
,,58,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,16.666666666666668,usage_system,cpu,cpu4,WattsInfluxDB
,,59,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,37.5,usage_user,cpu,cpu4,WattsInfluxDB
,,60,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu5,WattsInfluxDB
,,61,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu5,WattsInfluxDB
,,62,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,92,usage_idle,cpu,cpu5,WattsInfluxDB
,,63,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu5,WattsInfluxDB
,,64,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu5,WattsInfluxDB
,,65,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu5,WattsInfluxDB
,,66,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu5,WattsInfluxDB
,,67,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu5,WattsInfluxDB
,,68,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4,usage_system,cpu,cpu5,WattsInfluxDB
,,69,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4,usage_user,cpu,cpu5,WattsInfluxDB
,,70,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu6,WattsInfluxDB
,,71,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu6,WattsInfluxDB
,,72,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,52,usage_idle,cpu,cpu6,WattsInfluxDB
,,73,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu6,WattsInfluxDB
,,74,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu6,WattsInfluxDB
,,75,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu6,WattsInfluxDB
,,76,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu6,WattsInfluxDB
,,77,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu6,WattsInfluxDB
,,78,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,20,usage_system,cpu,cpu6,WattsInfluxDB
,,79,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,28,usage_user,cpu,cpu6,WattsInfluxDB
,,80,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest,cpu,cpu7,WattsInfluxDB
,,81,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_guest_nice,cpu,cpu7,WattsInfluxDB
,,82,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,91.66666666666667,usage_idle,cpu,cpu7,WattsInfluxDB
,,83,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_iowait,cpu,cpu7,WattsInfluxDB
,,84,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_irq,cpu,cpu7,WattsInfluxDB
,,85,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_nice,cpu,cpu7,WattsInfluxDB
,,86,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_softirq,cpu,cpu7,WattsInfluxDB
,,87,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,usage_steal,cpu,cpu7,WattsInfluxDB
,,88,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4.166666666666667,usage_system,cpu,cpu7,WattsInfluxDB
,,89,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,4.166666666666667,usage_user,cpu,cpu7,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,90,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,182180679680,free,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
,,91,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,9223372036852008920,inodes_free,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
,,92,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,9223372036854775807,inodes_total,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
,,93,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,2766887,inodes_used,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
,,94,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,499963170816,total,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
,,95,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,314933657600,used,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,96,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,63.352358598865635,used_percent,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,97,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,free,disk,devfs,devfs,WattsInfluxDB,rw,/dev
,,98,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,inodes_free,disk,devfs,devfs,WattsInfluxDB,rw,/dev
,,99,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,716,inodes_total,disk,devfs,devfs,WattsInfluxDB,rw,/dev
,,100,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,716,inodes_used,disk,devfs,devfs,WattsInfluxDB,rw,/dev
,,101,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,211968,total,disk,devfs,devfs,WattsInfluxDB,rw,/dev
,,102,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,211968,used,disk,devfs,devfs,WattsInfluxDB,rw,/dev
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,103,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,100,used_percent,disk,devfs,devfs,WattsInfluxDB,rw,/dev
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,104,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-18T03:13:34.143Z,258453504,free,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/bless.9mnm
,,105,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-18T03:13:34.143Z,0,inodes_free,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/bless.9mnm
,,106,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-18T03:13:34.143Z,0,inodes_total,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/bless.9mnm
,,107,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-18T03:13:34.143Z,0,inodes_used,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/bless.9mnm
,,108,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-18T03:13:34.143Z,313827328,total,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/bless.9mnm
,,109,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-18T03:13:34.143Z,55373824,used,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/bless.9mnm
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,110,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-18T03:13:34.143Z,17.644678796105353,used_percent,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/bless.9mnm
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,111,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-12T05:09:50.004Z,274092032,free,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/firmwaresyncd.ushpRB
,,112,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-12T05:09:50.004Z,0,inodes_free,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/firmwaresyncd.ushpRB
,,113,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-12T05:09:50.004Z,0,inodes_total,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/firmwaresyncd.ushpRB
,,114,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-12T05:09:50.004Z,0,inodes_used,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/firmwaresyncd.ushpRB
,,115,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-12T05:09:50.004Z,313827328,total,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/firmwaresyncd.ushpRB
,,116,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-12T05:09:50.004Z,39735296,used,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/firmwaresyncd.ushpRB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,117,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-12T05:09:50.004Z,12.66151557075361,used_percent,disk,disk0s1,msdos,WattsInfluxDB,rw,/Volumes/firmwaresyncd.ushpRB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,118,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,220499697664,free,disk,disk1s1,apfs,WattsInfluxDB,rw,/
,,119,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,9223372036852024886,inodes_free,disk,disk1s1,apfs,WattsInfluxDB,rw,/
,,120,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,9223372036854775807,inodes_total,disk,disk1s1,apfs,WattsInfluxDB,rw,/
,,121,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,2750921,inodes_used,disk,disk1s1,apfs,WattsInfluxDB,rw,/
,,122,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,499963170816,total,disk,disk1s1,apfs,WattsInfluxDB,rw,/
,,123,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,275540910080,used,disk,disk1s1,apfs,WattsInfluxDB,rw,/
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,124,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,55.54805509435289,used_percent,disk,disk1s1,apfs,WattsInfluxDB,rw,/
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,125,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-20T04:05:50.608Z,171371986944,free,disk,disk1s2,apfs,WattsInfluxDB,rw,/Volumes/Preboot 1
,,126,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-20T04:05:50.608Z,9223372036854775741,inodes_free,disk,disk1s2,apfs,WattsInfluxDB,rw,/Volumes/Preboot 1
,,127,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-20T04:05:50.608Z,9223372036854775807,inodes_total,disk,disk1s2,apfs,WattsInfluxDB,rw,/Volumes/Preboot 1
,,128,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-20T04:05:50.608Z,66,inodes_used,disk,disk1s2,apfs,WattsInfluxDB,rw,/Volumes/Preboot 1
,,129,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-20T04:05:50.608Z,499963170816,total,disk,disk1s2,apfs,WattsInfluxDB,rw,/Volumes/Preboot 1
,,130,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-20T04:05:50.608Z,21532672,used,disk,disk1s2,apfs,WattsInfluxDB,rw,/Volumes/Preboot 1
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,131,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-20T04:05:50.608Z,0.012563294136349525,used_percent,disk,disk1s2,apfs,WattsInfluxDB,rw,/Volumes/Preboot 1
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,132,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-19T19:33:36.939Z,167696769024,free,disk,disk1s3,apfs,WattsInfluxDB,rw,/Volumes/Recovery
,,133,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-19T19:33:36.939Z,9223372036854775793,inodes_free,disk,disk1s3,apfs,WattsInfluxDB,rw,/Volumes/Recovery
,,134,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-19T19:33:36.939Z,9223372036854775807,inodes_total,disk,disk1s3,apfs,WattsInfluxDB,rw,/Volumes/Recovery
,,135,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-19T19:33:36.939Z,14,inodes_used,disk,disk1s3,apfs,WattsInfluxDB,rw,/Volumes/Recovery
,,136,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-19T19:33:36.939Z,499963170816,total,disk,disk1s3,apfs,WattsInfluxDB,rw,/Volumes/Recovery
,,137,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-19T19:33:36.939Z,517763072,used,disk,disk1s3,apfs,WattsInfluxDB,rw,/Volumes/Recovery
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,138,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-19T19:33:36.939Z,0.30779925226942506,used_percent,disk,disk1s3,apfs,WattsInfluxDB,rw,/Volumes/Recovery
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,139,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,220499697664,free,disk,disk1s4,apfs,WattsInfluxDB,rw,/private/var/vm
,,140,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,9223372036854775804,inodes_free,disk,disk1s4,apfs,WattsInfluxDB,rw,/private/var/vm
,,141,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,9223372036854775807,inodes_total,disk,disk1s4,apfs,WattsInfluxDB,rw,/private/var/vm
,,142,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,3,inodes_used,disk,disk1s4,apfs,WattsInfluxDB,rw,/private/var/vm
,,143,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,499963170816,total,disk,disk1s4,apfs,WattsInfluxDB,rw,/private/var/vm
,,144,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,3221266432,used,disk,disk1s4,apfs,WattsInfluxDB,rw,/private/var/vm
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,145,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,1.4398589980229728,used_percent,disk,disk1s4,apfs,WattsInfluxDB,rw,/private/var/vm
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,146,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-07T04:06:42.333Z,0,free,disk,disk2,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,147,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-07T04:06:42.333Z,3390710,inodes_free,disk,disk2,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,148,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-07T04:06:42.333Z,71,inodes_total,disk,disk2,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,149,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-07T04:06:42.333Z,0,inodes_used,disk,disk2,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,150,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-07T04:06:42.333Z,6944174080,total,disk,disk2,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,151,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-07T04:06:42.333Z,0,used,disk,disk2,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,152,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-07T04:06:42.333Z,0,used_percent,disk,disk2,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,153,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-14T16:10:41.251Z,389857280,free,disk,disk2s1,hfs,WattsInfluxDB,ro,/Volumes/FF95FBB6-192D-47B9-BBBC-833F6368D429
,,154,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-14T16:10:41.251Z,4294966864,inodes_free,disk,disk2s1,hfs,WattsInfluxDB,ro,/Volumes/FF95FBB6-192D-47B9-BBBC-833F6368D429
,,155,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-14T16:10:41.251Z,4294967279,inodes_total,disk,disk2s1,hfs,WattsInfluxDB,ro,/Volumes/FF95FBB6-192D-47B9-BBBC-833F6368D429
,,156,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-14T16:10:41.251Z,415,inodes_used,disk,disk2s1,hfs,WattsInfluxDB,ro,/Volumes/FF95FBB6-192D-47B9-BBBC-833F6368D429
,,157,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-14T16:10:41.251Z,1698652160,total,disk,disk2s1,hfs,WattsInfluxDB,ro,/Volumes/FF95FBB6-192D-47B9-BBBC-833F6368D429
,,158,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-14T16:10:41.251Z,1308794880,used,disk,disk2s1,hfs,WattsInfluxDB,ro,/Volumes/FF95FBB6-192D-47B9-BBBC-833F6368D429
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,159,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-14T16:10:41.251Z,77.04902220829013,used_percent,disk,disk2s1,hfs,WattsInfluxDB,ro,/Volumes/FF95FBB6-192D-47B9-BBBC-833F6368D429
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,160,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-17T22:33:07.478Z,0,free,disk,disk2s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.q62GM7vGxK/m
,,161,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-17T22:33:07.478Z,4294966918,inodes_free,disk,disk2s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.q62GM7vGxK/m
,,162,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-17T22:33:07.478Z,4294967279,inodes_total,disk,disk2s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.q62GM7vGxK/m
,,163,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-17T22:33:07.478Z,361,inodes_used,disk,disk2s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.q62GM7vGxK/m
,,164,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-17T22:33:07.478Z,185028608,total,disk,disk2s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.q62GM7vGxK/m
,,165,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-17T22:33:07.478Z,185028608,used,disk,disk2s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.q62GM7vGxK/m
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,166,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-17T22:33:07.478Z,100,used_percent,disk,disk2s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.q62GM7vGxK/m
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,167,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,free,disk,disk3,udf,WattsInfluxDB,ro,/Volumes/Thor Ragnarok
,,168,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,3426691,inodes_free,disk,disk3,udf,WattsInfluxDB,ro,/Volumes/Thor Ragnarok
,,169,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,41,inodes_total,disk,disk3,udf,WattsInfluxDB,ro,/Volumes/Thor Ragnarok
,,170,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,inodes_used,disk,disk3,udf,WattsInfluxDB,ro,/Volumes/Thor Ragnarok
,,171,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,7017863168,total,disk,disk3,udf,WattsInfluxDB,ro,/Volumes/Thor Ragnarok
,,172,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,used,disk,disk3,udf,WattsInfluxDB,ro,/Volumes/Thor Ragnarok
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,173,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,used_percent,disk,disk3,udf,WattsInfluxDB,ro,/Volumes/Thor Ragnarok
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,174,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-11T17:15:35.255Z,389857280,free,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/0FD2794B-226F-4DEB-A19C-75E005A6AC57
,,175,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-11T17:15:35.255Z,4294966864,inodes_free,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/0FD2794B-226F-4DEB-A19C-75E005A6AC57
,,176,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-11T17:15:35.255Z,4294967279,inodes_total,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/0FD2794B-226F-4DEB-A19C-75E005A6AC57
,,177,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-11T17:15:35.255Z,415,inodes_used,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/0FD2794B-226F-4DEB-A19C-75E005A6AC57
,,178,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-11T17:15:35.255Z,1698652160,total,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/0FD2794B-226F-4DEB-A19C-75E005A6AC57
,,179,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-11T17:15:35.255Z,1308794880,used,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/0FD2794B-226F-4DEB-A19C-75E005A6AC57
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,180,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-11T17:15:35.255Z,77.04902220829013,used_percent,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/0FD2794B-226F-4DEB-A19C-75E005A6AC57
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,181,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:46:03.067Z,105676800,free,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/RecoveryHDMeta
,,182,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:46:03.067Z,4294967273,inodes_free,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/RecoveryHDMeta
,,183,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:46:03.067Z,4294967279,inodes_total,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/RecoveryHDMeta
,,184,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:46:03.067Z,6,inodes_used,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/RecoveryHDMeta
,,185,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:46:03.067Z,609431552,total,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/RecoveryHDMeta
,,186,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:46:03.067Z,503754752,used,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/RecoveryHDMeta
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,187,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:46:03.067Z,82.65977538360207,used_percent,disk,disk3s1,hfs,WattsInfluxDB,ro,/Volumes/RecoveryHDMeta
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,188,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,free,disk,disk4,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,189,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,3390710,inodes_free,disk,disk4,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,190,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,71,inodes_total,disk,disk4,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,191,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,inodes_used,disk,disk4,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,192,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,6944174080,total,disk,disk4,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
,,193,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,used,disk,disk4,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,194,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T16:44:35.069Z,0,used_percent,disk,disk4,udf,WattsInfluxDB,ro,/Volumes/Jumanji.Benvenuti.Nella.Giungla[Kasdan.2017.dvd9.kx]
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,195,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-26T16:25:42.052Z,389865472,free,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/55713F97-1C88-4076-B6BB-8897592CB08B
,,196,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-26T16:25:42.052Z,4294966864,inodes_free,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/55713F97-1C88-4076-B6BB-8897592CB08B
,,197,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-26T16:25:42.052Z,4294967279,inodes_total,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/55713F97-1C88-4076-B6BB-8897592CB08B
,,198,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-26T16:25:42.052Z,415,inodes_used,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/55713F97-1C88-4076-B6BB-8897592CB08B
,,199,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-26T16:25:42.052Z,1698652160,total,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/55713F97-1C88-4076-B6BB-8897592CB08B
,,200,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-26T16:25:42.052Z,1308786688,used,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/55713F97-1C88-4076-B6BB-8897592CB08B
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,201,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-26T16:25:42.052Z,77.04853994357502,used_percent,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/55713F97-1C88-4076-B6BB-8897592CB08B
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,202,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-22T19:11:41.599Z,444579840,free,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/A81441DB-3D0C-48E8-8BED-F53FCD1D6D3C
,,203,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-22T19:11:41.599Z,4294967132,inodes_free,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/A81441DB-3D0C-48E8-8BED-F53FCD1D6D3C
,,204,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-22T19:11:41.599Z,4294967279,inodes_total,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/A81441DB-3D0C-48E8-8BED-F53FCD1D6D3C
,,205,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-22T19:11:41.599Z,147,inodes_used,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/A81441DB-3D0C-48E8-8BED-F53FCD1D6D3C
,,206,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-22T19:11:41.599Z,524247040,total,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/A81441DB-3D0C-48E8-8BED-F53FCD1D6D3C
,,207,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-22T19:11:41.599Z,79667200,used,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/A81441DB-3D0C-48E8-8BED-F53FCD1D6D3C
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,208,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-22T19:11:41.599Z,15.196499726541134,used_percent,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/A81441DB-3D0C-48E8-8BED-F53FCD1D6D3C
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,209,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-27T17:08:29.908Z,7413760,free,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/Tunnelblick
,,210,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-27T17:08:29.908Z,4294966699,inodes_free,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/Tunnelblick
,,211,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-27T17:08:29.908Z,4294967279,inodes_total,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/Tunnelblick
,,212,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-27T17:08:29.908Z,580,inodes_used,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/Tunnelblick
,,213,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-27T17:08:29.908Z,40693760,total,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/Tunnelblick
,,214,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-27T17:08:29.908Z,33280000,used,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/Tunnelblick
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,215,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-04-27T17:08:29.908Z,81.78158027176649,used_percent,disk,disk4s1,hfs,WattsInfluxDB,ro,/Volumes/Tunnelblick
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,216,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-01T19:26:01.539Z,0,free,disk,disk5s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.1EQur33ekx/m
,,217,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-01T19:26:01.539Z,4294966918,inodes_free,disk,disk5s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.1EQur33ekx/m
,,218,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-01T19:26:01.539Z,4294967279,inodes_total,disk,disk5s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.1EQur33ekx/m
,,219,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-01T19:26:01.539Z,361,inodes_used,disk,disk5s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.1EQur33ekx/m
,,220,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-01T19:26:01.539Z,185032704,total,disk,disk5s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.1EQur33ekx/m
,,221,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-01T19:26:01.539Z,185032704,used,disk,disk5s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.1EQur33ekx/m
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true,true,true,true,true
#default,_result,,,,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,device,fstype,host,mode,path
,,222,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-01T19:26:01.539Z,100,used_percent,disk,disk5s2,hfs,WattsInfluxDB,ro,/private/tmp/KSInstallAction.1EQur33ekx/m
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,223,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,6318931968,active,mem,WattsInfluxDB
,,224,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,5277085696,available,mem,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,225,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,30.716681480407715,available_percent,mem,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,226,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,buffered,mem,WattsInfluxDB
,,227,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,cached,mem,WattsInfluxDB
,,228,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,1897549824,free,mem,WattsInfluxDB
,,229,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,3379535872,inactive,mem,WattsInfluxDB
,,230,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,0,slab,mem,WattsInfluxDB
,,231,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,17179869184,total,mem,WattsInfluxDB
,,232,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,11902783488,used,mem,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,233,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,69.28331851959229,used_percent,mem,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,234,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.584Z,3103551488,wired,mem,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,235,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.589Z,8.66,load1,system,WattsInfluxDB
,,236,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.589Z,3.78,load15,system,WattsInfluxDB
,,237,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.589Z,5.35,load5,system,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,238,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.589Z,8,n_cpus,system,WattsInfluxDB
,,239,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.589Z,11,n_users,system,WattsInfluxDB
,,240,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.34Z,90708,uptime,system,WattsInfluxDB
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,string,string,string,string
#partition,false,false,false,false,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,241,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-22T22:39:12.34Z,"1 day, 1:11",uptime_format,system,WattsInfluxDB
,,2,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,182180679680,free,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
,,3,1677-09-21T00:12:43.145224192Z,2018-05-22T22:39:17.042276772Z,2018-05-04T21:05:08.947Z,9223372036852008920,inodes_free,disk,/Users/watts/Downloads/TablePlus.app,nullfs,WattsInfluxDB,ro,/private/var/folders/f4/zd7n1rqj7xj6w7c0njkmmjlh0000gn/T/AppTranslocation/F4D8D166-F848-4862-94F6-B51C00E2EB7A
`
export const CSV_TO_DYGRAPH = `
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,double,string,string,string,string
#partition,false,false,true,true,false,false,true,true,true,true
#default,_result,,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,cpu,host
,,1,2018-06-01T22:27:31.129555068Z,2018-06-01T22:28:31.129555068Z,2018-06-01T22:27:41Z,1,usage_idle,cpu,cpu-total,bertrand.local
,,1,2018-06-01T22:27:31.129555068Z,2018-06-01T22:28:31.129555068Z,2018-06-01T22:27:42Z,2,usage_idle,cpu,cpu-total,bertrand.local
,,2,2018-06-01T22:27:31.129555068Z,2018-06-01T22:28:31.129555068Z,2018-06-01T22:27:41Z,3,usage_idle,cpu,cpu-total,bertrand.local
,,2,2018-06-01T22:27:31.129555068Z,2018-06-01T22:28:31.129555068Z,2018-06-01T22:27:42Z,2,usage_idle,cpu,cpu-total,bertrand.local
,,3,2018-06-01T22:27:31.129555068Z,2018-06-01T22:28:31.129555068Z,2018-06-01T22:27:41Z,5,usage_idle,cpu,cpu-total,bertrand.local
,,3,2018-06-01T22:27:31.129555068Z,2018-06-01T22:28:31.129555068Z,2018-06-01T22:27:42Z,1,usage_idle,cpu,cpu-total,bertrand.local
`
export const CSV_TO_DYGRAPH_MISMATCHED = `
#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,dateTime:RFC3339,long,string,string,string
#partition,false,false,true,true,false,false,true,true,true
#default,_result,,,,,,,,
,result,table,_start,_stop,_time,_value,_field,_measurement,host
,,0,2018-06-04T17:12:21.025984999Z,2018-06-04T17:13:00Z,2018-06-04T17:12:25Z,1,active,mem,bertrand.local
,,0,2018-06-04T17:12:21.025984999Z,2018-06-04T17:13:00Z,2018-06-04T17:12:35Z,2,active,mem,bertrand.local
,,1,2018-06-04T17:12:21.025984999Z,2018-06-04T17:13:00Z,2018-06-05T17:12:25Z,10,available,mem,bertrand.local
,,1,2018-06-04T17:12:21.025984999Z,2018-06-04T17:13:00Z,2018-06-05T17:12:35Z,11,available,mem,bertrand.local
`

View File

@ -0,0 +1,32 @@
import {fluxTablesToDygraph} from 'src/shared/parsing/v2/dygraph'
import {parseResponse} from 'src/shared/parsing/v2/results'
import {
CSV_TO_DYGRAPH,
CSV_TO_DYGRAPH_MISMATCHED,
} from 'test/shared/parsing/v2/constants'
describe('fluxTablesToDygraph', () => {
it('can parse flux tables to dygraph series', () => {
const fluxTables = parseResponse(CSV_TO_DYGRAPH)
const actual = fluxTablesToDygraph(fluxTables)
const expected = [
[new Date('2018-06-01T22:27:41Z'), 1, 3, 5],
[new Date('2018-06-01T22:27:42Z'), 2, 2, 1],
]
expect(actual).toEqual(expected)
})
it('can parse flux tables for series of mismatched periods', () => {
const fluxTables = parseResponse(CSV_TO_DYGRAPH_MISMATCHED)
const actual = fluxTablesToDygraph(fluxTables)
const expected = [
[new Date('2018-06-04T17:12:25Z'), 1, null],
[new Date('2018-06-04T17:12:35Z'), 2, null],
[new Date('2018-06-05T17:12:25Z'), null, 10],
[new Date('2018-06-05T17:12:35Z'), null, 11],
]
expect(actual).toEqual(expected)
})
})

View File

@ -1,15 +0,0 @@
import parseMeasurements from 'src/shared/parsing/v2/measurements'
import {MEASUREMENTS_RESPONSE} from 'test/shared/parsing/v2/constants'
describe('measurements parser', () => {
it('returns no measurements for an empty results response', () => {
expect(parseMeasurements('')).toEqual([])
})
it('returns the approriate measurements', () => {
const actual = parseMeasurements(MEASUREMENTS_RESPONSE)
const expected = ['disk', 'diskio']
expect(actual).toEqual(expected)
})
})

View File

@ -1,36 +1,40 @@
import {parseResults} from 'src/shared/parsing/v2/results'
import {parseResponse} from 'src/shared/parsing/v2/results'
import {
RESPONSE_NO_METADATA,
RESPONSE_METADATA,
LARGE_RESPONSE,
EXPECTED_METADATA,
MULTI_SCHEMA_RESPONSE,
EXPECTED_COLUMNS,
} from 'test/shared/parsing/v2/constants'
describe('IFQL results parser', () => {
it('parseResults into the right number of tables', () => {
const result = parseResults(LARGE_RESPONSE)
expect(result).toHaveLength(47)
it('parseResponse into the right number of tables', () => {
const result = parseResponse(MULTI_SCHEMA_RESPONSE)
expect(result).toHaveLength(4)
})
describe('headers', () => {
it('can parse headers when no metadata is present', () => {
const actual = parseResults(RESPONSE_NO_METADATA)[0].data[0]
expect(actual).toEqual(EXPECTED_COLUMNS)
it('throws when no metadata is present', () => {
expect(() => {
parseResponse(RESPONSE_NO_METADATA)
}).toThrow()
})
it('can parse headers when metadata is present', () => {
const actual = parseResults(RESPONSE_METADATA)[0].data[0]
const actual = parseResponse(RESPONSE_METADATA)[0].data[0]
expect(actual).toEqual(EXPECTED_COLUMNS)
})
})
it('returns the approriate metadata', () => {
const actual = parseResults(RESPONSE_METADATA)[0].metadata
expect(actual).toEqual(EXPECTED_METADATA)
describe('partition key', () => {
it('parses the partition key propertly', () => {
const actual = parseResponse(MULTI_SCHEMA_RESPONSE)[0].partitionKey
const expected = {
_field: 'usage_guest',
_measurement: 'cpu',
cpu: 'cpu-total',
host: 'WattsInfluxDB',
}
expect(actual).toEqual(expected)
})
})
})

View File

@ -1,12 +1,12 @@
import parseValuesColumn from 'src/shared/parsing/v2/tags'
import {TAGS_RESPONSE} from 'test/shared/parsing/v2/constants'
describe('measurements parser', () => {
describe('tagKeys parser', () => {
it('returns no measurements for an empty results response', () => {
expect(parseValuesColumn('')).toEqual([])
})
it('returns the approriate measurements', () => {
it('returns the approriate tagKeys', () => {
const actual = parseValuesColumn(TAGS_RESPONSE)
const expected = [
'_field',