daemon notes, backup

flux

Telegraf, InfluxDB, Chronograf and Kapacitor are known as the TICK Stack.

influx Command Language

-database name
-username username
-password password blank: prompt for password (--password '').
-host name
-execute command
-format [json|csv|column]
-pretty for the json format.
-precision [rfc3339|h|m|s|ms|u|ns] format of the timestamp rfc3339:ccyy-mm-ddThh:mm:ss.sssZ .Default :nanoseconds.sic
-consistency [any|one|quorum|all] Set write consistency level
-import
-path to file to import
-compressed true if the import file is compressed
-pps points per second the import will allow. default zero.
-port #### default:8086
-socket ####
-ssl Use https
-type [influxql|flux]shell
-unsafeSsl when connecting to the cluster using https and not use SSL verification.
-version on Mac 2021-02-12 1.8.4 ,,, v1.7.6 [2019-04-16]

connect host:port connects to another node
auth prompts for username and password
use db_name
pretty toggles pretty print for the json format
chunked turns on chunked responses from server
chunk size size 0 to reset to the default
format [json| csv | column ] format of the server responses
precision [rfc3339|h|m|s|ms|u|ns] format of the timestamp
consistency [any|one|quorum|all sets write consistency level
history command history
settings Example:
Setting           Value
--------          --------
Host              localhost:8086
Username          
Database          ruuvi
RetentionPolicy            see SHOW RETENTION POLICIES on ruuvi
Pretty            false
Format            column
Write Consistency all 
Chunked           true
Chunk Size        0 
Write Consistency number of nodes that must confirm the write. If the requirement is not met the return value will be either partial write if some points in the batch fail or write failure if all points in the batch fail.
$INFLUXDB_GRAPHITE_CONSISTENCY_LEVEL see the Query String Parameters for Writes
clear settings such as database or retention policy.
# Clear the database context
clear database
clear db

# Clear the retention policy context
clear retention policy
clear rp 
exit |quit|^d
show [databases | series | measurements | tag keys | field keys ]

SQL-like query language named InfluxQL


Measurement names, tag keys, tag values, field keys, and field values are case sensitive.

Numerical field values are floats unless they include a trailing i

Use " (quotes) not ' (apostrophes) (don't use tz('EST') use America/New_York or something from this list.
Not timestamps nor boolean (true, false)


influx Command Line Intrepreter queries the database.(slow if on same system as database )

Keywords

ALLALTERANYASASCBEGIN
CREATE CONTINUOUSDATABASEDATABASESDEFAULT
DELETEDESCDESTINATIONSDIAGNOSTICSDISTINCTDROP
DURATIONENDEVERYEXPLAINFIELDFOR
FROMGRANTGRANTSGROUP BYGROUPSIN
INFINSERTINTOKEYKEYSKILL
LIMITSHOWMEASUREMENTMEASUREMENTSNAMEOFFSET
ONORDERPASSWORDPOLICYPOLICIESPRIVILEGES
QUERIESQUERYREADREPLICATIONRESAMPLERETENTION
REVOKESELECTSERIESSETSHARDSHARDS
SLIMITSOFFSETSTATSSUBSCRIPTIONSUBSCRIPTIONS TAG
TOUSERUSERSVALUESWHERE WITH
WRITE

influx 
>SHOW DATABASES
name: databases
_internal      ruuvi     NOAA_water_database
>q
It an be run from another system using
influx -host dbhosst

ERR: no data received The database is not running.

  influx -database ruuvi 
  Connected to http://localhost:8086 version 1.7.4 
  InfluxDB shell version: 1.7.6 as of 4/25/19 Raspberry Pi 
  >use ruuvi 
>show FIELD KEYS name: ruuvi_measurements fieldKey fieldType -------- --------- These (gray) keys are calculated values included by default with ruuvi-collector.properties:storage.values=extended They can be excluded with =raw absoluteHumidity float accelerationAngleFromX float accelerationAngleFromY float accelerationAngleFromZ float accelerationTotal float accelerationX float accelerationY float accelerationZ float batteryVoltage float airDensity float dewPoint float equilibriumVaporPressure float humidity float measurementSequenceNumber integer movementCounter integer pressure float rssi integer temperature float txPower integer >show tag keys name: ruuvi_measurements tagKey ------ dataFormat mac >show measurements name: measurements name ---- ruuvi_measurements > show series key --- ruuvi_measurements,dataFormat=3,mac=C7103C6824C2 ruuvi_measurements,dataFormat=3,mac=D2503AFE1A96 ruuvi_measurements,dataFormat=3,mac=DC4B596ED18B ruuvi_measurements,dataFormat=3,mac=E4D56DEC6E29 ruuvi_measurements,dataFormat=4,mac=C7103C6824C2 ruuvi_measurements,dataFormat=5,mac=C3F5C373450A ruuvi_measurements,dataFormat=5,mac=C4D8A4A90981 ruuvi_measurements,dataFormat=5,mac=C876E596B2C3 ruuvi_measurements,dataFormat=5,mac=D0FD6D6506DC ruuvi_measurements,dataFormat=5,mac=D2503AFE1A96 ruuvi_measurements,dataFormat=5,mac=D3517872EC0F ruuvi_measurements,dataFormat=5,mac=D6F3DADAC85E ruuvi_measurements,dataFormat=5,mac=DC4B596ED18B ruuvi_measurements,dataFormat=5,mac=DCDF6E338D04 ruuvi_measurements,dataFormat=5,mac=E49ED586E4CE ruuvi_measurements,dataFormat=5,mac=E4D56DEC6E29 ruuvi_measurements,dataFormat=5,mac=E9383FDD20BC ruuvi_measurements,dataFormat=5,mac=F2C0C643AD03 ruuvi_measurements,dataFormat=5,mac=F7B7744722AB ruuvi_measurements,dataFormat=5,mac=F7FA744A1E1A



SELECT COUNT( * | field_key | field_key,tag_key | /regular_expression/ )
        [INTO ] 
            FROM 
                [ WHERE ] 
                    [ GROUP BY [* | tag_key[,tag_key]]] 
                                  [ ORDER BY time ] 
                                      [ LIMIT ] 
                                          [ OFFSET] 
                                               [ SLIMIT ] 
                                                      [ SOFFSET ] 
                                                              [ tz('time_zone') ]
For field_keys and tag_key with the same name use: _key ::[field|tag ]

time   = , <> , != , > , >= , < or <= > now() -duration_unit : w d h m s ms u ns No month code.
All time in InfluxDB is UTC. For EasernTime use: tz('America/New_York)

Example if tz is specified:
   'yyyy-mm-dd[Thh:mm:ss-hh:00'

'2021-03-23T00:10:00-04:00'

'2021-03-23'
'yyyy-mm-dd[ hh:mm:ss[.thmuuunnn ]'

'yyyy-mm-dd[Thh:mm:ss[.thmuuunnnZ']

… time > '2019-03-26' and time  <='2019-03-26 17:01:00'

… time > '2019-03-26T17:00:08.960Z' limit 1
time                     floor
----                     -----
2019-03-26T17:00:08.964Z 44

… time > '2019-03-26T17:00:08.965Z' limit 1
time                     floor
----                     -----
2019-03-26T17:00:19.062Z 44 

… time >= now()-2h GROUP BY time(10m) requires at least one aggregate function.

MEAN( ) from ruuvi_measurements GROUP By time … for each time(12m) interval : faster too!
SELECT MEAN(batteryVoltage) FROM ruuvi_measurements WHERE … GROUP BY * ,time(12m) LIMIT 2 ;


SELECT 32+(9/5*mean( temperature) ) as temp, mean(batteryVoltage)*100 as volts FROM ruuvi_measurements 
    WHERE time > :dashboardTime: AND time < :upperDashboardTime: AND 
          "mac"='E4D56DEC6E29'  
            group by  *,time(6h)

now() - 7d

where does not support or for multiple time ranges.


Examples:

Command, suitible to include in a script, to display the time(using Eastern Standard Time zone) of the most recent (last) temperature , etc:
  influx -precision rfc3339 -database ruuvi  
select mac,ceil(temperature*9/5)+32 from ruuvi_measurements where time > now() -2m group by mac tz('America/New_York')
From a specfic ruuvi tag.
 
select temperature from ruuvi_measurements where time > now() - 15m  AND mac='D3517872EC0F'  limit 10 
select temperature from ruuvi_measurements where time > '2019-02-19' AND mac='D3517872EC0F'   limit 10 
select temperature from ruuvi_measurements where time > '2019-02-19T04:08:00Z' AND mac='D3517872EC0F'   limit 10 
All macs with temperature converted to fahrenheit
 select mac,ceil(temperature*9/5)+32 from ruuvi_measurements  where time > now()-1h group_by mac tz('America/New_York') 
All selection from Command Line from a specfic ruuvi tag.
influx -precision rfc3339 -database ruuvi -execute "select  last(temperature)*9/5+32 from ruuvi_measurements 
                                                        where mac='DC4B596ED18B' tz('America/New_York')"
Non-interactive query database "metrics" and pretty print json:
     influx -database 'metrics' -execute 'select * from cpu' -format 'json' -pretty 

Connect to a specific database and set database context(to defaults)

 influx -database 'metrics' -host 'localhost' -port '8086' 


cURL connects to a running database engine>
Either can be run from a remote system

 curl --silent --show-error --get 'http://pi93graf:8086/query?' --data-urlencode "db=ruuvi" --data-urlencode \
"q=SELECT mac,last(temperature) FROM ruuvi_measurements where mac='DC4B596ED18B' 
                                    limit 3 tz('America/New_York') "  
{"results":[{"statement_id":0,"series":[{"name":"ruuvi_measurements", "columns":["time","mac","last"], "values":[["2019-05-22T01:43:53.159467957-04:00","DC4B596ED18B",16.18]]}]}]}

curl --silent --show-error --connect-timeout 6 --get 'http://pi93graf:8086/query?' \
   --data-urlencode "db=ruuvi" \
   --data-urlencode \
  "q=SELECT mac,32+last(temperature)*9/5 FROM ruuvi_measurements group by mac tz('America/New_York') " |\
 sed "s/name.:.ruuvi_measurements/  \\n/g; s/.columns.:..time.,.mac.,.//g; s/.......-..:..//g" |\
 sed "s/0000000001//g; s/99999999999//g ;  s/\[/\n[/g" 
# to get it to be more human readable.
curl  --silent --show-error --get 'http://localhost:8086/query?pretty=true' --data-urlencode "db=ruuvi" --data-urlencode \
    "q=SELECT rssi FROM ruuvi_measurements limit 3"  
{
    "results": [
        {
            "statement_id": 0,
            "series": [
                {
                    "name": "ruuvi_measurements",
                    "columns": [
                        "time",
                        "rssi"
                    ],
                    "values": [
                        [
                            "2018-03-25T00:23:19.564Z",
                            -54
                        ],
                        [
                            "2018-03-25T00:23:23.63Z",
                            -59
                        ],
                        [
                            "2018-03-25T00:23:28.299Z",
                            -50
                        ]
                    ]
                }
            ]
        }
    ]
}

To make this more human readable :
| sed 's/},{/\n/g; s/"//g; s/\[//g ; s/]/\n/g; s/name:ruuvi_measurements,//g; s/columns://g; '\ 's/values://g ; s/{mac://g; s/-0.:00//g' curl --get 'http://localhost:8086/query?' --data-urlencode "db=ruuvi" --data-urlencode "q=SELECT rssi FROM ruuvi_measurements limit 3" {"results":[{"statement_id":0,"series":[{"name":"ruuvi_measurements", "columns":["time","rssi"], "values":[["2018-03-25T00:23:19.564Z",-54],["2018-03-25T00:23:23.63Z",-59],["2018-03-25T00:23:28.299Z",-50]]}]}]}
Additional examples:
influx -precision rfc3339 -database ruuvi  #  ccyy-mm-ddThh:mm:ssZ

select mac,ceil(temperature*9/5)+32 temp from ruuvi_measurements  where time > now() - 15m group by mac 
                                                                                        limit 10 tz('America/New_York') 

name: ruuvi_measurements tags: mac=D3517872EC0F time mac ceil ---- --- ---- 2018-12-28T13:34:11.836-05:00 D3517872EC0F 56 2018-12-28T13:34:21.946-05:00 D3517872EC0F 56 2018-12-28T13:34:32.029-05:00 D3517872EC0F 56 name: ruuvi_measurements tags: mac=E9383FDD20BC time mac ceil ---- --- ---- 2018-12-28T13:34:20.964-05:00 E9383FDD20BC 75 2018-12-28T13:34:31.116-05:00 E9383FDD20BC 75 2018-12-28T13:34:41.268-05:00 E9383FDD20BC 75 select LAST(temperature) from ruuvi_measurements where mac='DC4B596ED18B' tz('America/New_York') (Not ET, not EDT ) name: ruuvi_measurements time last ---- ---- 2018-12-03T20:40:28.217-05:00 24.41 select ceil((temperature*9/5)+32) from ruuvi_measurements where time > 1545583683677000000 tz('America/New_York') 2018-12-23T11:48:13.764-05:00 41 2018-12-23T11:48:23.838-05:00 41 2018-12-23T11:48:33.939-05:00 41 … 2018-12-23T12:11:50.314-05:00 42 2018-12-23T12:12:00.42-05:00 42 note ugly time when ms is nn0 2018-12-23T12:12:11.032-05:00 42 select count(temperature) from ruuvi_measurements where time > 1545583683677000000 tz('America/New_York') name: ruuvi_measurements time count ---- ----- 2018-12-23T11:48:03.677000001-05:00 169 select min(batteryVoltage),mean(batteryVoltage),max(batteryVoltage), STDDEV(batteryVoltage ) from ruuvi_measurements where time > 1545583683677000000 tz('America/New_York') time min mean max stddev ---- --- ---- --- ------ 2018-12-23T11:48:03.677000001-05:00 2.803 2.9022596153846107 2.923 0.008921011610828401 select time, temperature, absoluteHumidity, pressure from ruuvi_measurements where mac='D3517872EC0F' and time > 154079 and rssi> -70 limit 2; name: ruuvi_measurements time temperature absoluteHumidity pressure ---- ----------- ---------------- --------------- 2018-03-22T17:05:14.741Z 6 4.064597097450367 99300 2018-03-22T17:06:15.745Z 6 4.064597097450367 99300 select time, temperature, absoluteHumidity,batteryVoltage, pressure, txPower from ruuvi_measurements where mac='D3517872EC0F' and batteryVoltage>0 limit 2 time temperature absoluteHumidity batteryVoltage pressure txPower ---- ----------- ---------------- -------------- -------- ------- 2018-06-06T17:53:25.336Z 49.86 40.90683320213987 3.001 99442 ### last entry as of 11/30/18 2018-06-06T17:53:36.438Z 49.83 40.84931173861518 3.019 99454 ### notice no txPower values Other MACs : E511D11ECBB8, E6C3BE6F656C , FB0ECBEF7354, F7FA744A1E1A, DFC8B0FE5CC0 D3517872EC0F lines wrapped and precision edited for breivity (ed) select * from ruuvi_measurements where mac='D3517872EC0F' and time > 154079 and rssi> -70 limit `; name: ruuvi_measurements time absoluteHumidity accelerationAngleFromX accelerationAngleFromY accelerationAngleFromZ accelerationTotal ---- ---------------- ---------------------- ---------------------- ---------------------- ----------------- 1540249289169000000 8.624138716002781 76.08684542427619 14.79288467670658 85.07363877795116 0.9898070519045619 accelerationX accelerationY accelerationZ airDensity batteryVoltage dataFormat ------------- ------------- ------------- ---------- -------------- ---------- 0.238 0.957 0.085 1.2378516828652366 2.929 3 dewPoint equilibriumVaporPressure humidity mac measurementSequenceNumber movementCounter pressure -------- ------------------------ -------- --- ------------------------- --------------- -------- 8.66 1121.3290262788335 100 D3517872EC0F 1004 86 rssi temperature txPower ---- ----------- ------- -61 8.66 4 select time, temperature,humidity,batteryVoltage, rssi from ruuvi_measurements where mac='D3517872EC0F' order by time limit 4 name: ruuvi_measurements time temperature humidity batteryVoltage rssi ---- ----------- -------- -------------- ---- 1540249341135000000 8.65 100 2.929 -76 1540249351743000000 8.65 100 2.929 -62 1540249361841000000 8.66 100 2.923 -64 1540249371940000000 8.64 100 2.923 -78 select time, mac, temperature, rssi from ruuvi_measurements order by time limit 6 name: ruuvi_measurements time mac temperature rssi ---- --- ----------- ---- 1540249289169000000 D3517872EC0F 8.66 -61 1540249290475000000 F2C0C643AD03 21 -92 1540249299762000000 D3517872EC0F 8.65 -76 1540249301098000000 F2C0C643AD03 21 -93 1540249309853000000 D3517872EC0F 8.65 -64 select time, temperature, rssi from ruuvi_measurements where mac='F2C0C643AD03' and time > 1540900000000000000 limit 6; name: ruuvi_measurements time temperature rssi ---- ----------- ---- 1540901073139000000 21 -62 1540901087223000000 24 -69 1540901097337000000 24 -85 1540909474167000000 24.91 -70 1540909517698000000 24.95 -50 1540911372699000000 26.97 -76 select time, temperature,humidity,batteryVoltage, rssi from ruuvi_measurements where mac='D3517872EC0F' and time > 1542200000000000000 limit 5; name: ruuvi_measurements time temperature humidity batteryVoltage rssi ---- ----------- -------- -------------- ---- 1542200000530000000 2.51 75 2.905 -56 1542200010627000000 2.5 74.5 2.911 -72 1542200020714000000 2.49 74 2.899 -71 1542200031307000000 2.51 73.5 2.911 -72 1542200041395000000 2.5 73.5 2.911 -70


into

SELECT_clause INTO FROM_clause [WHERE_clause] [GROUP_BY_clause]
Can be used to move data from one database to another.
The backreference syntax (:MEASUREMENT) maintains the source measurement names in the destination .
When moving large amounts of data, avoid running out of memory, by running INTO queries with different measurements or time boundaries with the WHERE.

Example: SELECT "water_level" INTO "h2o_feet_copy_1" FROM "h2o_feet" WHERE "location" = 'coyote_creek'.
h2o_feet_copy_1 is a new new measurement
Result displays number of points and a meaningless timestamp.

downsampling

SELECT MEAN("water_level") INTO "all_my_averages" FROM "h2o_feet"
          WHERE "location" = 'coyote_creek'
          AND time >= '2015-08-18T00:00:00Z' AND time <= '2015-08-18T00:30:00Z' GROUP BY time(12m)

This creates averages over each 12 minute period and takes a while!
`

Aggregations

with text fields (like MAC) returns null
COUNT( don't use *
          select  count(batteryVoltage) from ruuvi_measurements where  time >= now()-3h tz('America/New_York')
          name: ruuvi_measurements
          ------------------------
          time                count
          2018-12-08T20:50:15.11-05:00    6125
DISTINCT( cannot be combined with other functions or fields, not even another DISTINCT .
Will have the earliest time if range is specified.
select distinct(batteryVoltage) from ruuvi_measurements where
                                    mac = 'E49ED586E4CE' and time < '2020-08-01' and time > '2020-05-01' 
name: ruuvi_measurements
time                           distinct
----                           --------
2020-05-01T00:00:00.000000001Z 2.929
2020-05-01T00:00:00.000000001Z 2.935
2020-05-01T00:00:00.000000001Z 2.917
2020-05-01T00:00:00.000000001Z 2.911
INTEGRAL( [ * | * average
INTEGRAL( field_key |
   /regular_expression/ ]
                [
, unit ]
area under the curve for subsequent field values and converts those results into the summed area per unit.
MEAN( no function AVERAGE MEDIAN( half data lower MODE( most frequent.
STDDEV( SUM(
SPREAD( difference between the minimum and maximum

Selectors

SAMPLE( field,n randomly select values TOP( field,n greatest n values
cannot be used with another function (not even bottom
PERCENTILE( field,nvalue that is larger than n percent of the field values BOTTOM( field,n smallest n values
cannot be used with another function (not even top
MIN( FIRST( oldest
select FIRST(temperature) from ruuvi_measurements where mac='D48B9C6C230E' 
name: ruuvi_measurements
time                     first
----                     -----
2018-10-03T01:19:46.678Z 25.04
MAX( LAST( newest
select LAST(temperature) from ruuvi_measurements where mac='D48B9C6C230E' 
name: ruuvi_measurements
time                     last
----                     ----
2018-12-02T21:33:26.728Z 23.52
 select count(batteryVoltage),percentile(batteryVoltage,10), min(batteryVoltage),mean(batteryVoltage),max(batteryVoltage),stddev(batteryVoltage) 
    from ruuvi_measurements where  batteryVoltage<1.78 and time > '2021-01-01' and mac='E9383FDD20BC' tz('America/New_York')
name: ruuvi_measurements
time                                count percentile min   mean    max   stddev
----                                ----- ---------- ---   ----    ---   ------
2021-01-01T00:00:00.000000001-05:00 16    1.743      1.729 1.76225 1.778 0.013542525613784159

select mac,ceil(pressure/100),ceil(batteryVoltage*100)/100,ceil(temperature*9/5)+32,ceil(humidity) 
    from ruuvi_measurements  
    where time > NOW()-1m  group by mac limit 5 tz('America/New_York') 

Transformations

CEILING( rounded up ROUND( FLOOR( rounded down
CUMULATIVE_SUM(   
DERIVATIVE( unit: 1s, nonNegative: true, columns: ["_value"], timeColumn: "_time"
returns N-1 values
NON_NEGATIVE_DERIVATIVE( [NON_]NEGATIVE_DIFFERENCE(  
HISTOGRAM( MOVING_AVERAGE( 
ELAPSED(
measurementUpdateLimit=30000

select elapsed(humidity,1s) from ruuvi_measurements where time > now() -5m group by mac limit 3  tz('America/New_York')
tags: mac=C7103C6824C2
time                                elapsed
----                                -------
2019-12-07T18:44:12.041362137-05:00 32
2019-12-07T18:44:46.980645189-05:00 34
2019-12-07T18:45:14.355036496-05:00 27

tags: mac=D6F3DADAC85E
2019-12-07T18:44:28.991358158-05:00 36
2019-12-07T18:45:01.200742424-05:00 32
2019-12-07T18:45:33.299000051-05:00 32

tags: mac=E9383FDD20BC
2019-12-07T18:44:15.1649262-05:00   39
2019-12-07T18:44:46.980645189-05:00 31
2019-12-07T18:45:25.192936173-05:00 38
Predictors
HOLT_WINTERS(

sigQUIT (usually ^\) while a query is running causes influx to output partial results like:
ERR: -12-31T00:31:48.091-05:00","D3517872EC0F",33],
["2018-12-31T00:31:58.171-05:00","D3517872EC0F",33],["2018-12-31T00:32:08.251-05:00","D3517872EC0F",33],
 ["2018-12-31T00:32:18.359-05:00","D3517872EC0F",33],["2018-12-31T00:32:28.463-05:00","D3517872EC0F",33],
  ["2018-12-31T00:32:38.566-05:00","D3517872EC0F",33],["2018-12-31T00:32:48.679-05:00","D3517872EC0F",33],
    ["2018-12-31T00:34:39.727-05:00","D3517872EC0F",33],["2018-12-31T00:34:49.818-05:00","D3517872EC0F",33], ["2018-12-31T00:35:00.396-05:00"…


Retention Policy

Unique per database, define: When a database is created, the default is autogen with infinite duration, replication factor of 1, and shard group duration of 7 days (7*24=168h).

ALTER [CREATE] RETENTION POLICY retention_policy_name ON database_name
   DURATION duration
  REPLICATION n
   [SHARD DURATION sduration] [DEFAULT]

GornellVT
 SHOW RETENTION POLICIES on ruuvi
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true
> alter retention policy autogen on ruuvi DURATION 18240h
> SHOW RETENTION POLICIES on ruuvi
name    duration   shardGroupDuration replicaN default
----    --------   ------------------ -------- -------
autogen 18240h0m0s 168h0m0s           1        true
>

 SHOW RETENTION POLICIES on ruuvi
name    duration shardGroupDuration replican default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

alter retention policy autogen on ruuvi DURATION 4320h   # 180 days 1/2 year,  (365+25)= 9360h (365*2+30)= 18240h
autogen 4320h0m0s 168h0m0s           1        true

SHOW SERIES [ON database_name] [FROM_clause]
                [WHERE tag_key operator [ 'tag_value' | regular_expression]] [LIMIT_clause] [OFFSET_clause]

SHOW MEASUREMENTS [ON database_name] [WITH MEASUREMENT regular_expression]
                 [WHERE tag_key operator ['tag_value' | regular_expression]] [LIMIT_clause] [OFFSET_clause

SHOW TAG KEYS [ON database_name] [FROM_clause]
                [WHERE tag_key operator ['tag_value' | regular_expression]] [LIMIT_clause] [OFFSET_clause]

SHOW TAG VALUES [ON database_name][FROM_clause] WITH KEY [ [operator "tag_key" | regular_expression] | [IN ("tag_key1","tag_key2")]]
                [WHERE tag_key operator ['tag_value' | regular_expression]] [LIMIT_clause] [OFFSET_clause]

SHOW FIELD KEYS [ON database_name] [FROM measurement_name]


influxd daemon (service)

Is influxd running?
curl --connect-timeout 2 --head http://localhost:8086/ping
or
curl --connect-timeout 2 --head http://pi93graf:8086/ping
HTTP/1.1 204 No Content
Content-Type: application/json
Request-Id: 75c9524a-7d8c-11e9-9827-b827eb1c5b93
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.7.6
X-Request-Id: 75c9524a-7d8c-11e9-9827-b827eb1c5b93
Date: Thu, 23 May 2019 18:56:23 GMT   current time
ommitting the ping returns
HTTP/1.1 404 Not Found 
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.7.9
Date: Mon, 30 Dec 2019 21:52:23 GMT
Content-Length: 19

Starting (takes 40 seconds! on pi zero)

         sudo service influxdb start    or
         sudo systemctl restart influxdb
not: sudo systemctl reload influxdb
      Failed to reload influxdb.service: Job type reload is not applicable for unit influxdb.service.…

Interactively (shows errors):
influxd run --config /etc/influxdb/influxdb.NEW.conf

influxd [[command] [arguments]]

commands :

run DEFAULT
Does NOT check if there is an existing instance running!
-config path defaults $INFLUXDB_CONFIG_PATH, ~/.influxdb/influxdb.conf, or /etc/influxdb/influxdb.conf
Disable the loading of a configuration file by using /dev/null.
-pidfile path Write process ID to a file.
-cpuprofile path Write CPU profiling information to a file.
-memprofile path Write memory usage information to a file.
config display resultant configuration
backup downloads a snapshot of a data node to disk
restore uses a snapshot of a data node to rebuild a cluster
help influxd [command] -help for more information.
version

show stats



influxd config | more # takes nearly 3 minutes~!
Merging with configuration at: /etc/influxdb/influxdb.conf
reporting-disabled = false
bind-address = "127.0.0.1:8088"
[meta] dir = "/var/lib/influxdb/meta" retention-autocreate = true logging-enabled = true [data] dir = "/var/lib/influxdb/data" index-version = "inmem" wal-dir = "/var/lib/influxdb/wal" wal-fsync-delay = "5s" validate-keys = false query-log-enabled = true cache-max-memory-size = 1073741824 #1,073,741,824 1GB too big cache-snapshot-memory-size = 26214400 cache-snapshot-write-cold-duration = "10m0s" compact-full-write-cold-duration = "4h0m0s" compact-throughput = 50331648 compact-throughput-burst = 50331648 max-series-per-database = 1000000 max-values-per-tag = 100000 max-concurrent-compactions = 0 max-index-log-file-size = 1048576 trace-logging-enabled = false tsm-use-madv-willneed = false [coordinator] write-timeout = "10s" max-concurrent-queries = 0 query-timeout = "8s" log-queries-after = "0s" max-select-point = 0 max-select-series = 0 max-select-buckets = 0 [retention] enabled = true check-interval = "30m0s" [shard-precreation] enabled = true check-interval = "10m0s" advance-period = "30m0s" [monitor] store-enabled = true store-database = "_internal" store-interval = "10s" [subscriber] enabled = true http-timeout = "30s" insecure-skip-verify = false ca-certs = "" write-concurrency = 40 write-buffer-size = 1000 [http] enabled = true bind-address = ":8086" auth-enabled = false log-enabled = true suppress-write-log = false write-tracing = false flux-enabled = false [logging] format = "auto" level = "error" suppress-logo = false [[graphite]] enabled = false bind-address = ":2003" database = "graphite" retention-policy = "" protocol = "tcp" batch-size = 5000 batch-pending = 10 batch-timeout = "1s" consistency-level = "one" separator = "." udp-read-buffer = 0 [[collectd]] enabled = false bind-address = ":25826" database = "collectd" retention-policy = "" batch-size = 5000 batch-pending = 10 batch-timeout = "10s" read-buffer = 0 typesdb = "/usr/share/collectd/types.db" security-level = "none" auth-file = "/etc/collectd/auth_file" parse-multivalue-plugin = "split" [[opentsdb]] enabled = false bind-address = ":4242" database = "opentsdb" retention-policy = "" consistency-level = "one" tls-enabled = false certificate = "/etc/ssl/influxdb.pem" batch-size = 1000 batch-pending = 5 batch-timeout = "1s" log-point-errors = true [[udp]] enabled = false bind-address = ":8089" database = "udp" retention-policy = "" batch-size = 5000 batch-pending = 10 read-buffer = 0 batch-timeout = "1s" precision = "" [continuous_queries] enabled = true log-enabled = true query-stats-enabled = false run-interval = "1s" [tls] min-version = "" max-version = ""
>show SERIES
key
---
ruuvi_measurements,dataFormat=3,mac=DFC8B0FE5CC0
ruuvi_measurements,dataFormat=3,mac=E6C3BE6F656C
ruuvi_measurements,dataFormat=3,mac=F7FA744A1E1A
ruuvi_measurements,dataFormat=3,mac=FB0ECBEF7354
ruuvi_measurements,dataFormat=4,mac=D3517872EC0F
ruuvi_measurements,dataFormat=4,mac=F2C0C643AD03
ruuvi_measurements,dataFormat=5,mac=E511D11ECBB8
ruuvi_measurements,dataFormat=5,mac=E6C3BE6F656C


Performance Profiles

Point browset to //http://influxhost:8086/debug/pprof /debug/pprof/

Types of profiles available:
CountProfile
1262allocs
44block
0cmdline
22goroutine
1262heap
16mutex
0profile
10threadcreate
0trace
full goroutine stack dump

Profile Descriptions:


backup

Creates a backup copy

echo $'\e[3;10;0t \e[8;38;140t'   # set window to upper left corner 0px;0px ; restore to 38c x 140c

#shutdown and disable ruuviCollector nicely first
vi /home/pi/RuuviCollector/RuuviCollector # did NOT;exit 0
sudo systemctl daemon-reload
sudo systemctl status ruuvicollector
sudo systemctl status influxdb

sudo systemctl stop ruuvicollector   # it's quite
sudo systemctl status ruuvicollector

Jun 07 16:10:00 pi93graf systemd[1]: Stopping RuuviCollector...
Jun 07 16:10:01 pi93graf pi[21531]:  ++ /home/pi/RuuviCollector got sig TERM
Jun 07 16:10:01 pi93graf systemd[1]: ruuvicollector.service: Main process exited, code=exited, status=15/n/a
Jun 07 16:10:01 pi93graf systemd[1]: Stopped RuuviCollector.
Jun 07 16:10:01 pi93graf systemd[1]: ruuvicollector.service: Unit entered failed state.
Jun 07 16:10:01 pi93graf systemd[1]: ruuvicollector.service: Failed with result 'exit-code'. 
influxd backup -db dbname [options] path

Exactly one backup path is required.

-db name default:with -portable all databases are backed up
-portableUse unless the legacy backup is required.
-host host:port back up from. Defaults 127.0.0.1:8088 i.e.local.
-rp name Retention policy default: all retention policies are used
-start ccyy-mm-ddThh:mm:ssZ starting with ccyy-mm-ddThh:mm:ssZ
-since ccyy-mm-ddThh:mm:ssZ Points after the timestamp incremental (-start is prefered.)
-end ccyy-mm-ddThh:mm:ss.ssZ Exclude points after timestamp
Not compatible with -since
Without -start & -end results in full backup.
-shard sssss The identifier of the shard to back up. -rp is required.
-skip-errors continue if the current shard fails to backup.

Influxdb must be RUNNING!
Download shard 0 failed dial tcp [::1]:8088: connect: connection refused. Waiting 2s and retrying (0)...

pi@pi93graf:/varnew/backup $ influxd backup  -db ruuvi 220609
2022/06/09 16:12:31 backing up metastore to 220609/meta.01
2022/06/09 16:12:31 backing up db=ruuvi
2022/06/09 16:12:31 backing up db=ruuvi rp=autogen shard=1064 to 220609/ruuvi.autogen.01064.00 since 0001-01-01T00:00:00Z
2022/06/09 16:12:32 backing up db=ruuvi rp=autogen shard=1074 to 220609/ruuvi.autogen.01074.00 since 0001-01-01T00:00:00Z
2022/06/09 16:12:35 backing up db=ruuvi rp=autogen shard=1084 to 220609/ruuvi.autogen.01084.00 since 0001-01-01T00:00:00Z
… 
2022/06/09 16:17:45 backing up db=ruuvi rp=autogen shard=1953 to 220609/ruuvi.autogen.01953.00 since 0001-01-01T00:00:00Z
2022/06/09 16:17:47 backing up db=ruuvi rp=autogen shard=1956 to 220609/ruuvi.autogen.01956.00 since 0001-01-01T00:00:00Z
2022/06/09 16:17:48 backup complete:
2022/06/09 16:17:48     220609/220609/meta.01
2022/06/09 16:17:48     220609/220609/ruuvi.autogen.01064.00
2022/06/09 16:17:48     220609/220609/ruuvi.autogen.01074.00
…
2022/06/09 16:17:48     220609/220609/ruuvi.autogen.01956.00 
> du
1,536,936

gzip -v * # Use gzip to compress 40% !  takes longer than the backup!
meta.00:     72.4% -- replaced with meta.00.gz
meta.01:     72.4% -- replaced with meta.01.gz
ruuvi.autogen.01064.00:   wait for it  ....   41.1% -- replaced with ruuvi.autogen.01064.00.gz
ruuvi.autogen.01074.00:  41.4% -- replaced with ruuvi.autogen.01074.00.gz
…
 du
902,036
 
ftp elsewhere, if server craps it does nlt help tp have the backup there!
influxd
 8888888           .d888 888                   8888888b.  888888b.
   888            d88P"  888                   888  "Y88b 888  "88b
   888            888    888                   888    888 888  .88P
   888   88888b.  888888 888 888  888 888  888 888    888 8888888K.
   888   888 "88b 888    888 888  888  Y8bd8P' 888    888 888  "Y88b
   888   888  888 888    888 888  888   X88K   888    888 888    888
   888   888  888 888    888 Y88b 888 .d8""8b. 888  .d88P 888   d88P
 8888888 888  888 888    888  "Y88888 888  888 8888888P"  8888888P"

2022-06-09T20:04:25.043135Z info    InfluxDB starting   {"log_id": "0azWwHJ0000", "version": "1.8.10", "branch": "1.8", "commit": "688e697c51fd"}
2022-06-09T20:04:25.046570Z info    Go runtime  {"log_id": "0azWwHJ0000", "version": "go1.13.8", "maxprocs": 1}
run: open server: listen: listen tcp 127.0.0.1:8088: bind: address already in use

Datafiles must be owned/group influxdb influxdb
> sudo find /var/lib/influxdb -user root # any found need to be chown chgrp influxdb
 > cd /var/lib/influxd
/var/lib/influxdb > sudo chown -vR influxdb  * |grep -v retained
changed ownership of '0_chgrp' from root to influxdb
changed ownership of 'data/_internal/monitor/274/fields.idx' from root to influxdb
changed ownership of 'data/_internal/monitor/274' from root to influxdb
changed ownership of 'data/_internal/monitor/272/000000015-000000002.tsm' from root to influxdb 
changed ownership of 'meta/meta.db' from root to influxdb
changed ownership of 'wal/_internal/monitor/274/_00001.wal' from root to influxdb
changed ownership of 'wal/_internal/monitor/274' from root to influxdb
later:
changed ownership of 'data/ruuvi/autogen/10/000000001-000000001.tsm' from root to influxdb
changed ownership of 'data/ruuvi/autogen/5/000000001-000000001.tsm' from root to influxdb
changed ownership of 'data/_internal/monitor/276/000000010-000000001.tsm' from root to influxdb
changed ownership of 'data/_internal/monitor/276/fields.idx' from root to influxdb
changed ownership of 'wal/_internal/monitor/276/_00036.wal' from root to influxdb
changed ownership of 'wal/_internal/monitor/276/_00035.wal' from root to influxdb


InfluxDB stores all integers as signed int64 data types. The minimum and maximum are -9023372036854775808 and 9023372036854775807.
See Go builtins

Benchmark vs Elasticsearch pdf

community influxData

from raspberry pi rev B as of 18-12-14 InfluxDB shell version: 1.0.2
from pi zero 3/27/19 InfluxDB shell version: 1.7.4 , ` influx_inspect, chronograf


inport CSV data

subscriptions