github.com/influxdata/influxdb/v2@v2.7.6/influxql/v1validation/README.md (about)

     1  This package asserts the fully compatibility between the InfluxDB v1 Influxql engine
     2  and IDPE influxql.
     3  
     4  There is only one file that runs as subtest all the goldenfiles located in
     5  `./goldenfiles`
     6  
     7  This is an example of goldenfile:
     8  
     9  ```yaml
    10  query: "select host, inactive from mem where time >=30000000000 AND time < 50000000000"
    11  dataset: |
    12    mem,host=gianarb page_tables=39534592i,vmalloc_chunk=0i,write_back_tmp=0i,dirty=884736i,high_total=0i,available=11992494080i,used=3284553728i,active=7172775936i,huge_pages_free=0i,swap_total=8589930496i,vmalloc_used=38604800i,free=4928421888i,commit_limit=16853958656i,committed_as=12584218624i,mapped=939278336i,vmalloc_total=35184372087808i,write_back=0i,buffered=989163520i,wired=0i,low_free=0i,huge_page_size=2097152i,swap_cached=120016896i,swap_free=8445227008i,inactive=3461185536i,slab=542363648i,high_free=0i,shared=903233536i,sreclaimable=449650688i,total=16528056320i,cached=7325917184i,available_percent=72.55840522208482,sunreclaim=92712960i,used_percent=19.87259520664557,huge_pages_total=0i,low_total=0i 0
    13    mem,host=gianarb slab=542392320i,shared=931356672i,vmalloc_used=38506496i,sunreclaim=92692480i,write_back=0i,total=16528056320i,commit_limit=16853958656i,huge_pages_free=0i,vmalloc_chunk=0i,active=7159382016i,huge_page_size=2097152i,swap_total=8589930496i,used=3266457600i,buffered=989843456i,wired=0i,high_free=0i,page_tables=38965248i,swap_cached=120016896i,write_back_tmp=0i,inactive=3454332928i,used_percent=19.7631078740177,committed_as=12570415104i,dirty=339968i,high_total=0i,huge_pages_total=0i,sreclaimable=449699840i,vmalloc_total=35184372087808i,free=4914728960i,cached=7357026304i,available_percent=72.49944859820032,low_free=0i,low_total=0i,swap_free=8445227008i,available=11982749696i,mapped=938016768i 20000000000
    14    cpu,cpu=cpu-total,host=gianarb usage_user=6.102117061021656,usage_system=2.938978829389874,usage_nice=0,usage_irq=1.0709838107097638,usage_guest=0,usage_idle=89.41469489414925,usage_iowait=0.024906600249037934,usage_softirq=0.4483188044832491,usage_steal=0,usage_guest_nice=0 30000000000
    15    cpu,cpu=cpu3,host=gianarb usage_user=5.711422845699912,usage_nice=0,usage_iowait=0,usage_irq=1.302605210421328,usage_steal=0,usage_guest=0,usage_guest_nice=0,usage_system=2.905811623247315,usage_idle=89.67935871744233,usage_softirq=0.4008016032064967 30000000000
    16    cpu,cpu=cpu2,host=gianarb usage_user=5.982053838488868,usage_idle=89.73080757727861,usage_irq=0.8973080757725367,usage_softirq=0.4985044865405501,usage_steal=0,usage_guest=0,usage_system=2.8913260219364374,usage_nice=0,usage_iowait=0,usage_guest_nice=0 30000000000
    17    cpu,cpu=cpu1,host=gianarb usage_iowait=0,usage_irq=1.0912698412698993,usage_softirq=0.4960317460319519,usage_guest_nice=0,usage_steal=0,usage_guest=0,usage_user=6.051587301585189,usage_system=3.075396825396861,usage_idle=89.28571428573105,usage_nice=0 30000000000
    18    cpu,cpu=cpu0,host=gianarb usage_user=6.560636182902656,usage_system=2.9821073558650495,usage_idle=88.86679920477891,usage_irq=1.0934393638174862,usage_steal=0,usage_nice=0,usage_iowait=0,usage_softirq=0.4970178926437982,usage_guest=0,usage_guest_nice=0 30000000000
    19    mem,host=gianarb used=3279171584i,wired=0i,committed_as=12718530560i,huge_pages_total=0i,active=7167565824i,swap_total=8589930496i,vmalloc_total=35184372087808i,available=11979239424i,cached=7348174848i,buffered=989859840i,commit_limit=16853958656i,low_free=0i,vmalloc_used=38834176i,total=16528056320i,inactive=3460194304i,available_percent=72.47821033562403,high_free=0i,huge_pages_free=0i,slab=542396416i,dirty=487424i,page_tables=39669760i,swap_free=8445227008i,vmalloc_chunk=0i,write_back=0i,free=4910850048i,huge_page_size=2097152i,low_total=0i,sunreclaim=92696576i,write_back_tmp=0i,used_percent=19.84003152283547,high_total=0i,mapped=938799104i,shared=922521600i,sreclaimable=449699840i,swap_cached=120016896i 30000000000
    20    cpu,cpu=cpu-total,host=gianarb usage_guest_nice=0,usage_user=5.682102628286863,usage_idle=89.88735919901404,usage_nice=0,usage_iowait=0.10012515644554432,usage_guest=0,usage_system=2.828535669587463,usage_irq=1.076345431789406,usage_softirq=0.4255319148935456,usage_steal=0 40000000000
    21    cpu,cpu=cpu3,host=gianarb usage_user=5.599999999992869,usage_steal=0,usage_guest_nice=0,usage_softirq=0.4999999999999318,usage_guest=0,usage_system=2.9999999999984537,usage_idle=89.39999999999075,usage_nice=0,usage_iowait=0.19999999999995852,usage_irq=1.2999999999994816 40000000000
    22  result: |
    23    name: mem
    24    time        host    inactive
    25    ----        ----    --------
    26    30000000000 gianarb 3460194304
    27    40000000000 gianarb 3454791680
    28  ```
    29  
    30  There are only 3 required fields:
    31  
    32  * `query`: to specify the INFLUXQL query to run against the dataset.
    33  * `dataset` are the data used for the query.
    34  * `result` is the expected result returned from the query against the dataset.
    35  
    36  ## Add a new testcase
    37  
    38  In order to `add a new test` you can create a new file with your dataset, your
    39  query and your expected result.
    40  
    41  ## Example of dataset creation
    42  
    43  You can use telegraf to create your own dataset. The one you see above comes
    44  from this configuration:
    45  
    46  ```toml
    47  [agent]
    48    interval = "10s"
    49    round_interval = true
    50    metric_batch_size = 1000
    51    metric_buffer_limit = 10000
    52    collection_jitter = "0s"
    53    flush_interval = "10s"
    54    flush_jitter = "0s"
    55    precision = ""
    56    hostname = ""
    57    omit_hostname = false
    58  
    59  [[outputs.file]]
    60     files = ["stdout", "./metrics.out"]
    61     data_format = "influx"
    62  
    63  [[inputs.mem]]
    64  [[inputs.cpu]]
    65  ```
    66  
    67  Configure Telegraf to collect metrics using the `mem` and `cpu` input plugins.
    68  Additionally, configure telegraf to use the `file` plugin for output, which will
    69  write data as InfluxDB line protocol to `metrics.out`. `metrics.out` will become
    70  the golden file used for the unit test.
    71  
    72  Timestamps within `metrics.out` may be normalized using the
    73  `./cmd/goldenfilenormalizer` tool, which adjusts the first timestamp to a
    74  specified base time and all later times relative to that. This is not mandatory,
    75  but may simplify certain test cases, if start and end times are well defined.