Actian - anodot/daria GitHub Wiki

To use this integration a custom build agent image must be used

How to build the image

  1. Clone the agent repository
  2. Download Actian Runtime client from their website. Choose Linux x86 64-bit INGBUILD distribution
  3. Unpack the archive and put it's content to agent/actian_config/actian-client
  4. Build an image and run the agent with docker compose
    docker compose -f agent/actian_config/docker-compose.yml up -d
    

System requirements

4 CPU and 2.5 Gb RAM for 2000 records per second. Minimum RAM required: 4GB

Agent config

Source file config

Property Type Description
type String Specify source type. Value - actian
name String Unique source name - also the config file name
config Object Source configuration

All properties are required

config object properties:

Property Type Description
connection_string String Format: driver=Ingres;servertype=ingres;server=@hostname,tcp_ip,27832;uid=username;pwd=password;database=db

connection_string is required

Example

  • No password
{
  "name": "actian_warehouse",
  "type": "actian",
  "config": {
    "connection_string": "driver=Ingres;servertype=ingres;server=@hostname,tcp_ip,27832;uid=username;pwd=password;database=db"
  }
}

Pipeline File config

Properties list

Property Required Property name in config file Value type in config file Description
Source yes source String Source config name
Pipeline ID yes pipeline_id String Unique pipeline identifier (use a human-readable name so you could easily use it further)
Query yes query String Query. Please always add {TIMESTAMP_CONDITION} constant to the where clause so the agent can make queries based on the timestamp
Collect since yes days_to_backfill Integer Collect data starting N days ago
Query interval yes interval Integer Query data every N seconds
Delay no delay Integer Seconds, Collect data with a specified delay, e.g. the pipeline will retrieve data until now -(minus) delay, it will not fetch the latest data immediately
Values yes values object Key-value pairs. A target type represents how samples of the same metric are aggregated in Anodot. Valid values are: gauge (average aggregation), counter (sum aggregation). If the what property is not static - instead of an actual target type specify a property name where the target type is stored
Values units no units Object Key-value pairs (value:unit). The value must be from the values column, units can be any.
Count records? no count_records Bool to include the number of records as a separate metric, default false
Records counter measurement name no count_records_measurement_name String what property for counting records
Dimensions yes dimensions List of strings Names of columns that will be used as dimensions, columns may only be strings. These fields may be missing in a record
Timestamp yes timestamp Object Names of columns that will be used as dimensions, columns may only be strings
Static dimensions no properties Object with key-value pairs Dimensions with static values to pass to Anodot.
Tags no tags Object with key-value pairs Tags
Transform script no transform_script Object A JS script that can be used to apply any kind of transformation to the original data
Watermark in local timezone no watermark_in_local_timezone Boolean If the watermark should be calculated based on the local timezone. This option is needed if your Anodot account timezone is not UTC, but your local timezone. Default - false
Notifications no notifications object See notifications page

Timestamp object properties:

Do not use timestamp type datetime as in other database integrations, this type is not supported here. You can convert your datetime column to unix timestamp in the query (as in the config below)

Property Required Type Description
type Yes String string, unix or unix_ms
name Yes String Property name
alias No String if aggregation function is used in the timestamp - specify alias for the field to retrieve the value

All properties are required

transform_script object properties:

Property Type Description
file String Path to the python script

Examples

Simple:

[
  {
    "source": "test_actian",
    "pipeline_id": "test_actian_pipeline",
    "values": {"depdelay": "gauge", "arrdelay": "gauge"},
    "dimensions": ["reporting_airline"],
    "interval": 86400,
    "query": "SELECT UNIX_TIMESTAMP(flightdate) as flightdate, reporting_airline, depdelay, arrdelay FROM sample.ontime WHERE {TIMESTAMP_CONDITION}",
    "timestamp": {
      "type": "unix",
      "name": "flightdate"
    },
    "days_to_backfill": 10
  }
]