Add getting started to docs

Signed-off-by: davidarendsen <davidarendsen@hey.com>
This commit is contained in:
davidarendsen 2022-12-28 16:23:22 +00:00
commit e10c3e924a
5 changed files with 52 additions and 34 deletions

View file

@ -1,8 +1,7 @@
# InfluxDB 2.x Flux Query Builder # 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 ## Installation
@ -10,36 +9,8 @@ With this query builder you can build queries for Flux.
composer require arendsen/fluxquerybuilder composer require arendsen/fluxquerybuilder
``` ```
## Example usage ## Documentation
The documentation of this project is available in the [doc folder](docs/00-index.md).
```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();
```
## Testing ## Testing

View file

@ -2,8 +2,9 @@
Welcome to the documentation of the PHP Flux Query Builder. Welcome to the documentation of the PHP Flux Query Builder.
* [InfluxDB concepts](01-what-is-influxdb.md) * [Getting started](01-getting-started.md)
* [What is Flux?](02-what-is-flux.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/) * [Official InfluxDB documentation](https://docs.influxdata.com/influxdb/v2.6/query-data/flux/)

View 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)
```