Add getting started to docs
Signed-off-by: davidarendsen <davidarendsen@hey.com>
This commit is contained in:
parent
5d8f079ead
commit
e10c3e924a
5 changed files with 52 additions and 34 deletions
35
README.md
35
README.md
|
|
@ -1,8 +1,7 @@
|
|||
# InfluxDB 2.x Flux Query Builder
|
||||
|
||||
With this query builder you can build queries for Flux.
|
||||
With this query builder you can build queries for Flux. Flux is a powerful open source query language created by the makers of InfluxDB. See https://www.influxdata.com/products/flux/
|
||||
|
||||
[Check our documentation](docs/00-index.md)
|
||||
|
||||
## Installation
|
||||
|
||||
|
|
@ -10,36 +9,8 @@ With this query builder you can build queries for Flux.
|
|||
composer require arendsen/fluxquerybuilder
|
||||
```
|
||||
|
||||
## Example usage
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
use Arendsen\FluxQueryBuilder\QueryBuilder;
|
||||
use Arendsen\FluxQueryBuilder\Expression\KeyFilter;
|
||||
use Arendsen\FluxQueryBuilder\Expression\Map;
|
||||
use Arendsen\FluxQueryBuilder\Expression\Selection;
|
||||
|
||||
$queryBuilder = new QueryBuilder();
|
||||
$queryBuilder->fromBucket('test_bucket')
|
||||
->addRangeStart(new DateTime('3 hours ago'))
|
||||
->fromMeasurement('test_measurement')
|
||||
->addFieldFilter(['username', 'email'])
|
||||
->addKeyFilter(
|
||||
KeyFilter::setEqualTo('_field', 'username')
|
||||
->orEqualTo('_field', 'email')
|
||||
)
|
||||
->addMap(Map::with('name', 'user'))
|
||||
->addMap(Map::columns([
|
||||
'time' => '_time',
|
||||
'source' => 'tag',
|
||||
'alert' => Selection::if('r._value > 10')->then(true)->else(false),
|
||||
'test' => Selection::if('r._value > 10')->then('yes')->else('no'),
|
||||
]))
|
||||
->addGroup(['_field', 'ip']);
|
||||
|
||||
echo $queryBuilder->build();
|
||||
```
|
||||
## Documentation
|
||||
The documentation of this project is available in the [doc folder](docs/00-index.md).
|
||||
|
||||
## Testing
|
||||
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
Welcome to the documentation of the PHP Flux Query Builder.
|
||||
|
||||
* [InfluxDB concepts](01-what-is-influxdb.md)
|
||||
* [What is Flux?](02-what-is-flux.md)
|
||||
* [Getting started](01-getting-started.md)
|
||||
* [InfluxDB concepts](02-what-is-influxdb.md)
|
||||
* [What is Flux?](03-what-is-flux.md)
|
||||
* [Official InfluxDB documentation](https://docs.influxdata.com/influxdb/v2.6/query-data/flux/)
|
||||
|
||||
|
||||
|
|
|
|||
46
docs/01-getting-started.md
Normal file
46
docs/01-getting-started.md
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Flux Query Builder Docs
|
||||
|
||||
## Getting started
|
||||
|
||||
Install the package with composer:
|
||||
```
|
||||
composer require arendsen/fluxquerybuilder
|
||||
```
|
||||
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
use Arendsen\FluxQueryBuilder\QueryBuilder;
|
||||
use Arendsen\FluxQueryBuilder\Expression\KeyFilter;
|
||||
use Arendsen\FluxQueryBuilder\Expression\Map;
|
||||
use Arendsen\FluxQueryBuilder\Expression\Selection;
|
||||
|
||||
$queryBuilder = new QueryBuilder();
|
||||
$queryBuilder->fromBucket('test_bucket')
|
||||
->addRangeStart(new DateTime('3 hours ago'))
|
||||
->fromMeasurement('test_measurement')
|
||||
->addFieldFilter(['username', 'email'])
|
||||
->addKeyFilter(
|
||||
KeyFilter::setEqualTo('_field', 'username')
|
||||
->orEqualTo('_field', 'email')
|
||||
)
|
||||
->limit(50);
|
||||
|
||||
echo $queryBuilder->build();
|
||||
```
|
||||
|
||||
Which will result in the following Flux query:
|
||||
|
||||
```js
|
||||
from(bucket: "test_bucket")
|
||||
|> range(start: time(v: 2022-12-28T13:21:11Z))
|
||||
|> filter(fn: (r) => r._measurement == "test_measurement")
|
||||
|> filter(fn: (r) =>
|
||||
r._field == "username" or r._field == "email"
|
||||
)
|
||||
|> filter(fn: (r) =>
|
||||
r._field == "username" or r._field == "email"
|
||||
)
|
||||
|> limit(n: 50, offset: 0)
|
||||
```
|
||||
Loading…
Add table
editor.link_modal.header
Reference in a new issue