Actian - anodot/daria GitHub Wiki
To use this integration a custom build agent image must be used
How to build the image
- Clone the agent repository
- Download Actian Runtime client from their website. Choose Linux x86 64-bit INGBUILD distribution
- Unpack the archive and put it's content to
agent/actian_config/actian-client - 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
- Pipeline file config
- Raw pipeline file config
- Transformation scripts and dynamic tags
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
}
]